MTCNN

Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks

使用多任务级联卷积网络的联合人脸检测和对齐


摘要

由于各种姿势、光照和遮挡,无约束环境中的人脸检测和对齐具有挑战性。 最近的研究表明,深度学习方法可以在这两个任务上取得令人印象深刻的性能。 在这封信中,我们提出了一个深度级联多任务框架,该框架利用检测和对齐之间的内在相关性来提高它们的性能。 特别的,我们的框架利用级联架构和精心设计的深度卷积网络的三个阶段以粗到细的方式预测人脸和地标位置。 此外,我们提出了一种新的在线硬样本挖掘策略,进一步提高了实践中的性能。 我们的方法在具有挑战性的人脸检测数据集和基准以及用于人脸检测的 WIDER FACE 基准上实现了优于最先进技术的精度,并在用于人脸对齐的野生基准中标注了面部标志,同时保持了实时性能。

一、介绍

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

Viola 和 Jones [2] 提出的级联人脸检测器利用 Haar-Like 特征和 AdaBoost 训练级联分类器,实现了良好的性能和实时效率。然而,相当多的工作 [1]、[3]、[4] 表明,即使使用更高级的特征和分类器,这种检测器在人脸视觉变化较大的实际应用中也可能会显着退化。除了级联结构,Mathias 等人。 [5]-[7] 引入了用于人脸检测的可变形部分模型并取得了显着的性能。但是,它们的计算成本很高,并且通常在训练阶段可能需要麻烦的注释。最近,卷积神经网络 (CNN) 在各种计算机视觉任务中取得了显着进展,例如图像分类 [9] 和人脸识别 [10]。受深度学习方法在计算机视觉任务中取得重大成功的启发,一些研究利用深度 CNN 进行人脸检测。杨等人。 [11] 训练深度 CNN 进行面部属性识别,以获得面部区域的高响应,从而进一步产生面部候选窗口。然而,由于其复杂的 CNN 结构,这种方法在实践中的时间成本很高。李等人。 [19] 使用级联 CNN 进行人脸检测,但它需要从人脸检测中进行边界框校准,需要额外的计算成本,并且忽略了人脸地标定位和边界框回归之间的内在相关性。

人脸对齐也吸引了广泛的研究兴趣。 该领域的研究工作大致可分为两类,基于回归的方法[12]、[13]、[16]和模板拟合方法[7]、[14]、[15]。 最近,张等人。 [22] 提出使用人脸属性识别作为辅助任务,使用深度 CNN 来增强人脸对齐性能。

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

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

在这封信中,我们提出了一个新的框架,通过多任务学习使用统一的级联 CNN 来整合这两个任务。提出的 CNN 包括三个阶段。在第一阶段,它通过浅层 CNN 快速生成候选窗口。然后,它通过更复杂的 CNN 拒绝大量非人脸窗口来优化窗口。最后,它使用更强大的 CNN 再次细化结果并输出五个面部标志位置。由于这种多任务学习框架,算法的性能可以显着提高。这封信的主要贡献总结如下:

  • 我们提出了一种新的基于级联 CNN 的联合人脸检测和对齐框架,并精心设计了轻量级 CNN 架构以实现实时性能。

  • 我们提出了一种有效的方法来进行在线硬样本挖掘以提高性能。

  • 在具有挑战性的基准上进行了广泛的实验,以显示与人脸检测和人脸对齐任务中的最先进技术相比,所提出的方法的性能显着提高。

二、方法

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

A. 总体框架

我们方法的整体流程如图 1 所示。给定一张图像,我们最初将其调整到不同的比例以构建图像金字塔,这是以下三阶段级联框架的输入。
MTCNN_第1张图片
图 1 我们的级联框架的管道,包括三阶段多任务深度卷积网络。 首先,候选窗口是通过快速 P-Net 生成的。 之后,我们在下一阶段通过 R-Net 细化这些候选者。 在第三阶段,O-Net 产生最终的边界框和面部标志位置。

