MTCNN

作者: haoshengup | 来源:发表于2020-03-07 11:50 被阅读0次

  人脸任务总体上分为:人脸检测、人脸关键点检测、人脸判别、人脸识别、人脸聚类等。
  作者认为人脸检测和人脸关键点检测这两个任务之间是有联系的(直观上来想,确实如此,网络在提取人脸信息的时候必然会包括关键点的信息)。所以,提出了mtcnn的综合框架,同时处理人脸检测和人脸关键点识别。
  总体的算法思路很简单,主要是有3个浅层网络级联在一起,每一级的精度逐步提高,作者通过这种分级过滤的方式来提高速度。3个浅层网络分别是:P-Net、R-Net、O-Net。

一、算法步骤

  1、建立图像金字塔
  2、图像金字塔中的图片进入P-Net,这是一个全卷积网络,输出部分分为两个分支:分类分支(二分类)和定位分支(人脸的bbox)。
  3、将2中产生的bbox和原图送入R-Net,进一步过滤这些bbox,得到更精确的结果。
  4、将3中得到的bbox和原图送入O-Net,输出3个结果:分类(二分类)、定位(人脸位置)、关键点(5个关键点的坐标)。
  具体结构如下图所示:


二、Loss

  1、分类loss:标准交叉熵损失函数L_i^{det}
  2、定位loss:L_i^{box} = || \hat y_i^{box} - y_i{box}||_2^2
  3、关键点loss:两个点之间的欧式距离,即
L_i^{landmark} = || \hat y_i^{landmark} - y_i^{landmark} ||_2^2
  4、3个网络的loss分别为:
  (1)L_p = \sum_{i=1}^N (L_i^{det} + 0.5\beta L_i^{box}),背景bbox:\beta = 0,前景bbox:\beta = 1
  (2)L_R = \sum_{i=1}^N (L_i^{det} + 0.5\beta L_i^{box}),背景bbox:\beta = 0,前景bbox:\beta = 1
  (3)L_O = \sum_{i=1}^N(L_i^{det} + 0.5\beta L_i^{box} + \beta L_i^{landmark}),背景bbox:\beta = 0,前景bbox:\beta = 1

相关文章

网友评论

      本文标题:MTCNN

      本文链接:https://www.haomeiwen.com/subject/ueeqdhtx.html