APP下载

一种融合Resnet-50与SVR的年龄估计

2023-03-11邵定琴岳诗琴

计算机仿真 2023年1期
关键词:年龄特征集上人脸

邵定琴,张 乾,岳诗琴,范 玉

(贵州民族大学数据科学与信息工程学院,贵州 贵阳 550025)

1 引言

人脸可以呈现出人的身份、性别、种族、年龄、表情和健康状况等重要的个人信息[1]。生物特征识别技术中的年龄估计在安全监控、商务顾客管理系统、人机交互、人脸识别、图像与视频检索、刑事侦查等方面有着广泛的应用潜力[1-3]。研究者们在人脸年龄估计领域做了大量的工作,Kwon等人[4]率先开展了基于人脸图像年龄估计的研究。研究者们在这之后提出了一系列的年龄特征提取方法以及年龄估计模型。早期的人脸年龄估计技术大多是用手工提取特征方法提取形状特征或纹理特征,并输入到传统的分类器或者回归器中去估计年龄段或具体的年龄值。

Kwon等人[4]基于颅面提出人体测量学模型来提取面部几何特征,并对面部的皱纹进行分析,进而获得面部的纹理特征,最后融合几何特征与纹理特征,将人脸图像分为婴儿、年轻人和老年人三类;Lanitis等人[5]使用主动外观模型(Active Appearance Model,AAM)提取面部的几何特征和纹理特征,并使用二次函数进行年龄估计;Guo等人[6]使用仿生学模型(Bio-Inspired Features,BIF)提取年龄特征,并用核偏最小二乘(kernel partial least squares,KPLS)回归方法进行年龄估计;Fu等人[7]对人脸图像进行流形分析,用多元线性回归函数对流形数据进行拟合,并用于人脸图像的年龄估计;赵军等人[8]针对多数的年龄估计方法忽略人脸图像的次要特征或同等对待面部的各个区域等问题,提出加权字典对学习方法在MORPH和FG-NET数据集上进行年龄估计;Guo等人[9]使用流形学习提取年龄特征,并使用支持向量回归(Support Vector Regression,SVR)模型在FG-NET数据集上实现年龄回归。

随着统计学习方法的推进,深度学习领域也得到了快速发展[10]。近年来大量研究者使用深度学习模型对人脸图像进行年龄估计,并获得很好的估计效果,Lanitis等人[11]研究了二次函数、人工神经网络(Artificial Neural Networ-ks,ANN)、最短距离等分类器,在分层年龄的基础上获得更好的年龄估计结果;孟文倩[12]等人先使用卷积神经网络(Convolutional Neural Networks,CNN)提取人脸图像的年龄特征,并使用主成分分析(Principal Component Analysis,PCA)方法对提取的年龄特征进行降维,之后使用SVR进行年龄估计;Yan等人[13]使用CNN来提取面部的年龄特征,并在支持向量机(Support Vector Machine,SVM)分类器上对提取的年龄特征实现年龄组分类;Wang等人[14]使用CNN提取年龄特征,将融合网络的各层特征输入到SVR模型中进行回归,得到人脸图像的年龄估计值;Rothe等人[15-16]提出深度期望(Deep expectation,DEX)模型,该模型基于VGG-16基模型在ImageNet大型数据集上进行预训练,再在IMDB-WIKI数据集进行微调,最后使用softmax分类器进行年龄估计;Agustsson等人[17]提出深度残差回归模型,即残差DEX模型,该方法进一步提高DEX在年龄估计任务上的性能;Zhang等人[18]探索年龄估计紧凑模型的局限性,针对AlexNet、VggNet、GoogleNet和ResNet等更大更深网络模型,不利于嵌入式或移动端的问题,提出一种适合于低端移动设备和嵌入式平台上的非常紧凑而高效的C3AE模型,在IMDB-WIKI数据集上预训练模型,该模型在MORPH和FG-NET 数据集上获得了比较好的估计效果;Shen等人[19]提出一种端对端的深度回归森林(Deep regression forests,DRFs)模型,DRFs将RF的分割节点连接到CNN的全连接层,通过级联学习分割节点上依赖于输入数据分区和叶节点上的数据抽象来处理非均衡数据。张珂等人[3]提出多级残差网络来解决非受限条件下人脸年龄估计问题。

