基于条件循环生成对抗网络的人脸姿态重建

2021-04-13 03:55吴莎莎陈雪云
关键词:网络结构人脸姿态

吴莎莎,陈雪云

(广西大学 电气工程学院, 广西 南宁 530004)

0 引言

人脸识别在实际应用过程中,无监督情况下采集到的人脸图像受到姿态的影响,造成人脸识别精度下降,姿势的变化是人脸识别研究上的一个巨大挑战。人脸姿态重建主要是将非正面的人脸照片通过一定的技术手段生成正面姿态的人脸照片,是解决由姿态变化导致的识别率下降的重要手段之一。

由于自遮挡,缺少大部分人脸特征,由侧面图像生成正面图像非常具有挑战性。现有的人脸姿态重建方法可分为基于3D的方法[1-2],统计方法[3-4]和深度学习方法[5-7]。FENG等[1]把人脸侧面图像映射到3D弹性网格(spring-based face model)中,利用3D网格的旋转规律进行人脸姿态重建。杨玮玥等[2]设计了一种基于3D建模的人脸多姿态合成方法,利用均值坐标(mean-value coordinates,MVC)图像编辑方法对不可见区域进行填充。3D方法虽然能得到较好的效果,但是在实验过程中需要获取大量的数据,并且计算复杂耗时。在统计学方法中,ZHANG等[3]通过提取人脸图像的特征表示,假设该特征表示对于姿势不变,以此合成一个新的面部图像。HAO等[4]提出一个统一的正则化框架,将 L2 范数和邻域一致性两个正则化项统一起来。前者利用对图像对角线权重矩阵进行约束,后者提高人脸合成的相似度。虽然统计学方法需要的数据量会少一些,重建也更加方便,但是往往会忽略输入图像与每个训练样本之间的局部相似性的重要性,在生成图像的细节及生成图像的质量方面有一定的局限性,并不能得到满意的重建效果。在基于深度学习的方法中,BENGIO等利用深度自编码网络(deep auto-encoder, DAE)[5]直接提取输入网络的人脸侧面图像的隐含特征,然后将提取到的特征重建成正面人脸图像。KAN等[6]改进自编码器的结构,通过一种堆叠步进自编码器(stacked progressive auto-encoder,SPAE)方法对非正面图像进行复杂非线性变换建模,将非正面图像输入到自编码器中,角度从大到小,逐步旋转到正面。生成对抗网络(generative adversarial networks, GAN)模型[7]的提出为人脸姿态重建打开了一扇新的大门。HUANG等[8]提出了双路径GAN(TP-GAN),同时处理人脸的整体轮廓和细节,优化损失函数,得到人脸正面图像。LUAN等[9]提出了DR-GAN,使用一个或多个人脸图像作为输入,DR-GAN可以产生一个具有鉴别性和生成性的身份表示,并且可以在由姿势信息生成指定的目标姿势中合成同一身份的人脸图像,它可以学习一种非耦合的与姿态无关的特征表示。这两种生成对抗网络利用身份信息分类的方法来保证生成忠实的人脸正面图像,需要大量的身份先验信息,在计算时需要对身份信息进行编码,在扩充数据库时,需对数据重新编码训练。

通过将三种方法进行比较,基于深度学习的方法相对来说实施起来比较简单,利用未使用生成对抗方法的模型生成的图像,整体上与真实正脸图像有较高的相似度,但是不论是自编码器还是DCN生成的图像都有趋于模糊的问题。生成对抗的方法能在整体和细节两个方面上进行人脸重建,生成的人脸图像更加清晰。在传统GAN的基础上,众多学者提出了很多GAN的变体结构,应用在了风格转换、图像超分辨率等方面,在图像生成领域展现出巨大的潜力。

