天天看点

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

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

原文链接:https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf

 摘要

    由于各种姿态、光照和遮挡,在无约束环境下的人脸检测和定位具有挑战性。最近的研究表明,深度学习方法可以在这两项任务上取得令人印象深刻的成绩。在本文中,我们提出了一个深度级联多任务框架,利用检测和对齐之间的内在相关性来提高它们的性能。特别地,我们的框架利用一个级联架构,通过精心设计的三个阶段的深度卷积网络,从粗到精地预测人脸和地标位置。此外,我们还提出了一种新的在线硬样本挖掘策略,在实践中进一步提高了性能。我们的方法在具有挑战性的FDDB和用于人脸检测的WIDER FACE人脸基准以及用于人脸对齐的AFLW基准上实现了比最新技术更高的精度,同时保持了实时性能。

1. 引言

    人脸检测和对齐在人脸识别和面部表情分析等许多应用中都是必不可少的。然而,人脸的巨大视觉变化,如遮挡、巨大的姿态变化和极端的光照,给这些任务在现实世界中的应用带来了巨大的挑战。

    Viola和Jones[2]提出的级联人脸检测器利用haar类特征和AdaBoost对级联分类器进行训练,取得了良好的性能和实时性。然而,相当多的工作[1,3,4]表明,这种检测器在实际应用中,即使具有更高级的特征和分类器,人脸的视觉变化更大,可能会显著降低。除了级联结构外,[5,6,7]还引入了可变形部件模型(deformable parts models, DPM)用于人脸检测,取得了显著的性能。然而,它们在计算上是昂贵的,并且通常在训练阶段需要昂贵的标注数据。近年来,卷积神经网络(CNNs)在图像分类[9]和人脸识别[10]等多种计算机视觉任务中取得了显著的进展。受计算机视觉任务中深度学习方法的显著成功启发,一些研究利用深度CNNs进行人脸检测。Yang等人利用[11]训练深度卷积神经网络进行人脸属性识别,得到高响应的人脸区域,从而得到人脸的候选窗口。然而,由于其复杂的CNN结构,这种方法在实践中是费时的。Li等人[19]使用级联CNNs进行人脸检测,但需要从人脸检测中标定边界框,计算量较大,忽略了人脸地标定位与边界框回归的内在相关性。

    人脸对齐也引起了广泛的研究兴趣。这方面的研究大致可以分为两大类,基于回归的方法[12,13,16]和模板拟合方法[14,15,7]。最近,Zhang等人提出将人脸属性识别作为辅助任务,利用深度卷积神经网络提高人脸对齐性能。

    然而,以往的人脸检测和人脸对齐方法大多忽略了这两个任务之间的内在联系。虽然已有的几部作品试图共同解决这些问题,但这些作品仍然存在局限性。例如Chen等人利用像素值差的特征与随机森林联合进行比对和检测。但是,这些手工特征极大地限制了它的性能。Zhang等人[20]使用多任务CNN来提高多视图人脸检测的准确性,但是检测的召回率受到弱人脸检测器产生的初始检测窗口的限制。

    另一方面,在训练中挖掘硬样本对增强探测器的能力至关重要。然而,传统的硬样本挖掘通常以离线方式进行,这大大增加了手工操作。设计一种在线硬样本挖掘的人脸检测方法,能够自动适应当前的训练状态。

    在本文中,我们提出了一个新的框架来整合这两个任务使用统一级联的CNNs多任务学习。提出的CNNs包括三个阶段。在第一阶段,它通过一个浅CNN快速生成候选窗口。然后,它通过一个更复杂的CNN来拒绝大量的非人脸窗口,从而改进了窗口。最后,使用更强大的CNN对结果进行再次细化,输出5个面部地标位置。该多任务学习框架使算法的性能得到了显著提高。代码已经在project page1中发布。本文的主要贡献如下:

(1)提出了一种新的基于级联CNNs的联合人脸检测与对齐框架,并精心设计了轻量级的CNN实时性能体系结构。

(2)提出了一种有效的在线硬样本挖掘方法,提高了性能。

(3)在具有挑战性的基准测试上进行了大量的实验,表明与最先进的人脸检测和人脸对齐技术相比,该方法的性能有了显著的提高。

2. 方法

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

A. 总体框架

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

