陈军波,刘 蓉,刘 明,冯 杨
(华中师范大学 a.物理科学与技术学院; b.计算机学院,武汉 430079)
情感是人类社会交流中一种复杂而又稳定的态度体验。其中,面部表情作为最常见的情感行为,是人类交流时信息传递的重要媒介。文献[1]研究表明,当人们在进行面对面交流时,面部表情能传递多达55%的信息,使人们面对面交流更生动形象。近年来,随着智能人机交互技术的快速发展,人们尝试在艺术和娱乐等领域进行有关面部表情的研究,试图重现逼真、自然的面部表情,因此,面部表情迁移成为计算机视觉领域的研究热点。
传统的面部表情迁移方法在构建人脸模型的基础上进行插值、图像变形、模拟、合成等操作生成面部表情。文献[2]构建的肌肉模型模拟面部表情的生成过程,生成逼真的人脸表情,文献[3]采用有限元方法建立一种结构复杂的表情生成模型来生成面部表情,文献[4]则提出静态峰值表情合成方法。近年来,国内的很多研究人员也都着眼于面部表情迁移的研究,且取得了一定成果。文献[5]提出STNB变形和单视角图片的人脸表情合成技术,文献[6]提出一种针对人脸表情生成的网格划分技术用于划分人脸主要器官,生成各种特定的表情,文献[7]则建立了基于AAM-Candide结合的快速表情动画合成模型。
随着深度学习概念的提出和发展,人们尝试设计条件对抗网络进行面部表情迁移研究。文献[8]提出图像到图像转换的有条件对抗网络,在成对表情示例的条件下,输入指定表情类别以生成带表情样本。文献[9]提出用于图像编辑的可逆条件对抗网络IcGAN,对任意属性上的面部条件映射的真实图像进行重构和修改,实现表情风格迁移,但不能保持图像身份特征。为解决成对数据集难以获取、图像身份特征难以保持等问题,文献[10]提出循环连续对抗网络CycleGAN,文献[11]提出跨域生成式对抗网络DiscoGAN,在没有配对示例的情况下,利用循环损失、保持输入、输出图像的身份特征,实现面部表情迁移。对比传统方法,循环连续对抗网络和跨域生成对抗网络具有循环学习、输入可为任意图例等优点,但要实现多表情的迁移需要训练多个生成网络,由此导致模型复杂和训练时间长的问题。
针对现有生成式模型配对面部表情示例不易获取、难以保持身份特征以及需要训练多个生成网络等问题,本文提出基于条件生成式对抗网络的面部表情迁移模型。通过为生成模型指定表情域,使单个生成器学习多个表情域之间的映射,同时引入域分类损失函数确保生成表情的真实性。
在日常生活中,情绪扮演着极其重要的角色,情绪的表现和传递可通过多种行为方式实现,如语言内容、肢体手势、面部表情等。其中,面部表情被认为是最常见的情感行为信号。最初人类对面部表情的研究主要集中在社会学和心理学领域[1,12],社会学家和心理学家主要关注面部表情在情绪中的表现形式、面部表情的统一性以及面部表情在日常交流中的作用等问题。
达尔文对面部表情进行了研究,指出人类天生就可以表现出一些基本的表情,随后掀起了人们对面部表情研究的浪潮。文献[12]研究表明,表情在不同种族和文化背景之间具有普遍的一致性。20世纪70年代,美国心理学家EKMAN和FRIESEN通过大量实验,定义了人类6种基本表情[13]:愤怒,厌恶,恐惧,悲伤,高兴和惊奇,并系统地建立了包含上千幅不同人脸表情的图像库。此后,研究者在此基础上构建了不同分类的表情库:文献[14]公开JAFFE库,在6类表情的基础上增加了第7类表情——中性表情,并将其广泛应用于表情分类、表情识别等领域;文献[15]发布了扩展Cohn-Kanade数据库(CK+),该库中的表情除了6种基本表情外又增加了蔑视和中性2种表情。上述研究者认为表情是和种族文化相独立的,是具有全人类性的。随着表情分类研究的深入,人脸表情被分为7类[14],即愤怒(anger)、厌恶(disgust)、恐惧(fear)、微笑(happy)、中性(neutral)、悲伤(sad)和惊讶(surprise),为面部表情应用到表情识别、分类和迁移等领域提供了重要的依据。
面部表情迁移是指将一个携带表情的人脸图像,经过迁移变换等操作,迁移到另一个中性表情的人脸中。面部表情迁移被应用于人机交互、数字娱乐、虚拟现实等领域。在人机交互中,通过机器实时生成丰富多样的表情,使机器与人交流沟通过程中更加真实和自然,智能机器更拟人化;在虚拟现实中,在欧洲诞生的首个虚拟播音员安娜、虚拟导购等虚拟人物,也都使用了面部表情迁移技术。在数字娱乐领域,利用面部表情迁移技术可为游戏和动漫角色生成各式各样的表情,让电脑游戏、动漫视频的场景以及人物变得越来越真实,给用户一种身临其境的感觉。面部表情迁移作为一个跨学科的研究方向[16],涉及计算机视觉、模式识别、图像处理、人机交互和计算机图形学等多个领域可促进和推动其她领域和学科的发展。
近年来,研究者针对面部表情迁移提出多种有效的方法与模型。传统面部表情迁移方法通过模拟面部表情、提取静态峰值、表情合成等方法生成面部表情。文献[17]提出一种基于三方博弈和信息对称的可控人脸生成算法FaceID-GAN。文献[18]提出基于解剖结构的面部表情生成算法GANimation,在解决无配对表情数据集、无监督面部表情迁移、面部身份特征一致等问题的基础上进行面部表情迁移。然而,现有模型和方法普遍存在难以同时生成多表情、模型复杂、训练时间长等问题。因此,本文建立基于条件对抗网络的面部表情迁移模型,开展针对7种面部表情迁移的研究。
生成式对抗网络[19]包含2个模型:捕获数据分布的生成模型G和判别模型D。基于先验随机噪声向量z,通过2个模型相互对抗学习,可生成近似服从真实数据分布的图像。在对抗训练中,判别模型作为一个二分类器,用于区分真实图像和生成图像,而生成模型通过随机噪声z学习数据分布,生成逼真的图像,试图“欺骗”判别器,在整个过程中寻求全局最优解。但为了更好地控制生成结果类别,在生成模型和判别模型中输入某些额外条件信息例如类别标签,可扩展到条件生成对抗网络[20],通过指定类别标签信息,实现控制网络输出的目的。条件生成式对抗网络的结构如图1所示。
图1 条件生成式对抗网络结构
在条件生成器中,先验随机噪声z和额外条件信息y以联合隐藏表示的形式组合作为生成器的输入,而将真实样本和条件信息y作为判别器的输入。在训练中对两者进行极大极小博弈,可表示为如下目标函数:
Ez~pz(z)[loga(1-D(G(z|y)))]
(1)
其中,pdata(x)表示真实数据分布,pz(z)表示先验随机噪声分布,x表示真实样本数据,y表示额外条件信息,Ex~pdata(x)[D(x|y)]表示将真实样本x判别为条件信息y的概率,Ez~pz(z)[ (1-D(G(x|y)))]表示生成样成样本G(x|y)为真实样本的概率。
2.2.1 网络模型结构
本文构建基于条件生成式对抗网络的面部表情迁移模型,主要用于解决以下问题:
1)在给定目标表情域标签下,使生成器学习一个映射G,该映射将输入图像x和表情域标签y映射为相应表情域的图像G(x,y)。
2)采用重构损失函数,通过计算生成网络的重构图像与真实原始图像之间的距离,优化生成网络参数,确保生成网络在面部表情迁移中能保持面部身份特征的一致性。
3)在判别器D和生成器G上分别引入域分类损失,即真实图像的域分类损失函数和判别器D,通过最小化该损失,正确地将真实图像分类到相应原始表情域。
对于伪图像的域分类损失函数,生成器G试图最小化此损失以生成可被正确分类为目标表情域的图像,并且同时实现7种面部表情迁移。
为实现此目标,本文设计了使用图2所示结构的面部表情迁移模型。
图2 基于条件生成式对抗网络的面部表情迁移模型结构
图2中左边为生成模型,参考了文献[21]提出的多域图像到图像转换的统一生成对抗网络StarGAN,由输入层、下采样层、残差块、上采样层以及输出层组成,其中输入层和输出层仅包含一个卷积层,下采样层和上采样层均有2个卷积层,残差块包含6个深度、大小都相同的卷积层。右边为判别模型,分为3个部分,即输入层、隐藏层和输出层,除输出层外,其余层卷积深度均为前一层的2倍,最后输出层包含2个卷积输出,分别用于判别输入图像真假和表情域。
参考条件生成式对抗网络的网络模型,根据面部表情迁移的特点,本文构建的网络模型具有如下特点:
1)在生成模型中使用步长为2的微步幅卷积或反卷积代替池化层,在判别器中除输出层使用步长为1的微步幅卷积外,其余层均使用步长为2的微步幅卷积。
2)生成模型每个卷积层后都添加InstanceNorm层,除输出层使用Tanh激活函数外,其余层均使用Relu激活函数。
3)判别模型除输出层外,其余层均使用LeakyRelu激活函数。
2.2.2 生成模型
生成模型用于学习多表情域映射,其将输入图像和目标表情域标签映射为相应表情域的图像,包含输入层、下采样层、残差块、上采样层以及输出层。为在输入图片上提取面部表情特征,输入层中输入大小为128像素×128像素的彩色图像和目标表情域标签,采用步幅为1的微步幅卷积,输出128像素×128像素大小的特征图。下采样层利用步幅为2的微步幅卷积,将输入特征图压缩一半,输出特征图大小为32像素×32像素,确保生成网络在迁移学习中能获得提取面部表情特征的能力。同时,为解决传统卷积层在信息传递时存在的信息丢失和损耗等问题,模型中引入残差块,保持输出特征图不变,即32像素×32像素。而为了让生成图像具有和输入图像相同的尺寸,上采样层使用步幅为2的反卷积,每个反卷积层输出图像为输入图像的2倍,输出128像素×128像素大小的特征图。最后,输出层通过步幅为1的反卷积重构逼真、自然的面部表情图像,生成图像与原始图像大小保持不变。为加速生成模型的收敛,保持每个图像样本之间的独立,在生成器的输出层之前均添加实例规范化处理层[22]。生成模型结构参数如表1所示。
表1 生成模型参数
2.2.3 判别模型
本文设计的判别模型作为一个二分类器,有2个作用:1)判别输入图像为真实图像的概率;2)判定输入图像所属表情域。判别模型由输入层、隐藏层和输出层构成。其中,输入层输入为128像素×128像素的彩色图像,先采用64个步幅为2的卷积核,提取输入图像表情特征,输出64像素×64像素的特征图。为提取稳定可靠的表情特征,设计包含5个卷积的隐藏层,其卷积核的个数分别为128、256、512、1 024、2 048。输出层对应2个输出:Dimg和Dclas。Dimg输入为隐藏层第4层的输出,利用深度为1步幅也为1的卷积核做卷积运算,输出2×2×1的张量数据,表示输入为真实图像的概率;Dclas将隐藏层最后一层输出作为输入,采用ny(ny为迁移表情的个数)个步幅为1的卷积核,输出一个1×1×ny的张量数据,表示输入图像所属表情域的概率。判别模型结构参数如表2所示。
表2 判别模型参数
本文模型训练针对3个目标:1)使判别器无法区分生成图像与真实图像;2)判别输入图像所在表情域;3)重构原始图像。因此,采用3种不同损失函数:计算输入图像与输出图像之间差距的对抗损失函数,用于优化生成模型G或判别模型D的域分类损失函数,以及为保留身份特征引入的重构损失函数。损失函数用于估计模型中的预测值与真实值的不一致程度,其为非负实值函数,损失函数越小,模型的鲁棒性就越好。
2.3.1 对抗损失函数
本文网络模型的目标是利用单个生成器G学习多个表情域之间的映射,将标准图像x和表情域标签y映射为样本分布G(x,y),并在判别器中引入辅助分类器[23],允许单个判别器在原始表情域与目标表情域标签上产生概率分布:D:x→{Dimg(x),Dclas(x)}(Dimg(x)为输入图像x为真的概率,Dclas(x)为输入图像x被正确分类为表情域的概率)。为使判别器无法区分生成图像与真实图像,采用如下对抗性损失函数:
Ladv(G,D)=Ex[logaDimg(x)]+
Ex,y[loga(1-Dimg(G(x,y)))]
(2)
其中,G(x,y)表示输入图像x和表情域标签y的映射,Dimg(x)表示x为真实图像的概率,Dimg(G(x,y))表示生成器生成图像为假的概率。生成器G试图使该损失最小化,而鉴别器D试图使其最大化。
2.3.2 域分类损失函数
(3)
其中,Dclas(y′|x)表示图像x被分类为表情域y′的概率。判别器D通过最小化此损失,可正确地将真实图像分类到原始表情域y′。
(4)
其中,Dclas(y|G(x,y))表示生成器生成的伪造图像被分类为表情域y的概率。生成器G试图最小化该损失以生成可被正确分类为表情域y的图像。
2.3.3 重构损失函数
通过最小化对抗损失和域分类损失,生成器G具有生成逼真图像且将其分类到正确表情域的能力。然而,最小化对抗损失和伪图像的域分类损失并不能保证输入图像的身份特征,而仅能改变输入中与表情相关的部分。为在面部表情迁移过程中保留面部图像的身份特征,将循环一致性损失[10]应用于生成器,定义为:
Lcyc(G)=Ex,y,y′[‖x-G(G(x,y),y′)‖1]
(5)
其中,生成器G采用L1规范作为重建损失,将映射得到的图像G(x,y)和原始域标签y′作为输入,尝试重建原始图像x。
2.3.4 总损失函数
在本文网络模型中,生成器G和判别器D分别具有不同的损失函数。生成器G的损失函数主要包括对抗损失、伪图像域分类损失和重构损失。对抗损失计算生成图像与真实图像之间的距离,确保生成器G在学习样本分布中获得欺骗判别器的能力。伪图像域分类损失计算生成的伪图像域与真实域的误差,确保生成器G生成逼真、自然、符合真实表情域的面部表情图像。对抗损失和域分类损失不能保证输入图像的身份特征。为解决身份特征不能保持的问题,在模型中引入重构损失,通过计算重构图像与真实图像之间的误差,确保生成器G保留面部图像的身份特征。生成器G的总损失定义为:
(6)
判别器D作为一个二分类器,达到以下2个目的:1)学习正确区分伪造图与真实图;2)确保将伪造图与真实图正确分类到对应表情域。判别器总损失函数由对抗损失和真实图像的域分类损失两部分组成。对抗损失计算真实图像与伪造图像之间的距离,提高判别器辨别真假的能力。通过利用真实图像的域分类损失增强判别器区分表情域的能力。判别器D的总损失定义为:
(7)
在式(6)、式(7)中,λclas和λcyc分别是控制域分类损失和重建损失相对重要性的超参数。在本文实验中都使用λclas=1和λcyc=10。
本文实验在Ubuntu 16.04.2操作系统、双核Intel 2.2 GHz CPU、Tesla K80 GPU、11 GB内存、1 TB硬盘平台下进行,并使用基于GPU版本的Tensorflow1.2 深度学习框架。在模型对抗训练期间,采用参数β1=0.5,β2=0.999的Adam优化器[24]优化更新网络模型参数。在鉴别器参数更新5次之后更新1次生成器参数。对于所有实验,批量大小设置为16。
实验采用2种不同类型的数据集:CelebA[25]和FERG-DB[26]。CelebA是香港中文大学开放数据集,包含10 177个名人的202 599张图像,并都做了特征标记,每张图像均包含40个属性特征,其中仅有一种表情特征:微笑,本文实验选用此特征进行微笑表情迁移。随机选取4张带微笑表情的示例图像,如图3所示,其中图像具有不同微笑尺度、肤色、发色、性别、背景颜色以及人脸角度等特点。
图3 CelebA数据库带微笑表情示例图像
FERG-DB数据集是面部表情研究组数据库,是具有带注释的面部表情程式化角色的数据库。该数据库包含6个风格化人物的面部图像,分为7种类型表情:愤怒,厌恶,恐惧,微笑,中立,悲伤,惊讶,共55 767张图像。风格化人物7种表情示例图像如图4所示,其中卡通图像具有高质量的7种表情,且每种表情具有逼真、自然、容易区分等特点,适用于面部表情迁移研究。
图4 FERG_DB数据库7种表情示例图像
在CelebA数据集实验中,将CelebA数据集按9∶1的比例分为训练集和测试集,得到182 339张训练图像和20 260张测试图像。将所有图像裁剪、压缩变换得到大小为128像素×128像素样本图像,作为模型在训练时的标准输入。同时,本文构建了包含100张128像素×128像素图片的验证集,验证集的图像来自于实验室的硕士研究生图像和网络中下载的明星人脸图像,其中男性图像50张、女性图像50张,且每张图像背景、清晰度等都不同。随机选取验证集中4张中性表情的示例图像,如图5所示。
图5 中性表情人脸图像
为评估本文模型在微笑表情数据集迁移中的性能,首先采用训练集图像训练模型,在对抗训练中需执行30次迭代,每次迭代训练10 000步,前15次迭代的学习率设置为0.000 1,后15次迭代将学习率线性衰减为0。然后利用测试集图像测试模型面部表情迁移效果,优化确定模型参数。最后用验证集图像验证模型,以图5中4张中性表情图像为例,采用本文网络模型和StarGAN网络模型[21]进行面部表情迁移,生成带微笑表情图像结果如图6所示。对比2种模型微笑表情迁移图像结果可知,本文模型通过引入重构损失,生成带微笑表情图像,具有质量高、自然、逼真的特点,在面部表情迁移过程中能更好地保持面部身份信息和背景信息的一致性,证明了本文模型在微笑表情迁移中的有效性。
图6 微笑表情迁移图像
对于FERG-DB数据集,随机选取其中5个风格化人物图像作为训练集和测试集,用同样的预处理方法,获得大小为128像素×128像素的标准输入,按相同比例划分后,训练集有40 046张图像,测试集有4 450张图像。最后,采用另外一个风格化人物的200张中性图像作为验证集。
为证明本文模型可同时迁移7种表情,使用FERG-DB数据集,模型输入为训练图像和表情域条件组合而成的128×128×10数据,训练迭代20次,一次迭代训练10 000步,前10次迭代学习率设置为0.000 1,后10次迭代中线性衰减为0,每训练1 000步,测试输出生成的表情图像,以确定最好的模型参数。最后,在FERG-DB验证集中,通过本文设计网络模型与StarGAN网络模型进行7种面部表情迁移,实验结果如图7所示。可以看出,2个模型都能同时进行7种面部表情迁移,但本文模型通过设计判别网络的2个输出和增加域分类损失,生成面部表情比StarGAN网络更自然、逼真,具备较好的拟合真实面部表情的能力。实验结果表明,本文模型可同时生成7种表情图像,每种表情图像很好地保持了面部身份特征,且生成表情图像与真实表情图像有较高相适性,显示本文方法在7种面部表情迁移中具有良好的鲁棒性。
图7 FERG-DB验证集上生成的7种面部表情图像
图6和图7中与StarGAN模型的对比实验结果表明,本文提出的网络模型能清晰地生成自然、逼真的面部表情,并且恰当地保持面部身份信息,同时实现7种面部表情的迁移。与文献[10]中提出的循环卷积对抗网络,通过单个属性特征的映射,实现表情风格迁移相比,本文模型训练更少的生成网络,实现多种表情风格的迁移;与文献[9]提出的可逆条件生成对抗网络,通过改变条件向量保留潜在向量来合成图像相比,本文模型能更好地保留输入图像的身份信息。
本文构建一种基于条件生成式对抗网络的面部表情迁移模型,通过指定表情域条件,使单个生成器学习多表情域之间的映射,同时引入域分类损失,使判别器将输入图像正确分类到相应目标表情域,使生成器获得更真实的表情伪造能力,最后达到理想条件下的纳什均衡,生成逼真、自然的面部表情图像。本文模型在单个数据集下的实验效果较好,而在FEGR-DB的卡通表情数据集与带微笑表情的CelebA数据集之间的迁移质量较差,如何实现较大差异数据集之间的面部表情迁移,将是下一步的研究重点。