GOODFELLOW等[7]在2014年提出了GAN模型,该网络结构得到了广泛地应用,发展势头异常迅猛。生成对抗网络由生成器(generator, G)和判别器(discriminator, D)构成,生成器学习真实数据的空间潜在分布,希望生成的样本足够逼真,判别器对输入的样本进行识别,判断样本的真实性。简而言之,GAN利用极小极大二人博弈,生成器和判别器不断地迭代优化自身,使生成的样本与真实样本在空间分布上越来越接近。最近对GAN的研究主要集中在对输入变量的约束或在生成对抗网络在结构上的创新进行更好的合成上。ISOLA等[10]提出pix2pix方法,将图片作为标签信息,输入到生成器和判别器中,生成基于标签的图像。ZHANG等[11]在此基础上进行了改进,采用树状生成器结构,利用颜色正则化来约束图像的色彩信息。ZHU等[12]提出一种新的对抗生成网络结构CycleGAN进行图像间的风格转换,无需成对的原始图像和目标图像,它本质上是由两个镜像的生成对抗网络组成,形成一个环形结构,两个GAN共享两个生成器,以保证生成图像与原始图像具有很高的相似性,不会丢失原始图像的特征,并各带一个判别器,即两个判别器和两个生成器。CHOI 等[13]在改进CycleGAN结构的基础上提出了StarGAN,用于头发颜色、年龄、表情等人脸局部的不同属性的互换生成。

受到上述工作的启发,利用生成对抗的方法,将人脸偏转角度作为人脸的一种姿态属性进行基于生成对抗机制的互换训练,提出了一种基于条件循环的生成对抗网络结构的方法,将原始人脸图像和目标姿势编码一起输入到生成器中,由生成器生成正面人脸图像。

1 生成对抗网络模型及其改进

GAN的思想启发于二人零和博弈。将随机变量z输入到生成器中生成假的数据。然后分别将真实数据和假数据输入到识别器中,由其来判定是否为真实数据。同时识别器的输出会反馈给生成器,用于指导生成器的训练。合成样本与训练的真实样本足够逼真,识别器判断不出,模型达到最优。生成器和识别器不断更新参数,优化目标函数,最终达到纳什均衡状态,生成器和识别器的目标函数如式(1):

(1)

原始的GAN生成的图像虽然要求生成图像空间分布逼近输入的真实图像的空间分布,但是在实际的应用过程中,传统的GAN想要生成尺寸大、像素高或比较复杂的图像是比较困难的。在生成器的输入上加入特定的条件限制,使生成的图像能够符合条件。目标函数如式(2),生成器和识别器的参数更新,都在条件c的控制之下。

(2)

GAN在训练过程中,为了更好地平衡识别器和生成器的关系,在GAN训练早期阶段,控制识别器和生成器的更新比例来平衡关系。在一系列改进GAN的文章中,利用权重裁剪、梯度惩罚等手段控制改善训练过程中不稳定的现象,但是暴力裁剪只是将权重限制在一定范围内,使识别器变得更加平滑,梯度惩罚没有考虑到梯度模小于1的区域,这些方法都并没有真正将权重限制在1-Lipschitz内,采用谱范数正则化的思想,可以将识别器的权重矩阵归一化,实现对识别器的1-Lipschitz限制,提高GAN在训练过程中的稳定性。

2 条件循环生成对抗网络

利用基于条件循环生成对抗网络(conditional cycle generative adversarial networks, CC-GAN)的方法进行人脸姿态重建过程中,将人脸角度作为一种姿态属性,相较于表情、发色等人脸属性,人脸姿态属性是一种全局属性,使用该网络结构对人脸的姿态属性进行变换。基于原始GAN的网络模型进行扩展,将生成对抗的目标函数项和控制生成人脸姿态的姿态目标函数项、控制生成人脸图像质量的细节目标函数项及控制生成人脸相似度的重建目标函数项、循环目标函数项、特征一致目标函数项相结合构建CC-GAN的目标函数,不断优化目标函数,将网络应用到全局属性的变换。

2.1 目标函数

采用谱范数正则化的思想,实现对识别器的1-Lipschitz限制。CC-GAN网络模型的目标函数定义为

