基于改进循环对抗网络的异质人脸合成配准

2021-06-28 12:42:28汪鸿浩张俊然
计算机工程与设计 2021年6期
关键词:异质素描人脸

汪鸿浩,张俊然

(四川大学 电气工程学院,四川 成都 610065)

0 引 言

异质人脸合成,即在不同模态之间进行面部图片的相互转换,如照片-素描转换、近红外(NIR)-可见光(VIS)转换、3D-2D之间的转换、高-低分辨率之间的转换[1];其中,照片-素描模态图片之间的转换则是最常见的一种转换形式。但是由于照片和素描模态之间各自特点的不同[2],使得素描-照片之间的转换仍是一个具有挑战性的问题。

早期的人脸与素描间匹配研究主要集中在两者之间的直接匹配[3],为实现这一目的,通常会在直接匹配之前使用人脸合成技术[4],因为人脸合成技术有助于在转化时更好捕捉面部特征,对人面部轮廓进行填充、细化,使细节更加突出,从而有助于减小匹配误差。但是由于照片和素描之间几何和纹理的差异[5],导致在两种模态之间进行直接匹配的方法不切实际。

Goodfellow等提出生成对抗网络(consistent adversa-rial networks,GAN)[6],并成功将其运用到图像生成领域后,研究人员便不断尝试将这类算法应用到图像生成领域,而异质人脸合成本质上也属于图像之间的转换问题[7]。

因此针对异质人脸的合成问题,在基于深度学习框架下,利用生成对抗网络来学习一种多层非线性网络结构,其优势在于:①对人脸数据集的要求更低,不需要成对的数据集,能够适应多种风格的转换;②相较以往的浅层机器学习的方法,能够实现复杂函数的逼近[8],可以从更少数的样本中提取到数据的本质特征,提高合成质量。

鉴于此,本文使用基于深度学习算法的循环一致对抗网络(cycle consistent adversarial networks,CycleGAN)[9]模型对照片和素描分别进行异质合成,并且在原模型基础上进行目标函数改进,首先将网络中的对抗损失函数替换为最小二乘损失[10],有助于解决在训练过程中的不稳定问题和提高图像生成质量;其次引入SmoothL1损失函数[11]来解决在训练中出现的模式崩溃(mode collapse)问题[12]。

1 循环对抗网络模型

1.1 GAN网络

循环对抗网络(CycleGAN)又叫循环一致生成对抗网络,此模型是在Goodfellow等在2014年提出的生成对抗网络(generative adversarial networks,GAN)模型[6]基础上进行改进的一种图像生成模型。原始模型GAN为一种无监督学习的生成式网络。其诞生背景是在深度学习被广泛应用于图像处理等多个方面,而众所周知,神经网络的崛起除了计算机性能的提升之外还得益于庞大的数据支撑。而其之前的神经网络并不能很好地满足人们逐渐增长的对于样本生成这方面的性能要求。因此,学者们便不断开始新的尝试,想要创造一种新的网络模型,通过学习更少的数据样本,甚至是自动生成缺失的数据和标签,来生成高质量的图像,以此来降低成本、加速研究、提高效率。

GAN最主要的两个组成部分是生成器和判别器,其直观思想类似于博弈论,生成器和判别器两者之间相互博弈。生成器整个部分的目的是尽可能去生成与目标结果类似的结果;而判别器的任务就是找到生成器的生成结果与标签数据之间的差距,两者之间相互兼容,相互博弈。整个网络同样是这两部分组成,分别是生成模型G和判别模型D。生成模型G负责接收无标签的训练数据,经过多层非线性学习可以有效捕捉到训练数据的特征从而生成近似于训练数据的给定输出;而判别模型D则负责判断生成器G生成数据的真假,判别真假的依据则是训练起初时的标签数据,并将判断结果反馈回去。整个系统则采用反向传播算法,每一次的判断结果都会反馈回G和D,从而使生成器G不断调整它的输出,最终让生成器和判别器达到最优平衡的一个状态。

