基于卷积神经网络的人脸年龄估计方法
2018-10-21杨国亮张雨
杨国亮 张雨
[摘要]针对年龄估计算法中使用单一标签编码方式的问题,提出一种基于高斯分布的标签分布取代原有的编码方式,通过这种方式,一张人脸图像不仅可以用于它本身年龄的学习,也可用于其相邻年龄的学习。设计一种与之相适应的卷积神经网络,通过标签的概率分布与输出的类别概率之间的KL距离对网络进行训练,网络结构较小,所需训练时间更短,即使在训练图片数量有限的情况下依然能保证较好的准确率。
[关键词]年龄估计;卷积神经网络;标签分布
[中图分类号]TP 39141[文献标志码]A[文章编号]10050310(2018)01005906
Facial Age Estimation Method Based on Convolutional
Neural Network
Yang Guoliang, Zhang Yu
(School of Electrical Engineering and Automation,Jiangxi University of Science and Technology,
Ganzhou Jiangxi 341000,China)
Abstract: Aiming at the problem of singlelabel coding method in facial age estimation, label distribution based on Gaussian distribution is proposed to replace the original coding method. In this way, a face image can be used not only for its own age learning, but also for its adjacent age learning. A convolutional neural network is proposed to train the network by the KullbackLeibler divergence distance between the label distribution and the probability of the output.The network is small and needs shorter training time, even in the case of limited number of training images can still guarantee a better accuracy rate.
Keywords: Age estimation; Convolutional neural network; Label distribution
0引言
人脸包含性别、年龄、表情和身份等重要信息,尤其在现代社交平台和娱乐互动的驱动下,人脸年龄估计已成为一个极具發展潜力的前沿技术,也是人机互动和计算机视觉的重要研究领域。然而人脸年龄估计也是计算机视觉的难点所在,主要包含以下4点原因:第一,获取的人脸图片中存在大量的干扰,如表情、光照、姿态和遮挡等,尤其现在拍摄的人脸图片存在大量的背景干扰;第二,每个人脸存在较大的个体差异,随着年龄的增长人脸发生变化的模式各不相同,如有些人脸型变化比较大,有些人皱纹增长的比较快,虽然共性相似但是因个体不同而千变万化,因此给年龄估计算法提出了很高的要求;第三,年龄具有一定的时序性,相近年龄的人脸特征存在一定的关联,因此不能把年龄估计看作一种简单的分类问题,将每个年龄作为一个单一标签存在一定的不合理性;第四,现在基于卷积神经网络的年龄估计倾向于使用越来越大的网络结构,这就需要大量的训练图片和训练时间,限制了研究的实用性。
1相关工作
人脸年龄估计问题一般当作回归问题或者分类问题来处理。在回归问题中,通过使用经典的回归方法如支持向量回归(Support Vector Regresion,SVR)或偏最小二乘法(Partial Least Squares,PLS)直接回归年龄值。Guo等[1]采用基于核函数的偏最小二乘算法(Kernel Partial Least Squares,KPLS)回归进行年龄估计,该方法在降低特征维度的同时学习人脸老化的过程并且可解决多任务问题。在分类问题中,Geng等[2]提出的将年龄看做模式子空间或多重子空间,方法是将一个个体的所有人脸图片按照年龄从小到大的顺序排成一个序列,并用主成分分析法提取人脸的特征向量,再将提取的特征向量按年龄从小到大的顺序组合成描述该人脸年龄特征的年龄模式空间。
北京联合大学学报2018年1月
第32卷第1期杨国亮等:基于卷积神经网络的人脸年龄估计方法
近年来随着深度学习的快速发展,卷积神经网络(Convolutional Neural Network,CNN)被广泛应用于计算机视觉领域。相比于传统的人工提取特征的方法,卷积神经网络不需要一定的先验知识,输入训练图片就可以自动学习图像特征并且具有很强的鲁棒性。Levi等[3]使用少量训练图片在一个5层的CNN模型上取得了较好的准确率,但年龄是被分为多个年龄段,不能预测年龄的准确值。Wang等[4]将CNN当作一个特征提取器,提取CNN各卷积层的特征并且将其融合后,再训练SVR以达到年龄估计的目的。基于CNN的年龄标签的编码方式一般是单一标签或多标签,但是这样有很大的弊端,单一标签忽略了相近年龄的信息,而简单的多标签赋予多个标签相同的权值,不符合人脸变化的特性。
本文的相关工作包括:1) 使用标签分布的方式对人脸图像的年龄标签进行编码;2) 提出一种结构小、识别率高的卷积神经网络。
2年龄估计
21年龄估计框架
根据对现有年龄估计算法[5]的总结并结合本文的方法,年龄估计分为3个主要步骤:人脸图像预处理、特征提取和训练年龄估计模型。卷积神经网络作为一个特征提取器可以自适应地提取人脸年龄的相关特征,本文主要对图像预处理和训练卷积神经网络这2部分做了相关的工作,估计框架如图1所示。
22改进的卷积神经网络
本文选择较小的网络结构,因为过大的网络[67]容易过拟合而较小的网络更容易收敛,在样本数量较小时也可以进行训练并达到良好的测试效果。整个网络只有4个卷积层和2个全连接层,和现在较为流行的大型网络结构(如VGGNet和ResNet[8]等)相比大大减少了网络参数。后2个卷积层使用的是GoogleNet[9]的Inception模块,在同等特征图数量的情况下可以降低计算量,通过不同尺度大小的卷积核可以更多的提取人脸图像特征,并且对由不同大小卷积核(1×1,3×3,5×5)生成的特征图具有一定的特征整合作用,对年龄估计的准确率有所提高。图2从左至右分别为原始和改进的Inception模块。
GoogleNet中的Inception模块在每个卷积核前使用1×1的卷积进行降维,导致由不同尺度的卷积核生成的特征图数量不相等。我们为了保证各尺度的卷积核公平竞争采用相同数量的卷积核进行滤波[10],这样网络可以提取各尺度下的特征。在每个卷积操作后接1个下采样以保证提取的特征图大小相同,最后通过1个合并层将各特征图串联。
23基于标签分布的标签制作
人脸的年龄估计具有一定的特殊性,不能被作为一种简单的分类问题来对待,然而对每张人脸图像标记的单一标签,已经在无形中将年龄分为不同的类。而且年龄具有一定的时序性和关联性,比如一张19岁的人脸图像和一张20岁的人脸图像,在年龄特征上具有较高的相似性,将其作为不同的标签来进行分类存在不合理性,图3是MORPH数据
受此观察的启发,本文提出的基本思想是在学习特定年龄的人脸图像的同时学习相邻年龄的图像,通过引入新的编码方法[12]来实现,即将标签分布分配给每个图像,而不是使用单一标签对人脸图像进行标注。标签分布涵盖一定数量的邻近年龄,代表每个年龄描述面部外观的程度。使用合适的标签分布训练的网络不仅能够学习其本身年龄的人脸图像,而且能够学习其邻近年龄的人脸图像特征[1314]。
我们将人脸图像的年龄记为A,A={1,2,…,a},第b张人脸图像的标签分布为Lb=(l1b,l2b,…,lab),假设该人脸的年龄为c∈A,该年龄及其相邻年龄分布为
{c-2,c-1,c,c+1,c+2},那么该人脸图像的标签分布为:
lcib=Z×e-(ci-c)22σ2 ,(1)
即均值为c,标准差为σ的离散高斯分布,Z是归一化因子使式(1)满足ai=1lcib=1,对于年龄分布以外的年龄段,我们令lcib=0。由此可以看出,中心年龄的年龄特征描述程度最高,随着年龄与中心年龄差值的增加,年龄特征描述程度逐渐降低。
在训练卷积神经网络阶段,使用KL距离来计算标签分布与一次前向传播生成的类别概率之间的差异,表达式为:
DP||Q=iPilogPiQi 。(2)
其中P为年龄标签分布,Q为网络一次前向传播计算的类别概率,再通过反向传播以达到训练网络的目的。
3实验与分析
31实验数据集
本文在MORPH数据集[11]和FGNET数据集[15]上进行实验,MORPH数据集共有55 134张彩色人脸图像,年龄范围为16~77岁,大部分的人脸图像年龄分布在20~40岁年龄段,60岁以上的人脸图像数量较少。FGNET数据集包含了1 002张人脸图像,年龄范围为0~69岁,数据集图像较少,尤其50岁以上有些年龄甚至没有数据。
将两个数据集进行融合以弥补部分年龄段图像缺乏的情况,然而融合后的数据集各年龄段的人脸图像数量不均衡,未成年和老年的数量较少,不利于網络的训练和年龄估计的准确率,因此本文将部分年龄段的人脸图像进行扩增。首先将原始的人脸图像像素缩放到256×256,再从图像的4个边角和正中间裁剪出5张像素大小为224×224的图片,这样1张图片就扩充为5个样本,在测试阶段,扩增样本的最终年龄取5张样本测试结果的平均值。
32网络初始化与训练
实验中使用的卷积神经网络基于Caffe框架[16]实现,显卡型号为GTX1070、显存为8G。由于网络的初始化较慢,本文使用IMDBWIKI训练集[17]进行预训练,该数据集含有50多万张图片,但是存在错误年龄标签和人脸图像不匹配的情况,因此筛选其中的10万张图片进行预训练并得到初始模型,本文的实验部分均是在该初始模型上微调进行的。
本文训练卷积神经网络使用的是梯度下降法,动能系数为09,权值衰减系数为0000 5。其中,权值衰减系数是卷积神经网络的重要参数,可以有效降低训练学习过程的错误率,权值更新如式(3)和(4)所示:
vi+1=09vi-0000 5·ε·wi-ε〈Lw|wi〉Di,(3)
wi+1=wi+vi+1,(4)
其中i为迭代索引,v是动能系数,ε是学习率。初始训练时学习率设置为001,随着迭代次数的增加逐渐降低学习率。
33年龄估计评价指标
在年龄估计的研究中采用的评价指标主要采用平均绝对误差(Mean Absolute Error,MAE),平均绝对误差是指估计年龄和真实年龄差值的绝对值的平均,表达式为:
MAE=1NNi=1|yi-y′i|,(5)
其中,yi和y′i分别是人脸图像的真实年龄和估计年龄,N是测试样本的总数。该评价指标可以直观反映出估计值与真实值偏离的程度。
累積指数(CS)是另一种年龄估计评价指标,反映在不同误差下年龄估计的准确率,计算如式(6)所示。e是真实年 龄与预测年龄差值的绝对值,l是差值阈值,Ne≤l是测试样本中真实年龄与预测年龄差小于l的样本数量,N是测试样本总数。
CSl=Ne≤lN×100%。(6)
34实验分析与评价
本文在MORPH数据集、FGNET数据集以及二者融合的数据集上展开实验,分别使用CS和MAE评价指标对实验效果进行评估,同时和近几年具有代表性的人脸年龄估计算法进行对比。
341实验1
首先在融合的数据集上进行实验,在保持各年龄段样本数量和男女比例相近的情况下随机抽取其中的10000张,其中8000张训练样本和2000张测试样本。使用累积指数对实验结果进行对比,年龄的差值阈值设置为0~5,结果如图4所示。
从图4可以看出,在使用了标签分布的基础上,年龄估计的准确率比单一标签的编码方式明显提高,并且随着年龄差值阈值的增大,准确率的提升更加明显。因此可以得出,使用标签分布的方法可以提高年龄估计的准确率。
在以上实验训练的基础上,不再使用融合数据集的测试样本,而是使用MORPH数据集作为测试样本,对比本文方法和年龄估计具有代表性的方法的实验结果,如图5所示。本文方法的准确率明显高于传统的支持向量回归(Support Vector Regresion,SVR)和支持向量机(Support Vector
Machine,SVM)的方法,相比Wang等[4]简单地将年龄作为单一标签的编码方法,本文使用的标签分布方法能够学习相近年龄的特征,并且不需要提取CNN特征图再训练,在年龄误差阈值较小时准确率略高于其他方法,随着年龄误差阈值的增大,准确率明显高于其他方法。
342实验2
从融合的数据集中随机选取50 000张作为训练样本,使用标签分布的方法对卷积神经网络进行训练,在测试阶段分别使用MORPH和FGNET数据集进行测试,并使用平均绝对误差对实验结果进行评价,表1对比了本文方法和近几年具有代表性算法的MAE值。相比文献[18]超平面排序的方法,本文的标签编码方式更为简单;相比文献[19]使用局部二值特征学习的方法,本文基于深度学习
的方法更具有通用性,可以自学习人脸的年龄特
征;与文献[20]使用融合的网络结构相比,本文的CNN模型更为精简且需要的计算量更小。
4结束语
本文优化了人脸图像数据集的年龄标签,通过标签分布对人脸图像进行标注,摒弃了原有单一标签的方法。人脸随着年龄的增长会发生一系列的变化,然而这个变化是一个缓慢而平稳的过程,相近年龄的人脸特征具有很大的相似性,传统的单一标签将每个年龄分为一个单独的类别对于年龄这样的回归问题存在很大的不合理性。提出的标签分布方法可以有效解决该问题,不仅可以用于本身年龄的学习还可以用于相近年龄的学习,同时本文使用了一个较小的改进型卷积神经网络,结合标签分布的方法,即使在训练样本较少时依然保证较高的准确率。本文只是对相近年龄的相似性进行了学习,忽略了相近年龄的差异性,接下来的工作将对这方面进行研究。
[参考文献]
[1]Guo G, Mu G. Simultaneous dimensionality reduction and human age estimation via kernel partial least squares regression[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2011:657-664.
[2]Geng X, Zhou Z H, Smithmiles K. Automatic age estimation based on facial aging patterns[J]. IEEE Transactionson Pattern Analysis & Machine Intelligence, 2007, 29(12):2234-2240.
[3]Levi G, Hassncer T. Age and gender classification using convolutional neural networks[C]// Computer
Vision and Pattern Recognition Workshops. IEEE, 2015:34-42.
[4]Wang X, Guo R, Kambhamettu C. Deeplylearned feature for age estimation[C]// Applications of Computer Vision. IEEE, 2015:534-541.
[5]Eidinger E, Enbar R, Hassner T. Age and gender estimation of unfiltered faces[J].IEEE Transactions on Information Forensics & Security, 2014,9(12):2170-2179.
[6]Parkhi O M, Vedaldi A, Zisserman A. Deep face recognition[C]// British Machine Vision Conference.2015:41.
[7]Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the Acm, 2012, 60(2):1097-1105.
[8]He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]// Computer Vision and Pattern Recognition. IEEE, 2016:770-778.
[9]Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// Computer Vision and Pattern Recognition. IEEE, 2015:1-9.
[10]Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing coadaptation of feature detectors[J]. Computer Science, 2012, 3(4):212-223.
[11]Ricanek K, Tesafaye T. MORPH: a longitudinal image database of normal adult ageprogression[C]//International Conference on Automatic Face and Gesture Recognition. IEEE, 2006:341-345.
[12]Hu Z, Wen Y, Wang J, et al. Facial age estimation with age difference[J].IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society, 2017, 26(7):3087-3097.
[13]Yang X, Gao B B, Xing C, et al. Deep label distribution learning for apparent age estimation[C]// IEEE International Conference on Computer Vision Workshop. IEEE, 2015:344-350.
[14]Geng X, Ji R. Label distribution learning[C]// IEEE, International Conference on Data Mining Workshops. IEEE Computer Society, 2013:377-383.
[15]Panis G, Lanitis A, Tsapatsoulis N, et al. Overview of research on facial ageing using the FGNET ageing database[J]. Iet Biometrics, 2016, 5(2):37-46.
[16]Jia Y, Shelhamer E, Donahue J, et al. Caffe: convolutional architecture for fast feature embedding[C]//Proceedings of the 2014 ACM International Conference on Multimedia.New York:ACM, 2014:675-678.
[17]Rothe R, Timofte R, Gool L V. DEX: deep expectation of apparent age from a single image[C]// IEEE International Conference on Computer Vision Workshop. IEEE, 2015:252-257.
[18]Chang K Y, Chen C S, Hung Y P. Ordinal hyperplanes ranker with cost sensitivities for age estimation[C]// Computer Vision and Pattern Recognition. IEEE, 2011:585-592.
[19]Lu J, Liong V E, Zhou J. Costsensitive local binary feature learning for facial age estimation[J]. IEEE Transactions on Image Processing, 2015, 24(12):5356-5368.
[20]Liu H, Lu J, Feng J, et al. Groupaware deep feature learning for facial age estimation[J]. Pattern Recognition, 2016, 2(4):101-112.
(責任编辑白丽媛)