MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐

前言

本文为论文Multi-task convolutional neural networks的关键内容翻译。

1. 摘要

摘要:由于姿势、光照或遮挡等原因,在非强迫环境下的人脸识别和对齐是一项具有挑战性的问题。最近的研究显示,深度学习算法可以很好的解决上述的两个问题。在这篇文章中,我们利用检测和校准之间固有的相关性在深度级联的多任务框架下来提升它们的性能。尤其是,我们利用三层级联架构结合精心设计的卷神经网络算法,来对人脸进行检测和关键点的粗略定位。另外,我们建议使用一种新的在线采集样本策略来改善算法的性能。我们的方法与最先进的人脸检测算法FDDB和WIDER FACE进行对比,具有更高的精度。同时,与AFLW人脸对齐算法比较,实时性能良好。
关键字:人脸检测、人脸对齐、级联卷积神经网络

2. 介绍

人脸检测和对齐是很多基于人脸的应用不可缺少的一部分,如人脸识别、人脸行为分析等。然而,视觉变化对于人脸的影响,加之姿势变化和极端光照的影响,使得在现实世界中对人脸检测和对齐的任务变的极具挑战。

Viola和Jones提出的级联人脸检测器,是利用Harr-Like特征结合AdaBoost去实现高性能的实时训练。然而,相当多的研究显示,该算法在应对大量视觉影响的人脸图片检测时性能极具下降。并且目前讯在的DPM算法也具有一定的缺陷,所以需要新的方法来解决人脸检测和对齐。最近,CNN在视觉方面取得了很好的效果,如图像分类、人脸识别等。受到启发研究人员开始将CNN用于人脸检测,提出一些算法。同时吸引人脸对齐的研究者对此产生兴趣,也提出了一下相关算法。然而,大多数以前的脸部检测和脸部对齐方法忽略了这两者之间的固有相关性任务。 虽然现有的几个算法试图共同解决他们,但在这些算法中仍然有局限性。

另一方面,目前的训练样本度分类器的性能提升有一定的阻碍,需要设计一种用于人脸检测的在线样本用于对算法的训练,已达到自适应的训练状态。

在本文中,我么们提出新的级联架构来整合多任务卷积神经网络学习的问题。该算法有三个阶段组成:第一阶段,浅层的CNN快速产生候选窗体;第二阶段,通过更复杂的CNN精炼候选窗体,丢弃大量的重叠窗体;第三阶段,使用更加强大的CNN,实现候选窗体去留,同时显示五个面部关键点定位。

3. 具体方法实现

A、总体架构
本算法的整体流程如图1 所示:
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第1张图片

Stage 1:采用全卷积神经网络,即P-Net,去获得候选窗体和边界回归向量。同时,候选窗体根据边界框进行校准。然后,利用NMS方法去除重叠窗体。
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第2张图片
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第3张图片
stage 2:R-Net,将经过P-Net确定的包含候选窗体的图片在R-Net网络中 训练,网络最后选用全连接的方式进行训练。利用边界框向量微调候选窗体,再利用NMS去除重叠窗体。
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第4张图片
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第5张图片
stage 3:O-Net,网络结构比R-Net多一层卷积,功能与R-Net作用一样,只是在去除重叠候选窗口的同时,显示五个人脸关键点定位。
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第6张图片
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第7张图片
B、CNN网络结构(CNN结构图上面显示)
多个CNN被设计为人脸检测器,但其性能可能受到以下情况的限制:
(1)卷积层中的滤波器缺乏多样性,限制他们的识别能力;
(2)对比多类识别检测和分类任务,人脸检测是一个二进制的分类问题,因此需要较少量的滤波器,我们将5*5的滤波大小改为3*3的滤波大小去减少计算,同时增加深度来提高性能。相比之前的算法有了更好的效果,缩短了训练时间。结果如表1所示。
C、训练
MTCNN特征描述子主要包含3个部分,人脸/非人脸分类器,边界框回归,地标定位。
人脸分类:
这里写图片描述
上式为人脸分类的交叉熵损失函数,其中,pi为是人脸的概率,yidet为背景的真实标签。
边界框回归:
这里写图片描述
上式为通过欧氏距离计算的回归损失。其中,带尖的y为通过网络预测得到,不带尖的y为实际的真实的背景坐标。其中,y为一个(左上角x,左上角y,长,宽)组成的四元组。
地标定位:
这里写图片描述
和边界回归一样,还是计算网络预测的地标位置和实际真实地标的欧式距离,并最小化该距离。其中,,带尖的y为通过网络预测得到,不带尖的y为实际的真实的地标坐标。由于一共5个点,每个点2个坐标,所以,y属于十元组。
多个输入源的训练:
MTCNN(Multi-task convolutional neural networks)将多任务级联卷积神经网络用于人脸检测和对齐_第8张图片
整个的训练学习过程就是最小化上面的这个函数,其中,N为训练样本数量,aj表示任务的重要性,bj为样本标签,Lj为上面的损失函数。

在训练过程中,为了取得更好的效果,作者每次只后向传播前70%样本的梯度,这样来保证传递的都是有效的数字。有点类似latent SVM,只是作者在实现上更加体现了深度学习的端到端。

在训练过程中,y尖和y的交并集IoU(Intersection-over-Union)比例:
0-0.3:非人脸
0.65-1.00:人脸
0.4-0.65:Part人脸
0.3-0.4:地标
训练样本的比例,负样本:正样本:part样本:地标=3:1:1:2

参考文章

  1. MTCNN(Multi-task convolutional neural networks)人脸对齐
  2. MTCNN-将多任务级联卷积神经网络用于人脸检测和对齐
  3. MTCNN算法

你可能感兴趣的:(深度学习)