【论文翻译】使用多任务级联卷积网络进行联合人脸检测和对齐(MTCNN)

Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks

使用多任务级联卷积神经网络联合进行人脸检测和对齐

pdf

摘要

Face detection and alignment in unconstrained environment are challenging due to various poses, illuminations and occlusions. Recent studies show that deep learning approaches can achieve impressive performance on these two tasks. In this paper, we propose a deep cascaded multi-task framework which exploits the inherent correlation between detection and alignment to boost up their performance.
由于各种姿势,照明和遮挡的可变性,无约束环境中的面部检测和对齐是一个有挑战性的问题。最近的研究表明,深度学习方法可以在这两项任务上取得非常好的性能。在本文中,我们提出了一个深度级联的多任务框架,它利用了检测和对齐之间的内在联系来提高它们的性能。

In particular, our framework leverages a cascaded architecture with three stages of carefully designed deep convolutional networks to predict face and land-mark location in a coarse-to-fine manner. In addition, we propose
a new online hard sample mining strategy that further improves the performance in practice.

特别的是,我们的框架充分利用了一个有三个阶段的级联架构,精心设计了深度卷积网络层,以粗略到精细的方式预测面部和地标位置。此外,我们提出了一种新的在线难分样本挖掘策略,可进一步提高实践中的性能。

Our method achieves superior accuracy over the state-of-the-art techniques on the challenging FDDB and WIDER FACE benchmarks for face detection, and AFLW benchmark for face alignment, while keeps real time performance.

我们的方法在面向人脸检测的FDDB和WIDER FACE基准和面部对齐的AFLW基准都实现了极高的准确性,同时保持实时性能。

1 介绍

Face detection and alignment are essential to many face applications, such as face recognition and facial expression analysis.
However, the large visual variations of faces, such as occlusions, large pose variations and extreme lightings, impose great challenges for these tasks in real world applications.
面部检测和对齐对于许多面部应用是必不可少的,例如面部识别和面部表情分析。然而,面部的大的视觉变化例如遮挡,大的姿势变化和极端的照明,给这些任务的实际应用造成了巨大的挑战。
Viola和Jones [2]提出的级联人脸检测器利用Haar-Like特征和AdaBoost训练级联分类器,实现了具有实时效率的良好性能。然而,相当多的工作[1,3,4]表明,即使使用更先进的特征和分类器,这种探测器在人脸的视觉变化更大的实际应用中的效果也会显著降低。
除了级联结构,[5,6,7]引入了Deformable Part Model可变形零件模型(DPM)进行人脸检测,并取得了显着的性能。然而,它们在计算上是昂贵的并且通常在训练阶段需要昂贵的注释。
最近,卷积神经网络(CNN)在各种计算机视觉任务中取得了显着进步,例如图像分类[9]和人脸识别[10]。受到计算机视觉任务中深度学习方法的重大成功的启发,一些研究利用深度CNN进行人脸检测。
杨等人。 [11]训练深度卷积神经网络进行面部属性识别,以获得面部区域的高响应,进一步产生面部候选窗口。然而,由于其复杂的CNN结构,这种方法在实践中耗时。
李等人。 [19]使用级联CNN进行人脸检测,但它需要从面部检测中进行Bounding Box Caliboration边界框校准,并且需要额外的计算费用,并忽略facial landmarks localization面部标志定位边界框回归Bounding Box Regression之间的固有相关性。

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

However, most of previous face detection and face alignment methods ignore the inherent correlation between these two tasks. Though several existing works attempt to jointly solve them, there are still limitations in these works. For example, Chen et al.[18] jointly conduct alignment and detection with random forest using features of pixel value difference. But, these handcraft features limit its performance a lot. Zhang et al.[20] use multi-task CNN to improve the accuracy of multi-view face detection, but the detection recall is limited by the initial detection window produced by a weak face detector.
然而,大多数先前的面部检测和面部对齐方法忽略了这两个任务之间的固有相关性。虽然现有的一些作品试图联合解决它们,但这些工作仍然存在局限性。例如,陈等人。 [18]利用像素值差异特征,和随机森林,联合解决对齐和检测问题。但是,这些手工艺功能限制了它的性能。张等人。 [20]使用多任务CNN来提高多视图面部检测的准确性,但是检测重新调用受到弱面部检测器产生的初始检测窗口的限制。