图1 我们的级联框架包括三个阶段的多任务深度卷积网络。首先,通过快速提案(proposal)网络(P-Net)生成候选窗口。在此之后,我们将在下一阶段通过细化(refinement)网络(R-Net)对这些候选项进行细化。在第三阶段,输出网络(O-Net)产生最终的边界框和人脸Landmark位置。

    我们方法的总体流程如图1所示。对于给定的一幅图像,我们首先将其调整到不同的尺度来构建一个图像金字塔,这是以下三级级联框架的输入:  

    阶段1:我们利用一个全卷积网络,即建议(proposal)网络(P-Net)来获得候选人脸窗口及其边界盒回归向量。然后根据估计的边界盒回归向量对候选项进行校正。然后,我们使用非最大抑制(NMS)来合并高度重叠的候选项。

    阶段2:所有的候选对象都被喂给另一个CNN,称为Refine Network (R-Net),它进一步拒绝大量的错误候选对象,使用边界盒回归进行校准,并执行NMS。

    步骤3:这一阶段与第二阶段相似,但在这一阶段,我们的目标是识别更多的监控人脸区域。特别是,该网络将输出5个人脸Landmark的位置(处处5个人脸关键点)。

B CNN 结构

    在[19]中,设计了多个用于人脸检测的神经网络。然而,我们注意到它的性能可能受到以下事实的限制:(1)卷积层中的一些滤波器缺乏多样性,这可能限制了它们的识别能力。(2)与其他多类目标检测和分类任务相比,人脸检测是一项具有挑战性的二分类任务,每层可能需要较少的滤波器数量。为此,我们减少了滤波器的数量,将5×5滤波器改为3×3滤波器,以减少计算量,同时增加深度以获得更好的性能。通过这些改进,与[19]之前的架构相比,我们可以用更少的运行时间获得更好的性能(训练阶段的结果如表1所示)。为了公平比较,我们在每组使用相同的训练和验证数据)。我们的CNN架构如图2所示。我们将PReLU[30]作为卷积和全连接层(输出层除外)后的非线性激活函数。

                                         表1:我们的CNNS和以前的CNNS[19]的速度和验证精度对比结果

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验
MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

         图2  P-Net、R-Net和O-Net的体系结构,其中“MP”表示最大池,“Conv”表示卷积。卷积和池的步长分别为1和2。

C 训练

    我们利用三个任务来训练CNN检测器:人脸/非人脸分类、边界盒回归和人脸地标定位。

1)人脸分类:将学习目标定义为两类分类问题。对每个样本 xi, 我们使用交叉熵损失:

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

    其中 pi 为表示样本 xi 网络输出是人脸的的概率。符号

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

 表示ground truth标签。

 2)边界框回归:对于每个候选窗口,我们预测它与最近的ground truth(即ground truth)之间的偏移量。(边界框的左、上、高和宽)。学习目标被表示为一个回归问题,我们对每个样本 xi 使用欧几里德损失。

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

    其中 

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

为网络得到的回归目标(网络预测标签),

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

为ground truth坐标。其中有四个坐标,分别为左上角、高、宽,因此

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验
MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

    3)人脸地标定位:与边界盒回归任务类似,将人脸地标检测问题表示为回归问题,最小化欧式损失:

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

    其中 

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

为从网络中预测的人脸地标坐标,

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

为第 i 个样本的ground truth坐标。人脸地标共有5个,包括左眼、右眼、鼻子、左嘴角、右嘴角,因此

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

 。

    4)多源(Multi-Source)训练:由于我们在每个CNN中使用不同的任务,所以在学习过程中有不同类型的训练图像,如人脸、非人脸和部分对齐的人脸。在这种情况下,一些损失函数(即,(1)-(3))不采用。例如,对于背景区域的样本,我们只计算

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

,其他两类损失设为0。这可以通过样本类型指示器直接实现。那么整体学习目标可以表示为:

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

    其中N为训练样本个数,

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

表示任务的重要性。在P-Net和R-Net中,我们使用

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验
MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

,而在O-Net中采用

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验
MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

来获取更精确的人脸地标定位。

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

是样本类型指示器。在这种情况下,很自然的利用随机梯度下降训练这些神经网络。 

    5)在线硬样本挖掘:与传统的原始分类器训练后的硬样本挖掘不同,我们在人脸/非人脸分类任务中进行在线硬样本挖掘,这与训练过程相适应。

    特别地,在每个mini-batch中,我们对所有样本在正向传播中计算的损失进行排序,并选择前70%作为硬样本。然后我们只计算这些硬样本在反向传播中的梯度。这意味着我们忽略了在训练过程中对增强检测器没有多大帮助的简单样本。实验表明,该方法无需人工选择样本,具有较好的性能。其有效性见第三节。

