《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》论文解读

《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》简称MTCNN,是一种基于多任务级联卷积神经网络的人脸检测和对齐方法,通过三阶的级联卷积神经网络对任务进行从粗到细的处理。每个阶段的网络都是一个多任务网络。处理任务有三个:人脸/非人脸判定、人脸框回归和特征点定位。
本文总体架构示意图如下图所示:

人脸/非人脸判定采用cross-entropy损失函数:

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

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

其中a表示三个任务在当前阶段的网络中损失所占比重。B是采样类型指示,取值为{0,1},当人脸/非人脸判定为非人脸时,box和landmark的B取值0,而det取值1;判定为人脸时,全部取值为1。

为应对目标多尺度问题,MTCNN将原始图像resize到不同尺寸,构建图像金字塔,作为三阶级联架构的输入。

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

**第二阶段,**通过一个更复杂的CNN否决大量非人脸窗口从而精化人脸窗口。
第一阶段输出的候选窗口作为R-Net的输入,R-Net能够进一步筛除大量错误的候选窗口,再利用人脸框回归向量对候选窗口做校正,并执行NMS。
该阶段在三个任务det、box、landmark任务上,a的对应取值为{1.0,0.5,1.0}.

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

在论文Cascade CNN中,已经设计了多个用于面部检测的CNN。但是,我们注意到它的性能可能受到以下限制:
(1)卷积层中的某些卷积核缺乏可能限制其辨别能力的多样性。
(2)与其它检测任务相比,人脸检测是一项二分类任务,因此每层可能需要的滤波器数量较少。
为此,本文减少滤波器的数量并将5×5的卷积核更改为3×3以减少计算,同时增加深度以获得更好的性能。通过这些改进,可以在更少的运行时间内获得更好的性能。为了公平比较,在每个组中使用相同的训练和验证数据,将PReLU作为卷积层和全连接层(输出层除外)之后的非线性激活函数。

关于另外一个在线困难样本生成的策略,是指不同于以往离线生成采样的方式,本文的处理方式是在每个mini-batch中选出70%大loss的样本作为困难样本,并且在BP阶段只利用这部分计算梯度。也就是说抛弃了一些对强化分类没有多大作用的简单样本。文中表示,通过实验表明这样做能够进一步提升精度。