对抗学习在带妆人脸验证中的应用

2020-12-09 09:27宁,李
小型微型计算机系统 2020年12期
关键词:特征提取人脸妆容

王 宁,李 京

(中国科学技术大学 计算机科学与技术学院,合肥 230026)

1 引 言

作为人脸识别问题的一个分支,人脸验证的重点在于机器能够自动确定一对人脸图像是否具有相同的身份.作为一项基础研究工作,它的研究成果能够应用于各种实际场景,如安全监视和信用调查等.在过去的几十年里,人脸验证的方法取得了显著的进展,但是仍然存在一些影响方法效果的因素,如:人脸的正脸和侧脸的偏差、面部装饰品遮挡导致的信息缺失,以及妆容对面部图像特征的改变.随着社会的发展,化妆行为已经被人们广泛的认知和接受.据有关调查显示,中国的化妆群体将在2020年突破3亿人,化妆已经成为大多数中国女性及小部分中国男性的日常工作.但是妆容能够覆盖人脸的局部纹理信息,还会改变面部的轮廓信息.由于每次化妆所造成的纹理信息和轮廓信息的改变是不同的,现有的方法还不能有效地去除这些改变带来的影响,这就给当下的人脸验证工作带来了不小的挑战.

化妆品的历史最早可以追溯到古埃及时代[1],使用适当的化妆品,可以使皮肤看起来光滑圆润,使得眼圈变黑,也可以改变嘴唇的颜色、眉毛的形状等等.这些变化遮挡了面部的缺陷,带来显著的外观变化,导致了带妆和不带妆的人脸图像在全局和局部的外观上存在差异.而现有的人脸识别和人脸验证算法主要依赖于在人脸图像中提取特征点信息,从而捕获人脸外观特征,达到人脸识别和人脸验证的目的.Dantcheva A等[2]的研究表明,妆容能够给人脸验证工作带来很大的影响.说明当下的主流方法缺乏对于妆容图像识别及验证的鲁棒性.

传统基于深度学习的人脸识别及验证的方法对于妆容的鲁棒性不强,究其根本原因是,带妆和不带妆面部图像分布存在差异,导致两类图像通过这些神经网络提取到的特征向量不能映射到同一特征空间上.因此,如果对网络采取某种约束,使得提取到的特征能够映射到同一特征空间,就能够较好的解决这一问题.Goodfellow等人[3]提出的生成对抗网络(GAN)是近几年来生成模型中的佼佼者,其主要包括生成器G(x)和判别器D(x).令Px(x)表示真实的概率分布,Pz(z)表示随机噪声的分布.生成器G(x)主要用于将随机噪声z映射到真实的样本空间,得到分布PG(G(x)).判别器D(x)主要用于判断输入的样本是来自真实分布Px(x)还是来自生成器生成的样本分布PG(G(x)).通过生成器和判别器的动态博弈,生成器的生成的分布PG(G(x))越来越趋近真实分布Px(x).由此可见,GAN给我们提供了一种新的技术思路,即使用对抗的方法来逼近网络提取到的特征分布.因此,我们使用两个残差网络[4](Resnet)分别提取带妆和不带妆图像的特征,同时采用对抗的方式来对特征提取的过程进行约束,使得两个残差网络提取到的特征能够映射到同一特征空间,以消除妆容对人脸验证带来的影响.

本文的主要工作如下:

1)本文采用的MIFS_YMU_PLUS(MYP)数据集,整合了C.Chen等人[2,5-7]采集的YouTube Makeup(YMU)数据集和Makeup Induced Face Spoofing(MIFS)数据集,并添加自己搜集的带妆和不带妆面部图像,除此之外还对现有的Labled Faces in the Wild(LFW)人脸数据集进行自行上妆工作,最终合成得到.

2)使用两个残差网络分别来提取带妆和不带妆人脸的特征,同时在两个网络的中间层和输出层进行约束,使得模型能够提取到与妆容无关的特征.

3)设计了特别的损失函数和采样方式,以使得模型能够达到最佳的训练效果.

4)该方案在MYP数据集上取得了最好的效果,与现有的方案相比得到了显著的改进.

2 相关工作

2.1 人脸验证

