郑 亮,陈 亚,陈小潘,郑逢斌
河南大学 计算机与信息工程学院,河南 开封 475004
人脸识别[1]是计算机视觉研究领域的一个重要研究方向,基于人脸识别的算法已经广泛应用到现实生活中。人脸图像包含有大量的生物学特征,已有心理学和认知科学的研究表明[2-3],人脸是判断亲属关系相似性的重要线索。基于人脸图像或人脸视频进行亲属关系验证是计算机视觉领域一个重要且具有挑战性的问题。亲属关系验证是基于给定的人脸图像或人脸视频,通过对其特征进行分析来验证这些图像或视频中的对象之间是否存在某种亲属关系。
人脸识别是亲属关系验证的基础,尽管目前机器学习用于人脸识别[4]的准确率已经高达99.81%[5],但亲属关系验证和人脸识别之间存在着显著的差异。人脸识别的对象是同一个人,同一个人的面部特征在短时期内通常变化不大;而用于亲属关系验证的人脸图像来自于不同的人,他们之间面部特征不可能是完全相同的。在不受约束的条件下采集的人脸图像在姿态、光照、表情、年龄、性别、遮挡条件等方面通常存在较大差异。此外,亲属关系遗传特性复杂,造成人脸外观自身的多种变化,甚至出现不具有亲属关系的两幅人脸图像比具有亲属关系的两幅人脸图像更加相似的情形。针对以上问题,如何从人脸图像中提取有鉴别力的特征是提高亲属关系验证准确率的关键。
已有研究表明[6-8],分辨人脸主要是基于眼睛、鼻子、嘴部等关键部位。当基于人脸图像判断两个人是否具有亲属关系时,利用这些关键部位提取有鉴别力的人脸特征是提高亲属关系验证准确率的关键。
鉴于此,本文结合深度学习在特征提取上的优势,提出了一种局部特征增强的方法用于亲属关系验证,并针对亲属关系验证任务展开了以下工作:
(1)针对局部特征提取任务,提出了局部特征注意力网络(Local Feature Attention Net,LFA Net),并训练使该模型能够提取人脸局部关键特征。
(2)基于ResNet[9]改进并提出了残差验证网络(Res-Verification Net,RVF Net),引入Family ID信息辅助进行亲属关系验证。设计了用于亲属关系验证的目标损失函数,优化网络的参数,提高亲属关系验证的准确率。
(3)使用LFFEV Net进行亲属关系验证,将人脸图像和由LFA Net提取到的局部关键特征输入到Res-Verification Net中,在特征空间中进行相似性度量,使得具有亲属关系的正样本之间距离更近,负样本之间距离更远,最终得到验证结果。
2010年,Fang等[10]首次基于人脸图像来进行亲属关系验证,其主要通过提取图像中人脸关键部位的灰度值和直方图等特征信息,再借助于最邻近法和支持向量机进行人脸亲属关系验证。一般说来,亲属关系验证方法主要分为两类:基于特征的方法[11]和基于模型的方法[12-14]。基于特征的方法主要借助于人工特征描述符或者特征学习方法来提取有鉴别力的面部图像特征进行亲属关系验证。目前广泛采用的特征表述方法主要有梯度直方图[15]、LBP[12]、尺度不变特征[13,16]等。Zhou等[17]针对不受约束条件下的亲属关系验证问题,提出了一个新的基于空间金字塔学习(SPLE)的特征算子。基于模型的方法通常采用统计学习的方法来学习到一个有效的分类器或者距离度量进行亲属关系验证,例如度量学习[12-13]、迁移学习[18]、多核学习[19]。Lu等[20]提出邻域排斥度量学习方法,该方法通过学习获得一个度量,使得具有亲属关系的样本距离尽可能变小,不具备亲属关系的样本在特征空间中距离尽可能增大。Zhou等[21]提出了可扩展相似度学习方法(Scalable Similarity Learning,SSL),借助于在线截断梯度学习来学习一个对角双线性相似模型,针对具有高维度数据的亲属关系数据集在扩展性和计算效率上都有优势。Lu等[22]提出了紧凑的二值人脸向量用于人脸识别,在识别精度上取得了较好的结果。随着深度学习在人脸识别、人脸检测等领域的成功应用,学者们开始尝试使用深度学习的方法进行亲属关系验证。Zhang等人[23]设计了利用深层卷积神经网络提取高层特征的框架进行亲属关系验证。Zhou等[24]设计了一个自适应网络(KinNet),在有监督的度量学习框架中使用带标签数据有限的亲属关系数据集中学习一个鲁棒的跨代亲属关系度量。Nandy等[25]使用了深度孪生网络对亲属关系进行验证,充分利用卷积神经网络良好的表征和学习能力,有效提高了识别准确率和识别速度。深度学习方法的应用往往依赖较大的数据量,而亲属关系验证数据集规模一般很有限,易导致过拟合。因此,本文研究如何利用有限规模的数据集,借助于深度学习的方法获得更具鉴别力的特征,提高亲属关系验证的准确率。
近年来,注意力机制被广泛应用在深度学习领域,取得了令人鼓舞的成果。例如卷积注意力模块CBAM[26]将给定的特征图,沿着空间和通道两个维度推断出注意力图,然后将注意力图与输入特征图相乘,加强重要空间和通道的关注,提升特征表达能力。Mnih等[27]将注意力机制应用到计算机视觉研究领域,并首次将注意力网络与循环神经网络(RNN)相结合,按照时间顺序处理输入图像,一个时间段只处理某一个局部区域,依次将得到的局部信息融合形成图像的动态特征表示,以提高模型的计算性能。Wang等[28]利用残差结构可堆叠的特点,将注意力模块与残差网络结合,解决了单纯堆叠注意力模块而导致的网络结构层次过深产生过拟合的问题。
本文设计了一种人脸局部特征增强验证网络LFFEV Net(Local Facial Feature Enhancement Verification Net),由能够对人脸局部特征增强的LFA Net和验证亲属关系的RVE Net两部分组成,整体网络结构如图1所示。
图1 LFFEV Net模型结构图Fig.1 Structure of LFFEV Net
具有亲属关系的父母和子女在左眼、右眼、鼻子、嘴部等4个关键部位上表现出很强的相似性,利用这些关键区域的特征能够提高亲属关系验证的精度。鉴于此,本文设计了局部特征注意力网络(LFA Net)来获取人脸图像的局部关键特征,主要包括构造局部特征图像和重构局部关键特征两个步骤。
(1)构造局部特征图像
首先利用人脸检测算法MTCNN[29]获取人脸图像的左眼、右眼、鼻子和左、右嘴角的坐标,嘴部取左右嘴角坐标的中心位置坐标,最终得到4个关键部位中心点。以4个中心点为基准,设定人脸图像的保留区域,并将保留区域以外的像素值设为零。其中,眼睛保留区域大小25×15,鼻子保留区域大小20×20,嘴部保留区域大小35×15,预处理人脸图像的过程如图2所示。
图2 提取人脸局部特征图像Fig.2 Extracting local features of face
(2)重构局部关键特征
目前用于亲属关系验证的数据集中的人脸图像分辨率不高,而且部分存在遮挡和姿态变化,使得部分人脸图像中的关键特征点通过人脸检测模型无法被全部检测到或检测到的特征点存在较大的误差,进而导致基于这些关键特征点获取的局部特征图像不准确。因此设计了LFA Net模型来获取图像局部关键特征。
具体来说,从上一步提取的局部特征图像中选取关键部位准确的局部特征图像,连同它们对应的原始图像一起作为训练集来训练LFA Net模型,使模型具有更好获取人脸图像的局部关键特征的能力,最终用训练好的LFA Net模型重构其他图像的局部关键特征。模型的基本结构如图3所示。LFA Net对原始图像进行卷积、池化、反卷积、去池化等操作得到与原图像大小相同的特征。最后将得到的局部关键特征与人脸检测模型得到人脸局部特征图像使用均方误差(Mean Squared Error,MSE)损失函数优化网络参数。MSE损失函数如公式(1)所示:
其中,y表示经过LFA Net生成的局部关键特征所对应特征,y′表示构造的局部特征图像经过归一化和通道转换后得到的特征,n为输入数据的batch-size大小。
图3 LFA Net模型结构图Fig.3 Structure diagram of LFA Net model
LFA Net的网络结构参数如表1所示,除最后一层反卷积层外,其余每一个卷积层和反卷积层操作后均使用ReLU函数[30](Rectified Linear Unit)作为激活函数,并且使用了批标准化(Batch Normalization)对输出结果进行归一化处理,使用池化层对特征进行压缩,去池化层对特征尺寸进行还原,最终得到与输入图像相同维度和尺寸的局部关键特征。
2.2.1 网络结构
现有的亲属关系数据集大多仅利用亲属关系标记信息,而较少考虑家庭标记信息。为使学习的特征有更好的表达能力,本文在数据集中引入Family ID信息,具体来说具有亲属关系的一对人脸图像分别标记相同的Family ID,而不具备亲属关系的一对人脸图像分别标记不同的Family ID。
表1 LFA Net网络结构参数Table 1 Parameters of LFA Net model structure
为了验证两个样本之间的亲属关系,构建了深度残差验证网络RVF Net,模型结构如图4所示。网络使用共享权值的两个分支分别提取父母和孩子的人脸图像的特征。RVF Net采用了残差卷积结构作为提取特征的主干网络,提取到的深度特征分成两组来处理。一组将特征结合Family ID进行辅助训练,将特征分类到不同的家庭;另一组将提取的特征通过组合运算和拼接的方式进行融合,然后将融合后的特征输入到一个全连接层构成的鉴别器中,得到相似度评分,通过设置阈值t,获得最终亲属关系的预测结果。具体来说评分如果大于阈值则表明二者有亲属关系,否则无亲属关系,定义如公式(2)所示:
RVF Net中每层网络的构成如表2所示,其中卷积层默认步长为1,padding设置为1。在每层卷积层、Fc1和Fc2之后都增加了ReLU作为激活函数,使用Batch Normalization层对数据进行归一化处理。为避免过拟合,在Fc1和Fc2之后增加了Dropout[31]层。Fc(ID)层用来进行Family ID分类,Fc3层用来进行亲属关系验证。
表2 RVF Net网络结构参数Table 2 Parameters of RVF Net
2.2.2 损失函数
将由RVF Net中残差卷积结构提取的深度特征输入到两个分支,在第一个分支中,根据不同的Family ID标签,使用Center loss[32]在特征空间中对样本进行距离划分,使不同Family样本之间具有离散性,同时也使相同Family样本之间具有紧凑性。Center loss的定义如公式(3)所示:
图4 RVF Net结构图Fig.4 Structure diagram of RVF Net
其中,n表示batch-size的大小,cyi表示第yi个类别的特征中心,xi表示输入特征。距离划分后将深度特征转化为1维,输入到分类器中,得到样本预测的Family ID,用真实Family ID作为标签,使用Family-Cross-Entropy loss(FCE loss)训练网络,FCE loss定义如公式(4)所示:
C为类别总数,n为batch-size大小,yj,m表示一个batch-size中第j个样本预测为家庭m的值,yj,k是该样本被预测为真实家庭k的预测值。
深度特征输入到第二个分支进行亲属关系验证,第二个分支由3个全连接层构成,用Sigmoid函数进行二分类,结合真实亲属关系标签,使用亲属关系损失函数(Kin loss)优化网络。Kin loss定义如公式(5)所示:
其中,zi是亲属关系标签(有亲属关系为1,否则为0),pi为通过网络得到的两张图像的相似度分数,n为batch-size大小。
网络的损失函数定义为这三个损失函数的加权值之和,如公式(6)所示:
其中,λ1、λ2、λ3为损失函数的权重,根据实验进行动态调节。
LFFEV Net由LFA Net和RVF Net组成,其中LFA Net网络参数已通过预训练完成,在训练LFFEV Net之前,需将LFA Net网络参数载入,使用Center loss+FCE loss+Kin loss优化网络。将数据输入到LFFEV Net网络中,增强图像中人脸局部特征信息,经过网络处理,得到相似度评分,如果评分超过阈值t,则判断为具有亲属关系,否则不具有亲属关系。
本章进行了一系列实验来验证本文算法的有效性。
本文使用KinFaceW[20]数据集进行实验验证,该数据集由KinFaceW-I和KinFaceW-II两个子集构成。数据集中的图像来源于互联网,包括一些公众人物及其子女的照片。人脸图像是在不受约束的环境下采集的。此外,人脸图像均已按照眼睛的坐标进行对齐并做了裁剪处理,图像大小为64×64,KinFaceW-I数据集中部分数据及其亲属关系如图5所示。
图5 KinFaceW-I部分图像Fig.5 Several image examples of KinFaceW-I
KinFaceW-I数据集:该数据集包含4种不同亲属关系的图像:父亲和女儿(FD),父亲和儿子(FS),母亲和女儿(MD),母亲和儿子(MS)。这四种关系的图像对数分别为134、156、127、116,共计1 066张图像。该数据集中每对人脸图像均采集于不同的照片,因此图像的光照、清晰程度有些许差异。
KinFaceW-II数据集:由4种亲属关系构成,每种亲属关系包含250对图像,数据集中总共有2 000张图像。该数据集中每对人脸图像均采集于同一张照片。
LFA Net模型基于Pytorch实现,使用KinFaceW-II数据集中原始图像和经过关键部位提取处理后的图像作为训练数据,对LFA Net进行预训练,网络优化器选用Adam,学习率设置为0.01,权值衰减设置为0.005,batch-size设置为32,损失函数使用BCE loss,迭代次数为200次。
LFFEV Net模型的优化器选用Adam,学习率设置为0.000 03,权值衰减设置为0.005,损失函数使用Center loss+FCE loss+Kin loss,其权重λ1、λ2、λ3分别为0.000 1、1、10。使用交叉验证方法,将数据集尽可能等分成5折,其中4折用来训练,1折用来测试。每折由相同数量的正样本和负样本构成,正样本是一对有亲属关系的父母和孩子,负样本是由在本折中的不具有亲属关系的样本随机组合构成。进行5次实验,每次实验迭代次数为300次,阈值t设置为0.5。每次实验都会得出相应的准确率,最后将5次实验结果取平均值作为最终的实验结果。
本文进行了四组对比实验,并将四组实验结果进行比较。第一组实验命名为“RVF-only”,在这组实验中,去掉了LFFEV Net中的LFA Net,使用RVF Net进行亲属关系验证,输入数据为原始图像和3张由原图像转换的灰度图像。第二组实验命名为“LFA-only”,使用RVE Net网络,输入数据只有经过LFA NET提取的人脸局部关键特征。第三组实验命名为“LFFEV-noID”,在这组实验中使用LFFEV Net完整网络,但没有使用Family ID,训练时没有使用Center loss和FCE loss对网络进行优化,输入数据为原始图像和3张对应灰度图像。第四组使用整个LFFEV Net,同时结合Family ID,使用Center loss和FCE loss对网络进行优化,输入数据为原始图像和3张灰度图像。将四组实验结果进行比较,表3和表4分别为KinFaceW-I和KinFaceW-II的测试结果。
表3 比较不同实验在KinFaceW-I数据集准确率Table 3 Comparison of accuracy using different models on KinFaceW-I Dataset %
表4 比较不同实验在KinFaceW-II数据集准确率Table 4 Comparison of accuracy using different models on KinFaceW-II Dataset%
从表3和表4可以看出,同一性别的验证准确率要高于不同性别的准确率,如FS准确率要高于FD,MD的准确率要高于MS。人脸图像取自同一张照片的验证准确率高于取自不同照片,如在KinFaceW-II上的验证准确率要高于KinFaceW-I上的验证准确率。同时通过实验可以得出:
(1)“RVF-only”实验使用RVF Net验证网络,未对人脸局部特征进行增强,在KinFaceW-I和KinFaceW-II的平均准确率为72.2%与80.3%。
(2)仅以LFA Net所提取的人脸的局部关键特征作为网络输入时,“LFA-only”实验得到的准确率分别为70.0%和66.7%。
(3)使用整个LFFEV Net,但未使用Family ID对网络进行优化的情况下,“LFFEV-noID”实验结果分别为77.8%和82.4%。引入Family ID信息之后,“LFFEV”实验结果分别达到79.0%和85.0%。
实验“RVF-only”与“LFFEV”对比可以看出,使用LFA Net对局部特征进行增强后,在两个数据集上准确率分别提升了6.8个百分点和4.7个百分点。“LFA-only”和“LFFEV”实验表明,单独使用局部关键特征作为输入,模型具有一定的亲属关系验证能力,但是准确率较低。通过实验“LFFEV-noID”和“LFFEV”可以看出,引入Family ID后,准确率分别提升了1.2个百分点和2.6个百分点。
实验结果表明,加入LFA Net后,通过对人脸局部特征增强,能够提取到更具有鉴别力的人脸特征,准确率提升效果较为显著。此外,引入Family ID标签用于优化类内以及类间距离,准确率有所提升。综上所述,LFA Net提取的人脸局部特征和使用Family ID信息有利于算法性能的提升。
为进一步验证算法的有效性,将本文提出的算法与LMBC[33]、IML[34]、MNRML[20]、MPDFL[35]、DMML[34]、KV-CNN[36]等算法进行了比较。如表5和表6所示,提出的LFFEV模型在FS、FD、MD、MS四个子数据集上的准确率都有了较为明显的提升,与准确率最接近的KVCNN方法相比,在KinFaceW-I数据集上平均准确率增幅最少为5.7个百分点,在KinFaceW-II数据集上平均准确率增幅最少为3.8个百分点。
表5 比较不同算法在KinFaceW-I的准确率Table 5 Comparison of accuracy with other methods on KinFaceW-I Dataset %
表6 比较不同算法在KinFaceW-II的准确率Table 6 Comparison of accuracy with other methods on KinFaceW-II Dataset%
本文提出了一种基于深度学习和人脸局部特征增强的亲属关系验证方法。该方法设计了人脸局部特征增强验证网络LFFEV Net,利用人脸的关键局部特征来提取更具鉴别力的人脸特征用于亲属关系验证。同时,引入Family ID信息使得模型学习到更好地表征家庭信息特征,进一步提升算法准确率。算法在公开数据集KinFaceW上进行了测试,实验结果表明,使用LFFEV Net进行亲属关系识别能提高验证的准确率。
未来将尝试从不同尺度对局部特征进行增强,并探讨具备学习能力的注意力机制来确定每个尺度特征的权重,进一步提升算法的性能。