GAN网络模型是基于深度学习框架下利用多层非线性网络结构来进行耦合,在面对复杂问题和有限样本的情况下可以达到更好的效果。而以往的浅层机器学习方法在有限的样本和计算单元情况下对复杂函数的表达能力有限,模型的合成能力受到一定制约[13],从而对人脸的特征信息的反映有限。

虽然GAN在利用深度学习框架下的多层耦合结构来训练网络大大提供了图像合成精度和效率,但是其也存在一些缺点。前面提到,GAN网络的主要思想就是利用博弈论思想,让生成器和判别器之间相互博弈来彼此促进,但是这种方式训练的GAN网络需要达到纳什均衡点[6],所谓纳什均衡即非合作博弈均衡,主要思想为系统中剩余参与者的决策都保持不变时,能够令所有参与者都获得决策效益最大化的一个点[14]。但是要达到纳什均衡来实现最优传输,即GAN网络所要求的使生成器和判别器达到最优平衡往往需要付出梯度下降的代价,这种方法并不是普遍适用的,换句话说,在实际中存在达不到纳什均衡点,从而导致训练不稳定。另外,有时即使达到纳什均衡,但是会存在为追求均衡点使得梯度下降过多,从而导致梯度消失,引发模式崩溃问题。

而CycleGAN模型在GAN模型的基础之上提出了循环对抗的结构,这种结构跟GAN网络一样也是一类非线性多层网络模型,相比较GAN其更明显的优点主要有:①不需要成对的数据集就可以实现不同风格图像之间的风格迁移[12],这就大大降低了对输入数据的要求;②包含双向生成模型,引入双向判别,从而可以更加精确提取到输入特征和改善生成质量,使得合成图像更加准确和清晰,双向生成模型使得网络达到纳什均衡点,最优传输变的容易许多。

但是此模型同样也存在一些问题,如训练过程中稳定性问题和模式崩溃问题[11],即G可能会生成一些差异性不大的样本,本文则着手对这两个问题进行改进研究。

1.2 CycleGAN之异质合成原理

CycleGAN的独到之处在于其引入的循环一致损失,这种独特的结构为异质人脸之间的相互转换提供了便利。循环对抗网络本质上采用的是一双生成器和双判别器结构,并且在此基础之上加入循环一致损失;这种双向判别模型的优点在于生成器和判别器之间即可以相互博弈,又可以相互促进彼此的G(X)尽可能靠近Y域内的数据,但是由于这种映射关系严重欠约束,因此建立逆映射F:Y→X与其相耦合,并且引入循环一致损失函数来强制执行逆映射F(G(X))≈X,迫使判别器又可以利用生成器的合成结果去配准输入样本,从而不断校正生成器的生成性能,使得生成结果无限接近原始数据。而为了实现这一目的,有两点要求:①首先要使用双生成器和双判别器,如图1(a)所示,两个分布域分别为原域X和目标域Y,双生成器G,F分别代表了两种映射关系,两个对抗判别器DX和DY分别对两种映射转化后的图片进行判别;②其次就是引入了循环一致损失(cycle-consistency loss),分为前向循环一致损失(forward cycle-consistency)和后向循环一致损失(backward cycle-consistency),其作用就是使得从原域到目标域之间的映射可以相互转换,即实现两个域之间的映射,两种映射分别为:x→G(x)→F(G(x))≈x和y→F(y)→G(F(y))≈y,作用就是使生成器和判别器之间相互校正,防止两种关系之间相互矛盾,并且利用数据集中其它真实的图来检验生成器结果,从而防止G和F过拟合。

图1为CycleGAN总体原理,图1(a)为总体示意图,对应了CycleGAN的总目标,图1(b)则解释了正向生成过程,生成器G先将原域X中的图片映射到目标域Y中,即G:X→Y;图1(c)与之相反,生成器F将目标域Y中的图片映射到源域X中,即F:Y→X,而循环一致损失则作用于逆转换,保证合成后的图像可以再映射到原域。

图1 CycleGAN总体原理