在机场、酒店、火车站等公共场所,每天都需要进行大量的人脸验证工作.人脸验证在实际环境中存在着广泛的应用,因此人脸验证问题一直受到研究人员的广泛关注.神经网络出现之后,越来越多的科研工作者开始探究深度神经网络下人脸验证问题上的应用,并取得了巨大进展.

百度公司提出的基于深度卷积神经网络的人脸识别算法[8]和谷歌公司的Facenet[9]在LFW数据集上都取得97%以上的准确率.但是在实际工作中,我们经常会遇到一些样本量比较少的人脸数据集,在这类数据集上,由于两类网络过于复杂,导致神经网络很容易在训练集上产生过拟合的现象,且随着网络层数的加深,由这两个公司提出的神经网络均出现了网络退化的情况,导致在小数据集上效果较差.且LFW中的人脸图像,并没有考虑妆容在人脸识别和验证问题中带来的影响,因此对带妆面部图像进行识别时,这些方法的准确率就会严重下降.

2.2 带妆人脸验证

化妆相关的研究现在已经越来越受研究人员的关注,但是跟妆容有关的人脸验证相关的研究却很少.Hu[10]等提出了基于典型相关分析(canonical correlation analysis,CCA)[11]和支持向量机(Support Vector Machine,SVM)[12]的妆容识别方法,CCA是一种图片的特征提取算法,可以将图像映射到同一个欧几里得空间中,并使得同类的照片之间的欧氏距离更近,属于比较早的特征提取算法.在特征提取结束后,再结合SVM进行分类.由于CCA所做的特征提取仅仅考虑了单个带妆面部图像和单个不带妆面部图像的关系,忽视了本类图像内部之间的关系,所以CCA应用在带妆人脸识别时的效果较差.Guo等人[13]等将化妆特性作为领域知识,提出了一种结合面部分割与CCA进行识别的方法,该方法不但可以对化妆的人脸进行识别,同时还可以对不化妆的人脸进行识别,对于妆容的鲁棒性较强,此外,还产生了一个化妆检测的方案,该方法虽然对妆容图片的人脸验证具有一定的鲁棒性,但是受限于CCA的特征提取能力,该方法在专门的妆容类数据库上识别率并不高.Sun[14]等人提出了一个弱监督学习的妆容不变的人脸识别方法,由于带妆人脸数据库一般样本量较小,所以他们先在视频中收集人脸图片,预训练一个卷积神经网络,然后再使用带妆人脸数据库对模型进行微调,采用三元组的损失函数对模型进行优化,即3张图片,其中两张B1,B2是同一个人的图像,A是另外一个人的图像,假设提取到的特征为IB1、IB2和IA则满足|IB1-IB2|+α<|IB1-IA|.实验结果证明他们的方法的表现超越了前两种方案,但是由于妆容覆盖了大量的有效信息,导致特征提取过于困难,最终的结果也不理想.Li[15]等人提出了一种基于生成对抗网络的带妆人脸验证的方法,主要是依托于生成对抗网络,先将带妆面部图像转换为对应的不带妆面部图像,再进行人脸验证模型的训练,从而避免了带妆样本对于模型鲁棒性的负面影响.但是由于生成对抗网络在像素级的生成所需的训练周期较长、对于训练集的样本量要求较大,且判别结果对生成效果依赖性较强,所以实用性较差.

2.3 残差网络

残差网络(Resnet)是He等人[4]提出的一种基于卷积神经(CNN)网络的深度学习模型.一般来说,深度神经网络层数越深,则模型的表达能力越强,但是当网络层数达到一定的深度之后,增加网络层数并不能进一步提升网络性能,反而会因为参数过多导致网络庞大,且网络收敛速度变慢.Resnet借鉴了常规的计算机视觉领域残差表示(residual representation)的概念,并将它运用在CNN的模型构建中.假设模型的输入为x,Resnet的输出为R(x),则Resnet着重于使用多个CNN来学习R(x)-x.实验结果显示,Resnet具有良好的特征提取能力,且模型不会因为网络层数的变深而效果变差.Resnet被提出后,被许多研究者将其应用于图像识别和分类问题[16-19].裴颂文[18]等人通过结合Resnet和网中网(Network in Network)模型,提出了一种网中网残差网络(NIN-Resnet)模型,该方法在表情分类识别问题中的FER-2013 和CK+数据集上都取得了较好的效果.杨雨浓[19]提出一种基于深度残差网络的表情识别的方法,先将面部图像进行分割,再通过卷积神经网络提取每一部分的特征,最后通过残差单元结合深度网络对特征进行聚合,最终得到的模型具有较好的识别率和较强的鲁棒性.因此我们选择Resnet18作为我们的特征提取网络,可以防止模型由于数据量过小网络层数过多导致效果变差,也可以保证模型在大数据量时拟合数据分布.由于本文实验中采用的数据集样本量较少,为了防止过拟合,我们对Resnet18的网络结构和部分参数进行了调整,调整后的网络结构和参数如图1所示.

图1 本文中所使用的Resnet 结构和参数图Fig.1 Resnet structure and parameter diagram used in this article

2.4 对抗学习

自从GAN被提出以来,越来越多的研究者将这种对抗学习的思想应用于图像生成的任务中[20-23],因为通过对抗的方式,可以让判别器约束生成器特征提取过程,使得生成的分布逼近于真实图像的分布.所以不少研究者将这一思想应用于各种特征提取任务,以达到约束特征提取的作用.Ganin等人[24]在领域适应(domain adaptation)的问题中,通过使用对抗性的神经网络来正则化特征提取器,生成了领域无关(domain invariant)的特征,实验结果表明问题效果得到显著的提升.He 等人[25]将对抗性学习的正则化作用用于跨模态检索(cross-modal retrieval),提出一种无监督检索算法UCAL,能够取得与最新的有监督方法同样好的检索效果.

3 基于对抗学习的带妆人脸验证模型框架

本文网络框架如图2所示,该框架包括3个部分,包括提取带妆面部图像特征的Resnet(Rm),提取不带妆面部图像特征的Resnet(Rn),以及一个用于判断特征来源的判别器(Discriminator,D),其中Resnet我们采用结构如图1所示.一个带妆面部图像样本xm通过Rm提取到的特征向量为Rm(xm),一个不带妆面部图像样本xn通过Rn提取到的特征向量为Rn(xn),我们通过三元组损失来优化Rm和Rn,同时为了让两个网络提取到的特征相互关联,我们设计了一个特殊的三元组损失,同时作用于两个残差网络.

4 算法设计

为了使两个Resnet都能够提取到本类图像的特征,同时还能够映射到同一特征空间,我们除了在两个Resnet的中间第k层增加对抗之外,还设置了特别的损失函数.为了满足这些损失的产生,本文设计了一种新的采样方式.本小节将来介绍训练采样、模型损失以及训练过程的具体设计.

图2 基于对抗学习的带妆人脸验证网络框架Fig.2 Network framework for face verification with makeup based on adversarial learning

4.1 采样方式

Schroff F等人[9]在训练Facenet时提出的三元组损失函数(Triplet_loss)被广泛应用于各类识别算法中,由于该方法可以将训练集映射到一个较好的特征空间,因此与其他分类损失函数相比效果更好.但是由于带妆面部图像与不带妆面部图像分布差异较大,单纯采用Triplet_loss训练模型很容易导致过拟合,因此本文提出在网络中添加对抗损失函数,使得两个Resnet能够在提取本类面部图像特征的同时可以相互逼近提取到的特征空间.为此,本文设计了一种新的采样方式,用于在训练两个Resnet的情况下同时满足Triplet_loss和对抗损失的优化,具体的操作方法如下:

4.2 损失函数

4.2.1 判别器损失函数

(1)

4.2.2 Resnet损失函数

(2)

(3)

(4)

(5)

综上得出,两条Resnet总的损失函数LR可以表示为:

(6)

4.3 训练和优化

算法1.基于对抗学习的带妆人脸验证算法流程

判别器更新参数次数Kd

Rm和Rn的更新参数次数Kr

批量样本数j

迭代次数T

Result:用于提取带妆面部图像特征的残差网络Rm和用于提取不带妆面部图像特征的残差网络Rn

1.for t=1 toTdo

2.固定Rm和Rn的参数;

3.解锁判别器D的参数;

4. for k=1 tokddo

7. 根据式(1)利用梯度下降法更新判别器D的参数;

8. end

9.固定判别器D的参数;

10. 解锁Rm和Rn的参数;

11. for k=1 toKrdo

14.根据式(6)更新Rm和Rn的参数;