另一方面,在训练中采集难分样本对于增强探测器的功率至关重要。然而,传统的难分样本挖掘通常以离线方式执行,这显着增加了手动操作。期望设计一种用于面部检测的在线难分样本挖掘方法,其自动适应当前训练状态。

In this paper, we propose a new framework to integrate these two tasks using unified cascaded CNNs by multi-task learning. The proposed CNNs consist of three stages. In the first stage, it produces candidate windows quickly through a shallow CNN. Then, it refines the windows by rejecting a large number of non-faces windows through a more complex CNN. Finally, it uses a more powerful CNN to refine the result again and output five facial landmarks positions. Thanks to this multi-task learning framework, the performance of the algorithm can be notably improved.

The codes have been released in the project page1.

在本文中,我们提出了一个新的框架,通过多任务学习使用统一的级联CNN来集成这两个任务。提出的CNN包括三个阶段。

  • 在第一阶段,它通过浅CNN快速生成候选窗口。
  • 然后,它通过更复杂的CNN拒绝大量非面部窗口来细化窗口。
  • 最后,它使用更强大的CNN再次细化结果并输出五个面部标志位置。

由于这个多任务学习框架,算法的性能可以显着提高。代码已在项目页面1中发布。

The major contributions of this paper are summarized as follows:
(1) We propose a new cascaded CNNs based framework for joint face detection and alignment, and carefully design lightweight CNN architecture for real time performance.

(2) We propose an effective method to conduct online hard sample mining to improve the performance.

(3) Extensive experiments are conducted on challenging benchmarks, to show
significant performance improvement of the proposed approach compared to the state-of-the-art techniques in both face detection and face alignment tasks.

本文的主要贡献概括如下:

  1. 我们提出了一种新的级联CNN框架,用于联合面部检测和对齐,并精心设计轻量级CNN架构以实现实时性能。
  2. 我们提出了一种有效的方法来进行在线难分样本挖掘,以提高性能。(2)我们提出了一种有效的方法来进行在线难分样本挖掘,以提高性能。
  3. 在具有挑战性的基准测试中进行了广泛的实验,以显示与人脸检测和面部对齐任务中的最新技术相比,所提出的方法的显着性能改进。(3)在具有挑战性的基准测试中进行了广泛的实验,以显示与人脸检测和面部对齐任务中的最新技术相比,所提出的方法的显着性能改进。

2 方法

在本节中,我们将描述我们的面部检测和对齐方法。

2.1 框架全览

The overall pipeline of our approach is shown in Fig. 1. Given an image, we initially resize it to different scales to build an image pyramid, which is the input of the following three-stage cascaded framework:
我们的方法的总体流程如图1所示。给定一个图像,我们最初将其调整到不同的比例以构建图像金字塔,这是以下三级级联框架的输入:

Stage 1
We exploit a fully convolutional network, called Proposal Network (P-Net), to obtain the candidate facial windows and their bounding box regression vectors. Then candidates are calibrated based on the estimated bounding box regression vectors. After that, we employ non-maximum suppression (NMS) to merge highly overlapped candidates.

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

Stage 2
All candidates are fed to another CNN, called Refine Network (R-Net), which further rejects a large number of false candidates, performs calibration with bounding box regression, and conducts NMS.

  • 所有候选窗口都被送到另一个名为==Refine Network(R-Net)==的CNN,它进一步拒绝了大量的错误候选窗口,用边界框回归进行校准,并进行NMS。

Stage 3
This stage is similar to the second stage, but in this stage we aim to identify face regions with more supervision.

In particular, the network will output five facial landmarks’ positions.

  • 这个阶段类似于第二阶段,但在这个阶段,我们的目标是识别更多监督的面部区域。特别是,网络将输出五个面部地标的位置。