(3)

其中,λ1~λ7表示超参数,各项所占的比重;N表示识别器网络结构的层数;LGAN(G,D),Lpose(G,D),Lcon(G),Lcyc(G),Lpart(G),Lfeat(G)分别表示对抗函数项、姿态函数项、重建函数项、循环函数项、细节函数项和特征一致函数项;σ(w)表示谱范数计算式;TV(G)表示生成图像与原图像间的总体变化率。

① 对抗函数项

对抗函数项是生成器以及判别器在对抗训练过程中所需优化的目标函数,通过向生成器中加入姿态编码信息,使其可生成对应姿态的人脸图像,解耦姿态与人脸的其他特征属性。对抗函数项如式(4):

LGAN(G,D)=Ex~pdata(x)[logD(x)]+Ex,p~pdata(x,p)[log(1-D(G(x,pt)))],

(4)

其中,x表示输入图像,pt表示目标姿态编码,p表示姿态属性。

② 姿态函数项

姿态函数项是衡量由生成器生成的人脸是否具有目标姿态的函数项。通过优化姿态函数项,控制生成人脸姿态属性。在生成过程中,判别器对生成人脸的姿态进行检测,利用softmax交叉熵损失来约束生成目标姿态。

(5)

③ 重构函数项

重构函数项通过求解生成图像与原始图像之间最小绝对值偏差来优化图像像素级别的损失,用来保证生成的人脸图像与原始人脸图像在人脸基本特征上的一致,生成的人脸图像与原始人脸图像看起来为同一人,重构函数项为

Lcon(G)=Ex,y,p~pdata(x,y,p)[‖y-G(x,pt)‖]+Ex,p~pdata(x,p)[‖x-Gdec(Fx,pt)‖],

(6)

其中,Gdec表示解码器,Fx表示输入图像x经过生成器中的编码器提取的特征,y表示具有目标姿态的同一人脸图像。

④ 循环函数项

将生成的图像和原始输入人脸图像的姿态编码重新输入到生成器中,重新生成原始的人脸这种方法,来保证生成人脸与真实人脸的身份一致性。循环重构函数项指的是在此过程中,第二次生成的人脸与原始输入人脸之间的损失。循环函数项如式(7)所示:

Lcyc(G)=Ex,p~pdata(x,p)[‖x-G(G(x,pt),p°)‖],

(7)

其中,p°表示原始输入图像的人脸姿态编码。

⑤ 细节函数项

为了追求更真实的细节效果,本文将感知损失、纹理损失结合起来。相较于单纯的像素间的损失,感知损失希望的是两幅图像之间特征更加相似,纹理损失追求的是对纹理在高层全局信息和底层细节信息方面进行有效的重建。真实图像和生成的图像通过细节损失网络,提取特征,计算感知损失和纹理损失。在本文中,细节损失网络使用在ImageNet数据集上预训练好的网络VGG19,将图像输入到VGG19中,使用VGG19的第五个池化层前一个的未使用激活函数的卷积层来提取特征。感知损失,纹理损失如式(8)至式(9)所示,总体细节损失如式(10)所示:

Lper(G)=Ex,y,p~pdata(x,y,p)[‖φ(y)-φ(G(x,pt))‖],

(8)

Ltext(G)=Ex,y,p~pdata(x,y,p)[‖g(φ(y))-g(φ(G(x,pt)))‖],

(9)

Lpart(G)=Lper(G)+Ltext(G),

(10)

其中,φ代表损失网络,g(F)=FFT。

⑥ 特征一致函数项

在循环重建的过程中,原始输入图像通过编码器提取的人脸个性化特征,由解码器生成对应姿势的图像,再将生成图像重新经过编码器提取特征,循环重建原始图像。特征一致函数项用来约束生成图像与原始输入图像之间通过编码器提取的特征之间距离,从生成图像提取到的特征是具有个性化不变的,并与姿态属性无关的,即同一个人不同姿态人脸的特征要尽可能地接近,所以从生成的人脸上与原始输入人脸上,提取到的特征越接近越好。函数项如(11)所示:

