王通平
(四川大学计算机学院,成都610065)
异质人脸图像是指来源不同、质量不同、风格不同的人脸图像,如图1 所示,第一列中的真实照片与素描人脸[1]、第二列的可见光人脸图像(Visible Light Spectrum,VLS)与近红外光谱人脸图像(NIR,Near-Infrared Spectrum)[2]、第三[3]和第四列的三维投影人脸图像与监控采集人脸图像等均属于异质人脸图像。
图1 异质人脸图像示例
异质人脸图像合成有丰富的应用场景,在数字娱乐中,将真实照片转化为素描或漫画等应用已经出现在图像处理软件中。此外,高质量的合成图像可以用于异质人脸识别中。在某些应用场景,例如公安部门抓捕嫌疑人,往往只有嫌疑人的肖像画,但要在真实照片的人脸库中筛选嫌疑人;例如安防场景下,夜间光照条件差,安防摄像头一般用近红外光谱成像,捕捉到的人脸是近红外光谱图像,但需要与可见光图像进行比对识别;例如在三维模型-二维监控人脸识别中,注册库为三维投影图像,需要对监控采集的人脸图像识别。这些异质图像由于图像质量、风格等差异,往往不在同一表达空间。异质人脸合成可以将异质图像转化为同质图像,合成的同质图像可以用于人脸识别中的训练与识别。
异质人脸合成本质上是图像翻译的一种。得益于生成对抗网络(Generative Adversarial Networks,GAN)[4]的提出,图像翻译取得了极大的进步。Isola 等人[5]提出基于条件GAN 模型Pix2Pix,取得了较高的合成质量。但该模型要求成对的训练数据,每对图像必须严格对齐,为在非成对数据上训练图像风格迁移模型,Zhu 等人[6]提出循环一致性损失解决该问题,率先在非成对数据上完成了较高质量的图像翻译,该工作中提出的CycleGAN 模型也成为图像翻译中的经典模型,并相继出现了一些改进和衍生模型,这些方法对异质人脸合成具有极高的启发意义。
当前关于异质图像的研究多集中在素描-照片、NIR-VIS 这两类异质图像上。近年来,在监控场景下的人脸识别中,由于收集监控人脸数据较为困难,一些研究方法引入了三维人脸模型进行多角度投影,以得到丰富的多姿态人脸数据。但三维投影的人脸图像与监控采集的人脸图像在来源、风格、质量等方面存在明显差异,属于异质图像,针对这类数据的研究还较少。本文基于CycleGAN 模型,引入了身份损失和导向滤波,针对这类人脸数据进行实验,得到一种高质量的异质人脸合成算法。
假定异质图像数据集中包含的两类图像分别为A和B,CycleGAN 的目标是学习一个映射函数,将A 中的一个样本转换为服从B 分布的样本,反之亦然。在CycleGAN 中,包含生成器G、F 和判别器DA、DB,正向的生成器G 将A 转换为B、反向的生成器F 将B 转换为A,两个判别器分别判别图像是来自于生成器的生成还是A 或B 中的真实样本。根据GAN 的零和博弈思想,G 尽可能生成符合数据集B 分布的样本以骗过判别器DB,DB尽可能判别某个样本是来自于生成器的生成还是B 中的真实样本,反向生成也类似。生成器和判别器基于对抗损失交替更新,最终达到纳什均衡,此时,生成器生成的样本足够真实,判别器难以做出正确的判别。
原始CycleGAN 的损失函数定义如下:
CycleGAN 的目标是找到一个G*和F*:G*,F*=
在损失函数中,LGAN(G,DB,A,B)和LGAN(F,DA,B,A)分别表示正向和反向的对抗损失。以正向为例,最小化对抗损失的目的是使G 生成的样本尽可能像来自于B的真实样本,对判别器DB来讲,最大化对抗损失的目的是使DB能尽可能地区分样本是来自于G 的生成还是B 中的真实样本。这可以表达为下式:
Lcyc(G,F)表示循环一致性损失,CycleGAN 认为,尽管对抗损失能够让生成器生成真实度较高的样本,但在训练中容易发生模式退化,即对任意一个来自A 中的样本,生成器G 将其映射转化为服从B 分布的同一个样本,或任意一个来自B 中的样本,反向生成器F 将其映射转化为服从A 分布的同一个样本。故在Cycle-GAN 引入了循环一致性损失,使F(G(x))≈x ,G(F(y))≈y,其中x、y 分别是来自A 和B 的样本。循环一致性损失可表达为下式:
上式中的λ 为循环一致性损失的权重。
CycleGAN 作为一种典型的一般图像翻译模型,并没有针对人脸图像做特殊处理,直接将其应用于异质人脸合成存在身份属性保持不佳、无法处理人脸背景等问题。本小节基于CycleGAN 改进得到异质人脸模型HFS-CycleGAN(Heterogeneous Face Synthesis-CycleGAN),如图2 所示,该模型以三维投影人脸图像和无标签真实监控图像为输入,训练HFS-CycleGAN,训练完成后,输入三维投影人脸图像,可以合成对应的监控人脸图像。合成的监控人脸往往存在结构细节丢失等问题,影响到身份属性保持,在HFS-CycleGAN 中,引入了导向滤波层,可以利用输入三维投影图像对合成图像恢复人脸结构细节。特别地,监控图像与合成监控图像包含背景,但三维投影图像除人脸区域外无背景,为在滤波时保留背景,HFS-CycleGAN 利用蒙版(xmask),结合三维投影图像(x)和合成图像(ẋB)得到导向滤波参考图ẋ,ẋ=x⊙xmask+ẋB⊙(1-xmask)。通过导向滤波层,合成图像的合成细节得到了进一步提升。
图2 算法流程
HFS-CycleGAN 合成部分的网络结构延续了CycleGAN 的对偶结构,包含两个生成器G、F 和两个判别器DA、DB。如图3 所示,在正向过程中,三维投影人脸图像A 作为正向生成器G 的输入,合成监控图像B,再通过反向生成器F 得到重建的三维投影图像A'。输入的三维投影图像A 和重建的三维投影图像A'计算循环一致性损失;合成监控图像B 和真实监控图像B 用于训练判别器DB,计算对抗损失;输入的三维投影图像A 和合成的监控图像B 计算身份损失。反向过程类似。
图3 HFS-CycleGAN生成部分网络结构
生成器G 和F 采用完全一样的网络结构,输入为224×224 图像,两个步长为2 的卷积层对图像进行下采样,9 个残差模块进一步提取特征,两个反卷积层进行上采样,合成224×224 图像。判别器DA、DB使用70x70 的PatchGANs。
引导滤波层采用了文献[7]提出的方法,引导滤波可通过下式求得输出:
其中,Ah、bh是引导滤波的关键参数,文献[7]避免了直接求解,而是设计了一个包含卷积层、均值滤波、局部线性模型、双向性上采样和线性层的神经网络来求解该参数的近似值,使得该引导滤波模块可以和HFS-CycleGAN 生成部分一起训练。
在损失函数方面,HFS-CycleGAN 保留了原始CycleGAN 的对抗损失LGAN(G,DB,A,B)和LGAN(F,DA,B,A)、循环一致性损失Lcyc(G,F),并引入了新的身份损失Lid,Lid通过预训练的VGGFace-16 网络[8]对输入三维投影图像和合成监控图像进行提取身份特征表示,具体地,以VGGFace-16 网络的fc6 层输出为身份特征计算Lid,表达为下式:
HFS-CycleGAN 的最终损失函数为:
本节提出的异质人脸合成方法在和自建数据集3DProj-Sur 和公开数据集EK-LFH 上[3]进行了实验。这两个数据集均为三维投影-监控人脸数据集,3DProj-Sur 是自建数据集,每人有83 张三维投影,和平均每人41.4 张监控图像;EK-LFH 共30 人,每人有63 张三维投影,和平均每人530 张监控图像。本文提出的异质人脸合成算法的效果如图4 所示,前三行为3DProj-Sur 数据集,后三行为EK-LFH 数据集,前三列为输入的三维投影图像,中间三列为基于三维投影图像合成的监控图像,后两列为真实的监控图像。
图4 异质人脸合成可视化效果
本文认为高质量的异质人脸合成表现在两个方面,一是人脸身份在合成前后要尽可能保持,二是合成的监控人脸图像要和真实的监控人脸图像同质化程度要尽可能高。
本文采用人脸相似度来比较合成前后图像的人脸身份的变化。人脸特征提取网络采用在VGGFace2 数据集上预训练的ResNet50[9],余弦相似度为相似度度量方法,对合成前后的人脸图像进行1:1 相似度比较,得到实验结果如表1,结果表明,在3DProj-Sur 和EKLFH 数据集上,本节提出的异质人脸合成方法合成的图像与原三维投影图像的相似度平均值均大于0.8,能够很好保证合成前后的身份属性一致性,且高于Cycle-GAN 方法。
表1 合成前后人脸相似度比较
为直观地观察合成监控图像与真实监控图像的同质化程度,本节在3DProj-Sur 数据集的三维投影图像、真实监控图像、合成监控图像中各随机选取每人一张图像,在EK-LFH 的三维投影图像、真实监控图像、合成监控图像中各随机选取每人两张图像,采用t-SNE方法[10]进行降维可视化,在嵌入空间观察各图像的分布情况。
图5 同质化程度可视化
如图5 所示,在两个数据集上,三维投影图像和真实监控图像分布明显在两个区域,合成监控图像和真实监控图像在嵌入空间中分布较为接近,这表明合成监控图像和真实监控图像同质化程度高。
本文对CycleGAN 进行改进,引入身份损失和引导滤波,提出一种异质人脸合成方法,能够较好地合成异质人脸,并进一步在人脸数据集上进行了评估实验,结果表明,合成结果对人脸的身份属性保持较好,同时合成之后的图像与真实监控图像同质化程度高。合成结果可用于数字娱乐或异质人脸识别等场景,具有较好的应用价值。