2.2 CNN架构

在[19]中,已经设计了多个用于面部检测的CNN。但是,我们注意到它的性能可能受到以下事实的限制:

  • 卷积层中的一些卷积核缺乏可能限制其辨别能力的多样性
  • 与其他多类物体检测和分类任务相比,人脸检测是一项具有挑战性的二元分类任务,因此每层可能需要的卷积核数量较少。

To this end, we reduce the number of filters and change the 5×5 filter to 3×3 filter to reduce the computing while increase the depth to get better performance. With these improvements, compared to the previous architecture in [19], we can get better performance with less runtime (the results in training phase are shown in
Table I. For fair comparison, we use the same training and validation data in each group). Our CNN architectures are shown in Fig. 2. We apply PReLU [30] as nonlinearity activation function after the convolution and fully connection layers (except output layers).
为此,我们减少卷积核的数量并将5×5卷积核更改为3×3卷积核以减少计算,同时增加深度以获得更好的性能。通过这些改进,与[19]中的先前架构相比,我们可以以更少的运行时间获得更好的性能(训练阶段的结果如表I所示。为了公平比较,我们在每个组中使用相同的训练和验证数据)。我们的CNN架构如图2所示。我们在卷积和完全连接层(输出层除外)之后应用PReLU [30]作为非线性激活函数。

2.3 训练

We leverage three tasks to train our CNN detectors: face/non-face classification, bounding box regression, and facial landmark localization.
我们利用三项任务来训练我们的CNN探测器:面部/非面部分类,边界框回归和面部地标定位。

Face classification: The learning objective is formulated as a two-class classification problem. For each sample , we use the cross-entropy loss:

  1. 面部分类:学习的目标函数被定义为两类分类问题。对于每个样本 x i x_i xi,我们使用交叉熵损失。
    L i d e t = − ( y i d e t l o g ( p i ) + ( 1 − y i d e t ) ( 1 − l o g ( p i ) ) )    ( 1 ) L_i^{det} = -(y_i^{det}log(p_i) + (1-y_i^{det})(1-log(p_i))) \ \ (1) Lidet=(yidetlog(pi)+(1yidet)(1log(pi)))  (1)
    其中 y i d e t ∈ { 0 , 1 } y_i^{det} \in \{0,1\} yidet{0,1}是真值标签, p i p_i pi是样本 x i x_i xi是人脸的概率。

  2. 边界框回归:对于每个候选窗口,我们预测它与最近的真值标签之间的偏差(即,边界框的左,顶部,高度和宽度)。学习目标被表述为回归问题,我们对每个样本 x i x_i xi使用欧几里德损失。
    L i b o x = ∣ ∣ y i ^ b o x − y i b o x ∣ ∣ 2 2    ( 2 ) L_i^{box} = ||\hat{y_i}^{box} - y_i^{box}||_2^{2}\ \ (2) Libox=yi^boxyibox22  (2)
    其中 y i ^ b o x \hat{y_i}^{box} yi^box是从网络中获得的回归目标, y i b o x y_i^{box} yibox是真值坐标。坐标有4个特征,分别是左上角坐标,高和宽,所以 y i b o x ∈ ℜ y_i^{box} \in \Re yibox
    面部地标定位:

  3. 面部标志定位。与边界框回归任务类似,面部标志检测被公式化为回归问题,并且我们将欧几里德损失最小化为
    L i l a n d m a r k = ∣ ∣ y i ^ l a n d m a r k − y i l a n d m a r k ∣ ∣ 2 2    ( 3 ) L_{i}^{landmark} = ||\hat{y_i}^{landmark} - {y_i}^{landmark} ||_2^2 \ \ (3) Lilandmark=yi^landmarkyilandmark22  (3)
    其中, y i ^ l a n d m a r k \hat{y_i}^{landmark} yi^landmark是从网络中获取的面部坐标定位, y i l a n d m a r k {y_i}^{landmark} yilandmark是第 i i i个样本的真值坐标。有五个面部标志,包括左眼,右眼,鼻子,左嘴角,右嘴角,所以 y i l a n d m a r k ∈ ℜ 10 y_i^{landmark} \in \Re^{10} yilandmark10

  4. 多源训练。由于我们在每个CNN中使用不同的任务,因此在学习过程中存在不同类型的训练图像,例如面部,非面部和部分对齐的面部。在这种情况下,不使用一些损失函数(即,等式(1)-(3))。例如,对于背景区域的样本,我们仅计算 L i d e t L_{i}^{det} Lidet,而其他两个损失设置为0。
    这可以使用样本类型指示符直接实现。然后整体学习目标可以表述为:
    min ⁡ ∑ i = 1 N ∑ J ∈ { d e t , b o x , l a n d m a r k } α j β i j L i j \min\sum_{i=1}^N\sum_{J \in \{det,box,landmark\}} \alpha_j\beta_i^{j}L_{i}^{j} mini=1NJ{det,box,landmark}αjβijLij
    其中, 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%作为难分样本。然后我们只计算后向传播中这些难分样本的梯度。这意味着我们忽略了在训练期间不太有助于加强探测器的简单样本。实验表明,该策略无需手动选择样本即可获得更好的性能。 其有效性在第III节中得到证明。