Lfeat(G)=Ex,y~pdata(x,y)[‖Fx-Fy‖],

(11)

其中,Fx表示将原始输入图像输入到解码器中所得到的特征表示,Fy表示将生成图像输入到解码器中重建过程中所得到的特征表示。

2.2 条件循环生成器对抗网络结构

条件循环生成对抗网络(CC-GAN)思想来源于属性互换训练机制,将人脸的偏转角度作为人脸姿态属性,在生成对抗网络中,解耦姿态属性与其他人脸特征,将目标姿态属性作为条件,与侧脸图像一起送入生成对抗网络中,实现人脸姿态的循环重建,结构如图1所示。

图1 条件循环生成对抗网络结构图

生成网络由编码网络、解码网络组成,具体结构如表1所示。侧脸图像通过编码网络提取特征,经过解码网络生成正面人脸图像。

表1 条件循环生成对抗网络结构

上述网络结构中的卷积层和反卷积层的核均为3×3,均使用批归一化。在编码网络和解码网络中,除了解码网络的最后一层使用Tanh激活函数,使反卷积输出的结果在[1,-1],其余卷积层和反卷积层后面均使用ReLu激活函数。

识别网路既能判别图像的真假,又能判断人脸姿态,该网络的卷积层均使用批归一化层和LeakyReLU激活函数,输出一个256维的共享特征,将共享特征输入两个全连接层,分别使用sigmoid激活函数和softmax层,来判断图像真假,并对人脸的姿态进行分类。

2.3 算法流程

将侧脸图像输入到条件循环生成对抗网络中,生成与原始正脸人脸图像数据分布尽可能相似的正脸图像,生成器的目标是生成图像能够“骗过”识别器,而识别器的目的是找出“假图像”。具体实现的算法流程如下所示。

Step 1:初始化算法基本参数,设置超参数λ1=λ2=α1=α5=1,α2=α3=10 ,α4=0.001,α6=0.000 1,最小批次m=10,初始学习率η=0.000 1,D的网络层数N=8,初始优化次数t=0,最大优化次数tmax=986。给定所有样本的姿态属性p,输入样本x的姿态信息po,目标信息pt,D的参数θd,G的参数θg。

Step 2:固定G,更新D的参数。

① 从数据集pdata(x,p)中随机选出m个样本点{(x1,po),(x2,po),…,(xm,po)}及与其相对应的正脸图像{y1,y2,…,ym}。

(12)

(13)

Step 4:当t≤tmax,t=t+1时,转到step 2。

3 实验结果与分析

3.1 实验设置

本文提出一种利用生成对抗网络将人脸图像生成具有目标姿势的同一人脸的方法。实验在一台2080Ti显卡,Linux系统的服务器上,在TensorFlow深度学习环境中使用Python3.6编程,实验过程中,设置学习率为 0.000 1,并随迭代次数衰减直到0。优化器选择使用Adam,优化器的超参数β1=0.5,β2=0.999。实验的数据集来自FERET, 它包含了1 000多人各个姿态的照片。根据图1所示的方法流程来构建网络结构,首先对各个姿态的人脸图像中的眼睛、鼻子、嘴巴进行标定,然后利用仿射变换进行人脸对齐,将人脸图像尺寸大小归一化到128×128,并将人脸像素值归一化到[-1,1]。目标函数式(3)中的超参数为λ1=1,λ2=1,λ3=10,λ4=10,λ5=0.001,λ6=1,λ7=0.000 1 。

3.2 结果比较

实验生成的结果除了应该能生成正脸姿态外,还应该与原始正面人脸相似。因此本文从生成图像的主观视觉和衡量图像相似度的客观指标两方面进行实验对比。

3.2.1 图像对比

