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

论文连接

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

基于多任务级联卷积网络的联合人脸检测与校准

摘要:由于各种各样的姿势、光照和遮挡情况,无约束条件下的人脸检测和校准具有挑战性。最近的研究表明,深度学习方法在这两个任务上可以达到很好的性能。在本篇文章,我们提出了一个深度级联多任务架构,利用它们内部的关联来提升它们的性能。尤其是,我们的架构采用了一个具有三阶精心设计的深度卷积网络的级联结构,使用由粗到细的方式来预测人脸和特征位置。另外,在学习过程中,我们提出了一种新的在线困难样本挖掘策略,可以在没有人工样本选择的情况下自动提高性能。我们的方法在具有挑战性的FDDB和WIDER FACE人脸检测基准上、AFLW人脸校准基准上都达到了比最先进技术更高的准确度,同时保持实时性能。

1.介绍

人脸检测和校准对于许多人脸应用是至关重要的,例如人脸识别和面部表情分析。然而,人脸的巨大视觉变化,例如遮蔽、巨大姿势变化和极端光照,给现实应用中的这些任务增加了很多挑战。

由Viola和Jones[2]提出的级联人脸检测器利用类Haar特征和AdaBoost来训练级联分类器,达到了很好的性能并具有实时效率。然而,不少工作[1,3,4]指出,这个检测器在具有更巨大的人脸视觉变化的现实应用中可能会显著退化,即使使用了更先进的特征和分类器。除了级联结构外,[5,6,7]引进DPM用于人脸检测,达到卓越的性能。然而,他们需要高计算开销,并且在训练阶段可能经常需要昂贵的注释。最近,卷积神经网络(CNNs)在各种计算机视觉任务中取得了卓越的进展,例如图像分类[9]和人脸识别[10]。受到CNNs在计算机视觉任务中的良好性能的启发,近几年,一些基于CNNs的人脸检测方法被提出。Yang等人[11]训练深度卷积神经网络用于面部属性识别,来获得人脸区域的高响应,加速生成人脸的候选窗口。然而,由于它的复杂CNN结构,实际上这种方法非常耗时。Li等人[19]使用级联CNNs用于人脸检测,但是它需要使用额外的计算开销来对人脸检测中的边界框进行校准,并忽略了面部特征定位和边界框回归的内部关联。
人脸校准也吸引了广泛的兴趣。

基于回归的方法[12,13,16]和模板拟合方法[14,15,7]是两种流行的种类。最近,Zhang等人[22]提出使用卷积神经网络将面部属性识别作为一个辅助工作来加强人脸校准性能。

然而,大多数可获得的人脸检测和人脸校准方法忽略了这两种工作的内部关联。虽然存在一些工作试图去联合解决他们,但是这些工作仍然具有很多限制。例如,Chen等人[18]利用随机森林,使用像素值差的特征,联合实施校准和检测。但是,他们使用的手工特征限制了性能。Zhang等人[20]使用多任务CNN来提高多视角人脸检测的准确度,但是检测准确度受限于通多弱人脸检测器生成的初始检测窗口。

另一方面,在训练过程,挖掘训练中的困难样本对于提高检测器的性能是至关重要的。然而,传统的困难样本挖掘经常是离线方式执行,这显著增加了人工操作。有必要设计一个在线困难样本挖掘方法用于人脸检测和校准,可自动适应于当前的训练过程。

在本篇文章中,我们提出了一个新的框架,通过多任务训练,使用统一的级联CNNs来整合这两个任务。我们提出的CNNs由三个阶段组成。在第一个阶段,它通过一个浅的CNN快速生成候选窗口。然后,它通过一个更复杂的CNN来提纯窗口以拒绝大量的无人脸窗口。最后,它使用一个更强大的CNN来提纯结果,输出面部特征位置。由于这个多任务学习架构,算法的性能可以被显著提高。这篇论文的主要贡献被总结如下:(1)我们提出了一个新的基于级联CNNs的架构来整合人脸检测和校准,为实时性能精心设计了轻量CNN架构。(2)我们提出了一个有效的方法来进行在线困难样本挖掘来改善性能。(3)我们在具有挑战性的基准上进行了广泛的实验,来展示我们提出的方法相比于人脸检测和人脸校准两种任务的最先进技术的显著性能提升。

2.方法

这这一部分,我们将描述我们整合人脸检测和校准的方法。

A.总体架构

我们方法的整体流程展示在图1。获得一张图片,我们首先调整它的大小至不同的尺度来构建一个图片金字塔,这个图片金字塔是下面三阶级联架构的输入:
在这里插入图片描述

阶段1:我们利用一个全卷积网络,名为P-Net,使用类似于[29]的方式来获得候选窗口和他们的边界框回归向量。然后我们使用估计的边界框回归向量来校准候选窗口。在这之后,我们使用NMS来合并高度重合的候选窗口。

阶段2: 将所有的候选窗口输入到另一个CNN,名为R-Net,使用边界框回归进行校准,执行NMS候选窗口合并,进一步拒绝大量错误的候选窗口。

