胡春龙,陈建军,徐 丹,左 欣,江登表
(江苏科技大学 计算机学院, 镇江 212100)
人脸属性分析是计算机视觉、生物特征识别研究领域的一个热点课题,包括人脸识别、表情识别等技术.人脸年龄估计同样是人脸属性分析的一个重要子课题,近年来得到广泛关注.通过年龄估计可以对未成年人实现安全控制,实现不同年龄段的个性化市场营销,为刑事侦查中的身份验证提供辅助证据,因此年龄估计研究在安全防护、人机交互、商品推荐、市场分析、人脸演化预测等领域都有广泛的应用价值[1-2].
基于人脸图像的年龄估计即根据输入图像的人脸外貌,使用计算机算法估计人脸的年龄信息.年龄信息依据划分方式可以分为大致的年龄段范围(少年、青年、中年、老年)和具体的数值标签两种类型.年龄标签根据标注方式不同,又可以分为真实年龄和表观年龄两种类型.前者的年龄标签是该人脸图像的真实生理年龄,后者的年龄标签是标注志愿者根据该人脸图像表观给出的年龄评估值.表观年龄与真实年龄相比是可变的,不同的标注者可能给出不同的表观年龄估计,但是不同标注者给出的表观年龄均值通常是高度稳定的.
尽管研究人员对年龄估计取得了一定进展,但是年龄估计仍然是一个挑战性的课题,即使是人工年龄估计也很难准确估计出一个人的具体年龄.首先,人脸具有结构复杂、变化丰富等特点,在包含年龄属性的同时,也包含了性别、种族、表情、姿态等大量属性,这些属性对年龄估计造成了一定干扰;其次,人脸年龄既与人脸的全局变化有关,如颅骨形状、皮肤色泽,也与人脸局部变化有关,如额头皱纹、眼角皱纹等;再者,因为生活习惯、遗传基因、工作环境等因素影响,每个人的年龄化过程具有很大的个性差异性;最后,人脸年龄图像的采集还受到光照、遮挡等因素影响.这些因素都会给当前年龄估计研究带来极大困难.
年龄估计研究常用的评价指标有平均绝对误差(mean absolute error, MAE)、累积指数(cumulative score, CS)和ε-error 3种.平均绝对误差是计算估计年龄和标签年龄之间的绝对值误差,其计算如式(1),式中:sk为标签年龄;s′k为估计年龄.MAE越小表示年龄误差越小,算法准确性越高.累积指数为一种度量在能接受的误差范围内的年龄估计准确率,其计算公式如式(2),式中:Ne≤j为测试集中估计年龄与标签年龄的绝对误差不超过j的测试图像数;N为测试图像总数.ε-error主要用于观年龄估计的评价,是一种同时衡量估计结果与均值和方差综合关系的评价方式,其计算如式(3),式中:μ为若干评价者给出的年龄标签均值;σ为标准差;x为预测的年龄标签.
(1)
(2)
(3)
基于人脸的年龄估计研究可以分为图像预处理、特征提取、年龄估计模型设计等步骤.图像预处理步骤主要是对图像进行人脸检测和矫正、归一化等操作;特征提取和年龄估计模型主要从人脸图像中提取与年龄密切相关的特征,并使用有效的估计模型进行年龄标签识别.此外,年龄估计数据集是另一个影响和制约年龄估计研究进展的重要因素.文中基于人脸图像的年龄估计的常用数据集、年龄特征提取、年龄模型估计3个重要部分对现有研究工作和进展进行总结.
一个高质量,大规模的人脸年龄图像数据集是高效年龄估计算法研究的基础.然而对于年龄估计而言,由于年龄属于隐私信息,其数据的大量收集存在一定困难.常用的年龄估计数据集如下.
FG-NET[3]数据集于2002年公布,是早期年龄估计最流行的数据集之一.该数据集包含了不同种族的82个对象在不同年龄的1 002张彩色或者黑白的人脸图像,年龄标签分布在0~69岁,同时每张人脸图像提供了68个人脸关键点的标注信息.
MORPH2[4]是一个大规模的数据集,包含了13 000个不同性别、不同种族的对象在不同年龄的55 608张人脸图像,其年龄标签分布在16~77岁,并且每张人脸图像提供了68个人脸关键点的标注信息.
UIUC-IFP-Y[5]年龄数据库又称为YGA数据集,收集了自然环境下的1 600个对象的共8 000张人脸图像,每张人脸图像包含丰富的光照和面部表情变化.该数据集的年龄标签分布在0~93岁.
Adience[6]包含2 284个对象的26 580张人脸图像,其图像是在真实场景下采集得到的,因此图像中包含较多的噪声和光照、姿态变化.每张人脸图像包含性别和不连续的8个年龄段标签,其年龄段标签范围为0~2岁,4~6岁,8~13岁,15~20岁,25~32岁,38~43岁,48~53岁,≥60岁.
CACD[7]包含2 000个名人共163 446张人脸图像,其年龄标签分布在16~62岁,数据集中每张人脸图像提供了16个人脸关键点的标注信息.
IAD[8]包含了从网络上收集的175 000张人脸图像,年龄标签分布在0~80岁.数据集中的人脸来自于不同种族、不同性别、不同环境,且图像具有较多的光照、姿态、表情等变化.
LHI[9]中用于年龄估计的数据集包含8 000张彩色人脸图像,男性和女性各占一半,其年龄标签分布在9~89岁,平均每个年龄有大约100张图像.
LAP[10]包含ICCV2015和CVPR2016提供的两个Looking at People Challenge竞赛表观年龄估计数据集,LAP2015共包含了4 699张人脸图像,LAP2016共包含了7 591张人脸图像.LAP数据集的年龄标签并不是真实年龄,而是标注者给出的表观年龄,标签的制定平均至少10个人的标注结果,最终每张图像标注有一个年龄均值和标注的标准差.年龄标签分布在0~100岁,但是20~40岁的人脸图像居多.
IMDB-WIKI[11]是目前最大的人脸年龄数据集,其中IMDB子集包含20 284个名人,共460 723张人脸图像,WIKI子集包含62 328张人脸图像,每张图像包含年龄和性别两个标签.该数据集中女性人脸图像居多.
AFAD[12]是一个大规模年龄数据集,包含了164 432张人脸图像,年龄标签分布在15~40岁.该数据集的样本来自于人人网,因此样本均为中国人,部分头像图片质量欠佳.
MegaAge[13]共有41 941张人脸图像,其中MegaAge-Asian包含40 000张亚洲人脸图像,数据集的年龄标签基本分布在0~70岁.
总之,上述年龄估计数据集中FG-NET、MORPH、IMDB-WIKI、MegaAge、Adience、AFAD是目前常用的公开数据集,其他数据集并未被公开发布和使用.从数据集规模和样本变化的丰富性角度,MORPH、IAD、IMDB-WIKI、MegaAge、AFAD等数据集含有比较丰富的种族、性别、表情等各种人脸属性变化,以及光照、遮挡等各种图像变化下的各年龄的人脸图像,有利于研究通用的年龄估计模型.
高效的年龄特征提取是下一步年龄估计模型设计的重要基础,也是影响年龄估计性能的关键因素.人脸在年龄化过程中的主要变化通常表现在人脸形状、皮肤亮度、人脸皱纹等方面,因此现有人工年龄特征提取的方法主要使用形状和纹理特征在合适的图像空间中表示人脸年龄,其可以归类为基于模型的特征、基于年龄模式子空间的特征、基于流形空间的特征、基于表观的特征.随着深度学习方法在图像识别领域取得巨大成功,将深度学习特征提取方法用到年龄估计研究中,提取多层次的人脸年龄特征.文中将对年龄估计中现有的特征研究方法进行总结.
人体测量学模型和主动外观模型(active appearance models, AAM)是早期的年龄估计研究中具有代表性的两种人脸图像表示方法.
人体测量学模型基于颅面发展理论,主要描述头部轮廓变化规律.文献[14]首次从正面人脸图像中计算眼睛、鼻子、嘴巴等部位的特征点之间的6种几何距离来区分婴儿和成人.人体测量学模型主要度量人脸的几何结构变化信息,因而对于区分成年人和未成年人比较有效,因为婴幼儿随着年龄的变化头型逐渐变化,但是成年后其脸部形状基本固定,很少发生变化,此时人体测量学模型将失去效用.为解决该问题,文献[14]通过计算人脸图像的皱纹特征对成年人进行年龄估计.
AAM是一种对人脸的形状和纹理进行统计建模的人脸模型,文献[15]首次将主动外观模型用于人脸的年龄估计,将AAM模型的50个参数作为人脸图像的年龄特征.相比人体测量学模型只包含人脸的几何信息,AAM同时建立了人脸的形状信息和全局纹理信息模型,因此一般而言能够识别任意年龄.AAM的缺点是依赖于准确定位面部特征点,并且无法提取人脸局部区域的纹理信息.
年龄模式子空间(aging pattern subspace, AGES)[16]是在AAM的基础上提出的一种个性化的年龄特征表示方法.不同于对单张人脸图像进行AAM建模的方法,AGES方法对同一个对象在各个不同年龄时期下构成的一组图像序列进行建模,该图像序列称为该对象的年龄模式,如果该模式中所有年龄的人脸图像都存在,那么该模式称为完整年龄模式,否则称为不完整年龄模式.在训练阶段,AGES模型采用AAM模型表示每张人脸图像,然后使用主成分分析(principal component analysis, PCA)方法学习每个年龄模式的子空间模型.对于不完整的年龄模式,AGES使用最小重构误差迭代算法学习得到缺失图像的特征向量.在测试阶段,未知图像的年龄值由所有年龄模式的所有位置上与其具有最小重构误差的年龄位置确定.
AGES方法的优点是可以对不同个体的年龄化过程进行个性化建模,这种思路符合不同个体,具有不同的年龄化过程的年龄演化规律.AGES方法的缺点是要求数据集中的每个对象在不同年龄时期的人脸图像尽可能的完整,否则将影响年龄估计精度,但是因为年龄图像搜集困难,这一要求很难满足.
与AGES方法学习每个个体年龄序列的个性化年龄模式子空间方法不同,流形空间方法学习所有个体在每个年龄时期共有的年龄模式,主要思想是使用流形嵌入技术从每个年龄所有个体的人脸图像中学习一个低维的年龄子空间.文献[17-19]基于UIUC-IFP-Y和MORPH年龄数据集比较了常用的PCA、局部线性嵌入、局部保持投影(locality preserving projection, LPP)、正交局部保持投影(orthogonal locality preserving projection, OLPP)等流形嵌入技术在提取年龄特征方面的性能,实验结果表明有监督的OLPP流形学习方法相比其他3个无监督方法可以更好表示年龄流形.文献[5]进一步证明使用有监督的保角嵌入分析进行年龄流形嵌入可以获得更好的年龄估计效果.文献[20]基于对线性判别分析的改进提出一种跨种族的判别分析方法学习各种族共有的年龄流形,通过将不同种族的年龄模式投影到一个共用空间,学习到各种族共同的年龄模式,可以较好解决跨种族的年龄估计问题.
基于流形空间学习的年龄特征提取方法,优点是能够学习一个低维的年龄特征,捕捉潜在的年龄成长模式,缺点是仍然需要大量的人脸图像来学习一个具有判别力的年龄流形空间.
基于表观的特征主要通过研究不同年龄人脸的外观差异来抽取人脸的年龄特征.文献[21]将人脸划分成若干局部图像块,并从每个图像块抽取二维离散余弦变换局部特征,最后对所有局部特征进一步使用高斯混合模型建模得到其全局分布特征.文献[22]采用局部二值模式(local binary pattern, LBP),同时提取人脸的全局和局部纹理特征进行年龄估计.文献[23]用仿生学特征(bio-inspired features, BIF)进行年龄估计,该特征受到人类大脑视觉皮层机制的启发,采用简单细胞层C和复杂细胞层S交替组成,简单细胞层C执行Gabor滤波,复杂细胞层S执行MAX过滤操作.文献[24]提出一种多分辨率的分层人脸模型表示方法进行年龄估计,该方法从粗到细逐层提取人脸肤色、几何结构、纹理等面部特征,并采用图模型关联各层之间的关系.文献[25]提出一种融合人脸全局和局部特征的混合特征进行年龄估计,全局特征使用AAM提取人脸的形状和外观信息,在局部特征提取阶段,使用Gabor滤波器提取不同方向不同尺度的皱纹特征,并使用LBP提取皮肤特征.
外观特征能有效表示人脸年龄的关键是提取与年龄变化密切相关的人脸外观变化信息,包括多尺度的纹理和形状信息.年龄化过程中的外观特征可以实现对各年龄人脸图像进行年龄估计,但是由于人脸属性的复杂性,外观特征不仅包含年龄信息,还包含其他冗余信息,这将对年龄估计带来一定的负面影响.
近年来,随着深度学习理论的快速发展,以卷积神经网络(convolutional neural network, CNN)为代表的深度特征得到了广泛的关注.CNN是一种深层次的神经网络模型,具有局部感受野、层次化特征等特性,在图像识别领域获得了巨大成功.文献[26]提出使用CNN学习年龄特征的方法,为减小过拟合风险,该CNN特征只拥有3个卷积层和2个全连接层.文献[11]提出一种在ImageNet和IMDB-WIKI上预训练一个基于VGG16网络的CNN年龄模型,但是该模型的计算量十分巨大.文献[27]提出一种多尺度的CNN网络,首先将人脸图像划分成23组对称的局部图像块,然后对每组图像块生成一个子网络,每个子网络包括一个卷积层、一个Max池化层和一个局部响应层,最后在全连接层融合所有图像块的特征响应,该方法可以捕捉到人脸更多局部的年龄信息.
使用深度学习网络可以提取更多层次的年龄信息,但是通常需要大量样本学习鲁棒的模型,而在较小的数据集上容易出现过拟合现象.为克服此缺点,现有深度学习方法通常是首先在一个大型的图像分类或人脸识别数据集上预训练一个通用的深度网络[28-29],然后在大规模的年龄数据集上对网络进行微调.
不同于身份、性别、表情等其他人脸属性识别任务中标签的无序性,年龄标签之间具有一定的时序关系,因此年龄估计是一种特殊的模式识别任务.现有的年龄估计模型主要包括分类方法、回归方法、排序方法、混合方法、多任务学习方法等.文中对这些模型中的有代表性方法进行综述和比较.
基于分类的年龄估计方法将不同的年龄看作不同类别,用分类模型进行年龄建模.文献[30]分别基于单层精确年龄分类方法和分层的年龄段和年龄分类方法评估了二次函数、最近邻分类器(K-nearest neighbors, KNN)和自组织映射等分类器在年龄分类任务上的性能.实验结果表明,在使用PCA人脸模型时,基于二次函数的分层年龄估计方法可以获得更好的性能.文献[31]基于非负矩阵分解法提取人脸特征,并采用基于Boosting RBF的神经网络进行年龄分类.文献[32]基于Gabor、BIF等多个人脸图像特征采用极限学习机(extreme learning machines, ELM)进行年龄分类.文献[33]在CNN特征的基础上使用核ELM年龄分类方法进一步提高算法的速度和精度.从这些文献的实验结果中可以发现分类方法一定程度上可以解决年龄估计问题,但其缺点是没有考虑年龄标签的时序特性,并且分类会存在边界问题.
基于回归的年龄估计方法将年龄标签看作连续数值,用回归模型进行年龄建模.文献[18]在OLPP年龄流形特征的基础上,采用了支持向量回归(support vector regression, SVR)方法进行年龄估计.文献[34]基于分层人脸模型分别比较了线性回归、逻辑回归、多层感知器(multi-layer perception, MLP)和SVR等回归器在年龄估计任务上的性能,实验结果表明MLP获得了最好的性能.文献[21]基于图像块的核相似性使用无参的核回归模型进行年龄估计.文献[35]结合CNN提出一种端对端的深度回归森林方法进行年龄估计.文献[36]提出一种结合多个线性回归器的锚定回归网络进行年龄估计,相比传统的回归方法其性能显著提升.
基于回归的年龄估计方法更符合年龄标签的时序关系特性,因此相比基于分类的方法其性能通常更好.但是当人脸存在遮挡、光照等噪声时,年龄回归模型可能导致过拟合问题.
基于排序的方法将年龄估计问题看作一系列二元分类问题,即大于某年龄还是小于某年龄的问题.文献[37]提出一种由一系列二元分类器构成的排序分类器,其性能优于SVM和SVR等分类和回归方法.文献[38]结合分类和排序思想提出一种个性化的年龄估计方法,对训练集中的每个个体采用Ranking SVM学习其年龄函数,对于测试图像使用相似人脸的年龄函数进行年龄估计.文献[12]将年龄估计问题表示成一个多输出的CNN模型,每个输出单元都是一个二分类问题,对预测值是否大于某个年龄标签进行判定,其实验结果证明使用排序信息可以提高年龄估计性能.文献[39]对每个二元年龄分类问题训练一个CNN模型,最后联合所有二元分类结果进行年龄估计.
年龄标签是一种有序的标签,排序方法通过一系列的二元分类结果获得人脸的年龄估计值,相比回归和分类方法可以更好学习年龄化过程的动态性,但是也需要花费更多的模型学习时间.
基于混合模型的年龄估计方法试图将多个年龄估计模型有机融合,以刻画不同群体不同的年龄模式.文献[18]提出一个局部调整鲁邦回归模型,首先使用SVR得到一个全局年龄估计,并对该估计值进行局部范围的调整,然后使用SVM在调整后的年龄范围内进行精确的年龄估计.文献[40-41]具有共同的思路,首先采用分类器将人脸图像划分为若干个年龄段,然后为每个年龄段分别训练一个回归模型进行精确年龄估计.区别在于,文献[40]采用SVM进行年龄段分类,SVR进行精确年龄回归,文献[41]采用级联的端对端CNN依次学习年龄段分类器和精确年龄回归器.文献[11]提出一种基于端对端CNN分类器的年龄估计模型,将CNN分类的softmax概率和标签数值相乘再求和求期望作为年龄估计值,在LAB2015年龄估计竞赛上取得了较好的效果.文献[13]从辨别两个人的年龄大小比直接预测两人的年龄更容易的角度,将每张人脸图像与不同参考图像进行两两对比得到其年龄概率分布,提出一种同时学习年龄标签和年龄概率分布的年龄估计方法.文献[42]基于文献[11]提出一种分段年龄回归的网络,首先使用一个平移和缩放参数来获得动态的年龄段划分,然后进行分段年龄回归,最后计算各年龄段回归的均值.文献[43]在深度CNN特征提取的基础上,融合了基于年龄数值的回归模型和基于高斯标签分布的分类模型进行年龄估计.
由于年龄估计问题的复杂性,不同的群体通常具有不同的年龄模式,因此使用复合的模型融合多个年龄估计模式通常比单个年龄估计模型具有更好的性能.
多任务学习方法通过相关任务的联合学习提高每个任务的学习性能.人脸属性的多样性和相关性,以及人脸年龄化过程的个性化,使得通过多任务学习框架进行年龄估计可以得到更好的年龄估计模型.文献[44]中提出一种多任务包裹的高斯过程(multi-task warped gaussian process, MTWGP)进行个性化年龄回归函数的学习.文献[45]对相似人脸进行聚类,以聚族年龄估计为任务标准,采用多任务SVR解决年龄估计问题.文献[46]提出一种端对端的轻量级多任务CNN方法同时进行年龄回归和性别分类,并采用深度可分离的卷积来减小模型规模.文献[47]提出一种双层的多任务学习方法解决年龄估计问题,第一层同时进行个性化年龄估计和全局年龄估计;第二层对上一层每个任务利用所有训练图像进行多个二分类年龄标签得分函数的联合学习.文献[48]提出一种深度多任务学习框架联合预测人脸图像中的年龄、性别和种族属性,该框架利用各属性之间的相关性在CNN的前期共享特征表示,利用各属性的异构性在CNN的后期使用多任务学习方法同时进行特定任务的特征学习进而联合完成多个属性的识别任务.
多任务学习框架主要使用相关人脸属性来辅助年龄估计任务,或者针对年龄化过程的个性化特点,同时进行多个个性化的年龄估计任务.基于多任务学习的年龄估计方法能够更好学习不同群体之间共享的年龄模式,同时保留各群体独自的年龄特性,因此相比单任务的年龄估计方法可以获得更好性能.
基于人脸图像的年龄估计研究首先需要使用人脸检测和定位方法确定人脸位置,并在此基础上研究使用年龄特征提取和年龄模型学习两大关键技术解决年龄估计问题.人脸检测和定位技术目前已经成为一个独立的研究分支,文献[49]提出的基于肤色模型等方法,通常不是年龄估计的研究重点.因此文中从年龄估计的数据集、特征表示和模型学习3个重要因素出发归纳和总结了现有的年龄估计方法,并对有代表性的年龄估计方法进行性能比较(表1),从特征表示和模型学习两个角度对结果进行对比分析.
表1 年龄估计方法性能比较Table 1 Comparison of the performance of age estimation algorithms
“-”表示该算法未使用该性能度量进行评估.
年龄估计特征表示方法可以概括为人工特征和深度特征两种.人工特征一般利用经验从人脸抽取与年龄相关的形状和纹理等特性,比如LBP特征、AAM特征、BIF特征、流形特征等,并在此基础上进行多种局部和全局特征的融合.从表1可以看出端对端的深度学习方法比基于人工特征的年龄估计模型具有较大的性能提升.原因在于深度学习方法能够自动学习人脸丰富的多层次特征,并且在端对端的模型训练过程中,特征提取过程利用了年龄标签,可以提取与人脸年龄更相关的特征,而无监督的人工特征方法主要依赖经验进行年龄特征提取.但是深度特征的提取需要大规模的年龄数据集,否则会发生模型欠拟合问题.在IMDB-WIKI、Adience等大型年龄数据集出现前,通常在大型图像识别数据集或人脸识别数据集上预训练一个深度网络,然后在年龄数据集上对网络进行微调.
年龄估计模型可以进一步概括为单任务方法和多任务方法,单任务方法包括分类、回归、排序以及混合模型.从表1可以看出多任务学习方法通常可以取得更好的性能,原因在于其利用人脸性别、种族等与年龄相关属性的帮助,通过多个年龄估计任务的联合学习,获得多任务共享的年龄特征和任务特定的年龄模式.单任务学习中回归方法、排序方法和混合方法的效果普遍优于分类方法,其原因在于年龄标签具有特殊的时序特性和分段特性.
文中在总结现有年龄估计方法基础上,对年龄估计下一步研究方向给出展望.
(1) 时空特征提取.现有研究都是从单张静态图像中提取诸如纹理等能反应年龄特性的图像特征进行年龄估计,但是人脸年龄化过程是一个缓慢的时间过程,包含了很多动态特征,如果能够收集人脸在某一时间段内的年龄化图像序列,并从中提取到人脸年龄的时空特征,将能更好辨别当前人脸图像所处的年龄化进程.年龄模式子空间方法[16]是这一方法的有益尝试,但是目前这方面的研究还比较缺乏.因此人脸图像序列的动态时空特征提取是年龄估计未来潜在的研究方向之一.
(2) 除年龄外,人脸还具有性别、种族、表情、姿态等多种属性,这些属性存在一定的相关性,比如不同性别的人通常具有不同的年龄化过程,不同种族的人也具有不同的年龄化过程.通过同时联合年龄与性别、种族等相关属性进行多任务同时学习,对年龄估计也有一定的帮助.此外不同的个体通常也具有不同的年龄化过程,因此也开展了研究基于个体为任务标准的多任务年龄估计方法.根据这些辅助任务与年龄估计任务的相关性程度,选择合适的任务进行基于多任务学习的年龄估计是未来研究的一个重要方向.
(3) 人类的年龄特性不仅体现在面部外观变化上,还体现在语速变化和行为特点的差异上,这些特征都可以有效反应年龄变化.因此在年龄估计研究时,同时集合面部变化特征、语音特征和行为特征进行多模态年龄估计理论上可以提高年龄估计的精度.然而,现有的年龄估计研究大多基于单张人脸图像信息进行的,并没有采集和利用语音和行为动作等信息.另外,多模态信息融合方式可以采取特征阶段融合和决策阶段融合两种方式,哪一种方式更符合年龄估计规律也仍有待研究.文献[50]对基于人脸图像的年龄估计和对基于听觉的年龄估计方法分别进行了介绍,并对两者的融合进行了展望,但是目前并未有其他更多的多模态年龄估计研究工作.因此基于多模态信息采集和融合的年龄估计方法是另一个潜在的研究方向.