人脸承载了许多重要的个人信息,包括身份、性别、年龄、情绪和健康状况等。年龄估计作为新兴的生物特征识别技术,有着广泛的潜在应用:限制未成年人购买烟酒、枪械、危险化学品和特殊药品等;智能人机交互系统可以根据交流对象的年龄段改变用词;网络应用中可以根据用户年龄段提供个性化营销;执法人员根据监控视频中的嫌疑人年龄段缩小搜索范围[1]。基于人脸图像的年龄估计技术仍然是极具挑战性的问题,这主要包含以下三点原因:1) 不同个体的年龄变化模式差异较大。从内因来看,不同人种、不同性别的年龄变化过程有较大区别;从外因来看,不同生活方式、不同生活环境也对衰老过程有一定影响。2) 缺乏足够的有年龄标注的数据集,年龄变化是不可逆的过程,人脸图像数据采集困难。3) 现有的人脸图像包含了很多其他干扰信息,如:人脸表情、姿态和脸部遮蔽等[2-3]。这些原因都会影响年龄估计方法的精度。
传统的年龄估计方法通常分为两个部分:特征提取和估计方法。余棉水等[2]采用局部定向模式(Local Direction Pattern, LDP)和Gabor小波变换分别提取人脸的全局和局部特征,经过特征融合后再使用主成分分析法(Principal Component Analysis, PCA)进行降维,最后利用支持向量回归(Support Vector Regression, SVR)模型进行年龄估计;但是该方法只提取了脸部皱纹这一局部特征,皱纹不能充分反映年龄的变化。林时苗等[3]引入了方向梯度直方图(Histogram of Oriented Gradients, HOG)特征,将其与局部二元模式(Local Binary Pattern, LBP)特征进行融合,并提出了软双层估计模型,第一层区分“未成年人”和“成年人”两类,第二层在两类的边界设置重叠区域,对第一层的错误进行补救;但是该方法在特征提取阶段对人脸的每个局部区域都赋予了相同的权重,然而人脸各个部分随年龄的变化程度是不同的。
上述传统方法采用人工设计的特征描述子来提取人脸特征,然后将年龄估计问题当作分类或者回归问题来处理。然而,设计人工特征需要特定领域的先验知识,而且这些特征也难以充分反映人脸年龄的变化过程[4]。近年来以卷积神经网络(Convolutional Neural Network, CNN)为代表的深度学习技术被广泛应用于物体识别和人脸识别等领域,并在很多基准数据集上均取得了前所未有的成果[4-5],因此,为了获得更能表达年龄信息的特征,本文所使用的分类和回归模型都基于CNN。CNN的主要优点是可以将图像直接输入模型而不进行预处理,它可以自动学习图像特征并且具有很强的鲁棒性[5-9]。
近年来已经有将CNN应用于人脸年龄估计问题的成果。Wang等[6]将人脸图像调整为60×60的大小后输入一个6层的CNN,然后提取最后一层全连接层作为特征,再训练SVR模型来估计年龄;然而该方法没有实现真正意义上的端到端学习,仍然将特征提取和年龄估计两阶段分开。Levi等[7]构建了一个5层的CNN来同时解决年龄估计和性别分类任务,将年龄估计当作分类问题来处理,该方法实现了端到端学习,也取得了较高精度;但是只能将人脸图像分入不同年龄段,不能估计出准确年龄。Yi等[8]截取出每张人脸图像的鼻子、脸颊、额头和嘴巴等多个不同部位以及整张人脸,针对这些部位分别训练出多个不同尺度的CNN,最终的年龄值为几个网络输出的均值。该方法充分利用了整张人脸的局部特征和全局特征;但是需要有人脸关键点标注的数据集,并且训练多个网络过于繁琐。Zhu等[9]使用了已训练好的VGG(Visual Geometry Group)网络,先将样本分入不同的年龄段,提取VGG网络最后三层全连接层作为特征,在每个年龄段内分别训练SVR模型和随机森林(Random Forest, RF)回归模型,SVR和RF的输出均值为最终的年龄。该方法准确度较高;但是每个年龄段都需要单独训练SVR和RF模型,导致模型数量太多流程繁琐。上述这些方法只采用了单一的分类或者回归的年龄估计模式,然而年龄变化是动态的过程,这表现在:人脸随着年龄的增长,在未成年阶段变化差异较大,而在成年阶段变化较小,至老年之后变化趋缓乃至停滞,并且在不同阶段的边界附近又是一个缓慢的过程,存在年龄段边界模糊的问题,因此,将二者有机融合可以有效提高年龄估计的精度[1, 3]。所以,本文提出了一种由粗到细的策略:先将人脸分入不同年龄段,再分别使用分类和回归模型来估计年龄。
另外,传统的基于分类模式的年龄估计把年龄值分成了若干个类别,没有考虑到不同年龄之间的相互关系,因此损失了很多重要的信息[1]。对于CNN分类模型的改进办法有:Liu等[10]提出了使用符合高斯分布的编码方式来表示年龄标签,取代了传统的独热编码方式,该方法利用了相邻年龄的相关信息,但是这种年龄编码方式较复杂不利于计算,因此,本文提出基于概率排名的分类输出计算方法,即选取概率最高的前10个年龄标签,和相应的概率值相乘得到分类结果,该方法计算更简单。
本文的主要工作如下:
1) 提出一种基于分类和回归混合模型的人脸年龄估计方法,并对其中的分类模型提出基于概率排名的输出结果计算方法。
2) 使用粗糙年龄标注的数据集对深度卷积神经网络进行预训练,然后在精确年龄标注数据集上微调。
1 年龄估计方法 1.1 总体流程人脸随年龄的变化主要分为3个阶段:青少年、中年和老年,并且在不同阶段之间存在重叠区域,这些重叠区兼有相邻阶段的特点。青少年人脸变化快,更适合分类估计;中年人脸变化慢,更适合回归估计;由于老年人脸的数据量稀少,分类模型比回归模型的误差更低[1, 3, 11]。
本文采用由粗到细的策略来估计年龄:首先,将人脸分入青少年[0,20)、重叠区一[20,30)、中年[30,50)、重叠区二[50,60)、老年[60,80]这5个年龄段,为此需要单独训练一个年龄段分类模型。然后,为了进一步估计准确的年龄,对于青少年或老年段的样本使用分类模型估计,对于中年段的样本使用回归模型估计,对于两个重叠区的样本使用两个模型估计的均值。这3个模型都基于CNN,由于CNN的接受域是固定的,图像需要调整至统一大小后再输入网络。整个年龄估计流程如图 1所示。
如果将不同的年龄当作离散的类别,就可以把年龄估计当作分类问题来处理。CNN输出层采用的是Softmax分类器,由于要预测的年龄为0至80岁,所以Softmax分类器有81个输出,分别对应一张样本属于各个年龄的预测得分,假设有一个训练集{(x(1), y(1)), (x(2), y(2)), …, (x(N), y(N))},其中:x(i)表示全连接层的输出特征向量;y(i)是这个样本的真实年龄,值为{0, 1, …, 80}中的一个;N是一批训练样本的数量。前向传播之后,对于单个训练样本,Softmax分类器的输出可以表示为:
$ {\mathit{\boldsymbol{h}}_w}({x^{(i)}}) = \frac{1}{{\sum\limits_{j = 0}^{80} {{e^{\mathit{\boldsymbol{w}}_j^{\rm{T}}{\mathit{\boldsymbol{x}}^{(i)}}}}} }}{[{e^{\mathit{\boldsymbol{w}}_0^{\rm{T}}{\mathit{\boldsymbol{x}}^{(i)}}}}, {e^{\mathit{\boldsymbol{w}}_2^{\rm{T}}{\mathit{\boldsymbol{x}}^{(i)}}}}, \cdot \cdot \cdot, {e^{\mathit{\boldsymbol{w}}_{80}^{\rm{T}}{\mathit{\boldsymbol{x}}^{(i)}}}}]^{\rm{T}}} $ | (1) |
其中:wi是全连接层中的神经元与Softmax分类器第i个输出神经元相连接的权重参数;hw(x(i))是一个概率向量,向量中的各项之和为1,每一项代表该样本属于对应类别的概率值,取概率最大的那个类别作为Softmax的分类结果。用Softmax分类器时,损失函数一般采用交叉熵,即:
$ \begin{array}{l} J(\mathit{\boldsymbol{W}}, b) = \\ -\frac{1}{N}\sum\limits_{i = 1}^N {\sum\limits_{j = 0}^{80} {\left( {1\{ {y^{(i)}} = j\} \ln \left( {\left( {{e^{\mathit{\boldsymbol{w}}_j^{\rm{T}}\mathit{\boldsymbol{x}}(i)}}} \right)/\left( {\sum\limits_{k = 0}^{80} {{e^{\mathit{\boldsymbol{w}}_k^{\rm{T}}{\mathit{\boldsymbol{x}}^{(i)}}}}} } \right)} \right)} \right)} } \end{array} $ | (2) |
其中:1{y(i)=j}表示当第i个训练数据的类别属于第j类时输出为1。
然而,这种分类方法没有充分利用相邻年龄之间的相关性,例如:对于标签是24岁的样本,估计值是26和估计值是28这两种情况下的损失函数值一样,但实际上估计值是26这种情况更接近于真实年龄24。这导致依靠最大概率的分类网络在预测年龄的时候准确率较低,因此,本文提出一种依靠概率排名来计算分类结果的方法,在实验中,概率前5的类别中包含正确年龄的准确率是60%左右,而概率前10的类别包含正确年龄的准确率是90%左右,于是取概率前10的类别来计算分类年龄,即:
$ E = \sum\limits_{i = 0}^{10} {{y_i}{p_i}} $ | (3) |
其中:yi是概率前10的年龄标签;pi是对应的概率值。图 2展示了按照概率排名的分类方法。
CNN原本是用于分类问题,为了处理回归问题,文献[7, 9]将训练好的CNN用于提取特征,再训练SVR或者RF模型,但是这样做没有实现端到端学习。如果使用原始年龄标签来训练网络,网络会因为尺度不平衡而导致梯度爆炸问题[10],因此,原始的CNN最后一层只有一维输出,为了能使网络能正常训练,在一维输出后再加上一个Sigmoid层用于归一化输出值。同时,所有训练样本的年龄标签也必须事先归一化以对应输出值,由于回归模型估计20至60岁年龄段,所以归一化时下限取20而上限取60。回归模型对网络输出的改动如图 3所示。
训练回归网络需要使用欧氏损失函数(EuclideanLoss),即:
$ EuclideanLoss = \frac{1}{{2N}}\sum\limits_{i = 1}^N {\left\| {{{\hat y}_n}-{y_n}} \right\|_2^2} $ | (4) |
其中:
在年龄估计领域,缺少有年龄标注的人脸数据集,并且现有的数据集在各个年龄段分布不均匀,主要是缺乏青少年和老年人的样本。然而CNN容易因为训练数据集过小而过拟合,导致模型性能变差,因此,本文综合运用迁移人脸识别模型、使用粗糙数据集预训练的方法。
人脸识别不同于人脸年龄估计,但是两者有很大的相关性,迁移现有模型可以充分利用其对人脸特征的提取能力。本文采用VGG-Face[5]模型,它的结构如图 4所示。
本文从互联网上收集了额外的数据集来弥补有年龄标注的人脸图像稀少的问题,主要包括IMDB-Wiki数据库[12]和CACD2000数据库[13]。这些数据库大多通过搜索引擎、社交网站和新闻媒体等手段获取人脸图像,然而这些数据库包含了众多的错误年龄标注、人物身份不匹配和艺术画作等干扰样本,本文筛选出了一个包含40万左右样本的粗糙数据集。该数据集的年龄分布范围为0至100岁,包含了不同种族、不同性别的样本。
在训练网络时,先使用VGG-Face模型的权重来初始化网络,然后在粗糙数据集上预训练,实验部分的模型均基于预训练模型微调得来。
2 实验结果与分析 2.1 实验数据集当前人脸年龄估计领域的基准数据集有Morph数据库[14]和FG-NET数据库[15]。Morph数据库包含了55134张彩色的人脸图像,这些图像大部分是黑人和白人,也含有少部分黄种人,年龄范围是16到77岁。FG-NET数据库包含了1002张彩色或者黑白的人脸图像,这些图像来自82个人,年龄范围是0到69岁。
Morph数据库主要集中在20到30岁的年龄段,缺少60岁以上样本,甚至没有在16岁以下的样本。而FG-NET数据库主要集中在青少年,中老年图像较少。单独使用某个数据集都无法得到完整年龄段的年龄估计模型,因此融合两个数据集以补全各个年龄段。然而,融合后的数据集也存在问题:黑人和白人的比例约为4:1;男性和女性的比例约为5:1;各个年龄段分布不均匀,样本主要集中在[20, 50)这一区间,而[0, 20)和[50, 80]这两区间相对较少。整个年龄分布状况如表 1。
由于融合数据集的样本数量较少,仍然难以满足VGG网络训练的需要,所以为了人工增加训练样本,本文参考了文献[4-12]的数据扩增方法,采用如下图像预处理手段:
1) 裁剪和镜像。每张图像先调整大小至256×256,再从四个角和正中间裁剪出5张224×224的样本,裁剪后的图片取正反水平镜像,这样一张图像就得到了10张样本。
2) 亮度变化。将每张样本的亮度变为0.8至1.0之间的一个随机值(1.0为原图的亮度,0.0为全黑暗)。
3) 旋转。将每张样本顺时针旋转0°至10°之间的一个随机值。
在测试阶段,对于每张测试样本,经过1)~3) 中图像预处理后得到10张样本再输入模型,最终的年龄估计值是这10个预测值的平均值。
2.3 训练参数设置实验中的CNN模型都使用Caffe[16]框架实现。硬件平台为GTX1060显卡,6 GB显存。
在预训练阶段,设置初始学习率为0.01,动量值0.95,权重衰减系数0.0005。为了加速收敛,将后3层全连接层的学习率设为全局的5倍。
在微调阶段,设置初始学习率为0.001,每迭代6000次将学习率降为原来的1/10。
2.4 实验评价指标年龄估计领域主要使用的评价指标是平均绝对误差(Mean Absolute Error, MAE),即:
$ MAE = \frac{1}{N}\sum\limits_{i = 1}^N {\left| {{y_i}-{{\hat y}_i}} \right|} $ | (5) |
其中:yi为年龄实际值;
参考Yi等[8]的实验数据集划分方式,本文分别随机选取了黑人男性、黑人女性、白人男性和白人女性这4个子类各2000张图像,每个子类按照3:1的比例划分训练集和测试集,然后将4个小训练集合并为大训练集共6000张样本。最后用大训练集来训练混合年龄估计模型,再分别在4个小测试集上进行测试。
从表 2所列的实验结果可以看出,混合年龄估计模型在4种测试集上均得到了相近的结果,MAE相差不超过0.5,在整个测试集上的平均MAE为2.65。这表明,本文提出的混合年龄估计模型受黑白不同人种、不同性别的影响较小。
参考Liu等[17]的实验数据集划分方式,从融合数据集中随机抽取10%的样本作为测试集,剩余样本作为训练集。分别采用如下三种年龄估计模式进行实验:在全年龄范围内单独使用回归;在全年龄范围内单独使用分类;本文提出的先判别年龄段,再分别使用回归和分类的方法。以上3种方法的MAE结果依次为3.10,2.93和2.56,这表明本文提出的区分年龄段的混合模型,相比单一的回归或分类方法,有着更低的误差。
表 3对比了近年来比较有代表性的参考文献和本文方法的实验结果。相比文献[3]基于人工设计的特征,本文基于深度学习的方法更有通用性,也更有效;相比文献[8]利用卷积神经网络提取人脸不同部位特征的方法,本文方法不需要事先检测人脸关键点,减少了预处理步骤;相比文献[17, 19]同样采用VGG网络学习特征的方法,本文方法得益于粗糙数据集的预训练,误差有明显降低。
本文提出了一种基于分类与回归混合模型的人脸年龄估计方法。在特征学习方面,该方法基于已有的深度卷积神经网络,先在粗糙年龄标注数据集上预训练,再在现有的精确年龄标注数据库上微调,分别得到用于年龄段判别、年龄分类和回归的3个模型;在估计方法方面,先将人脸分入5个不同的年龄段,再分别使用分类和回归模型来估计年龄。实验结果表明该方法的估计误差较低,且受不同人种、性别的影响较小。由于当前人脸年龄数据库只包含单一背景的头像,下一步的工作是研究非限制性背景、多种姿态条件下的人脸年龄估计问题。
[1] | 王先梅, 梁玲燕, 王志良, 等. 人脸图像的年龄估计技术研究[J]. 中国图象图形学报, 2012, 17(6): 603-619. (WANG X M, LIANG L Y, WANG Z L, et al. Age estimation by facial image:a survey[J]. Journal of Image and Graphics, 2012, 17(6): 603-619. DOI:10.11834/jig.20120601) |
[2] | 余棉水, 朱岸青, 解晓萌. 基于局部定向模式的人脸年龄估计[J]. 科学技术与工程, 2014, 14(3): 76-80. (YU M S, ZHU A Q, XIE X M. Age estimation of facial images based on local direction pattern[J]. Science Technology and Engineering, 2014, 14(3): 76-80.) |
[3] | 林时苗, 毛晓蛟, 杨育彬. 基于人脸图像的年龄估计[J]. 计算机科学, 2015, 42(6): 32-36. (LIN S M, MAO X J, YANG Y B. Age estimation based on facial image[J]. Computer Science, 2015, 42(6): 32-36. DOI:10.11896/j.issn.1002-137X.2015.06.007) |
[4] | 黄斌, 卢金金, 王建华, 等. 基于深度卷积神经网络的物体识别算法[J]. 计算机应用, 2016, 36(12): 3333-3340. (HUANG B, LU J J, WANG J H, et al. Object recognition algorithm based on deep convolutional neural networks[J]. Journal of Computer Applications, 2016, 36(12): 3333-3340. DOI:10.11772/j.issn.1001-9081.2016.12.3333) |
[5] | PARKHI O M, VEDALDI A, ZISSERMAN A. Deep face recognition[C]//Proceedings of the 2015 British Machine Vision Conference. London:BMVA Press, 2015:41.1-41.12. |
[6] | WANG X, GUO R, KAMBHAMETTU C. Deeply-learned feature for age estimation[C]//Proceedings of the 2015 IEEE Winter Conference on Applications of Computer Vision. Piscataway, NJ:IEEE, 2015:534-541. |
[7] | LEVI G, HASSNER T. Age and gender classification using convolutional neural networks[C]//Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Washington, DC:IEEE Computer Society, 2015:34-42. |
[8] | YI D, LEI Z, LI S Z. Age estimation by multi-scale convolutional network[C]//Proceedings of the 2014 Asian Conference on Computer Vision. Berlin:Springer, 2014:144-158. |
[9] | ZHU Y, LI Y, MU G, et al. A study on apparent age estimation[C]//Proceedings of the 2015 IEEE International Conference on Computer Vision Workshops. Piscataway, NJ:IEEE, 2015:25-31. |
[10] | LIU X, LI S, KAN M, et al. AgeNet:deeply learned regressor and classifier for robust apparent age estimation[C]//Proceedings of the 2015 IEEE International Conference on Computer Vision Workshops. Piscataway, NJ:IEEE, 2015:16-24. |
[11] | ANTIPOV G, BACCOUCHE M, BERRANI S A, et al. Apparent age estimation from face images combining general and children specialized deep learning models[C]//Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Washington, DC:IEEE Computer Society, 2016:801-809. |
[12] | ROTHE R, TIMOFTE R, VAN GOOL L. DEX:Deep EXpectation of apparent age from a single image[C]//Proceedings of the 2015 IEEE International Conference on Computer Vision Workshops. Piscataway, NJ:IEEE, 2015:10-15. |
[13] | CHEN B C, CHEN C S, HSU W H. Cross-age reference coding for age-invariant face recognition and retrieval[C]//Proceedings of the 2014 European Conference on Computer Vision. Berlin:Springer, 2014:768-783. |
[14] | RICANEK K, TESAFAYE T. Morph:a longitudinal image database of normal adult age-progression[C]//Proceedings of the 2006 International Conference on Automatic Face and Gesture Recognition. Piscataway, NJ:IEEE, 2006:341-345. |
[15] | LANITIS A, TAYLOR C J, COOTES T F. Modeling the process of aging in face images[C]//Proceedings of the 1999 IEEE International Conference on Computer Vision. Piscataway, NJ:IEEE, 1999:131-136. |
[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] | LIU H, LU J, FENG J, et al. Group-aware deep feature learning for facial age estimation[J]. Pattern Recognition, 2016, 2(4): 101-112. |
[18] | YANG H F, LIN B Y, CHANG K Y, et al. Automatic age estimation from face images via deep ranking[J]. Networks, 2013, 35(8): 1872-1886. |
[19] | ROTHE R, TIMOFTE R, GOOL L V. Some like it hot-visual guidance for preference prediction[J]. Computer Science, 2015, 6(1): 5553-5561. |