您的位置:首页 > 其它

MTCNN论文翻译

2019-04-19 15:28 141 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_42816136/article/details/89401212

最近尝试使用Tensorflow实现MTCNN人脸检测与拓展,这里是自己翻译的论文

*转载注明出处即可 *

Joint Face Detection And Alignment Using Multi-Task Cascaded Convolutional Networks

摘要:
由于各种姿势,照明条件和遮挡情况,在无约束环境下的人脸检测与人脸对齐仍十分具有挑战性。
最近的研究表明,深度学习方法可以在这两项任务上取得令人瞩目的表现。在本文中,我们提出了一个深度级联的多任务网络,他利用了检测和对齐之间的内在联系来提高他们的性能。特别的,我们的网络通过一个精心设计的三级级联深度卷积网络,由粗略到精细的方式预测面部位置和面部关键点坐标。此外,我们提出了一个新的,可用于进一步提升实践中性能的在线困难样本挖掘策略。我们的方法在以FDDB与WIDER FACE为基准的人脸检测与以AFLW为基准的人脸对齐表现上超过了目前的最先进技术,并且同时保持了实时检测的性能。
索引术语:人脸检测,人脸对齐,级联卷积神经网络。

简介:
对于许多人脸应用例如人脸识别和人脸表情分析,人脸检测和人脸对齐技术是必不可少的。然而,面部的巨大视觉变化,例如遮挡、大的姿态变化和极端光照条件给它们(人脸检测、对齐)在现实世界的应用造成了很大的挑战。由Viola和Jones[2]提出的,利用Haar特征和AdaBoost训练的级联人脸检测器,在实时检测上达到了很好的效果。然而,许多工作表明[1,3,4],即使使用更先进的特征和分类器,这种分类器在现实应用中的效果可能会显著降低。除了cas-cade结构,[5,6,7]引入了可变部分模型(DPM)用于人脸检测的检测器虽然达到了卓越的性能表现,但是它们却需要耗费昂贵的计算资源,并且通常在训练阶段需求极大的标注。近来,卷积神经网络(CNNs)在各种计算机视觉任务中达到了显著的进展,例如图像分类[9]和人脸识别[10]。受到深度学习方法在计算机视觉任务中取得的重大成功的启发,一些研究利用深度卷积网络用于面部检测。Yang et al.[11]在面部特征的识别方面,训练了能生成更多候选框的深度卷积网络的思想受到了高度的关注。然而,由于其复杂的卷积结构,这种方法在实践中十分耗时。Li et al.[19]使用级联CNN网络应用于人脸检测,但是它在人脸检测时需要耗费额外的计算济源用于Bound box的校准,并且忽略了人脸关键点定位和bounding box回归之间的固有联系。

人脸对齐同时也引起了广泛的研究兴趣。这个领域的研究大致可以分为两类,基于回归的方法[12,13,16]与基于模型拟合的方法[14,15,7]。进来,Zhang et al.[22]提出了将面部特征识别作为辅助任务,使用深度卷积神经网络来达到增强人脸对齐性能的方法。

然而,大多数先进的人脸检测和人脸对齐方法忽略了这两个任务的内在联系。尽管现有的几项工作试图同时解决这两个任务,但是这些工作仍然具有局限性。例如,Chen et al.[18]基于像素值差异,利用随机森林特征试图同时解决这两个任务。但是,这些手工计算的特征十分的限制了它的性能。Zhang et al[20]使用多任务CNN以提高多视图人脸检测的准确率,但是检测的召回率受到了因为较弱的人脸检测器而造成的初始检测窗口的限制。

另一方面,在训练过程中挖掘困难样本对于检测器的性能至关重要。 然而,传统的困难样本挖掘方式通常以离线的方式进行,这显著的增加了手工操作。设计一种能自动适应当前训练状态的在线困难样本挖掘方式对于人脸检测是十分迫切的。