将CC-GAN算法生成的图像与使用DR-GAN、TP-GAN算法生成的图像作对比,实验对比结果如图2所示。图2中第一行表示输入的各个角度(±10°~±67°)的人脸,第二行、第三行、第四行分别表示使用TP-GAN、DR-GAN算法以及本文所提出的CC-GAN算法由各个角度侧脸图像所生成正脸(0°)图像。从对比结果可以看出,使用TP-GAN算法生成的人脸图像边缘轮廓并不清晰,DR-GAN算法生成的人脸图像与原始图像相比,脸部会产生稍微的变形扭曲。CC-GAN算法所生成的图像能保留人脸的基本特征,并生成清晰的轮廓。

图2 对比结果

3.2.2 结构相似度对比

结构相似度(structural similiarty, SSIM)能够有效客观地评估两张图像相似度,它分别从亮度、对比度和结构上进行衡量,更加符合人类的视觉效果。SSIM值用字母S表示,S越大,就说明两张图像的相似度越高。图像a、b的SSIM可按照式(14)求出:

(14)

其中,μa、μb分别是a、b的平均值,σa2、σb2是分别是a、b的方差,σab是a和b的协方差,c1=(k1L)2,c2=(k2L)2是常数,L是图像像素的动态范围,k1=0.01,k2=0.03。

表2显示了各种算法实验结果与原始图像的SSIM值,由表2中数据可以看出,相较于其他算法,本文实验结果的SSIM 值最大,说明生成的图像细节越逼真,与原始图像相似度最高。

表2 各种算法SSIM值比较

3.2.3 峰值信噪比对比

峰值信噪比(peak signal to ratio, PSNR)是评估图像质量的另一客观指标,它直接对比图像之间的像素差异。PSNR值用字母P表示,P值越大,图像质量越好。假设a和b两个图像的大小为m×n,则它们之间的均方误差(mean square error, MSE) 为ρMSE:

(15)

通过ρMSE计算PPSNR,公式如式(16):

(16)

由各种网络模型生成的图像,与原始图像比较,计算得到的PPSNR如表3所示。

表3 生成图像PPSNR比较

从表3中,可以通过比较看到,本文提出的CC-GAN算法PPSNR值最大,图像质量最好。

3.2.4 欧式距离对比

欧式距离度量的欧式空间中点与点之间绝对距离,通过提取两张人脸图像a、b的特征向量,然后比较它们之间的距离来衡量两张图像的相似度。计算方式如下:

(17)

其中,n、m分别表示图像的长、宽。

表4显示了各种网络结构生成的图像与原始图像的欧式距离。从表4中可以看出,本文提出的网络结构生成的人脸与原始图像间的距离最小,说明生成的图像继承了原始人脸图像的基本特征,与原始图像最相似。

表4 欧式距离比较

4 结语

在原始GAN的基础上,对GAN进行创新扩展,提出了一种用于人脸合成的CC-GAN算法,包括编码器-解码器结构的生成器、包含姿态分类器的识别器、结合多种细节损失的损失函数以及循环重建网络结构。在生成对抗网络中,通过提取人物个性化特征,解开姿态与之的相关性,将人脸偏转角度作为人脸的一种姿态属性进行基于生成对抗机制的变换训练,建立生成图像与原始输入图像之间的循环重建模型,生成相关姿态的人脸图像。

CC-GAN算法虽然能生成较好的实验效果,但依然有不足之处。对抗生成网络在训练过程中还是出现难以收敛的情况,人脸图像生成会受到其他因素的影响,例如光照差异。在未来的工作中,对生成对抗网络的稳定性继续优化,提高模型的泛化能力是本文重点的研究方向。

猜你喜欢
网络结构人脸姿态
有特点的人脸
玻璃窗上的人脸
攀爬的姿态
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
“领家系”可爱脸VS“高冷系”美人脸
另一种姿态
非常规突发事件跨组织合作网络结构演化机理研究
长得象人脸的十种动物
以文青的姿态回归主流——对《后悔无期》的两重解读