何佩林 ,石跃祥 ,2†,成洁
(1.湘潭大学 信息工程学院,湖南湘潭 411105
(2.LED照明驱动与控制应用工程技术研究中心,贵州铜仁554300)
在公安机关在侦查案件时,除了从指纹、血迹、头发、DNA等方面寻找线索外,还有其他重要的侦查手段,刑事模拟画像技术就是其中的一种。刑事模拟画像是根据目击者的叙述,将犯罪嫌疑人的相貌特征描绘、复原的一项技术。然而模拟画像技术员通常绘制的画像是手绘的素描图像,如果提供一种技术能高效准确地把手绘的素描图像转化为彩色图像,即人脸图像翻译,将会大大提高侦查破案的几率。
图像翻译,类似于语言翻译,是把一个域中的图像映射到另一个域中的相应图像,许多图像处理和计算机视觉任务都可以被看作为图像到图像的翻译问题,其将对象或场景的一个视觉表示翻译为另一个视觉表示。图像到图像翻译的思想至少可以追溯到Hertzmann等[1]的图像类比算法研究,该文在单个输入-输出训练图像对上使用了一个非参数纹理模型。
最近在这个方向上,国内外学者作出了杰出的贡献,首先,Goodfellow等[2]提出了具有里程碑意义的生成对抗网络(GAN),最初的GAN是将图像和随机向量一一对应起来然后训练得到一个随机向量到图像的映射,这样,从同样的分布中随机一个其他的向量也能得到一张图像。但是最初GAN的成功是有限的,因为GAN训练的不稳定,往往导致生成的图像变得无意义。Radford等[3]提出深度卷积生成对抗网络(DCGAN),通过在其拓扑结构中包含一系列约束来解决不稳定性问题。GAN中另一个限制性问题是,在无条件的生成模型下,不能控制由生成器生成数据的模式。Mirza等[4]提出了条件生成对抗网络(cGAN),在模型中引入了附加的条件信息,这导致了生成器的有效学习。使用条件变量增加辅助信息不仅提高了学习的稳定性,而且提高了生成器的描述能力[5]。基于生成对抗网络(GAN),Isola[6]等提出了 pix2pix方法,生成器的输入不再是无意义的噪音,而是图像。它巧妙的利用GAN的框架解决了通用的图像到图像的翻译问题。但是在pix2pix中,输入图像必须是成对的,但在现实生活中,两个不同领域的图像很难有成对的。针对这个问题,Zhu等[7]结合了对偶学习和GAN提出了CycleGAN,主要贡献在于发挥无监督学习的作用,只要提供两类数据集即可,不要求严格配对。
尽管图像翻译方法得到了迅速的发展,但是由于人脸图像翻译会受当时环境因素影响,比如光照,姿态变化和遮挡,目击者相应地也会受到影响,产生叙述模糊,加上人脸本身的复杂性,这些方法都是用通用的模型处理翻译问题的,但是却不能很好生成复杂人脸中必要的细节。如果有一个专门的模型来实现人脸翻译,那就更好了。
受文献[6]的启发,除了原始的GAN这种完全依赖随机向量生成图像的模型外,还可以加入其它的条件因素构建更复杂的模型。本文的算法与之类似,但这次生成器的输入是随机向量以外的媒体信息——文字信息。
基于此,提出了基于生成对抗文本的人脸图像翻译方法,相比其他翻译方法,本文的翻译结果更好,在人脸图像上具有很好的适应性。
为了获得文本描述在视觉上可判别的向量表示,我们按照Reed等[8]的方法,利用深度神经编码器生成特征的内积来学习与图像所对应函数,然后对学习过的对应函数ft产生的文本分类器进行优化训练,优化其结构损失:
其中{(vn,tn,yn)∶n=1,…,N}是训练数据集,Δ是0-1损失,vn是图像,tn是相应的文本描述,yn是类标签。fv和ft分别是图像和文本分类器,具体参数如下:
其中φ是图像编码器(如深度卷积神经网络),φ 是文本编码器(如 CNN 或者 LSTM),τ(y)是文本描述数据集,υ(y)是图像数据集。公式(4)是定义的兼容函数,φ(v)是图像特征,φ(t)是文本特征,fv和ft共用这个函数,分别对图像和文本描述提取对应的特征,然后结合起来,给出每个图像满足文本描述的得分。显而易见的是,如果分类器能够正确的分类,那么图像和与之匹配的文本的分数应该明显高于其他不能匹配上的分数,反之亦然。在这里,我们的目标是对称的图像和文本,因此,将上述目标命名为深度对称结构联合编码[8]。
Reed等[8]通过实验发现不同的文本编码器在鸟儿和鲜花上都能得到比较好的结果,但是对于人脸的特殊性和复杂性,我们使用一个Word-CNNLSTM模型。如图1所示,文本描述是yellow skin and black hair,使用CNN网络对每个图像提取特征,LSTM提取文本描述特征,然后结合起来,计算出每个图像满足该文本描述的概率。
图1 Word-CNN-LSTM模型结构图
生成对抗网络(generative adversarial nets,GAN)是深度学习模型的一种,Goodfellow等[2]同时训练两个模型:一个生成模型G和一个判别模型D,其中生成模型是一个编码-解码网络,它试图在给定的图像上合成假图像以欺骗判别模型。而判别模型则试图通过与相应的目标图像进行比较来识别假图像。
换句话说,G和D的训练是关于值函数V(D,G)的极小化极大的二人博弈问题:
当z~pz时,获得样本G(z),生成模型G隐式的定义概率分布pg为G(z)获得的样本分布,Goodfellow等[2]证明当pg=Pdata时,有一个全局最优解,并且如果G和D容量和训练时间足够大时,pg收敛于Pdata。实际上,方程(5)可能无法为G提供足够的梯度来学习。训练初期,当G的生成效果很差时,D会以高置信度来拒绝生成样本,因为它们与训练数据明显不同,故 log(1-D(G(z)))饱和。因此选择最大化 log(1-D(G(z)))而不是最小化 log(1-D(G(z)))来训练G。在最理想的状态下,G可以生成足以“以假乱真”的图片G(z),而对于D来说,它难以判断G生成的图片究竟是不是真实的,因此D(G(z))=0.5。
本文方法T-GAN是基于生成对抗网络构建的网络,GAN是由 Goodfellow等[2]首次提出,并在后续众多研究者的探索下得到了广泛应用,如风格转换[10],图像修复[11],交互式图像生成[12],图像超分辨率[13]和纹理合成[14]。
虽然GAN的应用场景非常广泛,但是对于一些复杂的问题,原始的GAN会比较吃力,比如人脸翻译问题,故本文作出相应的改进,提出了一种新的人脸翻译方法T-GAN,对比原始的GAN结构,这里对生成网络G和判别网络D的输入部分做了更改:
对于生成网络G,原来是接收一个无意义的噪声z,输出一个图像G(x,z)。而对于图像翻译任务来说,G的输入显然应该是一张图像x,而这里不仅接收图像x,还接收文本描述特征φ(t),用这两部分共同生成一个图像 G(x,φ(t))。
图2 T-GAN网络结构图
T-GAN模型结构如图2所示。可以看到,图的左侧是生成网络,右侧是判别网络。
在生成网络G中,首先需要对文本描述t进行编码,在这里,使用了Word-CNN-LSTM模型来对文本做编码。文本编码后经过一个全连接层压缩到一个较小的维度(128维),然后使用Leaky-Relu激活,并与输入图像x进行拼接。最后再将其输入到正常的反卷积层进行图像生成。
在判别网络D中,首先对输入做几个stride=2的卷积,当特征映射的大小变为4×4时,则又一次对文本编码结果执行一个全连接层,降低其维度,将降维后的结果拼接到这个大小为4×4的特征映射上。然后做一个1×1卷积,1×1卷积基本上是在相同维度空间上的线性投影(输入和输出通道的数量相同)[15],并通过一个4×4卷积以计算来自的最终分数。在判别网络中,每层都使用批量规范化(Batch Normalization)和Leaky-Relu激活函数。
训练有条件的GAN最简单的方法是把(文本,图像)进行联合输入,并训练判别网络判断为真还是为假。这种类型的条件是原始的,在这个意义上,判别网络没有明确的概念,真实的训练图像是否匹配文本描述。
然而,有条件的GAN学习的目标不同于无条件的情况[16]。在训练开始时,判别器忽略了条件信息,容易拒绝来自生产网络G的样本(生成的图像),因为它们看起来不可信。一旦G学会生成趋向真实的图像,判别网络D也必须学会将它们与条件信息相比较,同样D还必须学会评估G中的样本是否满足这种条件约束。
在原始的GAN中,判别网络需要区分真实图像和合成图像,但在T-GAN中,判别网络则需要判别两种输入:真实图像+匹配文本和合成图像+不匹配文本。因此,它必须隐式地分离两个错误来源:不真实的图像(对于任意文本)和不符合条件信息的真实图像,它们与条件信息不匹配。但这可能会使学习动态复杂化,我们修改了GAN训练算法来分离这些误差源。除了在训练中对判别网络的真/假输入之外,我们还增加了第三种类型的输入,由真实图像伴随着不匹配的文本组成。通过这样的方法,强化D的训练效果,强迫D判断生成的图片是否符合文本描述,让D能够更好地学习文本描述和图像内容的对应关系。
1.for n=1 to S do
2.h←(t);
5.Sr←D(x,h);
6.Sw←D(x,);
7.Sf←D(,h);
8.LD←log(Sr)+(log(1-Sw)+
9.log(1-Sf))/2;
10.LD←log(Sf);
11.end for
利用实验验证本文方法的有效性,实验数据来自celeA人脸数据库的超过200000张名人人脸图像,保证了图像多样性与质量。首先验证本文方法的可行性,在不同肤色与不同发色的人脸图像上进行图像翻译,然后通过对比实验来比较T-GAN与GAN,cGAN,pix2pix,CyleGAN 等其他翻译方法的翻译性能,最后通过一些外部因素影响下的人脸图像翻译结果说明本文方法具有较强的鲁棒性和自适应性。实验所用平台是Tesla K10.G1.8GB GPU服务器,5.4T硬盘,32GB内存,Ubuntu16.04系统和Python 3.5.2版本。
所有数据集图像具有相同的GAN架构,训练图像大小归一化为256×256,并使用photoshop将图像处理成手绘效果。由于文本的特点,我们对文本编码器进行了预训练,对文本编码器进行预训练是为了加快训练其他组件的速度以加快实验速度。文本编码器产生1024维文本编码,然后把产生的1024维文本编码压缩为128维,在图像特征映射到卷积之前拼接在一起,放入到生成网络和判别网络中。
为了验证本文方法的可行性,选取肤色,发色各异的人脸图像2000张,经过数据预处理后,放入到T-GAN模型中进行测试翻译。部分实验结果如图3所示,可以看出,本文算法在输入的各种肤色和发色手绘人脸图像上,根据人脸的特殊性,引入相应的文本描述,翻译结果能够达到一个较好的效果,接近真实图像,与文本描述内容也比较接近。
图3 基于生成对抗文本的部分人脸图像翻译结果
为了进一步说明本文方法的有效性,将其与其他翻译方法进行比较,如图4所示。从结果中可看出,原始的GAN[2]产生的结果普遍带有黑影,尤其是在黑色皮肤人脸图像上,黑影会成块显示;cGAN[4]和CycleGAN[6]在翻译人脸图像过程中,容易产生更多的伪影和模糊度,并且翻译结果存在不真实感;pix2pix[7]翻译的人脸图像结果,已经能较好保持人脸的肤色和发色特点,但对于人脸的一些细节,其翻译结果仍存在一些偏差,颜色过于饱和,脸部肤色变红;通过实验可以看出,本文方法在翻译人脸图像时,具有较好的翻译效果,翻译结果中不仅肤色和发色更接近真实图像,图像背景也能达到较好的翻译效果,可以准确地保持图像中的色调与饱和度。
为客观验证本文方法在图像翻译后可以较好地保持图像属性,表1是本文方法与其他翻译方法在训练样本中的平均均方误差(MSE),结构相似度(SSIM)以及峰值信噪比(PSNR)。可以看出,本文方法与其他方法相比较,本文方法具有更小的MSE、更高的SSIM和PSNR。说明其翻译效果最理想,失真程度最小,能更好地保持图像原有属性,且有效地降低噪声对结果的影响。
图4 人脸图像翻译方法实验结果对比
表1 不同翻译方法对训练样本平均指标对比
在实际生活中,刑事案件往往还存在一些人脸图像受光照、姿态变化和遮挡等外部因素的影响,为了进一步验证本文方法的鲁棒性和自适用性,在遮挡人脸、侧面人脸,光照人脸等受外部因素影响的人脸图像上进行实验,部分实验结果如图5所示。由实验结果可见,人脸6帽子帽带存在颜色的偏差,由于头发被帽子遮掩,帽子被模型误认为是头发,训练效果达不到理想的状态,加入帽子等遮挡物的文本描述,强化训练效果,是后期需继续研究的工作。但是由其他图像结果可见,本文方法在人脸图像受外部因素影响下,也能达到较好的翻译效果。
图5 外部因素影响下的人脸翻译结果
提出了一种基于生成对抗文本的人脸图像翻译方法(T-GAN),该方法在光照,姿态变化和遮挡等外部因素的影响下,也能达到较好的翻译效果,具有较强的鲁棒性和自适应性。实验结果表明,该方法在各种肤色、发色人脸图像上都具有良好的翻译效果,并与现有的翻译方法进行比较,该方法的翻译效果更接近真实图像,从而验证了该方法的有效性。