在这篇论文中,我们提出了一种新的模型,通过多任务学习的统一的级联CNN网络来整合这两类工作。提出的CNN网络包括三个部分。在第一部分,他通过一个浅层的CNN网络来快速生成检测窗口。之后,它通过一个更复杂的CNN网络来拒绝大量非面部窗口以达到细化候选窗口的目的。最后,使用一个更强大的CNN网络来再次细化结果并输出5个人脸关键点的位置。由于这个学习框架,使得算法的性能能得到显著的提高。框架的代码已经在项目页面1发布。这篇论文的主要贡献概括如下:(1)我们提出了一个基于整合了人脸检测与对齐的级联CNN网络,并仔细的设计了它的轻量级网络结构来达到实时检测的表现。(2)我们提出了一个有效的进行在线困难样本挖掘的方法以提高性能。(3)在具有挑战性的数据集测试中我们进行了广泛的实验,结果表明,我们所提出的方法在人脸检测和对齐任务上同时超过了目前的最先进方法的性能。

实现:
在本节中,我们将描述我们对于如何同时整合这两个任务的方法。

A.总体架构
我们的总体流程在图一中给出。给定一张图片输入,我们最初将其缩放不同的比例来形成一个图像金字塔,
这是以下三个级联网络部分的输入:
Stage 1:
我们利用一个称之为Proposal Network(P-Net)的全卷积网络来获得人脸的候选窗口
以及他们的Bounding Box回归向量。之后通过估计的Bounding Box回归向量校准候选
窗口。之后,我们采用了NMS来合并高度重合的候选框。
Stage 2:
所有的候选框被当做另一个被称之为Refine Network(R-Net)的输入,它进一步拒绝了
大量错误的候选框,之后通过候选框的Bounding Box回归进行校准,之后执行NMS。
Stage 3:
这部分和前两部分类似,但是这个部分我们的目标是识别出更多标注的人脸区域。特别
的,这个网络会输出五个面部特征点的位置。

B.CNN结构
在[19]中,有多个CNN被设计于用于人脸检测。但是,我们注意到它的表现可能会收到以下事实的限制:
(1)在卷积层中的一些卷积核缺乏差异性可能会限制它们的特征辨别能力。(2)对比其他的多类目标检测和分类
任务相比,人脸检测是一个具有挑战性的二分类任务,因此它每层可能需要更少数量的卷积核。为此,我们
减少了卷积核的数量并更换成5 * 5与3 * 3的卷积核来减少计算,同时增加了深度来得到更好的性能。通过
这些改进,对比在[19]中的早先的其他结构,我们在减少运行时间的同时达到更好的性能表现(训练阶段的
结构显示在表1中。对了公平比较,我们在每组中使用了同样的训练和验证数据。)我们的CNN结构如图2所示。
我们在每个卷积层和全连接层后使用了PReLU[30]作为非线性激活函数(输出层除外)

C.训练
我们利用三个任务来训练我们的CNN检测器:人脸/非人脸分类,Bounding Box回归,以及面部特征点定位。
1)人脸分类:学习目标被指定为一个二分类问题,对于每个样本,我们使用交叉熵损失:
**********************
其中pi是网络生成的表示样本x为一张人脸的概率,yi-det-{0,1}为真实标注。
2)Bounding Box回归:对每个候选框,我们预测它和最近的ground truth的偏移坐标(即box的left,top,
height,width)。学习目标被指定为回归问题,我们对每个样本使用了欧几里得距离损失。
#此处是原文参数说明
3)特征点识别:类似于边框回归任务,特征点定位被指定为回归问题并且使用欧几里得损失。
#此处是原文参数说明
4)多任务训练:由于我们在每个CNN中使用不同的任务,因此在学习过程中存在不同类型的训练图片,例如
人脸/非人脸以及部分人脸。在这种情况下,一些损失函数将不使用。例如,对于所有背景区域样本,我们
只计算Li-det,并且另外两个损失被置0.这可以直接通过样本指示符实现。整体学习目标可表示为:
#此处是原文参数说明
5)在线困难样本挖掘:与在原始分类器被训练后进行传统的困难样本挖掘不同,我们在人脸/非人脸分类过程中
进行在线困难样本挖掘,使其自适应训练过程。

特别的,在每个mini-batch中,我们对来自所有样本的前向传播损失进行排序并只选择其中70%作为困难
样本。之后在反向传播中我们只计算这些困难样本的梯度更新。这意味着我们忽略了在训练期间不太有助于
增强分类器性能的简单样本。实验表明,这个策略无需手动选择样本即可获得更好的性能表现。其有效性在
第III节中证明。

