Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks(MTCNN,多任务级联卷积网络)

从网络名称看就是联合人脸检测和对齐的多任务级联卷积网络。
论文地址:https://arxiv.org/ftp/arxiv/papers/1604/1604.02878.pdf

摘要

由于各种姿态、光照和遮挡,无约束场景下的人脸检测和对齐是一项具有挑战性的任务。近来的研究表明在这两项任务上可以达到很好的效果。在这篇论文中,我们提出一种深度级联多任务框架,这个框架利用这两个任务的内在关联提升它们的性能。我们的框架使用三级精心设计的深度卷积网络做级联从粗略到精细地预测 人脸和特征点的位置。另外,在学习过程中,我们提出了一种新的、无需人工采样的、可以自动提升性能的难例挖掘方式。我们的方法在FDDB和WIDER FACE benchmark人脸检测和AFLW benchmark人脸对齐挑战的stat of the art技术中达到了出众的准确率,同时保持实时性能。

关键词——人脸检测, 人俩对齐, 级联卷积神经网络

一、介绍

人脸检测和对齐在很多人脸应用中都是必不可少的,比如人脸识别和面部表情分析。然而,大幅的人脸视觉变化,比如遮挡、大姿态变化和强光给现实应用中的这些任务带来了巨大的挑战。
级联人脸检测器由Viola and Jones [2]提出,使用Haar-Like特征和AdaBoost去训练级联分类器,达到了不错的实时性能。然而 ,大量的工作[1, 3, 4]表明,在有着大幅人脸视觉变化的实际应用中,即使有更好的特征和分类器,检测器也会明显地退化。除了级联结构, [5, 6, 7] 引入了可变组件模型(deformable part models,DMP)用于人脸检测,取得了非常好的性能。然而,它在训练阶段需要高昂的计算开销和昂贵的标注。近来,卷积神经网络在各种计算机视觉任务中取得了很好的进展,比如图像分类[9]和人脸识别[10]。近年来,受到CNN在计算机视觉任务的良好性能启发,已经有一些基于CNN的人脸检测方法被提出来。Yang et al. [11]训练深度卷积神经网络进行面部属性识别,以获得面部区域的高响应,进一步产生面部候选窗口。然而,由于它复杂的CNN结构,这个方法的实践中非常耗时。 Li et al. [19] 使用级联CNN做人脸检测,但是它需要通过面部检测走边界框校正,带来额外的计算开销并且忽略了面部特征点定位和边界框回归的内在联系。
人脸对齐也吸引了很多人的兴趣。基于回归的方法[12, 13, 16]和模板拟合方法[14, 15, 7]是两种流行的方法。近来,Zhang et al. [22]提出使用面部属性识别作为辅助任务去增强深度卷积神经网络的人脸对齐性能。
另一方面,在训练过程中为了增强检测器性能所做的难例挖掘是苛刻的。然而,传统的难例挖掘通常是离线方式,带来了大量的人工操作。希望去设计一个在线难例挖掘方法用于面部检测和对齐,自动适应当前的训练过程。
在这篇论文中,我们提出了一个新的框架,使用多任务级联CNN去集成这两个任务。提出的CNN结构包含三个阶段。在第一阶段,通过浅层CNN快速生成候选窗口。然后(第二阶段),使用一个更复杂的CNN去掉大量的无人脸窗口来筛选窗口。最后(第三阶段),使用更强力的CNN去优化结果并输出面部特征点。受益于多任务学习框架,算法的性能可以得到显著提升。总结论文的主要贡献如下:(1)我们提出了基于级联CNN的框架去联合人脸检测和识别并且精心设计轻量级的CNN架构满足实时性能。(2)我们提出了有效的用于改善性能的难例挖掘方法。(3)为了证明我们提出的方法相对于人脸检测和对齐任务的stat-of-the-art技术的显著性能提升,在challenging benchmarks做了大量实验。

二、方法

在这部分,我们会描述我们的联合人脸检测和对齐方法。

A、整体框架

我们方法的整体流程如Fig. 1所示

Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks(MTCNN,多任务级联卷积网络)_第1张图片
Fig.1

给定一张图片,我们首先把它resize到不同的尺寸去构造图像金字塔,它是后面三阶段级联框架的输入。
阶段1:我们使用一个全卷积网络,叫做提议网络(Proposal Network, P-Net),使用和[29]相似的方式去获取候选窗口和边界框回归向量。然后我们使用估计的边界框回归向量去校准候选框。然后,我们使用非极大值抑制(NMS)去合并高度重合的候选框。
阶段2:所有的候选框都被送入另一个CNN,叫做调整网络(Refine Network, R-Net),它会进一步去掉大量的错误候选框,使用边界框回归做筛选,非极大值抑制做合并。
阶段3:这个阶段和第2阶段相似,但是这个阶段我们的目的是更细致地描述面部。这个网络会输出5个面部特征点。

B、CNN结构

在[19]中,多个CNN被设计用于面部检测。然而,我们注意到它的性能可能会受限于下面的因素:(1)一些过滤器缺乏权重多样性会限制它们生成差异性描述。(2)与其他多类目标检测和分类任务相比,面部检测是一个有挑战性的二分类任务,所以它们可能需要更少但是更具差异的卷积核。为此,我们减少卷积核并且将5x5的卷积核换成3x3去减少计算,同时增加深度去获得更好的性能。有了这些改善,和[19]中的结构相比,我们能用更少的运行时间获取更好的性能(结果展示在Table 1。为了公平对比,我们给两种方法使用了同样的数据集)。我们的CNN结构展示在 Fig.2。


Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks(MTCNN,多任务级联卷积网络)_第2张图片
Table 1

Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks(MTCNN,多任务级联卷积网络)_第3张图片
Fig.2
C、训练

你可能感兴趣的:(Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks(MTCNN,多任务级联卷积网络))