时间:2024-06-19
陈锐, 林达
(1.四川理工学院自动化与信息工程学院, 四川自贡643000;2.人工智能四川省重点实验室, 四川自贡643000)
基于级联卷积神经网络的人脸关键点定位
陈锐1,2, 林达1,2
(1.四川理工学院自动化与信息工程学院, 四川自贡643000;2.人工智能四川省重点实验室, 四川自贡643000)
由于人脸姿态、表情、遮挡物、光照问题的影响,人脸关键点检测时通常会出现较大的误差,为了准确且可靠地检测关键点,提出了一种基于级联卷积神经网络的方法。利用人脸检测器检测到的人脸图像作为输入,第一层卷积神经网络直接检测所有的5个人脸关键点。随后根据这些检测到的点裁剪出5个人脸局部图像,级联的第二层网络使用5个不同的卷积神经网络单独地定位每个点。在实验测试环节,级联卷积神经网络方法的使用将人脸关键点的平均定位误差降低到了1.264像素。在LFPW人脸数据库上的实验结果表明:该算法在定位准确性和可靠性上要优于单个CNN的方法以及其他方法,该算法在GPU(图形处理器)模式下处理一个人脸图像仅需15.9毫秒。
人脸关键点;卷积神经网络(CNN);深度学习
人脸关键点定位是人脸识别等应用中必不可少的一个预处理环节,即使是简单地根据检测到的双眼坐标来旋转图像将双眼置水平面,也可以有效提升人脸识别的准确率,复杂的预处理手段也更加离不开精确的人脸关键点定位算法。
人脸关键点定位算法可以分为两类:分类法和直接预测法。第一类算法,如文献[1-3]首先要对需要检测的每个关键点区域单独训练分类器,再通过对局部窗口下的图像进行分类来寻找候选区域,随后通过形态约束在这些候选区域中估计最优关键点。
分类法在寻找候选区域时,容易出现找到过多或数量不足的候选区域,这些对人脸定位算法的性能造成了一定的负面影响,而且运行效率较低。与前者相比,不需要使用滑动窗口对人脸图像进行扫描并分类的直接预测法要更为高效,文献[4-6]直接用回归器定位人脸图像的人脸关键点,人脸关键点的位置随着迭代而更新直到收敛。文献[7-8]首先从带有人工标注关键点坐标的训练样本中学习到模型,利用学习到的模型直接对人脸图像的关键点坐标进行估计,这种方法明显要优于其他的大部分方法,尤其在运行效率上要远高于分类法。近来,文献[9-11]提出了一种由分类法和直接预测法结合改进而来的由粗到细的定位方法,该方法可以一定程度上提高定位算法的准确性。这类方法在第一次粗定位到的人脸关键点的基础上,再次估计更为精确的人脸关键点位置。大部分定位方法都面临着提取到的特征不足以准确定位人脸关键点,选择合适的特征提取方法就变得尤为重要。在整个人脸区域图像提取到的纹理信息特征包含丰富的信息,若是使用该特征进行人脸关键点定位,通过分类器或回归器进行精确定位显得异常困难。
为了解决上述问题,本文提出使用级联卷积神经网络(CNN)来对人脸关键点进行定位。卷积神经网络以整个人脸图像为输入,其深层的网络结构可以充分地提取到人脸图像的纹理信息特征,在该特征上进行人脸关键点定位可以达到较高的准确性和可靠性。同时在高性能GPU加速和深度学习框架[12-13]下,可以快速地完成卷积神经网络的训练。仅使用单个卷积神经网络即可准确且高效地定位到人脸关键点,然而仍一定程度上存在着些许误差,通过级联的第二层卷积神经网络进行修正,可以有效降低定位误差。
卷积神经网络是传统人工神经网络与深度学习相结合而提出的新型人工神经网络,其在模式识别领域的表现要远超大部分的传统方法,尤其在人脸识别、字符识别等图像分类领域取得令人惊讶的成果,甚至在人脸识别领域上已经超越人类。
卷积神经网络通过引入权值共享、局部感知以及池化层对传统的神经网络结构进行优化。卷积神经网络中卷积层神经元只与上一层的小范围内的神经元相连接,而不是与上一层所有的神经元进行相连,且处于同一特征映射面上的神经元权值是共享的。权值共享和局部感知策略的应用,大幅度减少了需要学习的参数,使得卷积神经网络的训练更为高效。池化层输出的特征具有平移、旋转空间等不变性,使得卷积神经网络对平移、旋转等影响具有良好的鲁棒性。通过卷积层和池化层的交替使用,卷积神经网络完成了对图像特征从局部到全局的学习过程。
常见的CNN模型中,通常以卷积层和池化层交替使用,即通过卷积层计算特征映射图,再利用池化层降低特征映射图的尺寸,且保持特征的旋转和平移特性,在特征映射图尺寸和层数达到要求时,将二维的特征映射图按顺序排列起来转换为一维的特征,再与全连接层进行连接。卷积层的运算过程可以表示为:
(1)
式中:X(l,k)表示第l层输出的第k组特征映射图,nl表示第l层特征映射图的层数,W(l,k,p)表示第l-1层中第p组特征映射图向第l层中第k组特征映射图映射时所用的滤波器。第l层的每一组特征映射图的生成都需要nl-1个滤波器和一个偏置,假设滤波器的大小为h×w,那么第l层卷积层的参数数量为nl-1×nl×h×w+nl。
常见的池化操作有最大值池化、均值池化等,本文的卷积神经网络仅使用了最大值池化。池化操作后,特征映射图的大小会根据步长step,缩小至原先的1/step。最大值池化的一般形式可以表现为:
(2)
式中:X(l+1,k)(m,n)为第l+1层输出的第k组特征映射图坐标(m,n)处的值;s为池化窗口的大小,step为池化窗口移动时的步长,本文中s和step均设置为2。
卷积神经网络在反向传播以最小化误差函数为目的,来更新神经元之间的所有连接权值和偏置。考虑到人脸关键点定位任务,采用平方和损失函数,它可以表示为:
(3)
式中:N为神经网络输出层节点数,y为神经网络的预测值,d为人工标注值。
本文使用随机梯度下降[14]算法对神经元之间的所有连接权值和偏置进行更新,则最终的损失函数的表现形式为:
(4)
式中:m为每次反向传播时所用训练样本的数量,W为网络中每一层的权重矩阵。
卷积神经网络中的权重矩阵W在反向传播时进行更新,在网络训练开始前,以随机值矩阵W0对网络进行初始化,t+1次迭代后更新的权重矩阵Wt+1可以表示为:
(5)
由于姿态、光照、遮挡以及分辨率等影响,使用单个卷积神经网络定位的关键点仍存在一定程度的误差,而级联卷积网络的运用可以有效降低误差。人脸关键点定位算法共训练6个卷积神经网络,如图1 所示。首先以人脸检测器检测到的人脸图像作为输入,第一个卷积网络作为第一层实现对所有关键点的粗定位实现。人脸关键点包括双眼、鼻尖和双侧嘴角,共计5个点。通过粗定位预测到的关键点,按照双眼到嘴巴中心的距离对图像进行缩放,随后再以关键点为中心,裁剪出5个局部区域图,第二层的5个卷积网络将完成人脸关键点的精确定位。
2.1 级联卷积神经网络结构
本文设计的级联卷积神经网络,第一层的卷积神经网络F1的输入为整张人脸,输入由人脸检测器检出,缩放至112×112大小,F1可以对双眼、鼻尖和双侧嘴角进行粗定位。第二层的卷积神经网络分别为LE、RE、N、LM、RM,这些网络要分别定位左眼、右眼、鼻尖、左侧嘴角、右侧嘴角。第二层的网络模型结构相同,输入均为32×32的图像,
根据F1定位到的关键点计算双眼中心到双侧嘴角中心的距离,并按照比例对图像进行缩放,使该距离为48,随后在缩放后的图像上,分别裁剪出5块以F1定位到的关键点为中心,大小为32×32的图像。第二层的5个卷积神经网络分别对5个局部图像进行单点定位,相比与F1定位到的关键点而言,第二层的卷积网络定位的坐标要精确许多。
图1 人脸关键点定位算法流程图
2.2 各级卷积神经网络结构
人脸定位算法使用了2种不同结构的卷积神经网络网络,第一层和第二层的网络结构不同,LE、RE、N、LM、RM结构相同。第一层采用了CNN模型A结构,以112×112×3的图像作为输入,输出分别为所有关键点的坐标。第二层采用了CNN模型B结构,以32×32×3的图像为输入,输出单个关键点坐标。CNN模型A和B均由7层卷积层、3层池化层和2层全连接层组成,模型A、B的具体结构参数见表1 。为了保持卷积处理后,图像尺寸的变化,在卷积操作前,大部分卷积层都对输入特征图进行了边缘零填充。
表1CNN模型A、B的结构
与文献[15]中采用3层级联的网络不同,本文仅使用了2层,第一层卷积神经网络完成关键点的粗定位,第二层的卷积神经网络进行5次精确的单点定位。在F1中,输入大小为112×112×3的整张人脸,卷积层Conv1使用了64个不同的卷积核对人脸图像的不同纹理和边缘特征进行学习。随着卷积层和池化层的交替使用,特征映射图的长宽不断变小,层数不断增加,Con42输出的特征映射图同全连接层Fc1进行连接,Fc1输出的160维的特征将作为最后的关键点坐标定位。全连接层Fc2根据Fc1输出的特征,进行最终的关键点坐标预测。模型A中的Fc2输出为10维,用于5点定位,而模型B的Fc2层输出为2维,用于单点定位。Drop层引入Dropout[16],通过随机将神经元的部分输出置零,来提升网络的泛化能力,Dropout只在训练环节时使用。
3.1 训练数据的扩充及预处理
本文实验数据均来自文献[15],其中包含13 466个人脸图像,所有人脸图像都有相关坐标标注信息,训练卷积神经网络的过程中,10 000张图像作为训练集,3 466张图像作为测试集。仅10 000张图像作为训练集是远远不够的,数据增强可以有效提高卷积神经网络的表现,通过顺时针和逆时针分别旋转16°与8°对训练数据进行扩充,随后通过镜面翻转再次进行扩充,最终获得80 000个训练数据。由于图像中存在大量无关的背景,需要通过人脸检测器检出人脸区域。第一层的F1将在这80 000个数据集上进行训练。
在F1训练完成后,使用F1对训练数据集进行关键点定位,根据比例将双眼中心到嘴角中心的距离调整至48像素。随后以F1定位的关键点为中心,并对该坐标进行5次小幅度随机偏移后,裁剪出32×32的人脸局部图像。最终可以收集到250万个人脸局部图像,第二层的LE、RE、N、LM、RM分别使用其中的50万个数据进行训练。
实验使用开源深度学习框架Caffe[12]来完成卷积神经网络的训练,并使用Python语言完成代码编写,硬件平台为i5-4590,3.3GHz的处理器,内存为8GB,显卡为GTX960,内含GPU,系统为Windows7。图2 为本文算法的人脸关键点定位测试效果图,其中第一行图像在人脸关键点定位时仅使用了一个卷积神经网络,即F1,可以发现定位算法仍存在瑕疵,定位不够精确,第二行图像使用的定位算法为本文提出的级联卷积神经网络算法,在表情、遮挡物、扭曲等影响下,该算法仍可以精确定位人脸图像关键,精确度得到了明显提升。
图2 人脸关键点定位效果对比图
3.2 实验测试
表2 为卷积神经网络训练时所用的验证集的测试结果,该验证集仅用于测试网络泛化能力。从表2 中可以看出,单个卷积神经网络在测试样本上的总平均误差以及单个点的平均误差均远高于级联卷积神经网络,本文提出的算法提高了关键点定位的精确度。图3 是LFPW[1]人脸库中部分图像的人脸关键点定位效果,可以看出在姿态偏转严重、以及各种表情下仍能准确地定位到人脸关键点。表2 与表3 中的误差均为定位误差err的平均值。
表2 不同模型误差对比
图3 基于级联卷积神经网络的人脸关键点定位效果图
表3 不同算法误差对比
单CNN(F1)方法在GPU模式下,进行一次人脸关键点定位,仅需要3.3毫秒。在相同的测试环境下,本文提出的级联CNN方法中级联的第二层CNN需要耗时12.6毫秒,总耗时15.9毫秒,而CPU模式下总耗时23.1毫秒。
卷积神经网络的训练过程需求很高的内在并行度,并存在着大量的浮点数据运算以及大规模的矩阵运算,有着高度并行结构的图形处理器可以很好的解决这些问题。在相同情况下,GPU模式下的卷积神经网络训练速度远超于CPU模式下的训练速度。在CNN(F1)的训练过程中,GPU模式下迭代1000次用时仅为34.7秒,而CPU模式下用时611.3秒,GPU模式下Caffe训练卷积神经网络的速度是CPU的17.6倍。使用支持GPU加速的开源深度学习框架Caffe可以大幅度缩短卷积神经网络的训练耗时。
3.3 与其他算法的对比
为了与其他算法相比较,本文将在LFPW人脸数据库进行测试,该数据库由1432张人脸图像组成,其中训练集有1132张图像,测试集有300张脸图像。LFPW主要用于在非限制环境下,如姿态、表情、光长存在很大差异,以及遮挡物存在的情况下测试人脸关键点定位算法。本文仅获得训练集中的781个图像和测试集中249个图像的关键点人工标注信息,由于部分人脸图像难以被人脸检测器检测,以至于最终仅在983张人脸图像上进行了测试,结果见表3 。从表3 可以看出,本文提出的算法在相同测试样本下,与其他算法相比仍具有较好的表现,准确性更高。
本文提出的人脸关键点算法通过卷积神经网络对人脸关键点进行定位,可以快速且准确地定位到人脸关键点。在LFPW人脸库上的测试表明,通过级联卷积神经网络可以有效降低误差,算法的平均像素误差降低至1.264,且检测速度快,在GPU模式下定位一张人脸图像的关键点仅需15.9毫秒。如果可以获取到更多具有人脸关键点标注信息的数据,则最终训练出的级联卷积神经网络将具有更好的鲁棒性和准确性。文中提出的算法对光照、遮挡、姿态、表情等干扰,表现出较好的抗干扰能力,将该算法应用于人脸识别程序中,必然可以提高人脸识别的准确率。
[1]BELHUMEUR P N,JACOBS D W,KRIEGMAN D J,et al.Localizing parts of faces using a consensus of exemplars.IEEE Transactions on Pattern Analysis & Machine Intelligence,2013,35(12):545-552.
[2]LIANG L,WEN F,SUN J.Face alignment via component-based discriminative search//Proceedings of the 10th European Conference on Computer Vision,Marseille,France,October 12-18,2008:72-85.
[3]RAMANAN D,ZHU X.Face detection, pose estimation, and landmark localization in the wild.Computer Vision and Pattern Recognition,2012,157(10):2879-2886.
[4]GAO X D,WEI Y,WEN F,et al.Face alignment by explicit shape regression.International Journal of Computer Vision,2014,107(2):177-190.
[5]COOTES T F,EDWARDS G J,TAYLOR C J.Active appearance models.IEEE Transactions on Pattern Analysis & Machine Intelligence,2001,23(6):681-685.
[6]FANELLI G,GALL J,DANTONE M,et al.Real-time facial feature detection using conditional regression forests.Computer Vision & Pattern Recognition,2012,157(10):2578-2585.
[7]KIMURA M,YAMASHITA T,YAMAUCHI Y,et al.Facial point detection based on a convolutional neural network with optimal mini-batch procedure//Proceeding of 2015 IEEE International Conference on Image Processing,Quebec,Canada,September 27-30,2015:2860-2864.
[8]YAMASHITA T,WATASUE T,YAMAUCHI Y,et al.Facial point detection using convolutional neural network transferred from a heterogeneous task//Proceeding of 2015 IEEE International Conference on Image Processing,Quebec,Canada,September 27-30,2015:2725-2729.
[9]SAUER P,COOTES T,TAYLOR C,et al.Accurate regression procedures for active appearance models.Bmvc,2011,1(6):681-685.
[10]REN S,CAO X,WEI Y,et al.Facealignment at 3000 FPS via regressing local binary features.IEEE Transactions on Image Processing,2014,25(3):1685-1692.
[11]YU X,HUANG J,ZHANG S,et al.Pose-Free facial landmark fitting via optimized part mixtures and cascaded deformable shape model//Proceeding of 2013 IEEE International Conference on Computer Vision,Sydney,December 1-8,2013:1944-1951.
[12]JIA YQ,SHELHAMER E,DONAHUE J,et al.Caffe:convolutional architecture for fast feature embedding//Proceedings of the 22nd ACM international conference on Multimedia,Orlando,Florida,USA,November 3-7,2014:675-678.
[13]ABADI M,AGARWAL A,BARHAM P,et al.TensorFlow:large-scale machine learning on heterogeneous distributed systems.Google Research whitepaper,2016.
[14]BOTTOU L.Stochastic gradient descent tricks.Berlin Heidelberg:Springer,2012:421-436.
[15]SUN Y,WANG X,TANG X.Deep convolutional network cascade for facial point detection.Computer Vision and Pattern Recognition,2013,9(4):3476-3483.
[16]SRIVASTAVA N,HINTON G,KRIZHEVSKY A,et al.Dropout:a simple way to prevent neural networks from overfitting.Journal of Machine Learning Research,2014,15(1):1929-1958.
[17]BOLME D S,DRAPER BA,BEVERIDGE J R.Average of synthetic exact filters//Proceeding of 2012 IEEE Computer Society Conference on Computer Vision & Pattern Recognition,SanDiego,California,June 20-26,2009:2105-2112.
[18]杨海燕,蒋新华,聂作先.基于并行卷积神经网络的人脸关键点定位方法研究.计算机应用研究,2015,32(8):2517-2519.
Facial Points Detection Based on Cascade Convolutional Neural Network
CHENRui1,2,LINDa1,2
(1.School of Automation & Information Engineering, Sichuan University of Science & Engineering,Zigong 643000, China;2.Artificial Intelligence Key Laboratory of Sichuan Province, Zigong 643000, China)
Suffered from facial pose, expressions, occlusions and illumination, there is usuallylager errorsin thefacial points detection. In order to detect facial points accurately and reliably, a method based on cascade convolutional network is proposed. Using the face image detected from face detector as input, all of 5 facial points are detected bythe first level CNN directly. After then 5 images from the facial points are cropped, and each of the points is predicted singly by the second level CNN with 5 different CNN. The mean error of all points is reduced to 1.264 pixel in test phase by the cascade convolutional network method. The experiments on LFPW database show that this method outperforms single CNN method and many other methods in both detection accuracy and reliability. This method process one face image takes approximately 15.9 ms on a standard GPU (graphics processing unit).
facial points; convolutional neural network (CNN); deep learning
2016-11-06
陈 锐(1990-),男,安徽六安人,硕士生,主要从事模式识别与人工智能方面的研究,(E-mail)573743392@qq.com
1673-1549(2017)01-0032-06
10.11863/j.suse.2017.01.06
TP391.41
A
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!