实验:
在本节中,我们首先评估了在线困难样本挖掘策略的有效性。然后我们将我们的人脸检测与对齐算法在FDDB[25],与WIDER FACE[24]与人脸面部标注数据集AFLW[8]上与当前最先进技术进行了比较。FDDB数据集包含了在2845张图片下的5171张人脸标注,WIDER FACE数据集由32,203张图片中的393,703个Bounding Box组成(其中50%用于测试,40%用于验证,剩余用于验证)。AFLW数据集包括了24,386张人脸关键点标注,我们使用了与[22]相同的测试子集,最后我们评估了我们检测的计算效率。

A.训练数据:
由于我们联合进行了人脸检测和对齐,在训练过程中我们使用四个不同类别的数据标注:(i)负样本:与任何
Ground Truth的IoU低于0.3的区域。(ii)正样本:IoU高于0.65的真实面孔。(iii)部分样本:IoU在0.4与
0.65之间的脸。以及(iv)关键点人脸:带有5个关键点位置的面孔。负样本与部分样本之间存在不明确的差距,
因此,我们决定选择IoU豁口在0.3和0.4之间的负样本(应该意思是0.3以下,将0.3到0.4区间断开)与正样本
用于人脸分类任务,正样本和部分样本用于边框回归,以及关键点人脸用于关键点定位。全部训练数据
3:1:1:2(Neg,Pos,Part,Landmark)组成。每个网络的训练数据集合按照以下描述:
1)P-Net:
我们从WIDER FACE[24]中随机裁剪了几个窗口来收集正、负、部分脸样本。之后,我们
从CelabA[23]中截取面部作为关键点样本。
2)R-Net:
我们使用框架第一部分检测来自WIDER FACE[24]的人脸来收集pos,neg,part样本,同
时检测来自CelebA[23]的关键点样本。
3)O-Net:
与R-Net的数据收集类似,但是我们这次使用框架的前两个部分来检测脸部和收集数据。

B.在线困难样本挖掘:
为了评估所提出的在线困难样本挖掘策略的贡献,我们训练了两个P-Net(使用与不使用这个策略)并且比较了
他们在FDDB上的表现。图3(a)显示了这两个网络在FDDB上的不同表现结果。显然,使用在线困难样本挖掘策略
有助于提高性能。这可以带来大约1.5%在FDDB上的总体性能提升。

C.联合人脸检测和对齐的有效性:
为了评估联合人脸检测与对齐的贡献,我们评估了两个不同的O-Net网络,P,R网络均相同(联合两个任务与不
联合)在FDDB上的性能。我们还比较了这两个网络对于边框回归的性能。图3(b)显示了联合两个任务有助于
提高人脸分类和边框回归任务的性能。

D.人脸检测的评估:
为了评估我们的人脸检测方法的性能,我们对比了我们与当前最好的方法[1,5,6,11,18,19,26,27,28,29]在
FDDB以及当前最好方法[1,24,11]在WIDER FACE上的表现。图4(a)-(d)显示了我们的方法在两个基准测试中
都取得了更优秀的表现。

E.人脸对齐的评估:
在这一部分中,我们比较了我们的方法与如下方法在人脸对齐上的表现:RCPR[12],TSPM[7],Luxand face
SDK[17],ESR[13],CDM[15],SDM[21],以及TCDCN[22]。平均误差通过评估坐标与真实坐标之间的距离来
测量,并相对于两眼间的距离做了归一化。图5显示我们的方法领先于所有最先进的方法。它还表明我们的
方法在口角定位以表现出较低的优势。这可能是由于我们在我们的训练数据中的细小变化在嘴角位置有着显
著的影响。

F.运行时间的评估:
由于级联结构,我们的方法可以在人脸检测和对齐上实现告诉检测。我们在GPU上对比了我们的方法与最
先进技术的差别,结果显示在表II中。值得注意的是,我们的实现是基于未优化的MATLAB代码。

结论:
在本文中,我们提出了一种基于多任务级联的CNN架构,用于结合人脸检测和人脸对齐。实验结果表面,我们
的方法在几个具有挑战性基准的测试中始终优于最先进方法(包括用于人脸检测的FDDB和WIDER FACE,以及
人脸对齐的AFLW),同时实现640*840,最小人脸尺寸20 * 20的VGA图像实时检测。性能改进的主要贡献来自
精心设计的级联CNN架构,在线困难样本挖掘和联合了人脸检测与对齐。

引用:

blablabala......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: