基于特征子空间直和的跨年龄人脸识别方法
2021-10-09叶继华郭祺玥江爱文
叶继华, 郭祺玥, 江爱文, 黎 欣
(江西师范大学 计算机信息工程学院,江西 南昌 330022)
0 引言
跨年龄人脸识别问题作为人脸识别的一个分支,是对同一人在不同年龄下的人脸进行识别,受到年龄因素的影响,通常存在较大的类内差异和较高的类间相似性[1],这极大地增加了识别难度。随着时代的发展,跨年龄人脸识别的应用场景变得越来越广,例如将多年前失踪的儿童找回等。因此,研究跨年龄人脸识别问题有着巨大的理论价值和重要的实际意义。针对这一问题,近几年学术界提出了两类方法,即生成类方法和判别类方法。生成类方法通过仿真机制对目标对象人脸骨骼的几何形状和人脸纹理进行建模,从而生成该特定年龄的人脸[1-2],之后在此基础上进行人脸识别任务。这类方法的不足在于需要很强的参数假设与巨大的计算成本[3],因此在实际应用中仍然具有很大的局限性。与之相比,学术界将越来越多的重心放在基于判别的方法上。对于判别类方法,尤为重要的一个步骤即人脸特征的提取[4],其核心是将人脸特征中混合在一起的身份相关成分和年龄相关成分最大限度地分离,以便于提取出与年龄无关的、对年龄变化具有鲁棒性的身份特征。许多基于深度卷积神经网络的判别方法被提出并取得了显著的成果[3,5-7]。但这些方法很难将年龄成分彻底从身份相关成分中剔除,因此还有需要改进之处。
为了获得对身份更具有判别性的年龄无关特征,笔者在同时进行人脸身份识别和年龄分类这两个任务的多任务卷积神经网络的基础上引入子空间的直和,提出特征子空间直和的多任务卷积神经网络(feature subspace with direct sum CNN, FSDS-CNN)。实验结果验证了笔者提出的模型在跨年龄人脸识别任务中的有效性和优越性。
1 FSDS-CNN模型
笔者提出的FSDS-CNN模型分别由3部分组成:提取深度人脸特征的卷积单元、学习身份相关特征和年龄相关特征并执行分类任务的2个子网,以及1个用于减少身份相关特征和年龄相关特征之间冗余成分的直和模块。FSDS-CNN的整体框架如图1所示。
图1 FSDS-CNN整体框架Figure 1 Overall framework of the FSDS-CNN
FSDS-CNN中的卷积单元由典型的CNN结构组成,即交替堆叠卷积层、激活层和池化层。在经过卷积单元F(·)的编码后,我们可从输入的人脸图像p中得到同时包含身份信息和年龄信息的深度人脸特征x(即x=F(p)),此时x不具备年龄无关的特性,需要再做进一步处理。
深度特征在经过第1层的全连接层之后,被传给2个并行的判别性子网,分别是身份和年龄2个子网,可以同时进行身份识别和年龄分类。全连接层和子网对应的判别器组成子网,2个全连接层分别负责提取出身份相关特征xid和年龄相关特征xage:
xid=Widx+bid;
xage=Wagex+bage。
(1)
式中:Wid、Wage、bid、bage分别为2个全连接层的权重和偏置,通过SGD自动学习得到。之后将得到的xid、xage分别传给直和模块和相应的判别器进行多任务分类。其中xid将作为跨年龄人脸识别任务中的最终特征。有关2个判别器和网络结构的具体细节将分别在1.2节和2.1.1节进行详细介绍。下面先介绍笔者提出的直和模块。
1.1 直和模块
在提取出xid和xage后,如何保证xid在保持身份信息的前提下确保对年龄变化的鲁棒性至关重要。此时xid和xage之间的较多冗余部分导致了两者之间有着较强的潜在关联性,从而导致跨年龄人脸识别模型的性能下降。提出加入直和模块以对xid和xage所在空间的特征子空间施加直和约束,通过尽可能减少两者之间的冗余来尽量消除xid中的年龄成分,以此降低两者之间的相关性。
记VI和VA分别表示xid和xage所在特征空间,XID={xid1,xid2,…,xidN}和XAge={xage1,xage2,…,xageN}分别表示所有xid和xage构成的矩阵。分别记XID和XAge协方差矩阵的前K个最大特征值所对应的特征向量vID1,vID2,…,vIDK和vAge1,vAge2,…,vAgeK构成的特征子空间为VII和VAA,则vID1,vID2,…,vIDK和vAge1,vAge2,…,vAgeK分别构成VII和VAA的一组基[8]。由于在基于子空间的基的形式下,两个子空间直和的充要条件是两个子空间的一组基线性无关[9]。因此,要实现特征子空间VII和VAA之间为直和,即VII⊕VAA,则必须要vID1,vID2,…,vIDK,vAge1,vAge2,…,vAgeK满足线性无关,故定义以下直和损失:
(2)
通过训练直和损失将最终收敛,此时有VII⊕VAA。算法1展示了直和计算具体过程。通过添加到最终目标函数中,以上直和损失将参与联合监督训练。
算法1:特征子空间VII和VAA的直和计算。
输入:跨年龄人脸训练数据集
T={Ii|i=1,2,…,N};
需要的正交特征向量个数K;
步骤:
(1)p←0;
(2)随机初始化神经网络参数W(0);
(5)通过式(2)计算直和损失LDS;
(6)更新神经网络参数W(p);
(7)p←p+1;
(8)返回第(3)步直到LDS收敛;
输出:VII⊕VAA。
1.2 多任务训练
1.2.1 身份判别器
为确保学到的特征对身份具有较强判别性,遵循Wang 等[7]的设置使用 CosFace损失对xid的学习进行监督。CosFace损失可表示为下式:
(3)
1.2.2 年龄判别器
由于年龄标签是粗略的且在实际应用中存在不确定的噪声,对于年龄信息的学习,在年龄分类时遵循Li等[6]的协议把年龄标签分割为多个无重复的年龄组。笔者使用Softmax函数作为年龄判别器的损失函数,用下式表示:
(4)
式中:n为年龄组个数;ci为第i个样本所对应的年龄组标签;Vj和αj分别为年龄分类器的第j个权重向量和其对应的偏置。
综上,FSDS-CNN的训练由如下多任务目标函数联合监督:
L=LID(xid)+λ1LAge(xage)+λ2LDS(xid,xage)。
(5)
式中:λ1和λ2为权重超参数,用来平衡这3个损失。
2 实验和分析
2.1 模型实现细节
2.1.1 网络结构
①卷积单元:卷积单元由5个卷积块组成,多个卷积层组成卷积块,采用3×3、步幅为1的卷积核,之后接上批归一化使模型快速收敛,PReLU作为激活函数,以上5个卷积块输出的特征图个数分别为64、128、256、512、1 024。 ②判别性子网:深度特征x经过全连接层后的输出是1 024维的特征,之后分别传给2个判别性子网的全连接层以输出1 024维的xid和xage,在xid和xage上分别进行PReLU和批归一化操作后再传给相应的判别器进行分类任务。
2.1.2 数据预处理
使用MTCNN[10]检测人脸,之后根据人脸关键点通过相似度变换将人脸图像尺寸裁剪为112×96。对裁剪后的人脸图像的每个像素进行归一化。
2.1.3 训练细节
预训练阶段使用的训练数据集为只包含身份信息的CASIA-WebFace[11],大约包含49万张人脸样本,整个预训练阶段直和模块和年龄子网不参与训练,并在数据集上进行大约14轮,批尺寸大小设置为128。式(5)和式(3)中的超参数按照文献[7]设置为λ1=0.1,m=0.35,s=64;另外,式(5)和式(2)中的λ2和K分别设置为10和25,具体设置细节将在2.2节中详细介绍。
2.1.4 模型测试细节
在著名的公开领域的跨年龄人脸数据集Morph Album 2[12]和CACD-VS[13]上进行了人脸识别和验证实验来评估本模型的性能,并在数据集Cross-Age LFW[14]上进一步评估了本模型的泛化能力。在测试过程中,为了增强数据的特征,将原始图像与翻转图像的xid进行级联作为最终特征,再计算每对特征的余弦相似度作为配对得分。
2.2 在Morph Album 2数据集上的实验
Morph Album 2是一个由13 000个个体的55 000张人脸图片组成的跨年龄人脸数据集。遵循文献[6]的设置将整个数据集划分为训练集和测试集,训练集和测试集的样本身份无重合。
笔者对直和模块的特征向量个数K和直和损失权重λ2这两个重要超参数的设置进行了探索实验。当λ2=1,K取不同的值时,模型的识别性能如图2所示。
图2 Morph Album 2上不同K下的识别率Figure 2 Rank1 identification rate changes with different K on Morph Album 2
从图2中看出,当K取前7个值时模型的识别率快速增长,因为此时直和模块对xid和xage中在跨年龄人脸识别中起主要作用的主成分特征如五官形状特征被直和约束,两者的相关性被有效减少,其中xid的年龄无关性被提高。识别率随着K的增加逐渐上升,在K=25时识别率升至最高值98.35%。之后在K为25~34时识别率不变,在K升至34时识别率开始下降,根据式(2),此时xid和xage中的一些在跨年龄人脸识别中的次要成分特征向量作为噪音被加入,这不利于主要成分特征向量之间的正交关系,降低了模型的识别性能。因此,在实验中设置K的值为25。
当K=25,λ2取0.001、0.01、0.1、1、10、100时实验效果如图3所示。可以看出,当λ2很小时,模型的识别率较低,由式(5)可知,直和约束因为直和损失的权重偏小而作用不明显。之后模型的识别率随着λ2取值增大而逐渐增大,当λ2为10时识别率达到最高值98.41%。但当λ2取值过大时识别率开始下降,原因为直和约束的作用过于明显,从而降低了身份损失和年龄损失的重要性,导致xid和xage的学习优先级降低从而不能很好地进行学习。因此,之后实验λ2取10。
图3 Morph Album 2上不同λ2下的识别率Figure 3 Rank1 identification rate changes with different λ2 on Morph Album 2
确定了两个超参数分别为λ2=10、K=25后,在Morph Album 2的测试集上进行了人脸识别实验并与近年来的一些主流方法进行对比,实验结果如表1所示。
表1 在Morph Album 2数据集上的评估结果Table 1 Evaluation results on the Morph Album 2 dataset
本实验使用Rank1作为评价指标。从表1中可知,笔者提出的FSDS-CNN模型具有显著的优势,但是与OE-CNNs和DAL相比存在一定的差距,这是因为本模型和以上两个模型所用的训练集数量(分别为53万和170万)差距过大所致。另外,笔者实验中batch-size取值为128,而OE-CNNs和DAL则为512。为了验证直和模块的作用,进行有无直和模块情况的模型的实验。从表1中看出,CNN-baseline在只用CASIA-WebFace一个数据集进行预训练时识别率只达到91.83%,相较于CARC和 MEFA略低;用Morph Album 2进行微调后,CNN-baseline+Age的识别率增高到96.52%,这是因为身份特征和年龄特征因年龄子网的加入而被分离,但是因为身份特征与年龄特征并没有约束的存在,模型的性能相比于LF-CNNs和AE-CNN略差。FSDS-CNN在以上基础上加入了直和模块用来对身份特征和年龄特征所在空间的子空间施加直和约束,将模型的识别性能提升至98.41%,证实了直和模块的显著效果。
2.3 在CACD-VS数据集上的实验
CACD数据集作为公开领域的基准老化数据集常被用于年龄不变人脸识别,该数据集包含2 000个名人的具有年龄变化的163 446张人脸图片,在本实验中作为训练集对模型进行微调。遵循文献[3]和文献[6]实验设置,在CACD的子集CACD-VS上进行了测试。在本实验中,笔者将CACD-VS中的所有样本从训练集中剔除。
表2列出了本模型在CACD-VS数据集上与其他最新的年龄不变人脸识别方法的评估结果。本实验使用人脸识别中常用的精确度和AUC这2个评价指标。从表2可知,除了DAL, FSDS-CNN的精确度均不小于其他模型,AUC则均优于其他模型,图4显示了多种方法的ROC曲线图。在反映模型性能的真实性和稳健性方面,AUC通常优于精确度[19],进一步证实了本模型的优越性。
表2 在CACD-VS数据集上的评估结果Table 2 Evaluation results on the CACD-VS dataset
图4 不同方法在CACD-VS上的ROC曲线Figure 4 ROC curves of different methods on CACD-VS
2.4 在Cross-Age LFW数据集上的实验
笔者同样在Cross-Age LFW[14](CALFW)数据集上进行了验证实验以表明本模型的泛化能力。CALFW数据集包含4 025个人,每个人有2、3或4张图片。因为CACD数据集中有噪音的存在,故使用Morph Album 2作为训练集对模型进行微调。由于该实验在训练和微调阶段均无CALFW的参与,故能有效验证模型的泛化能力。
表3列出了本模型在CALFW数据集上与其他方法相比的验证性能。本实验采用的评价指标是EER和错误匹配率(FMR)为0.1时的错误非匹配率(FNMR)。从实验结果可知,本模型与其他模型相比具有明显的优良性,尤其是在较小的训练集上,仍然有较好的性能,充分证实了本模型泛化能力的强大。
表3 在CALFW数据集上的评估结果Table 3 Evaluation results on the CALFW dataset
3 结论
提出了一种新颖网络称为特征子空间直和的多任务卷积神经网络(FSDS-CNN)用来处理跨年龄的人脸识别问题,并在Morph Album 2、CACD-VS和CALFW这3个基准老化数据集上进行了跨年龄的人脸识别与验证实验。通过和近几年的多种具有代表性的方法进行对比,本模型在评价指标AUC上取得了最优值99.7%,在EER和错误匹配率(FMR)为0.1时的错误非匹配率(FNMR)上分别取得了最优值10.1%和10.2%。实验结果验证了直和模块的有效性,表明了本模型相比于其他年龄不变人脸识别方法具有明显的优越性。