15. end

16.end

为了使模型达到最佳效果,模型训练需要进行多次迭代.每次迭代需要先固定判别器的参数更新两个Resnet的参数,之后再固定两Resnet的参数更新判别器的参数,以此交替训练.算法1描述了整个模型的优化过程.

5 实验验证

为了验证本文提出的算法的有效性,我们利用MYP数据集来对本文提出的模型进行3次实验验证,分别验证添加对抗的合理性、对抗添加的位置的合理性以及本文的方法准确率.本节主要介绍数据集,实验设置以及实验结果.

5.1 数据集及数据预处理

MIFS数据库是在YouTube的化妆教程中截图的化妆前后的人脸图像.其中共包含107名受试者,其中有3名男性受试者和104名女性受试者,每个受试者都会带有具有迷惑意义的妆容,每个受试者包含6张照片,其中2张为化妆前,2张为化妆后,还有2张为受试者试图模仿的目标对象,数据集中妆容较浓.YMU数据库也是在Youtube的化妆教程中收集的人脸图像.共有151名受试者,每个受试者包含2张化妆前的照片和2张化妆后的照片,数据集中全部为白人女性,这些面部图像的妆容浓度从细微到厚重不等,且面部除了妆容之外,还有表情和姿势的变化.由于两个数据集规模都比较小,且两个数据集的分布较为接近,所以我们将两个数据集进行了整合.由于MIFS中的每个受试者包含2张目标对象的面部图像,所以我们对MIFS中的面部图像进行清理,只留下每个受试者2张化妆前的图像和2张化妆后的图像.除此之外,我们还在各大视频网站的截取美妆视频中美妆博主化妆前后的图像,共截取了12名美妆博主,对象均为黄种人女性,每个对象保留2张上妆前的图像和2张上妆后的图像.我们选择LFW中30名图像数大于等于4的对象进行了人工上妆操作,其中包括17名男性和13名女性,将每个对象的2幅正面图像使用上妆软件进行编辑,同时保留2张不同的未上妆图像.通过以上处理,最终将整个数据集扩充到300名对象,其中每个对象有4张图像,称之为MYP数据集.

本文采用MYP数据集进行实验.实验开始前,使用基于OpenCV的haar级联分类器对人脸进行定位和截取,对于截取效果较差的人脸,我们采用人工截取的方式进行截图,并统一将大小调整为160*160.

5.2 对照实验设置

为了验证模型的合理性,本文进行了3种实验.首先,使用单个Resnet(Resnet_s)作为基准实验,对比两个不增加对抗损失的Resnet(Resnet_d)和两个增加对抗损失的Resnet(Resnet_a) 的实验效果.

其次,我们分别在两个Resnet的第6层(6-Resnet_a)、第10层(10-Resnet_a)、第14层(14-Resnet_a)、第18层(18-Resnet_a)进行对抗训练,以确定对抗效果最好的位置.

通过将本文的方法与VGG16、LightCNN、Facenet等经典识别类模型进行对比,来判断文中的模型是否有效.除此之外,设计实验与Li等人提出的结合生成对抗网络进行识别的带妆人脸验证算法进行比较,以便验证本文提出的方法是否具有更好的效果.

本文的实验采用5折交叉验证的方式进行验证.训练集包含240个人,共计960张面部图像,测试集包含60个人,共计240张图像.将测试集中的每个人与其他所有人分别进行配对,共得到3460对组合.在每个组合的第1个人的图像中随机抽取两张图片a1、a2,在第2个人的图像中随机抽取一张图片b,将a1、a2、b送入对应的神经网络,得到特征向量Ia1、Ia2、Ib,设定阈值为ε,在满足条件‖Ia1-Ia1‖2<ε和‖Ia1-Ib‖2<ε时判断为正确,否则判断为错误.每次测试遍历所有的组合,每个模型测试10次,采用10次准确率的平均值来衡量模型性能.

5.3 实验结果

5.3.1 对抗合理性验证

我们用Resnet_s、Resnet_d和Resnet_a进行比较,使用相同的Triplet_loss对模型进行优化,得到的结果如表1所示.

表1 对抗合理性验证结果Table 1 Results of rationality verification of confrontation