异质人脸之间的相互匹配,需要的是实现从某一模态的人脸图片到另一模态人脸图片之间的合成与转化。而这一思想刚好与CycleGAN网络的双生成器和双判别器网络不谋而合。所以利用CycleGAN网络来进行异质人脸匹配也有着更加独到的优势。

故以CycleGAN网络为载体,异质人脸匹配的具体合成过程则如图2所示。

图2 整体训练过程

图2(a)是人脸照片向素描图片的合成过程,图2(b)则是根据素描来合成人脸照片。双生成器G和F同时开始训练,输入数据为正常光照条件下的人脸照片,输入图像real_x经过生成器G生成另一模态的图片即素描fake_y,此时,real_x和fake_y即相当于图1(a)中的原域X和目标域Y;之后再经由判别器DY决断生成图片与真实对照图片real_y的差异,判别结果每次则会被反馈送回网络,而网络训练的最终目的则是找到最优均衡点,从而使得生成图片尽可能接近对照图片。

1.3 CycleGAN目标函数

1.3.1 原始目标函数

CycleGAN的目标是输入特定训练样本xi和yi来学习原域X和目标域Y之间的映射函数。由图1(a)得知,模型包含两种映射:G:X→Y和F:Y→X;另外,还需要两个对抗判别器DX,DY分别对两个过程中生成的图片与原域中的图片进行判别;而循环一致损失则用来防止G和F之间互相矛盾。故原始的目标函数为

L(G,F,DX,DY)=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+λLcyc(G,F)

(1)

其中,目标函数主要分为两部分,为对抗损失LGAN(G,DY,X,Y)、LGAN(F,DX,Y,X)和循环一致损失Lcyc(G,F)。

1.3.2 对抗损失

双生成器G,F和双判别器DX,DY对应于对抗损失,具体如下

LGAN(G,DY,X,Y)=Ey~Pdata(y)[logDY(y)]+Ex~Pdata(x)[log(1-DY(G(x)))]

(2)

G为生成器,DX为判别器,用以判别G生成结果与目标域Y对象的真假;此过程为正向过程,而反向生成过程与之类似。

1.3.3 循环一致损失

理论上说,前面的对抗损失可以使得生成映射G,F所生成的结果严格满足原域和目标域的对应分布,达到理想效果。但是,由于数据量和网络体量过大,网络可能将同一组输入图像映射到目标域中图像的任何随机排列,其中任何存在的映射都可以诱发与目标分布匹配的输出分布,因此,仅对抗损失不能保证单个输入的X映射到所需的Y中。为避免所需要的匹配失败,还需引入循环一致,如图1(b)和图1(c)所示,使得从原域匹配到目标域的图像还能再次匹配回原域,从而保证一一对应的关系,图1(b)中出现的循环一致损失为正向过程称为前向循环一致,图1(c)中出现的为逆向过程则为后向循环一致。

循环一致损失函数如下

(3)

但是对抗损失所用的负对数似然函数在训练过程中会出现训练不稳定和合成质量不高的情况。而循环一致函数中使用的L1范数在训练中也可能导致模式崩溃问题。

此外,从式(1)中可以看到,循环一致损失函数前面有一系数λ,此为循环一致损失和对抗损失之间的权重比例超参数,通过控制λ的系数大小来控制对抗损失和循环一致损失在整体损失函数中的主导作用。

本文着重展示对CycleGAN进行改进来提高异质人脸合成的效果,而此系数的变化也可以导致结果的变化,故后面实验章节将会通过实验来验证λ对于结果的影响。

2 CycleGAN目标函数的改进

2.1 最小二乘损失

尽管CycleGAN在图像生成方面取得了很大进展,对数据集的要求也更低,但是在使用过程中仍存在一些缺陷。

