人脸检测——MTCNN学习笔记

来源:互联网 发布:eclipse图形界面编程 编辑:程序博客网 时间:2024/06/06 19:27

论文:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
论文地址:https://kpzhang93.github.io/MTCNN_face_detection_alignment/

这篇论文在人脸检测与特征点定位任务上,精度较之前的state-of-art的算法有明显的提升,而且具有实时处理的性能。文中主要两点:
(1)通过三阶的级联卷积神经网络对任务进行从粗到细的处理
(2)提出一种新的在线硬生成采样策略可以进一步提升性能,即在一个batch中只选择loss占前70%的样本进行BP。
在线硬生成采样的策略,是指不同于以往离线生成采样的方式,本文的处理方式是在每个mini-batch中选出70%大loss的样本作为硬样本,并且在BP阶段只利用这部分计算梯度。也就是说抛弃了一些对强化分类没有多大作用的简单样本。文中表示,通过实验表明这样做能够进一步提升精度。

其中三阶级联卷积神经网络是最主要的,每个阶段处理三个任务:人脸/非人脸判定、人脸框回归和特征点定位。
人脸/非人脸的判定采用cross-entropy损失函数,人脸框回归和特征点定位采用欧式距离损失函数。
其中a表示三个任务在当前阶段的网络中损失所占比重。B是采样类型指示,取值为{0,1},当人脸/非人脸判定为非人脸时,box和landmark的B取值0,而det取值1;判定为人脸时,全部取值为1。

各阶段详述:
1、数据与处理:为应对目标多尺度问题,将原始图像resize到不同尺寸,构建图像金字塔,作为三阶级联架构的输入。

2、第一阶段:通过一个浅层的CNN快速生成候选窗口。
该阶段是一个全部由卷积层组成的CNN,取名P-Net,获取候选人脸窗口以及人脸框回归向量。基于人脸框回归向量对候选窗口进行校正。之后采用NMS合并高重叠率的候选窗口。
该阶段在三个任务det、box、landmark任务上,a的对应取值为{1.0,0.5,0.5}.该阶段模型图如下图所示:
这里写图片描述

3、第二阶段,通过一个更复杂的CNN否决大量非人脸窗口从而精化人脸窗口。
第一阶段输出的候选窗口作为R-Net的输入,R-Net能够进一步筛除大量错误的候选窗口,再利用人脸框回归向量对候选窗口做校正,并执行NMS(非极大值抑制)。
该阶段在三个任务det、box、landmark任务上,a的对应取值为{1.0,0.5,1.0}。该阶段模型图如下图所示:
这里写图片描述

4、第三阶段,使用更复杂的CNN进一步精化结果并输出5个人脸特征点。
与stage2相似,但这一阶段用更多的监督来识别人脸区域,而且网络能够输出五个人脸特征点位置坐标。
该阶段在三个任务det、box、landmark任务上,a的对应取值为{1.0,0.5,1.0}。该阶段模型图如下图所示:
这里写图片描述

原创粉丝点击