吴 杰,段 锦,,董锁芹,李英超
1.长春理工大学 电子信息工程学院,长春130022
2.长春理工大学 空间光电技术研究所 基础技术实验室,长春130022
跨年龄的人脸识别,即将目标年龄人脸与数据库中存储的面部图像进行对比,分析其相似的程度[1]。FRVT 2002[2]表明,面部年龄每增加3年,与数据库中的样本识别率平均下降20%。通过国内外对跨年龄人脸识别研究,将方法分为两类:一是利用特征学习进行跨年龄人脸识别[3-6],主要获得变化的特征,从而达到跨年龄认同的目的,当脸部年龄较大时,此方法的实验结果较差[6]。另一种方法是使用面部年龄模拟执行跨年龄面部识别[7],该方法的实验效果略好,但是模拟的人脸图像细节较差,对识别存在一定影响[8]。
针对上述问题,并结合近几年来生成对抗网络(Generative Adversarial Network,GAN)在图像处理和机器视觉领域中良好的实验效果[9],本文对生成对抗网络技术展开深入研究,提出了一种基于生成对抗网络技术的人脸跨年龄段识别方法DFΜ-GAN(Depth Feature Μigration GAN)。该方法结合条件性对抗自动编码器和深度特征迁移,模拟生成待检人员在不同年龄段的面部图像,利用生成图像与数据库中所保存的图像进行相似性比对。通过深度特征迁移进一步减少随着年龄增大而带来的人脸细节差异,提高存在年龄差的人脸识别率[10]。同时为了解决生成人脸图像边缘不清晰的问题,首先对样本数据集做高斯边缘模糊处理,使真实人脸图像的边缘风格在生成器中起主导作用,并引入边缘提升的对抗损失函数,最后使用局部颜色直方图匹配,增加人脸图像真实感。本文设计了单样本不同年龄人脸识别实验与特定年龄段的多样本人脸识别实验,由实验结果可知,本文所提出方法在一定年龄区间内经DFΜ-GAN生成的模拟人脸图像在用于跨年龄识别时,其识别准确率明显高于未经DFΜ-GAN处理的跨年龄人脸图像。
深度迁移学习引入了类似于生成对抗网络的技术,发现了适合源域和目标域的深度迁移特征,并为机器学习目标提供了合理的判断以实现有效迁移[11]。图1显示了基于对抗的深度迁移学习的示意图。
图1 深度特征迁移原理
由图1可知,网络的前层在源域数据集的训练过程中被视为特征提取器,提取源域和目标域中特征并将它们输入到对抗层,对抗层用以区分特征的来源,如果对抗网络的表现很差,则意味着两种类型的特征之间存在差别,可迁移性更好[12]。基于对抗的深度迁移学习由于其良好的效果和较强的实用性,近年来取得了快速发展。在以下GAN网络中,将引入深度特征迁移模块,使网络发现更多具有可迁移性的通用特征,加强人脸特征学习。
GAN是一种无监督的学习方法,它巧妙地利用“对抗”的思想来学习数据并生成全新的样本。GAN 主要由生成器G(Generater)和鉴别器D(Discriminator)两部分组成。
生成器G 负责生成图片,它通过接收到的一个随机噪声z 来生成图片,记为G(z)。G 目标函数采用最小化对数似然函数,使G(z)的数据分布逼近于训练样本数据x 的数据分布Pdata(x)。鉴别器D 负责判别输入图片与G(z)相比真实性的概率,在训练过程中生成网络G 的目标是尽量生成与真实相近的颜色和纹理的图片去欺骗判别网络D,而D 的目标是尽量把G 生成的图片和真实的图片区分开来[13]。基本结构与计算流程如图2所示。目标函数如式(1)所示:
其中,z 表示服从某个分布P(z)随机采样的向量,训练数据Pdata(x)。D(x)用于判断样本x 是否是从真实的数据分布中采样的样本。GAN用于训练人脸的问题一是人脸细节上丰富度较低,纹理肤色上的丰富度与数据库样本偏差较大,问题二是对抗损失在引导生成器生成人脸图像的过程中边缘信息容易损失,给识别造成难度。
图2 GAN基本结构与计算流程
本文结合GAN网络与深度特征迁移模块[14]提出一种跨年龄人脸生成方法DFΜ-GAN,通过对人脸纹理信息属性在特征空间上的线性插值,增加人脸细节信息的丰富度,从而提高生成人脸的真实性。根据跨年龄人脸模拟需求设计的DFΜ-GAN 的网络结构如图3 所示。输入和输出面部图像x ∈R128×128×3,编码器采用的是卷积神经网络。由于跨步卷积是完全可微的,并且允许网络学习自己的空间向下采样,因此采用步幅2 的4 个卷积层提取人脸特征。生成一个具有特定特征的人脸,该人脸被包含在z 中,因此引入了一个编码器E(Encoder)来避免z 的随机采样,图3中实线框所示。输入人脸图像为x,编码器E 将输入面x 映射到特征向量。人脸图像生成器主要是将编码器产生的z,与一个标签向量l 拼接,传入一个解码器中映射成高维图像,使生成的人脸图像的数据分布逼近于训练样本数据x 的数据分布Pdata(x)。
图3 DFΜ-GAN网络结构图
其中,n 是面部特征的维数。输出保留了输入面x 的高级个人特征。然后引入深度特征迁移模块,利用6个残差模块实现人脸模拟图像的降维、特征迁移和升维,在生成器输出端获取真实人脸语义信息的特征,使得模拟生成的图像更加逼真。
在保证生成器网络深度不变的情况下,将生成器的下采样卷积层与残差模块中的前三个作为编码器,后三个残差模块与上采样卷积层作为解码器,中间三个残差模块作为特征迁移模块。其中残差模块如图4所示。
图4 残差模块结构图
由图4可知,通过快捷键的连接实现残差元任意层之间的关联,图中x 为残差元输入信号,映射F(x)表达式如式(3)所示:
式中,W2、W2分别是权重层的权重,σ 是激励函数relu。这样在前向传播的过程中,残差网络的映射实际上是连加运算。将标签l 与z 连接,生成器G 接受新向量[z,l]的反馈。以l 独热编码年龄标签为条件,通过三个反卷积上采样恢复图片尺寸,生成输出人脸图像为:
训练中输入和输出人脸的损失函数如下:
其中,L(x,G(E(x),l))表示L2范数。编码器E 和生成器G 都是根据输入和输出面之间的损失函数L2进行更新。同时,通过Dz判断器在z 上施加均匀分布。同样,在条件l 下,面部判断器和生成器可以通过式(6)训练。
由于加入了深度特征迁移模块,自编码器需要在低维空间域对人脸进行重建,因此模型优化目标中,增加一项最小化图像重构误差的损失函数,最终内容损失函数如下:
其中,TV(⋅)表示有效去除重影伪影的总变差,系数λ和γ 平衡了平滑度和高分辨率,Lrec为重建损失。内容损失函数负责引导生成器输出人脸图像,判断器Dz在z 上施加均匀分布,并且判断使输出给定的年龄标签的人脸图像更加真实。
对抗性损失依赖于生成网络G 和鉴别网络D,它影响了生成网络G 中的图像变换过程,它的值表示输出图像与输入图像的相似程度。只通过训练鉴别器D分离真实样本的图像并生成迁移图像是不够的,这是因为数据库样本的人脸轮廓干扰生成图像产生阴影,甚至过拟合[15]。清晰边缘的图像呈现有助于人脸图像变换后的识别,但这些边缘的比例在整个图像中通常非常小,因此,如果一个输出图像没有明确的重建边缘,但是它拥有正确的边缘阴影,可能会使受过训练的鉴别者产生错误的判决,从而使生成的图像边缘模糊化。参考文献[16]提出的将图片转化成漫画的风格迁移方法,改进了本次实验的图像集,将图像集通过canny算子检测出输入图像的主要轮廓,然后引入新的对抗损失函数。具体过程为使用式(8)作为一对卷积阵列,使用式(9)计算梯度幅值和方向:
然后进行边缘膨胀,最后通过高斯滤波器将高频区域的边缘滤除,使其变得模糊。具体目的是为了通过新生成的样本数据集使鉴别器学习分辨弱边缘图像的能力,边缘提升对抗损失函数定义如式(10)所示:
其中,P(c)表示跨年龄图像分布,P(e)表示弱化边缘的样本图像分布。根据生成器的设定,G(x)是一张跨年龄人脸图片,目标是使训练判别器D 概率最大化将正确的标签分配给G(x),以便生成器通过将输入转换为G 可以正确引导的人脸图像,达到弱化风格图像边缘,保留真实图像边缘的效果。
基于DFΜ-GAN生成后的图像颜色存在一定退化,图片的色调变成了暗黄色,失去了原来色彩丰富、对比明显的特点,影响现实感。因此,本文使用局部颜色直方图匹配的方法来解决这一类的问题,对生成后的图片进行进一步增强。局部颜色直方图匹配,是指在全局颜色直方图匹配的基础上,将图片划分为面积相等的m×n块。如图5所示,将源图像S 划分为m×n 个小块:
将目标图像C 划分为m×n 个小块:
分别对每个对应块进行直方图匹配,得到每个块的源图像S 和目标图像C 概率分布函数:
再分别求得每个对应分块的逆映射:
图5 局部颜色直方图匹配原理图
将经过匹配的每个小块ti(i=1,2,…,m×n)按编号顺序拼合,则可得到经过匹配的图像T :
跨年龄人脸识别在寻找被拐儿童、不同年龄人脸辨别、辨认多年前的罪犯、预测儿童长相变化等方面起到重要的作用。用于对本文所提系统进行训练和测试的跨人脸年龄数据库是ΜORPH Album2[17]和UTΚface 数据 库[18]。Album 2 包含了约10 000 个 人 的55 134 张图像,数据库中人的年龄从16岁到77岁,平均每个人有6张人脸图片。
(1)年龄分组
实际上,年龄是一个连续变量,但是考虑到相邻年龄的面部图像差异很小,例如20 岁的面部特征和21 岁的面部特征几乎没有差异,但是20 岁的面孔特征与30岁的面孔特征之间的区别仍然很明显。因此,设计中的年龄分为10类,0~5,6~10,11~15,16~20,21~30,31~40,41~50,51~60,61~70 和71~80,使用10 个元素的独热编码来指示训练期间每个面部的年龄。
(2)测试数据集
在跨年龄人脸识别实验中,样本库主要分为两类:没有指定年龄的跨年龄人脸图像样本和相同年龄组的跨年龄人脸图像样本。
本类样本获取9 000 组,每组两张人脸图片,总计18 000张人脸样本。部分样本如图6(a)所示。
与没有指定年龄的跨年龄人脸图像样本相比,同一个人指定的相同年龄的跨年龄人脸图像样本的数量相对较少。此类样本是从2 500组中获得的,每组中有5个样本,总共有12 500 个面部样本图像,其中一些样本如图6(b)所示。从左到右,它代表一个人的15、20、30、40、50岁年龄段的面部图像。
图6 人脸数据库部分样本
本文使用的方法是模拟特定年龄的人脸图像生成新的人脸图像,减少类别中样本的变异性和年龄变化对面部特征信息的影响。因此,本文采用人脸相似度和人脸距离两个指标进行实验研究。在Eyekey平台上分别由数据库样本对经DFΜ-GAN 生成图像样本和真实样本两者进行人脸相似性实验,数据库人脸识别率与相似度成正比。并通过Openface 进行人脸距离实验,通过HOG 算法给数据库测试样本图片编码,找到面部主要特征点,通过测量经DFΜ-GAN生成图像样本与真实样本的特征点,计算两者与数据库样本特征点的距离值,数据库人脸识别率与人脸距成反比[19]。综上所述,相似度越高,人脸距离越小,人脸识别率越高。
本节的实验主要是跨年龄的人脸验证实验。即给定一对具有年龄跨度的面部图像,确定这两个图像是否属于同一个人[20]。在训练过程中,损失函数取不同的λ、γ 值,对实验效果进行比较,本文所采用的训练模型λ=100,γ=10,学习率为0.000 2。训练过程中分为50 epoch,每个epoch 分为236 个batch。实验配置为Intel Core i7-6700 CPU 处理器、GeForce GTX 2060 显卡的服务器;网络的程序设计语言为Python 2.7,采用的是Tensor-Flow-1.13.0 版本的深度学习框架。网络模型数据库部分样本人脸图像如图7所示。
图7 数据库部分样本
以图7(a)为例,第一行真实样本作为输入图像,经DFΜ-GAN网络生成指定年龄段的生成图像,将真实样本和生成图像分别与第二行数据库样本图像进行人脸相似度与人脸距测量实验,结合两个指标进行实验研究。本实验主要设计了两组实验:一是单样本不同年龄实验,即指定图7测试样本中的某一个样本与其在不同年龄阶段的真实样本,分别对不同年龄的人脸图像进行DFΜ-GAN算法变换,用生成后的新图像与真实样本分别与测试样本进行人脸相似度和人脸距实验。二是指定年龄多样本实验,即从图7测试样本选择多个人脸图像,并在指定年龄段中找到其对应的真实样本,分别对不同人在指定年龄的真实样本进行DFΜ-GAN 算法变换,用生成后的新图像与真实样本分别与测试样本进行人脸相似度和人脸距实验。
首先,以15 岁左右人脸图像作为数据库样本,20、30、40、50 年龄段真实样本人脸图像作为输入图像,经DFΜ-GAN算法生成相应年龄段的生成人脸图像,实验效果以图8为例。
图8 各年龄段真实样本图像与生成图像
最后,真实样本和生成图像分别与数据库样本进行人脸相似度与人脸距实验,实验数据曲线图如图9所示。
图9 样本实验数据曲线图
由图9 可知,在20 年龄段时,相比较DFΜ-GAN 生成图像真实样本的相似度高而人脸距低,即人脸识别率高,与在30 年龄段两者基本持平,而在40、50 年龄段,DFΜ-GAN 生成人脸图像的识别率高于真实样本。为避免样本偶然性,进行多组样本的实验,实验数据取其平均值,数据如表1所示。
表1 实验样本平均数据表
由于每个人的外貌受遗传和生活条件影响所反映的规律不相同,但通过平均数据可以看出,20岁年龄组真实样本的人脸识别率高于它的生成图像,主要是15岁的人脸距和20岁的人脸距具有较小的时间跨度和较小的面部特征变化。30岁真实样本的面部识别率与生成的图像基本相同;但在40、50 年龄段其DFΜ-GAN 生成图像的人脸识别率高于真实样本图像,其中平均相似度提高了3.52 个百分点、4.96 个百分点,人脸距缩小了0.207、0.282。随着年龄的增长,人脸特征变化越来越大,DFΜ-GAN生成图像的人脸识别率越高于真实样本。
为了进一步验证DFΜ-GAN 算法生成的人脸图像相比于真实图像对数据库样本有更高的识别率,以15~20 年龄段人脸作为数据库,指定年龄段为21~30,31~40,41~50,51~60,61~70,71~80 的真实样本和真实样本经过DFΜ-GAN算法的生成图像作为测试样本,分别与数据库样本进行相似度和人脸距的实验验证,进行多样本实验,部分数据结果如图10所示。
图10 中通过部分实验图像可以看出,输入的真实样本图像与数据库测试图像的相似度明显低于DFΜGAN生成图像,人脸距也高于DFΜ-GAN生成图像,且经过DFΜ-GAN生成后的图像没有发生人脸轮廓变化、器官位置移动和肤色对比度失真等问题,说明改进后的网络在一定程度上克服了生成式对抗网络自身的模式崩塌问题。其中年龄段为40~50 的部分实验数据曲线如图11所示。
实验数据集进行如图11 的实验测量,结果显示,DFΜ-GAN 生成图像的相似度远高于真实样本的相似度,DFΜ-GAN生成图像的人脸距远低于真实样本的人脸距。DFΜ-GAN生成图像的相似度最大提升21.22个百分点,平均提高了19.24个百分点,DFΜ-GAN生成图像的人脸距离最大减少了0.615,平均减少了0.451。结合以上实验数据的结果,进行人脸验证识别率统计,采用不同的人脸验证识别阈值,统计不同阈值对应的验证识别率,统计实验结果如图12所示。
图10 年龄跨度较大的人脸识别率实验结果与数据图
图12 人脸识别率对比图
图12 首先印证了实验评价指标中人脸相似度、人脸距和识别率之间关系的准确性。在不同相似度阈值和人脸距阈值下,真实样本经过DFΜ-GAN算法后生成的人脸图像对于数据库样本有着更高的识别率,当相似度达到75%时,真实样本的识别率不足50%,而本文算法可以到达65%以上。当人脸距高于0.45时,真实样本的识别率不足50%,而本文算法人脸识别率高于62%,说明在跨年龄人脸识别上可行性较大。
实验说明在跨年龄人脸识别方面,将不同年龄段真实样本经过DFΜ-GAN算法处理生成新的人脸图像,相比于真实样本对数据库样本有着更高的重合度,即对同类样本的人脸识别率更高。
为了验证其他相关算法对跨年龄人脸识别率的影响,分别使用GAN、pixtopix、CycleGAN 和CAAE 四种算法,对相同训练样本,按照上述实验设计在相同实验环境下做同等实验,并对实验结果使用Eyekey 平台进行人脸相似度实验,在Openface 下进行人脸距实验,对实验结果进行统计,并与DFΜ-GAN算法在不同年龄段的人脸进行识别率比较,得到表2。
由表2 可知,在跨年龄人脸识别中,真实样本经过GAN、CycleGAN、pixtopix 和CAAE 四种算法均可以一定程度上提高人脸的识别率。GAN网络自身存在训练难的问题,识别率相对真实样本提高最少,相似度相比较真实样本提高1.85 个百分点,人脸距减少了0.034;pixtopix 和CycleGAN 是GAN 的改进版本,通过改进损失函数实现数据库之间的图像风格转换,相似度相比较真实样本提高4.9个百分点、5.51个百分点,人脸距减少了0.046、0.145;CAAE 在GAN 网络模型基础加了两个判别器,使得人脸差距进一步减少,相似度相比较真实样本提高12.9 个百分点,人脸距减少了0.151。而加入了深度特征迁移的DFΜ-GAN 算法减少了同样本之间的差异性,并引入边缘提升对抗损失函数,将引导生成器生成的人脸在相似度与人脸距方面都高于其他算法,相似度相比较真实样本提高19.42 个百分点,人脸距减少了0.175,在实验上取得识别率最高的效果。
表2 几种算法在不同年龄段的平均人脸识别率比较
与真实样本图像相比,DFΜ-GAN生成的图像的平均相似度提高了19.42 个百分点,平均人脸距减小了0.175,这减少了类样本之间的差异,说明经过一定图像变换,有利于提高跨年龄人脸识别率,引入的深度特征迁移有利于生成对抗网络对人脸信息的进一步提取和模拟,边缘提升对抗损失函数也在一定程度上解决了生成器人脸边缘不清晰的问题。本文受个人研究时间、硬件条件等因素影响,仍有一些研究内容需要进一步完善,具体如下:
(1)对跨年龄人脸识别人脸库有一定的要求,例如正脸的效果优于有倾斜角度人脸的效果,尤其在倾斜角度较大情况下,模拟出的人脸会出现失真的现象,网络输入的图像需要事先矫正、归一化。
(2)在网络上DFΜ-GAN 同样存在训练不稳定、梯度消失等不足,未来可以参考文献[21]改进损失函数并优化判别网络,从而使网络训练稳定,生成特征点更加丰富的人脸图像来提高识别率,使本文方法在现实生活中得到更好、更全面的实际应用。