其对抗损失所使用的Sigmoid交叉熵损失函数在训练过程中易出现饱和现象,从而发生梯度弥散现象,导致整个网络的不稳定,诱发判别器的决策失误。而最小二乘损失只会在一点达到饱和,出现梯度弥散的情况远小于交叉熵损失函数。此外,在使用交叉熵损失函数作为图片判别器时,不管图像的生成质量如何,判别器对于生成器生成的图像在一次判别之后就不再进行决策判别;而最小二乘损失会在每次迭代后将生成的图像重新放回决策边界进行决策,从而不断提高合成质量。因此根据文献[10],本文将对抗损失函数替换为最小二乘损失从而有助于增强训练稳定性,提高合成质量。则对于生成器G和判别器DY其损失函数定义如下

LGAN(G,DY,X,Y)=Ey~Pdata(y)[(DY(y)-1)2]+Ex~Pdata(x)[(DY(G(x)))2]

(4)

对于生成器F和判别器DX其损失函数定义如下

LGAN(F,DX,Y,X)=Ex~Pdata(x)[(DX(x)-1)2]+Ey~Pdata(y)[(DX(F(y)))2]

(5)

2.2 SmoothL1损失函数

为解决模式崩溃问题,使用SmoothL1损失函数[15]取代原文中循环一致损失中的L1损失。其原理如下:相比L1损失,SmoothL1的特性更加平滑,它在L1的基础上结合了L2损失,也就同时拥有了L1和L2的优点。图3则更加直观反映出SmoothL1平滑的特性,从上到下依次为L1,L2,SmoothL1。

图3 函数

SmoothL1损失函数的原理

(6)

其优点在于:当预测值和给定值差别较小时,它可以保证梯度不至于太大;而当差别较大时,又可以保证不会发生梯度爆炸。前面说过,GAN的特点之一是在网络训练过程中不断寻找纳什均衡点,而找到纳什均衡点往往需要付出梯度损失的代价,而使用SmoothL1函数也在一定程度上避免了这一损失。

最终,整体的目标函数定义如下

L(G,F,DX,DY)=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+λLcyc(G,F)

(7)

3 实验结果与分析

3.1 数据集

此次研究的数据集来源于香港中文大学公开的人脸素描数据(CUFS)[3]。CUFS是异质人脸合成的常用数据集之一,包括188张来自香港中文大学学生的数据,123张来自AR数据集的数据和295张来自XM2VTS的数据集[3];将数据集分成4个部分,分别对应照片与素描图片的训练集和测试集。这些数据集都包含面部特征坐标信息[16],可以很容易的将图片进行标定对齐。

3.2 实验结果展示

图4为此次实验结果展示。

图4 实验结果展示

上图从左到右依次为输入图片,标注图片,合成图片,图4(a)、图4(b)行为照片合成素描,图4(c)、图4(d)行为素描合成照片。从实验结果中可以看出,无论是照片的合成还是素描的合成,与标注相比,总体合成效果均较为理想。

3.3 不同方法之间的对比实验

为验证本文对算法改进的有效性,选取Pix2Pix网络作为对比。Pix2Pix[17]网络是GAN网络的另一重要拓展,其在GAN的基础上可以做到有控制的输出,同时借鉴了残差网络(ResNet、Residual Network)的思想[18],使用跳跃连接(Skip Connection)可以使得网络之间来共享更多信息,但是其对数据集自身的要求更高,必须要求成对输入信息。对比结果参见图5。左边3组为素描合成照片,右边3组为照片合成素描。从上到下依次为输入图片,标注图片,Ours,CycleGAN和Pix2Pix。

图5 不同方法对比

从图5中的对比可以直观看到,本文算法的合成效果要优于CycleGAN和Pix2Pix两种算法,通过与标注图片的对比,可以直观看出在亮度、色彩转换和清晰度方面效果均优于另外两种方法,而且在发梢等细节方面也更接近于原图。

为了更加定量地观察到性能的改变,在同一数据集下,选取结构相似度(structural similarity index,SSIM)[19]、余弦相似度(cosine similarity,CS)[20]和拉普拉斯梯度函数(Laplace)[21]分别作为图像的相似度检测指标和清晰度检测指标。详细对比结果见表1和表2。

表1 不同方法性能对比结果(素描合成)

表2 不同方法性能对比结果(照片合成)