到目前为止,虽然人脸年龄估计的研究已经取得了非常丰富的研究成果,但由于面部的年龄变化受诸多因素的影响,包括遗传因素、心理因素、生活习惯和社会环境等影响因素使得个体之间存在较大的差异,增加了人脸年龄估计的挑战性。为了提取更有表达能力的年龄特征,本文使用ResNet-50残差网络来解决非受限条件下的年龄特征提取问题,并使用SVR对提取的年龄特征进行年龄估计。在MORPH和FG-NET数据集上进行大量的实验,则结果表明使用ResNet-50网络提取的年龄特征更有效,并结合SVR算法进行人脸年龄估计具有很强的鲁棒性。

2 相关工作

2.1 基于ResNet-50网络模型的年龄特征提取

研究员们已经证明深度卷积神经网络(Deep Convolutional Neural Network,DCNN)在非受限条件下能获得优异的年龄估计效果。对于增加的网络层数越多,获取的图像信息也就越多,这是毋庸置疑的,那为什么不直接通过增加网络的层数来获取图像上更多的特征呢?事实上,网络越深,网络模型越难训练,甚至会出现网络模型退化的问题。He等人[20]为了解决随着网络层数增加而出现的退化问题,提出ResNet网络结构。ResNet-34和ResNet-50是最常用的两种网络结构,它们都是由一系列不同的残差块(residual block,RB)堆叠而来,即在原始的DCNN网络结构的卷积层中加入恒等映射(shortcut connection) 的残差元,使得原H(X)变为H(X)=F(X)+x。DCNN网络结构的每一层通常可以表示为y=H(X),而残差元RB中H(X)=F(X)+x,其中,F(X)=H(x)-x,称F(X)为残差,对应的网络为残差网络。残差网络中每个残差块的结构见图1[20]所示,左边平卷积结构用来拟合H(X),而右边RB用来拟合F(X),F(X)相较于H(X)更为简单,可解决DCNN网络结构的深度问题以及DCNN模型的退化问题。残差元数量的增加使得DCNN网络的性能不断地提升,且网络模型也更加容易训练。

ResNet-50的网络结构见图2所示,从图中可以看出ResNet-50的网络结构是任意两个堆叠层采用残差学习,在这两个堆叠层中添加一个快捷连接构成ResNet-50网络的一个残差元RB,这里将RB定义为

图1 残差块的结构

H=F(x,{Wi})+x

(1)

其中,x和H分别表示残差元RB的输入和输出,函数F(x,{Wi})表示要学习的残差映射,式(1)中要求x和F(x,{Wi})的维数必须相等。

倘若RB的输入和输出通道不相等时,需要在shortcut链接上执行Ws线性投影

H=F(x,{Wi})+Q(x,{Wi})

(2)

输入大小为224×224的图像到ResNet-50网络中,将大小为7×7的卷积核进行步长为2的卷积操作,并使用max-pooling对模型进行压缩,再使用不同类型不同数量的RB块对上一层的输出结果进行恒等映射,最后使用mean-pooling再一次对模型进行压缩,接着使用全连接层整合具有区分性的类别信息,以便使用softmax函数获取分类结果。

基于人脸图像的年龄特征提取指的是提取一些能表达脸部年龄变化的特征,比如在未成年人阶段,脸部的年龄特征主要是人脸的五官比例在不断变化,即是提取人脸的几何特征或者形状特征,属于全局的年龄特征;而在成年阶段脸部特征变化主要是皱纹随着年龄的增长逐渐增多,在此阶段应侧重提取脸部的纹理特征,属于局部的年龄特征。而部分研究者单独只考虑形状特征或者纹理特征,由于提取的特征不够充分,导致年龄估计的效果不是很理想。近年来深度学习算法对图像中的类别信息表现出强大的学习能力,故本文使用ResNet-50网络模型来学习面部年龄特征。