阶段3:此阶段和第二阶段相似,但是在此阶段我们的目标是更详细地描述人脸。特别地,这个网络将输出五个面部特征位置。

B.CNN架构

在[19],多重CNNs已经被设计用来人脸检测。然而,我们注意到它地性能可能受限于如下事实:(1)一些过滤器缺乏权重地多样性,这可能限制他们来产生具有识别力地描述。(2)相比于其他的多类目标检测和分类任务,人脸检测是一个具有挑战性的二元分类任务,所以它可能需要很少数目但是识别力很高的过滤器。为了这个目的,我们减少了过滤器的数目,将5X5过滤器更改为3X3过滤器来减少计算,同时增加了深度来获得更好的性能。使用这些改进,相比于[19]种之前的架构,我们可以在更少的运行时间内获得更好的性能。(结果展示在表1。为了公平比较,对于两种方法我们使用相同的数据。)我们的CNN架构展示在图2中。
在这里插入图片描述
在这里插入图片描述

C.训练

我们利用三个任务来训练我们的CNN检测器:有脸/无脸分类、边界框回归和面部特征定位。

1)人脸分类:学习目标被用公式表示为一个二类分类问题。对于每一个样本 x i x_i xi,我们使用交叉熵损失:
L i det = − ( y i det log ⁡ ( p i ) + ( 1 − y i det ) ( 1 − log ⁡ ( p i ) ) ) ( 1 ) L_{i}^{\text {det}}=-\left(y_{i}^{\text {det}} \log \left(p_{i}\right)+\left(1-y_{i}^{\text {det}}\right)\left(1-\log \left(p_{i}\right)\right)\right) (1) Lidet=(yidetlog(pi)+(1yidet)(1log(pi)))(1)其中 p i p_i pi是网络生成的指明样本是人脸的概率。符号 y i det ∈ { 0 , 1 } y_{i}^{\text {det}} \in\{0,1\} yidet{0,1}表示真实标记。

2)边界框回归:对于每一个候选窗口,我们预测它和最接近的真实值(即边界框的左上角、高和宽)之间的偏差。学习目标被用公式表达为一个回归问题,对于每一个样本呢 x i x_i xi我们使用欧几里得损失:
L i box = ∥ y ^ i box − y i box ∥ 2 2 ( 2 ) L_{i}^{\text {box}}=\left\|\hat{y}_{i}^{\text {box}}-y_{i}^{\text {box}}\right\|_{2}^{2}(2) Libox=y^iboxyibox22(2)其中 y ^ i b o x \hat{y}_{i}^{b o x} y^ibox回归目标从网络中获得, y i b o x y_{i}^{b o x} yibox是真实坐标。这里有四个坐标值,包括左上角坐标、高度和宽度,因此 y i b o x ∈ R 4 y_{i}^{b o x} \in \mathbb{R}^{4} yiboxR4

3)面部特征定位:相似于边界框回归任务,面部特征检测被用公式表示成一个回归问题,我们最小化欧几里得损失:
L i landmark = ∥ y ^ i landmark − y i landmark ∥ 2 2 ( 3 ) L_{i}^{\text {landmark}}=\left\|\hat{y}_{i}^{\text {landmark}}-y_{i}^{\text {landmark}}\right\|_{2}^{2}(3) Lilandmark=y^ilandmarkyilandmark22(3)其中 y ^ i landmark \hat{y}_{i}^{\text {landmark}} y^ilandmark是从网络获得的面部特征坐标, y i landmark y_{i}^{\text {landmark}} yilandmark是真实坐标。这里有五个面部特征,包括左眼、右眼、鼻子、左嘴角和右嘴角,因此 y i landmark ∈ R 10 y_{i}^{\text {landmark}} \in \mathbb{R}^{10} yilandmarkR10

4)多源训练:因为我们在每一个CNNs使用了不同的任务,所以在学习过程中存在着不同类型的训练图片,例如人脸、无脸和部分校准的人脸。在这种情况下,一些损失函数(即公式(1)-(3))没有被使用。例如,对于背景区域的样本,我们仅仅计算 L i d e t L_i^{det} Lidet,其他两个损失被设置为零。这可以通过一个样本类型指示直接实现。所以,总体的学习目标可以用公式表示为:
min ⁡ ∑ i = 1 N ∑ j ∈ { det , box , landmark } α j β i j L i j ( 4 ) \min \sum_{i=1}^{N} \sum_{j \in\{\text {det}, \text {box}, \text {landmark}\}} \alpha_{j} \beta_{i}^{j} L_{i}^{j}(4) mini=1Nj{det,box,landmark}αjβijLij(4)其中, N N N是训练样本的数目。 α j \alpha_j αj表示任务的重要性。我们在P-Net和R-Net中使用( α d e t = 1 , α b o x = 0.5 , α l a n d m a r k = 0.5 \alpha_{det}=1,\alpha_{box}=0.5,\alpha_{landmark}=0.5 αdet=1,αbox=0.5,αlandmark=0.5),然而在O-Net中使用( α d e t = 1 , α b o x = 0.5 , α l a n d m a r k = 1 \alpha_{det}=1,\alpha_{box}=0.5,\alpha_{landmark}=1 αdet=1,αbox=0.5,αlandmark=1)为了更准确的面部特征定位。 β i j ∈ { 0 , 1 } \beta_{i}^{j} \in\{0,1\} βij{0,1}是样本类型指示符。在这种情况下,我们很自然地使用随机梯度下降来训练CNNs。

