人脸检测(三)——Multi-task CNN(MTCNN)

这篇文章主要记录了《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》链接


在人脸检测和特征点定位的任务上,这篇文章提出的方法比现有最先进的技术有明显的额提升,而且具有实时处理的性能。

在这篇文章中,提出了一个深度卷积多任务的框架,这个框架利用了检测和对准之间固有的关系来增强他们的性能。特别是,在预测人脸及脸部标记点的时候,通过三阶的级联卷积神经网络对任务进行从粗到精的处理。而且还提出了一种新的在线困难样本生成策略来进一步提升性能。


论文最主要的一点应该是三阶的级联卷积神经网络。我们应该能从下图直观地看出其特点:

stage 1(P-Net):一个浅层的全部由卷积层组成的CNN快速生成候选窗口,获取候选人脸窗口以及人脸回归向量,再基于估计的边框进行校准,之后才有NMS来合并高度重叠的候选。

stage 2(R-Net):用stage1得出的结果,放到R-Net进一步排除大量错误的候选,使用边框回归执行校准并进行NMS。

stage 3(O-Net):这个和stage 2 有点类似,但是这个阶段目的是识别出更准确的脸部区域,最后输出5个特征点位置。

人脸检测(三)——Multi-task CNN(MTCNN)_第1张图片


人脸/非人脸判定采用交叉熵损失函数:

人脸框回归采用欧式距离损失函数:


特征点定位也采用欧式距离损失函数:


而面对不同情况时,有些损失函数是没有被用到的,比如说当图像中无人脸时,则人脸框回归和特征点定位的损失函数便没有用到,我们只计算了第一个等式。那么这时,我们使用到下列公式来进行权衡:

其中alpha表示三个任务在当前阶段的网络中的损失比重,beta表示采样类型指示;在P-Net和R-net的时候,det、box、landmark的alpha值分别取1、0.5、0.5,而在O-Net中,det、box、landmark的alpha值分别取1、0.5、1,其中landmark的比重调高了,目的是为了获取更精确的脸部标记点位置。

人脸检测(三)——Multi-task CNN(MTCNN)_第2张图片

上图是三阶对应的网络。

从其展现的结果,我们可以看到使用在线困难样本挖掘以及使用了联合检测和对准的方法的结果性能要比没有使用的好很多,

人脸检测(三)——Multi-task CNN(MTCNN)_第3张图片

从下表可以看出,运用了三阶网络的速度要快,精确度也有所提高,

人脸检测(三)——Multi-task CNN(MTCNN)_第4张图片

并且,坐着以AFLW的数据作为Benchmark,比较了在人脸对准上的性能,如下图,很明显可以看出作者提出的MTCNN明显要高出其他网络的性能。

人脸检测(三)——Multi-task CNN(MTCNN)_第5张图片




上图是三阶对应的网络。

你可能感兴趣的:(Facial,landmark,Detection)