阶段1:
我们利用称为提议网络(P-Net)的完全卷积网络来获得候选面部窗口及其边界框回归向量。 然后根据估计的边界框回归向量校准候选者。 之后,我们使用非极大值抑制(NMS)来合并高度重叠的候选者。

阶段2:
所有候选者都被馈送到另一个称为细化网络 (R-Net) 的 CNN,它进一步拒绝大量错误候选者,使用边界框回归进行校准,并进行 NMS。

阶段3:
此阶段类似于第二阶段,但在此阶段,我们的目标是识别具有更多监督的人脸区域。 特别的,网络将输出五个面部地标的位置。

B. CNN 架构

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

表 I 我们的 CNN 和以前的 CNN [19] 的速度和验证准确度的比较
MTCNN_第2张图片
MTCNN_第3张图片
图 2. P-Net、R-Net 和 O-Net 的架构,其中“MP”表示最大池化,“Conv”表示卷积。 卷积和池化的步长分别为 1 和 2。

C. 训练

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

1)人脸分类
学习目标被表述为一个二分类问题。 对于每个样本 xi,我们使用交叉熵损失作为:
在这里插入图片描述
其中 pi 是网络产生的表明样本 xi 是人脸的概率。 符号 yidet∈{0,1} 表示真实标签。

2)边界框回归
对于每个候选窗口,我们预测它与最近的地面实况(即边界框的左侧、顶部、高度和宽度)之间的偏移量。 学习目标被表述为一个回归问题,我们对每个样本 xi 使用欧几里得损失:
在这里插入图片描述
其中 y^ibox 是从网络获得的回归目标,yibox是真实坐标。 有四个坐标,包括左上角、高度和宽度,因此yibox∈R4。

3)面部地标定位
与边界框回归任务类似,面部标志检测被表述为回归问题,我们将欧几里得损失最小化为:
在这里插入图片描述
其中 y^ilandmark是从网络获得的面部地标坐标,yilandmark是第 i 个样本的真实坐标。 有五个面部标志,包括左眼、右眼、鼻子、左嘴角和右嘴角,因此yilandmark∈R10。

4) 多源训练
由于我们在每个 CNN 中使用不同的任务,因此在学习过程中有不同类型的训练图像,例如人脸、非人脸和部分对齐的人脸。 在这种情况下,不使用一些损失函数[即(1)-(3)]。 例如,对于背景区域的样本,我们只计算Ldeti,其他两个损失设置为0。这可以直接用样本类型指标来实现。 然后,整体学习目标可以表述为:
MTCNN_第4张图片
其中 N 是训练样本的数量,αj 表示任务的重要性。 我们在 P-Net 和 R-Net 中使用 (αdet=1,αbox=0.5,αlandmark=0.5),而在输出网络 (O-Net) 中使用 (αdet=1,αbox=0.5,αlandmark=1) 以获得更准确的面部地标定位。 βij∈{0,1} 是样本类型指标。 在这种情况下,很自然地使用随机梯度下降来训练这些 CNN。

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

特别是,在每个小批量中,我们从所有样本中对前向传播中计算的损失进行排序,并选择其中前 70% 作为硬样本。 然后,我们只计算反向传播中这些硬样本的梯度。 这意味着我们忽略了在训练期间对增强检测器的帮助较小的简单样本。 实验表明,该策略无需手动选择样本即可产生更好的性能。 它的有效性在第三节中得到证明。

三、实验

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

A. 训练数据

由于我们共同执行人脸检测和对齐,因此我们在训练过程中使用以下四种不同类型的数据注释:

  1. 负数:与任何真实面的交叉联合(IoU)比率小于 0.3 的区域;

  2. 正面:与地面真实面的 IoU 高于 0.65;

  3. 部分面:与真实面的 IoU 介于 0.4 和 0.65 之间;而且

  4. 地标面孔:标记了五个地标位置的面孔。