3 实验

在本节中,我们首先评估提出的难分样本挖掘策略的有效性。然后我们将人脸检测器和对齐方法和行业最先进的方法进行比较,方法有(FDDB)[25],WIDER FACE [24]和Annotated Facial Landmarks in the Wild(AFLW)基准[8]。FDDB数据集包含一组2,845个图像中5,171个脸部的注释。WIDER FACE数据集由32,33个图像中的393,703个标记的面部边界框组成,其中50%用于测试(根据图像的难度分为三个子集),40%用于训练,剩余用于验证。AFLW包含24,386个面部的面部标志注释,我们使用与[22]相同的测试子集。最后,我们评估人脸检测器的计算效率。

3.1 训练数据

由于我们联合进行人脸检测和对齐,这里我们在训练过程中使用四种不同的数据注释:

  • 不是脸孔:和任何真值脸孔==Intersection-over-Union(IoU)==交叉联合比率小于0.3的区域;
  • 是脸孔:和任何真值脸孔IoU高于0.65的区域;
  • 部分面孔:IoU介于0.4和0.65之间;
  • 地标面孔:标有5个地标位置的面孔。

部分面部和负面部分之间存在不明确的差距,不同的面部注释之间存在差异。因此,我们选择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类似,用于收集数据,但我们使用框架的前两个阶段来检测面部和收集数据。

3.2 在线难分样本挖掘的有效性

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

3.3 联合侦测和对齐的有效性

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

3.4 面部检测的验证

为了评估我们的人脸检测方法的性能,我们将我们的方法与FDDB中的最新方法[1,5,6,11,19,26,27,28,29]及 WIDER FACE中最先进的方法[1,24,11]进行了比较。图4(a)-(d)表明,我们的方法在两个基准测试中始终大大优于所有比较方法。

3.5 面部对齐的验证

在这一部分中,我们将我们方法的面部对齐性能与以下方法进行比较:RCPR [12],TSPM [7],Luxand face SDK [17],ESR [13],CDM [15],SDM [21], 和TCDCN [22]。我们使用的平均误差计算估计的标志位与实值的距离,并相对于inter-ocular进行归一化。图5显示我们的方法优于所有最先进的方法。它还表明我们的方法在嘴角定位方面表现出较低的优势。这可能是由于我们的训练数据中表达的小变化,对嘴角位置有显着影响。

3.6 运行时间的验证

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

4 推论

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

Experimental results demonstrated that our methods consistently outperform the state-of-the-art methods across several challenging benchmarks (including FDDB and WIDER FACE
benchmarks for face detection, and AFLW benchmark for face alignment) while achieves real time performance for 640x480
VGA images with 20x20 minimum face size. T

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值