刘教民,刘艳晖,朱 叶
(河北工业大学 人工智能与数据科学学院,天津 300401)
人脸图像包含很多信息,如身份、表情、性别、年龄等。年龄是人类重要生物特征,人脸年龄估计因对不同领域的研究起到的巨大推动作用而得到了广泛关注,如:基于年龄的人机交互系统、基于年龄的访问控制、电子商务中个性营销、刑事案件侦察中的年龄过滤等。人脸年龄分析算法是利用计算机技术根据人脸图像随年龄变化的规律进行建模,从而使机器能够根据人脸图像计算出人的大致年龄或所属年龄范围。然而这却是一个难题,它不仅与健康状况、生活方式、工作性质、生活压力、健康状况和社会影响等多种因素有关,同时还受到遗传基因的影响,具有多样性和不确定性。
传统的年龄估计算法大致可分为3类:1)对年龄按整数取值,将其视作非负离散变量,则年龄估计问题被视为回归问题,如流形分析法[1-3]与序数判别特征学习法[4],然而将高位空间的数据映射到低维空间,被消除的信息会影响最终的准确度。2)把年龄标签当成不同类别,将年龄识别问题视为一种特殊分类问题,如自动年龄估计方法(AGing pattErn Subspace,AGES)[5]和AdaBoost[6]模型,但这忽略了年龄的连续性。3)将分类与回归结合,如将主动外观模型(Active Appearance Model,AAM)和年龄估计分类器集合的方法[7],但实现具有一定难度。
随着深度学习(Deep Learning)的发展,这种能自动学习和提取人脸年龄特征的方法,可以有效避免人为提取年龄特征主观性而得到广泛应用。而提出的众多框架,如三层散射网络(Scattering Network,ScatNet)[8]、群体感知深度特征学习方法(Group-Aware Deep Feature Learning,GA-DFL)[9]和标签敏感深度量度学习方法(Label-Sensitive Deep Metric Learning,LSDML)[10]等,只使用了网络最高层提取的语义信息,忽略了底层的纹理信息。Wang等[11]使用卷积神经网络(Convolutional Neural Network,CNN)提取特征,用流形学习方法降维后进行回归或者分类,实验结果证明提取的单层特征或多层特征,性能较其他算法更优,这是第一次引入深度学习技术解决年龄估计问题,但没给出深入的解释。
CNN包含输入层、隐含层和输出层,其隐含层多由卷积层和池化层交替构成。其中,卷积层用来提取图像特征,池化层用来精简信息[12]。网络往往采用反向传播的算法进行训练,包括正向传播和误差反向传播。正向传播时,数据样本从输入层传入,经过网络,将输出的结果与期望输出比较获得误差,再将该误差用于入反向传播。反向传播时,误差从输出层依次向前传递至输入层,在每一层求出当前层的误差,并使用该误差对各单元的权值进行修改,循环往复直至网络达到一定的精度。
若将卷积层和池化层等操作视为将原始数据映射到隐层特征空间,全连接层(Fully Connected Layers,Fc)则是将学到的特征表示映射到样本的标记空间。目前由于Fc参数冗余,近期一些性能优异的网络模型(ResNet和GoogLeNet等)均用全局平均池化(Global Average Pooling,GAP)取代Fc。Zhang等[13]认为完全连接的层对于实现高精度是必不可少的。而本文为改善参数冗余情况而构造的框架简单,自身冗余情况并不严重,因此保留Fc。
生物研究学表明,人脑是通过不断补充信息的方式来对物体进行识别的,这说明综合利用不同级别的特征对最开始提取的特征进行补充强化可以帮助视觉系统提高准确率。因此越来越多的研究者将关注点放在了模型的融合上。
Yi等[14]首次将CNN应用于年龄估计后,孙宁等[15]提出由多个CNN和一个深度信念网络(Deep Belief Nets,DBN)堆叠而成深度融合网络(Deep Fusion Network,DFN)模型,使用多个并联的CNN提取人脸图像多个区域的外观特征,将得到的特征进行串接输入一个DBN网络进行非线性融合;为了实现DFN的端到端的整体训练和降低过拟合效应,提出逐网络迭代训练的机制并对应人脸局部图像的CNN经过多次迭代迁移学习实现面向人脸年龄估计任务的训练;完成对DFN的预训练后,再进行全网络端到端的整体精调。Rothe等[16-17]将年龄的回归问题转化为分类问题,用ImageNet数据集训练好的VGG-16网络进行初始化并集成20个VGG-16进行年龄估计,对IMDB-WIKI数据集进行优化,最后用LAP数据集再次进行优化。然而上述文献都是对精准年龄进行研究,且训练时间较长。
Angulu等[18]在2018年提出了比较区域卷积神经网络(Comparative Region Convolutional Neural Network,CRCNN),将年龄估计任务分为几个比较阶段,比直接计算人的年龄更简单,并且明确的辅助信息可以减少不正确的比较对结果的准确性产生的影响,使结果更加准确稳健。马文娟等[19]提出基于集成卷积神经网络的人脸年龄分类算法,首先分别训练3个独立的卷积神经网络,然后对这3个网络的输出结果进行集成,取得的完全匹配(An Exact Match,AEM)值为55.67%。Dong等[20]也采用了卷积神经网络的方法,并且运用迁移学习进行模型的训练,有效地提高了分类的准确率,取得的AEM平均值为56%,然而对多个独立网络进行训练又将消耗大量时间与资源。
因此,本文提出基于单模型集成的年龄估计框架AEF-SMI,对单个框架模型的多层特征进行融合操作。深度卷积神经网络特征具有层次性,不同层的特征信息可以相互补充,使用AEF-SMI时将不同层的网络特征级联,框架不仅能获取高层的语义信息,还能获取低层边缘纹理信息,有利于提取更丰富的年龄特征,改善特征冗余及其不能被充分利用问题。
2.1.1 网络架构
本文提出的AEF-SMI框架共有6个模块组成,分别为卷积模块Conv、最大池化层M-P、归一化层BL、融合层Con、Dropout层Dr-L和全连接层Fc。网络架构如图1所示。
图1 网络架构图Fig.1 Network architecture framework
1)卷集模块Conv1、Conv2和Conv3构成,其中:Conv1为2个5×5的卷积层;Conv2为1个3×3的卷积层;Conv3为两个2×2的卷积层。分别使用不同大小的卷积核,以提取更丰富的空间结构信息和更丰富的人脸纹理信息,提高识别精度。
2)最大池化层M-P1、M-P2和M-P3,大小均为2×2,最大池化层能减小卷积层参数误差造成估计均值的偏移,更多的保留纹理信息,而对纹理信息进行分析是年龄估计的最广泛用法。
3)融合层Con,将不同通道提取的特征——最具体的浅层特征FL、较低层特征F1、较高层特征Fh、最高层语义特征FH进行融合。
4)加入归一化层B-L和Dropout层Dr-L,有效提高训练的收敛速度,防止过拟合。
2.1.2 单模型集成
张婷等[21]提出基于跨连卷积实现性别分类的方法,将第2个池化层跨过随后的1个卷积层和池化层,连接到最后的特征融合层,最后的分类效果并没有太显著的提升,这可能是由池化过程的损失导致。故本文在选择不同通道时,直接对卷积层进行连接,略去池化和归一化层以减少损失。在同一个架构下,即单模型中,将不同层进行连接组成不同通道:
1)通道1为Input→Conv1→M-P1→B-L→Conv2→M-P2→B-L→Conv3→M-P3→B-L→Con,这一通道经过3个卷积块,获取的是FH。
2)通道2为Input→Conv1→Conv2→M-P2→BL→Conv3→M-P3→B-L→Con,与通道1相比只略去了一个池化层与归一化层,所提取的特征亦为FH。
3)通道3为输入层Input→Conv1→Conv3→M-P3→B-L→Con,原始图片通过两个卷积模块即4个卷积层,所提取的特征为Fh。
4)通道4为Input→Conv1→Con,这时原始图片仅经过第一个卷积模块后直接接到融合层,所提取的特征为FL。
5)通道5为Input→Conv1→M-P1→B-L→Conv2→Con,原始图片通过两个卷积模块即3个卷积层,所提取的特征为F1。
各道图如图2所示,之后将不同通道取得的不同特征连接到融合层,得到最终的年龄特征。
分类问题的优化过程是一个损失函数最小化的过程。由于年龄特征受性别影响,故本文构建一个受性别影响的年龄损失函数。
假设年龄分类任务训练N个样本,针对网络分类层Output的第i个样本的输入特征为xi,其对应的真实标记为yi∈{1 ,2,...,C},令h=(h1,h2,...,hc)T为网络的最终输出,即样本i的预测结果,其中C为年龄分类任务类别数。
中心损失函数(center loss function)在考虑类间距离的同时减小类内差异,因此,为减小同一性别内的差异,本文选择将中心损失函数作为性别损失函数,如式(1)所示:
式中,cyi为第yi类所有深度特征的均值交叉熵(cross entory)。
图2 各通道展示图Fig.2 Display of individual channel
损失函数又称Softmax损失函数,将逻辑回归分类器(二类)泛化到多类,是目前卷积神经网络中最常用的分类目标函数,即通过指数化变换使网络输出h转换为概率形式。本文将它作为年龄损失函数,如式(2)所示:
最终的损失函数Lfinal如式(3)所示:
本文在两个数据集上用不同通道特征融合后的分类结果验证本文所提框架AEF-SMI的有效性。首先选取的数据库是IMDB-WIKI数据集[16],它由IMDB数据集和Wikipedia数据集组成,其中IMDB人脸数据集包含了460 723张人脸图片,Wikipedia人脸数据集包含了62 328张人脸图片,总共523 051张人脸图片,年龄分布如表1所示。
其次选取的Group数据集[22]是1个包含28 000张带有性别和年龄标记的图片的数据集,年龄分布如表2所示。
在年龄分类任务中,常用的算法评价指标为AEM,如式(4)所示:
式中:N是测试集的样本总数;Nm是测试集中预测正确的样本数。
表1 IMDB-WIKI数据库年龄分布Tab.1 Age distribution of IMDB-WIKI database
表2 Group数据库年龄分布Tab.2 Age distribution of Group database
3.2.1 双通道融合分析
将IMDB和WIKI数据集包含的年龄段分为9段:(0,10),(11,20),…,(71,80),(81,100),在IMDB数据库上进行训练,在WIKI数据库上进行测试。将通道1在测试集WIKI数据库上的结果分别与通道1+2、通道1+3、通道1+4、通道1+5的结果进行比较,结果如图3所示。其中x轴为epoch次数,y轴为值。实验结果表明,在IMDB-WIKI数据库中,epoch15次后值趋于稳定,并且除通道1+4的值下降外,其余通道提取的特征融合后值均提升。在Group数据集上,将通道1、通道1+2、通道1+3、通道1+4、通道1+5的运行结果进行比较,如图4所示。
图3 WIKI测试集实验对比结果Fig.3 Experimental comparison results on the WIKI test set
图4 Group数据集实验结果对比Fig.4 Experimental comparison results on the Group test set
将测试集WIKI上运行30次的AEM值和Group数据库上运行的最后200次的AEM值分别取平均值,结果如表3所示。
对比发现,WIKI和Group数据集上,通道1+4的AEM值低于通道1的,而通道1+3的AEM值高于其他的。为此在Group数据库中随机选取1张图片,再将各集成通路对其采取的特征图可视化后做对比,如图5所示。在前几层中,人的面部仍然可以被识别,然而,随着更深入CNN,表示变为更抽象,更难解释。出现这一现象可能是由于通道4所提取的最具体的浅层特征FL,对年龄分类产生消极影响。通道3所提取的较高层特征Fh,既补充了语义信息又避免浅层特征的消极影响。通道2和5提取的特征分别为最高层特征FH和较低层特征F1,未能最好地补充语义信息或避免浅层特征的影响。
表3 IMDB-WIKI与Group数据库上不同通道AEMTab.3 Different channels AEM on IMDB-WIKI and Group database
3.2.2 多通道融合分析
为验证卷积各层对年龄估计结果的影响,在Group数据库上对3个及以上通道进行融合,并与1和3这两个通道融合后的AEM进行比较,结果分别如图6和图7所示。
图5 通道融合后主要层的特征图Fig.5 Feature map of the main layer after channel fusion
图6 3通道融合比较Fig.6 Triple channel fusion
图7 3个以上通道融合比较Fig.7 More than three channels fusion
对比结果发现,将不同通道集成后得到的AEM均高于之前提出的算法,通道1+2+3和通道1+2+5集成后得到的AEM值略高于通道1+3融合的结果,这可能是通道2提取的边缘纹理特征起到了积极作用,但训练的时间是通道1+3融合的1.5倍;3个以上通道集成时只有通道1+2+3和通道1+2+5融合后的结果略高于通道1+3融合的结果,但太多通道融合降低效率;此外,将通道1-5全部融合后得到的AEM值却没什么优势,这可能是提取到的特点太多,对分类操作产生了消极影响。因此我们选择通道1+3集成的最优结构。
3.2.3 综合对比
为综合验证本文提出的AEF-SMI框架,将其与一些现有的算法进行比较,表4列出了在同一个数据集Group数据集上各种算法的比较结果。通过实验可以看出,AEF-SMI框架在分类正确率上均优于其他算法,并且使用的训练时间更少。
表4 在Group数据集上与其他方法的对比结果Tab.4 Comparison with other methods in Group database
本文提出了一个新的年龄估计架构,将不同通道提取的特征进行融合,实验结果表明,在使用较浅的卷积神经网络时,将卷积神经网络不同层提取到的特征进行融合后分类效果高于其他未进行单模型集成的网络架构,甚至达到的正确率比其他层数更多的网络架构(如VGG16)的正确率更高,而使用的时间更少。在接下来的计划中,将探究单模型集成网络在精准年龄估计方面的应用,并尝试将更多通道进行融合,分析不同层对最终结果的影响,得到更加具有代表性的特征。本文在构建损失函数时只考虑了性别对年龄估计的影响,在以后的工作中还将把种族、职业等因素考虑在内,以得到更准确的估计值。