3. 实验

    在本节中,我们首先评估提出的硬样本挖掘策略的有效性。然后,我们将我们的人脸检测与对齐器和最先进的人脸检测方法在FDDB,WIDER FACE 和AFLW数据集基准上进行比较。FDDB数据集包含一组2845张图片,其中中5171张人脸标注。WIDER FACE人脸数据集有32203幅图像,由393703个带标记的人脸边界框组成,其中50%用于测试(根据图像的难度分为三个子集),40%用于训练,剩下的用于验证。AFLW包含24386张人脸的面部地标注释,我们使用与[22]相同的测试子集。最后,我们评估了人脸检测器的计算效率。

A 训练数据

    由于我们同时进行人脸检测和对齐,这里我们在训练过程中使用了四种不同的数据标注:(1)负:任何交并比(IoU)与ground truth人脸小于0.3的区域;(2)正:IoU与某个ground truth 人脸高于0.65;(3)部分人脸:IOU在0.4 ~ 0.65之间的ground truth人脸;(4)Landmark 人脸:人脸标记5个地标点。部分人脸与背景之间存在着不明显的差距,不同人脸标注之间也存在差异。因此,我们选择在0.3到0.4之间的IOU。人脸分类任务使用负人脸和正人脸,正人脸和部分人脸采用边界盒回归,人脸地标定位使用地标人脸。训练总数据由3:1:1:2(负/正/部分人脸/Landmark人脸)的数据比例组成。每个网络的训练·数据采集描述如下:

    1) P-Net:我们随机地从WIDER FACE[24]上剪下几个patches,收集正人脸、负人脸和部分人脸。然后,我们从CelebA[23]中裁剪出一些人脸作为地Landmark人脸。

    2)R-Net:我们使用框架的第一阶段来检测来自WIDER FACE[24]的人脸,以收集正人脸、负人脸和部分人脸,同时从CelebA[23]检测地标性人脸

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

B 在线硬样本挖掘的有效性

    为了评估提出的在线硬样本挖掘策略的贡献,我们训练了两个P-Net(有和没有在线硬样本挖掘),并比较了它们在FDDB上的性能。图3 (a)为两种不同p-net在FDDB上的结果。很明显,在线硬样本挖掘有利于提高性能。它能使FDDB的总体性能提高1.5%左右。

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

图3所示。(a) P-Net有无在线硬样本挖掘的检测性能。(b)“JA”表示O-Net中联合人脸对齐学习,“No JA”表示没有联合人脸对齐。“No JA in BBR”表示O-Net使用“No JA”进行边界盒回归。 

C 联合检测和对齐的有效性

    为了评估联合检测和对齐的贡献,我们评估了两种不同的O-Net(联合人脸地标回归学习和不联合)在FDDB上的性能(相同的P-Net和R-Net)。我们还比较了这两种oO-Net的边界盒回归性能。图3 (b)表明,联合地标定位任务学习有助于增强人脸分类和边界盒回归任务。

D 人脸检测评估

    为了评价我们的人脸检测方法的性能,我们将我们的方法与FDDB中最先进的方法[1,5,6,11,18,19,26,27,28,29]和WIDER FACE中最先进的方法[1,24,11]进行了比较。图4 (a)-(d)显示,我们的方法在两个基准测试中都比所有比较的方法表现得更好。

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

                     图4所示。(a) FDDB的评价。(b-d)WIDER FACE三组子集的评价。方法后面的数字表示平均精度。

E)人脸对齐评估 

    在本部分中,我们将我们的方法与以下方法进行比对:RCPR[12]、TSPM[7]、Luxand face SDK[17]、ESR[13]、CDM[15]、SDM[21]、TCDCN[22]。平均误差由估计的landmarks与ground truth之间的距离来测量,相对于两眼间距离进行归一化。。图5显示,我们的方法在一定程度上优于所有最先进的方法。这也表明我们的方法在嘴角定位方面的优势较小。这可能是由于在我们的训练数据中,小偏差表示造成的,这对嘴角位置有显著的影响。

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

                                                                            图5 AFLW 人脸对齐评估 

F 运行效率

    在给定级联结构的情况下,该方法可以实现快速的联合人脸检测和对齐。我们将我们的方法与GPU上最好的方法进行了比较,结果如表2所示。注意,我们目前的实现是基于未优化的MATLAB代码。

                                                     表2 我们的方法和其他方法速度的对比

MTCNN:人脸检测对齐算法——多任务级联卷积网络(论文阅读笔记) 摘要1. 引言2. 方法3. 实验

继续阅读