MTCNN

MTCNN人脸检测是2016年的论文提出来的,MTCNN的“MT”是指多任务学习(Multi-Task),在同一个任务中同时学习”识别人脸“、”边框回归“、”人脸关键点识别“。

1“金字塔”变换

首先将原始图片缩放到不同的尺度,形成一个图像金字塔。这可以解决有的人脸大,有的人脸小,能把在同一尺度之下检测人脸。

MTCNN

2网络结构 

MTCNN

 

P-Net是一个全卷积网络,可以适应任意尺寸的输入,输出是还是不是人脸face classification,2维是方便交叉熵损失。

1*1*4代表标定框信息,Facial landmark localization 1*1*10 表示检测的5个关键点。

MTCNN

上图为P-Net的结果,我们把图像金字塔不同尺度的图片,输出就会有很多会大小不同的标定框。这个过程中

 R-Net

MTCNN

 我们把P-Net 的结果通过插值的方式缩放到24*24 的尺寸。输入到R-Net。这个网络是优化P-Net检测的结果,也可以消除误判。

MTCNN

这是R-Net的输出结果,可以看到很多多余的标定框都过滤掉了。

之后我们接入O-Net进行最后的人脸识别和关键点检测。

MTCNN

MTCNN 

3损失函数

我们根据网络的输出来定义损失函数,网络人脸判别部分使用交叉熵损失,边框回归和关键点检测部分使用L2损失。

我们把3个部分分配权重,加起来就是总损失。

对P-Net和R-Net更关注框的位置,所以这部分权重相对更大。

对于O-Net更关心关键点检测,同理。

有两种损失在人脸领域效果较好。

一个是三元组损失Triple Loss

一个是center loss