部分面和底片之间存在不明确的差距,并且不同的面注释之间存在差异。因此,我们选择 0.3 到 0.4 之间的 IoU 差距。负片和正片用于人脸分类任务,正片和部分面用于边界框回归,地标面用于面部地标定位。总训练数据由 3:1:1:2(负数/正数/部分人脸/标志性人脸)数据组成。每个网络的训练数据收集描述如下:

  1. P-Net:我们从 WIDER FACE [24] 中随机裁剪几个补丁来收集正面、负面和部分人脸。然后,我们将 CelebA [23] 中的人脸裁剪为地标人脸。

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

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

B. 在线硬样本挖掘的有效性
为了评估所提出的在线硬样本挖掘策略的贡献,我们训练了两个 P-Nets(有和没有在线硬样本挖掘)并比较它们在 FDDB 上的性能。 图 3 (a) 显示了 FDDB 上两个不同 P-Net 的结果。 很明显,在线硬样本挖掘有利于提高性能。 它可以在 FDDB 上带来 1.5% 的整体性能提升。

MTCNN_第5张图片
图 3.(a) P-Net 在有和没有在线硬样本挖掘的情况下的检测性能。 (b) “JA”表示 O-Net 中的联合人脸对齐学习,而“No JA”表示不联合它。 “No JA in BBR”表示使用“No JA”O-Net 进行边界框回归。

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

D. 人脸检测评估
为了评估我们的人脸检测方法的性能,我们将我们的方法与最先进的方法 [1]、[5]、[6]、[11]、[18]、[19]、[26] 进行比较 ]–[29] 在 FDDB 中,以及最先进的方法 [1]、[11]、[24] 在 WIDER FACE 中。 图 4 (a)-(d) 表明,我们的方法在两个基准测试中始终以大幅度优于所有比较方法。 我们还在一些具有挑战性的照片上评估了我们的方法。

MTCNN_第6张图片
图 4(a) 对 FDDB 的评估。 (b)-(d) 对 WIDER FACE 的三个子集进行评估。 方法后面的数字表示平均精度。

E. 人脸对齐评估

在这一部分中,我们将我们方法的人脸对齐性能与以下方法进行比较:RCPR [12]、TSPM [7]、Luxand face SDK [17]、ESR [13]、CDM [15]、SDM [21]、 和 TCDCN [22]。 平均误差是通过估计的地标和地面实况之间的距离来衡量的,并相对于眼间距离进行归一化。 图 5 显示我们的方法在一定程度上优于所有最先进的方法。 这也表明我们的方法在嘴角定位方面显示出较少的优势。 这可能是由于在我们的训练数据中表达的微小差异,这对嘴角位置有显着影响。

MTCNN_第7张图片
图 5 对人脸对齐的 AFLW 评估。

F. 运行时效率

鉴于级联结构,我们的方法可以实现高速联合人脸检测和对齐。 我们将我们的方法与 GPU 上的最新技术进行了比较,结果如表 II 所示。 值得注意的是,我们当前的实现是基于未优化的 MATLAB 代码。

表二 我们的方法和其他方法的速度比较MTCNN_第8张图片

六、结论

在这封信中,我们提出了一个基于多任务级联 CNN 的联合人脸检测和对齐框架。 实验结果表明,我们的方法在几个具有挑战性的基准测试(包括人脸检测的 FDDB 和 WIDER FACE 基准测试以及人脸对齐的 AFLW 基准测试)中始终优于最先进的方法,同时实现了 640 × 480 VGA 的实时性能 最小人脸尺寸为 20 × 20 的图像。 对性能改进的三个主要贡献是精心设计的级联 CNN 架构、在线硬样本挖掘策略和联合人脸对齐学习。

你可能感兴趣的:(笔记,深度学习,计算机视觉,神经网络)