图2 ResNet-50网络结构

2.2 基于ResNet-50网络模型的年龄特征提取

2.2.1 技术路线

基于人脸图像的年龄估计是指在年龄与人脸图像之间寻找一种规律,即在ResNet-50网络模型提取的年龄特征与年龄之间找到一种数学规律,将这种数学规律表示成带有数学符号的表达式,该表达式即为构建的年龄估计模型。根据大量的研究,人脸年龄估计的技术研究主要分为三个阶段:①图像预处理,如对图像进行灰度化,图像数值、图像大小进行归一化;②年龄特征提取,现有提取人脸图像特征技术比较多,传统算法和深度学习算法都有能够很好地描述年龄特征的变化;③年龄估计,现有的年龄估计方法中,年龄估计主要从分类或回归两个角度考虑,分类方面,通常是对年龄段或离散的年龄标签值进行分类;回归方面,通常把年龄看成一组连续的值。本文主要对面部特征提取方法和年龄估计模型进行研究,人脸年龄估计的研究路线见图3所示。

图3 人脸年龄估计技术路线

2.2.2 基于SVR的年龄估计

支持向量回归(Support Vector Regression,SVR)[21]是SVM在回归范畴上的推广。其目的是构建超平面函数F(x),使得最远的样本点到超平面的距离达到最小,通过引入核函数和损失函数,将提取的特征转化到高维空间中,以便寻求最优的超平面。假定使用ResNet-50网络模型提取人脸图像的年龄特征向量为Xi=(x1,x2,…,xm),i=1,2,…,n,其中Xi表示第i个样本的年龄特征向量,则建立SVR的训练集为T={(X1,Y1),(X2,Y2),…,(Xn,Yn)},其中,Yi表示Xi对应人脸图像的年龄标签值,为了寻找面部与对应年龄之间的关系,建立年龄标签与提取的年龄特征之间的函数为

age=F(X)

(3)

设使用SVR方法的线性回归函数为

F(X)=〈W,X〉+b

(4)

该函数可以转化为以下优化问题

(5)

(6)

(7)

(8)

则非线性SVR回归函数求解为

(9)

(10)

使用ε的不敏感损失函数用来度量SVR的预测准确度

(11)

3 实验结果与分析

为了评估ResNet-50_SVR模型对人脸图像年龄估计的有效性,而人脸年龄数据库是度量ResNet-50_SVR模型的一个基准。因此,年龄数据库需要满足高分辨率、年龄分布均衡以及跨越的年龄范围和各年龄段的数据量尽可能的广和多等要求。对于人脸图像的年龄属性来说,同一年龄不同对象的人脸图像具有差异性,同一个对象不同年龄段的人脸图像具有差异性等特点。为了验证本文提出的残差网络回归模型的性能,使用塞浦路斯大学采集的FG-NET数据集和北卡罗来纳大学采集的MORPH数据集来进行评测。FG-NET数据集包含82个人的1002张图像,年龄分布在0-69岁之间,FG-NET数据集的部分图像实例见图4所示;MORPH数据集包含13000个人的55000幅人脸图像,其中包括42897幅黑人图像、10736幅白人图像、1753幅西班牙裔图像、160幅亚洲人图像、57幅印度人图像和5幅其他种族的人脸图像,MORPH数据集的部分图像实例见图5所示。FG-NET和MORPH数据集皆不是种族单一、背景简单、直立正脸等理想条件下的人脸图像,而是尺度多变、种族多类、遮挡、化妆、光照等非受限条件下的图像。

图4 FG-NET数据集中部分图像实例

为了评价本文提出的ResNet-50_SVR模型对人脸图像年龄估计的有效性,采用最常用的平均绝对误差(Mean Absolute Error,MAE) 作为评价指标来度量年龄估计器的性能。平均绝对误差是指真实的年龄标签值与预测年龄之间绝对误差的平均

图5 MORPH数据集中部分图像实例

(12)