结构相似度(SSIM)是一种衡量两幅图像相似度的指标,它主要从亮度、对比度和结构3个模块来对相似度进行测量,其定义如下

(8)

余弦相似度(COSIN)同样也是衡量图像结构相似度的指标,主要是把图片转换成向量,用向量空间中两个向量夹角的余弦值作为衡量指标,相比结构相似度,余弦相似度计算过程要更加复杂,但是也更加可靠。其定义如下

(9)

拉普拉斯梯度函数主要是用于检测图像清晰度的指标,其实质是使用拉普拉斯算子分别提取图像水平方向和垂直方向的梯度值来做检测,定义如下

D(f)=∑X∑Y|G(x,y)|

(10)

式中:G(x,y)是像素点(x,y)处的拉普拉斯算子。

从表1和表2的对比结果中可以看出,在同一数据集和相同的训练/测试样本下,本文所采取的改进方法相较原网络和对比网络在生成结果的相似度和清晰度上都有所提高,进一步验证了本文所使用方法对生图片成质量有所帮助。

3.4 权重系数变化的分析

在1.3.3节的最后提到循环一致损失的作用是保障原域与目标域之间合成的相互匹配,实现精准映射,其中循环一致损失函数前面的系数λ为对抗损失和循环一致损失之间的权重系数比。既然是权重,则表明了在对网络的训练过程时,可以人为进行干预,根据每次实验的合成结果来调整循环一致损失函数在整个网络中的权重大小。因此这一系数决定了对抗损失和循环损失在整个合成过程中两个损失函数所起作用的大小。如果取值过小,则循环一致损失无法发挥理想的效果,从而使得在配准合成过程中发生误差;若取值过大,则可能使得模型过拟合。

在原文中λ=0.5,而本文在改进目标函数时发现,λ的变化对最终的合成结果也会产生影响,故在本次实验当中,分析了权重系数的变化对结果的影响。实验中,采取控制变量的方法,针对同一数据集,在改进后的网络下,将λ依次取值为0、0.5、1、5、10、15。

图6为λ取不同值时,3个评判指标的变化趋势图。从λ的趋势图可以看出,在结构相似度、余弦相似度和拉普拉斯梯度函数3个指标当中,SSIM和COSIN的值在0.5时取值最佳,而拉普拉斯梯度函数虽然在不同取值时有所波动,但是彼此之间的差距并不明显。而λ取值为0.5也是本次实验中λ的取值,因此,不管λ如何变换,从综合效果来看都是在取值为0.5时效果最佳。

图6 λ变化趋势

4 结束语

本文研究了基于循环生成对抗网络(CycleGAN)的异质人脸合成中照片-素描图像之间的合成配准。本文的主要贡献是:提出了一种改进的目标函数,用最小二乘损失和SmoothL1损失函数改进原网络中对抗损失和L1范数,提高训练质量、增强了训练过程的稳定性并解决了训练中模式坍塌的问题。

实验结果表明,提出的改进方法相较于原方法在图像生成质量方面有所提高。本文方法除了应用在异质人脸合成之外,还适用于其它风格图像特点的迁移、语义分割等多方面。此外,本文只做了针对于照片和素描之间的异质转换,未来的工作可以针对异质人脸研究对象在其它模态方面展开研究,此外在网络结构上也可以继续进一步改进,尝试使用多层对抗和循环结构,使图片生成质量进一步得到提升。

猜你喜欢
异质素描人脸
有特点的人脸
初夏素描
武汉素描
歌剧(2020年4期)2020-08-06 15:13:32
素描
雨露风(2020年8期)2020-04-26 19:55:51
三国漫——人脸解锁
动漫星空(2018年9期)2018-10-26 01:17:14
凡·高的早期素描
读者(2016年23期)2016-11-16 13:27:55
随机与异质网络共存的SIS传染病模型的定性分析
Ag2CO3/Ag2O异质p-n结光催化剂的制备及其可见光光催化性能
MoS2/ZnO异质结的光电特性
物理实验(2015年10期)2015-02-28 17:36:52
马面部与人脸相似度惊人