5)在线困难样本挖掘:不同于在原来的分类器已经被训练之后执行传统的困难样本挖掘,我们在人脸分类任务中在线进行困难样本挖掘来适应于训练过程。

尤其,在每一个小批量,我们对在前向传播阶段由所有样本计算的损失进行分类,选取最大的70%作为困难样本。然后我们在反向传播过程中仅计算来自于困难样本的梯度。这意味着我们在训练时忽略了对增强检测器帮助很小的简单样本。实验表明,这个策略在不需要人工样本选择的情况下产生了更好的性能。它的作用在第三部分被证明。

3.实验

在这一章节,我们首先评估了提出的困难样本挖掘策略的效力。然后我们在FDDB[25]、WIDER FACE[24]和AFLW基准[8]上比较了我们的人脸检测和校准方法与最先进方法。FDDB数据集包含了一组2845张图片中的5171个人脸的注释。WIDER FACE数据集包含了32203张图片中393703个已标注的人脸边界框,其中50%根据用于测试,根据难度分成三个子集,40%用于训练,剩下的用于验证。AFLW包含了24386张人脸的面部特征注释,我们使用和[22]相同的测试子集。最后,我们估计人脸检测器的计算效率。

A.训练数据

因为我们联合执行人脸检测和校准,所以这里我们在训练过程中使用四种不同的数据注释:(i)负样本:相对于任何真实人脸的IoU低于0.3的区域;(ii)正样本:相对于一个真实人脸的IoU大于0.65;(iii)部分人脸相对于一个真实人脸的IoU在0.4和0.65之间;(iv)特征脸:标记5个特征位置的人脸。负样本和正样本在人脸分类任务中使用,正样本和部分人脸在边界框回归中使用,特征人脸在面部特征定位中使用。每个网络的训练数据被描述如下:

1)P-Net:我们从WIDER FACE[24]中随机裁切一些碎片,来收集正样本、负样本和部分人脸。然后,我们从CelebA[23]中裁切一些人脸作为特征脸。

2)R-Net:我们使用我们的架构的第一阶段从WIDER FACE[24]检测人脸来收集正样本、负样本和部分人脸,而特征脸从CelebA[23]中检测。

3)O-Net:相似于R-Net来收集数据,但是我们使用架构的前两阶段来检测人脸。

B.在线困难样本挖掘的效力

为了估计我们提出的在线困难样本挖掘策略,我们训练了连个O-Nets(使用和不使用在线困难样本挖掘),比较他们的损失曲线。为了直接做出比较,我们仅仅训练O-Net用于人脸分类任务。两个O-Net的所有的训练参数包括网络的初始化是相同的。为了更简单地比较它们,我们使用了固定学习率。图三(a)展示了两种不同训练方法的损失曲线。非常明显,困难样本挖掘有利于性能提升。
在这里插入图片描述

C.联合检测和校准的作用

为了评估联合检测和校准的贡献,我们在FDDB(使用相同的P-Net和R-Net)评估了两种不同O-Net的性能(联合检测和校准与没有联合)。我们也比较了这两个O-Net的边界框回归的性能。图三(b)表明,联合特征定位任务学习有利于人脸分类和边界框回归任务。

D.人脸检测评估

为了评估我们的人来鸟检测方法的性能,我们在FDDB上将我们的方法和最先进技术[1,5,6,11,18,19,26,27,28,29]比较,在WIDER FACE上与最先进技术[1,24,11]比较。图四(a)-(d)展示了我们的方法在两种基准上比之前的所有方法都表现出了很大的优势。我们也在一些挑战图片上评估了我们的方法。
在这里插入图片描述

E.人脸校准评估

在这部分,我们将我们方法的人脸校准性能与如下方法进行比较:RCPR[12]、TSPM[7]、Luxand face SDK[17]、ESR[13]
CDM[15]、SDM[21]和TCDCN[22]。在测试阶段,有13张图片我们的方法检测不到人脸。所以我们裁切这13张图片的特定区域作为O-Net的输入。误差均值是由估计的特征和真实值之间的距离来度量的,并根据眼间距进行归一化。图四©展示了我们的方法在一定程度上优于所有的最先进技术。

F.运行时效率

基于级联结构,该方法可以实现快速的联合人脸检测和对准。在2.60GHz的CPU上16fps,在GPU(Nvidia Titan Black)上99fps。我们的实现目前时基于未优化的MATLAB代码。

4.总结

在本论文中,我们已经提出一个基于多任务级联CNNs的架构用于整合人脸检测和校准。实验结果证明了,我们的方法在一些具有挑战性的基准(包括用于人脸检测的FDDB、WIDER FACE和用于人脸校准的AFLW)上比最先进技术的性能都要好,并且保持实时性能。在未来,我们将利用人脸检测和其他人脸分析任务的内在关联来进一步提升性能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值