其中,yi为人脸图像的真实值,f(xi)为年龄估计器的预测值。

本文基于python语言中的keras框架和计算机视觉库Opencv对ResNet-50_SVR模型进行编码和验证。首先,将ResNet-50网络结构在大型数据集ImageNet上进行预训练,然后,在MORPH数据集中40148幅人脸图像上进行微调,并使用MORPH数据集中剩余11950张人脸图像对微调后的模型进行验证。每一幅人脸图像通过ResNet-50网络训练得到一个128维的中间层特征向量。为了验证ResNet-50网络模型提取年龄特征的可靠性,使用PCA方法对ResNet-50模型提取的中间层特征进行降维,并将降维之后的特征在三维空间中进行可视化,ResNet-50中间层特征可视化图见图6所示,从图中可看出ResNet-50中间层特征可视化图呈现“W”型线,这条线在空间中连续且细长,说明对于任意一张人脸图像都能很好地找到一个年龄对应的表征位置,如果这条“W”型线又粗又短,则在任意区域之内出现的年龄值较多,此时年龄估计误差较大。因此,这条“W”型线使得年龄分布在空间中细长的蔓延,当使用一张人脸图像去测试时,在这条“W”型线上就能找到一个位置或者一个范围与之相对应,说明使用ResNet-50网络模型提取的年龄特征具有可靠性,故可使用该网络提取的特征直接输入到年龄估计器中,对人脸图像进行年龄估计。本文使用SVR对ResNet-50网络模型提取的年龄特征进行回归,得到的回归值即为对人脸图像估计的年龄值。

图6 ResNet-50提取的特征可视化图

为了验证本文提出的模型对人脸图像年龄估计的有效性,将ResNet-50_SVR模型分别与Normal-CNN模型和ResNet-50模型对人脸图像年龄估计的结果作比较。即在MORPH数据集上分别将Normal-CNN模型、ResNet-50模型和本文提出的ResNet-50_SVR模型进行模型训练及验证,图7是ResNet-50_SVR和Normal-CNN在训练过程中的MAE曲线图,从图中可以看出Normal-CNN在训练40次之后,MAE基本持平,而ResNet-50_SVR虽起伏动荡,但ResNet-50_SVR的MAE普遍低于Normal-CNN的MAE,即表明ResNet-50_SVR对人脸图像的年龄估计误差更小。验证结果表明,本文提出的方法比普通的深度学习方法的性能更好。

图7 CNN和ResNet-50_SVR损失曲线

表1 不同模型的实验测试结果

表1是ResNet-50_SVR、Normal-CNN和ResNet-50分别在FG-NET数据集上的测试结果,从表中可以看出,Normal-CNN对人脸图像年龄估计的MAE为5.3岁,Resnet-50的MAE为4.0岁,ResNet-50_SVR的MAE为3.5岁,若以Normal-CNN作为基准的估计模型,Resnet-50相对于Normal-CNN在年龄估计的任务上提升了24.53%,而Resnet-50_ SVR提升了33.96%。说明本文提出的ResNet-50_SVR模型对人脸图像的年龄估计是有效的,且具有很好的估计结果。

4 结束语

针对非受限条件下的年龄估计任务,本文提出Resnet-50_SVR方法对人脸图像进行年龄估计,并在FG-NET数据集上测试且估计效果较佳。但由于使用的MORPH数据集的年龄分布在16~77之间,在该数据集上进行微调时,暂未对缺少的年龄段进行微调,故在FG-NET数据集上进行测试时,0~15岁之间的年龄估计结果还不够精准。下一步考虑挑战更大的数据集,或融合其它的数据集以提高人脸年龄估计模型的性能。

猜你喜欢

年龄特征集上人脸
有特点的人脸
一起学画人脸
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
分形集上的Ostrowski型不等式和Ostrowski-Grüss型不等式
三国漫——人脸解锁
素描头像四分之三、侧面正面、年龄特征等画法解析
小学语文教学开展素质教育的途径分析
运动技术教学衔接性与年龄特征
长得象人脸的十种动物