表1中实验结果表明,Resnet_d在MYP上比Resnet_s准确率提升了4.54%,这是因为带妆面部图像和不带妆面部图像的样本分布差距较大,单个Resnet很容易产生过拟合.而两个Resnet的网络结构,除了能够提取到带妆面部图像和不带妆面部图像的共有特征之外,还能提取到本类图像中的独有特征,但是由于每个Resnet都着重于拟合本类图像的分布,而提取到的特征只在最后的特征向量空间产生交互,中间提取的过程自由度过高,缺乏有效约束,所以提取到的特征并没有完全映射到同一特征空间中,因此对于妆容的鲁棒性不高.增加对抗之后,准确率又提升了2.80%.因为增加了对抗损失,两个Resnet从第k层开始提取到的特征就能够逼近,促使它们最终提取到与妆容无关的特征.由此可见,使用两个神经网络分别提取两类图像的特征并在两个网络的中间层添加对抗,这种网络结构是有效的.

5.3.2 对抗位置验证

实验改进的Resnet18是Resnet家族中的层数最少的一个网络结构,共有18层.本文选取Resnet中几个降维的位置添加对抗,以便确定添加对抗的最佳位置.不同的位置获取到的特征向量是不同的,而我们的判别器结构是固定的.因此在每一次实验之前,我们在判别器前添加一个Nk*64的全连接层,其中Nk为第k层特征向量拉平后的维度.实验结果如表2所示.

表2 对抗位置验证结果Table 2 Results of adversarial position verification

表2是4个模型在MYP数据集上的实验结果.实验结果表明,14-Resnet_a准确率最高,这说明在Resnet第14层增加对抗效果最好.第6层和第10层提取到的特征维度较高,在样本数较少的情况下,特征过于稀疏,对抗效果不佳.同时由于对抗增加的位置过于靠前,导致前面的网络并没有充分提取到图像特征,使得网络刻意迎合判别器的判别.在第18层增加对抗,虽然特征维度较低,但是由于对抗增加的过于靠后,这会影响特征细节的学习,因此效果并不明显.

5.3.3 模型效果验证

我们选取了几种较为常见的识别类网络与我们的方法进行对比,包括VGG16、Facenet、LightCNN,同时我们还选取了相关研究中目前效果最好的Li等人提出的方法,采用相同的Triplet_loss对模型进行优化,结果如表3所示.

表3 模型准确率对比结果Table 3 Comparison results of model accuracy

表3中展示的实验结果表明,在各类人脸识别与验证算法中,此算法准确率最高.在MYP上此方法比VGG16、Facenet、LightCNN以及Li等方法分别提升了13.11%、14.41%、3.95%、6.78%;Facenet是较为优秀的人脸验证网络,VGG16也是较为优秀的识别类模型,但是由于网络结构较为复杂,导致在样本量较少的MYP数据集上出现了网络退化的问题,并且迅速过拟合,因此准确率较低.我们复现了Li等论文中的方法,该方法在他们的数据集上效果较好.但是由于生成对抗网络基于像素级的生成训练时间较长、需要的样本数目多,而MYP数据集中样本数较少,部分图像上妆的质量不高,导致生成对抗网络生成效果较差.由于该方法的准确率与生成器的生成效果密切相关,导致整个模型的准确率较低.

6 结 论

为了解决现有的人脸验证方法在带妆条件下人脸验证鲁棒性差的问题,在现有的数据集都较小的情况下,我们首先对现有的MIFS数据集和YMU数据集进行了增强,再结合我们自己收集的带妆面部图像,形成了MYP数据集.我们提出了一种基于对抗学习的带妆人脸验证的算法.通过训练两个Resnet分别提取两类图像的特征,并通过在中间层增加对抗的方式使得两类网络提取到的特征尽可能的逼近,进而促使网络提取到与妆容无关的特征,以增强网络的鲁棒性.针对于本文提出的模型,我们改进了现有的三元组损失,使得模型能够达到最佳的训练效果.在MYP数据上的实验证明,我们的方法与现有的人脸识别与验证类网络相比,带妆条件下的人脸验证具有很好的鲁棒性.

猜你喜欢
特征提取人脸妆容
有特点的人脸
一起学画人脸
玻璃窗上的人脸
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
能打造光泽透亮质感的妆容
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
拯救妆容的“小棒子”
走偏锋 暗黑哥特妆容AB面