MTCNN(人脸检测)-将多任务级联卷积网络用于脸部检测和对齐

毕设翻译,作者根据自己对MTCNN的浅显理解和翻译,如有误,请指出。paper链接:

https://kpzhang93.github.io/MTCNN_face_detection_alignment/


Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, Senior Member, IEEE, and Yu Qiao, Senior Member, IEEE

摘要:

由于各种各样的姿势,光照和遮挡影响,脸部检测和对齐在无约束环境下非常有挑战。最近的研究表明深度学习的方法在这两个方面能够达到较好的效果。在本文中,我们提出了一个深度级联的多任务框架,利用检测和对其内部的关系去提高效果。特别地,我们的框架利用了一个级联的结构,并精心设计了三个深度卷积网络,由粗到细地去预测脸部和坐标位置。不仅如此,在实践中,我们提出了一种新的在线采集硬样本策略来改善算法的性能。我们的算法比在FDDB和WIDER FACE标准数据集上最先进的人脸检测算法和在AFLW数据集上最先进的人脸对齐算法都达到了更高的精度,而且能够满足实时性。

关键字:人脸检测、人脸对齐、级联卷积神经网络

1.     介绍

脸部检测和对齐对于很多脸部应用是不可或缺的,比如脸部识别和脸部表情分析。然而,大量的脸部视觉变化,比如遮挡,多角度姿势和极端的光照,在实际使用中给人脸检测和对齐带来了很大的挑战。

V和J[2]提出了一种级联的人脸检测器,使用Haar-Like特征和AdaBoost方法训练级联分类器,达到较好的准确度和实时性。然而,一些工作[1,3,4]表明,即使使用更高级的特征和分类器,这种检测器在人们脸部视觉变化的实际使用中效果显著降低。除了级联结构外,[5,6,7]介绍了部分可变性的人脸检测模型(DPM),并且达到了卓越的效果。然而,他们计算量庞大,并且在训练阶段通常需要复杂的标注。最近,卷积神经网络(CNNs)在各种计算机视觉任务上取得了卓越的进展,比如图像分类和脸部识别等。受深度学习方法在计算机视觉任务的显著成功启发,一些研究利用深度CNNs进行人脸检测。杨等人[11]训练用于人脸属性识别的深度卷积网络以获得脸部区域的高响应,进一步产生脸部的候选窗口。然而,由于它的复杂CNN结构,这种方法在实践中耗时较多。李等人[19]使用级联CNNs进行人脸检测,但是它需要从带有额外计算量的人脸检测器进行边界校准,并且它忽略了脸部坐标位置和边界框内在的关系。

   脸部对齐也吸引了广泛的研究兴趣。在这个领域的研究大致分为两类,基于回归的方法和基于模板匹配的方法。张等人[22]提出了一种使用脸部属性识别的辅助方法以增强使用深度卷积网络的人脸对齐性能。

   然而,大多数以前的人脸检测和人脸对齐方法忽视了这两个任务内在的固有关联。虽然一些现有的工作尝试共同解决这些问题,但是这些工作都存在局限性。比如,陈等人[18]利用像素值差分特征,使用随机森林方法进行人脸的检测和对齐。但是这些人工特征很大程度上限制了它的性能。张等人[20]使用多任务的CNN来提高多视角人脸检测的准确度,但是检测召回率受到弱人脸检测器产生的初始检测窗口限制。

   另一方面,在训练过程中挖掘损失较大的样本对于增强检测器能力至关重要。然而,传统的挖掘较大损失样本通常以离线方式进行,这显著增加了人工操作。所以,设计一种自动适用于当前训练状态的在线挖掘损失较大样本的人脸检测方法是可取的。

   在本文中,我们提出了一种新的框架,通过多任务学习,使用统一的级联CNNs来整合这两个任务。我们提出的CNNs由三个阶段组成。在第一阶段,它通过浅层的CNN快速产生候选窗口。然后,通过一个更复杂的CNN拒绝大量的非人脸窗口来提炼窗口。最后,它用了一个更加强大的CNN再次提炼结果,然后输出人脸的五个坐标位置。由于这个多任务学习框架,算法的性能显著提升。代码已经在项目页面发布。本文的主要贡献可以总结如下:(1)我们提出了一种新的级联CNNs框架,用于联合脸部检测和对齐,并且仔细设计了实时性能的轻量级CNN结构。(2)我们提出一种有效的方法进行在线挖掘损失较大样本以提高性能。(3)在人脸检测和人脸对齐任务上与最新的技术方法比较,为展现我们提出的方法的效果显著提升,我们在具有挑战性的基准库上做了大量的实验。

2.     方法

在本节中,我们将会描述我们的联合人脸检测和人脸对齐的方法。

A. 整体框架


整体算法流程如图1所示。给定一幅图像,我们首先调整它到不同大小以建立图像金字塔,输入到以下的三个阶段级联框架:

阶段1:我们利用一个全连接的卷积网络,称为提议网络(P-Net),来获取候选脸部窗口和边界坐标回归向量。然后,基于估计的边界框回归向量进行候选窗口的校准。之后,我们使用了非最大抑制(NMS)进行合并重叠的候选窗口。

阶段2:所有的候选窗口被传到另一个称为提炼网络(R-Net)的CNN结构,此结构进一步拒绝大量的错误候选窗口,进行边界回归校准,并进行NMS抑制。

阶段3:这一阶段和第二阶段类似。但是在这一阶段,我们用更多的监督去识别脸部区域。特别的,这个网络将会输出五个脸部标志位置。

B.CNN结构

  在[19],设计了多个CNNs来检测脸部。然而,我们注意到它的性能可能被一下现实因素限制:(1)一些卷积层的卷积核缺少多样性,可能限制了它们的识别能力。(2)与其他多类目标检测相比,脸部检测是一个非常具有挑战性的二值类别任务,所以它每一层需要少量的卷积核。为此,我们减少了核的数量并且将5x5的卷积核换成3x3的卷积核以减少计算量,同时增加网络深度以取得更好的效果。有了这些改进,和先前的结构相比,我们用更少的时间取得了更好的效果(训练阶段的结果如表1所示。为了公平比较,我们在每个组中使用了相同的训练集和验证集)。我们的CNN结构如图2所示。我们使用PReLU[30]作为非线性激活函数,并应用在卷积层和全连接层之后(除了输出层)。

C. 训练

我们利用三个任务来训练我们的CNN检测器:是否为脸部分类,边界框回归和脸部标志定位。


4.结论

在本文中,我们提出了一种基于CNNs的多任务级联框架,用来联合人脸检测和对齐。实验结果表明,我们的方法在这些具有挑战性的基准上(包括用于脸部检测的FDDB和WIDER FACE基准,和用于脸部对齐的AFLW基准)全部胜过最先进的方法。并且在640x480 VGA图像上达到了较好的实时性,其中人脸尺寸最小为20x20。对于性能的改进,三个主要贡献是:精心设计的级联CNNs结构,在线挖掘损失较大样本,以及联合脸部对齐学习。


发布了4 篇原创文章 · 获赞 8 · 访问量 7746

猜你喜欢

转载自blog.csdn.net/qq_32747775/article/details/80205290
今日推荐