给一行二次元老婆的脸蛋;下一行就能让她们全部微笑起来:
或者对于铲屎官们来说,把老虎猫变成?,把狗变成狼?,还可以把老虎变成猫:
阿这,等一等,让我来捋一下:老虎 —>> 猫 ——>> 狗 ——>> 狼,这岂不是说,老虎 == 狼了?
对于这一点,或许广大网友们早就见怪不怪了,毕竟苏大强也可以变身吴彦祖:
没错,正如大家所猜到的一样,今天为大家介绍的就是一款可以学习通过操纵隐空间语义进行脸部属性编辑的 GAN 模型 —— L2M-GAN。
这是人民大学高瓴人工智能学校卢志武老师实验室团队提出的模型,论文已经被 CVPR 2021 接收为 Oral,论文题目:《L2M-GAN: Learning to Manipulate Latent Space Semantics for Facial Attribute Editing》。
论文介绍脸部属性编辑任务的目标是操纵真实脸部图片的语义属性,其在现实中有着广泛的应用,例如娱乐、辅助心理治疗以及数据增强等等。随着深度生成模型的发展,最近的工作大多以 GAN(Generative Adversarial Network)为基础。现有的脸部属性编辑模型面临的一个主要挑战是要同时满足两个要求:
(1)正确地修改想要的属性;(2)保留其它无关的信息。但是因为不同属性之间存在着各种关系,且属性与身份信息之间也存在着关系,所以在修改一个属性时很可能不经意地导致其他特征的改变,这导致了同时满足这两个属性是很困难的。
为了满足这两个条件,一些最新的办法采用了空间注意力的方法。这类方法假设每个属性有着一个对应的局部区域,图片的属性操作可以被限制在这一区域中。它们通过网络中的注意力模块去学习建模这一区域,一但这一区域被确定,它们便可以使用掩码和残差和的方法实现仅在部分区域内进行编辑。
但是这一假设并非对所有的属性都满足,比如说性别、笑容等属性,这些属性对应的区域基本覆盖了整个脸部且与其他属性区域重叠。因此这类模型在操纵这些属性时效果并不好。另一部分方法则把注意力放在对 GAN 学到的隐空间中进行隐变量的分解,从而通过分解得到属性相关的向量。给定一个预训练好的 GAN 模型,它们通过学习子映射的方式将原向量映射到表达对应属性的向量。
但是这类方法仍然存在两个问题:
(1)它们依赖于预训练好的 GAN 模型提供的隐空间,并不对模型重新训练。这种没有重新进行端到端训练的模型的隐空间可能是一个次优化的隐空间。
(2)这类方法往往只在数据集提供的几个标签之间进行解耦,但是还有许多并没有被包含在这些预定义的标签中的信息需要被解耦,例如光照信息和身份信息等。
为了克服这些限制,本文提出了一个新的隐空间分解模型 L2M-GAN。
该模型进行端到端的训练,并学习将隐向量明确地分解为属性相关向量和属性无关向量,以实现相关属性信息和其他信息的解耦。与之前的这类方法类似,我们也根据属性标签对隐空间中的变量进行解耦,但是不同的是,我们明确地将其分解为属性相关的向量和属性无关的向量,而非仅仅对两个预定义的属性进行解耦。
方法在介绍我们的方法之前,我们先定义“域”这一概念。“域”指的是某些属性的值构成的组合。比如想要编辑属性 < 性别,年龄 > 时,一共存在 4 个“域”,< 男性,年老 >,< 女性,年老 >,< 男性,年轻 >,< 女性,年轻 >。给定一张输入图片和它所对应的域,以及目标域,我们的目的是合成一张属于目标域的图片,同时保留输入图片的与域无关的信息。
如下图所示,我们提出的模型由三个部分组成:风格编码器、风格转换器和生成器。
在多任务学习的设置下,我们的风格编码器由多个域的输出分支组成。为了解释方便,上图中仅表示了一个域的输出。
风格编码器是 L2M-GAN 的关键组成部分,它由分解器和域转换器两个组件构成。其中,分解器从原始的隐向量中分解出与域无关的(属性无关的)向量 Sun,再通过相减能得到域相关的(属性相关的)向量。因为我们的目标是修改目标属性到目标域中,而其他无关的信息不会被修改。这种情况会出现,当且仅当和 Sun 是相互垂直的,且修改后的向量也与 Sun 是相互垂直的。
为此,我们引入了垂直损失来对这两个向量进行限制。值得注意的是,之前的方法使用垂直损失来对两个属性进行解耦,而 L2M-GAN 则用该损失来把属性相关的信息和其他所有无关的信息分离开。这对属性编辑中保留其他信息这一要求是至关重要的,因为其他的属性标签并不能涵盖所有的无关信息。在得到域相关向量以后,L2M-GAN 通过域转换器把它转换到目标域中,得到表示目标域信息的域相关向量。其与域无关向量 Sun 相加后便可得到编辑过后的隐向量。
生成器以一张输入图片和一个编辑后的隐编码作为输入,生成一张目标域的图片,其包含目标域信息和输入图片的与域无关的其他信息。与 StarGAN V2 类似,我们的生成器也采用 Adaptive Instance Normalization(AdaIN)结构来将隐编码中包含的风格信息融合到输入图片中。
实验我们在广泛使用的 CelebA-HQ 数据集上进行实验。我们根据 CelebA 的划分以及 CelebA 和 CelebA-HQ 图片间的对应关系,把 CelebA-HQ 划分为 27176 张训练图片和 2824 张测试图片。
我们将我们的方法与其他几种最新的方法进行了对比。正文中的实验几种在“笑容”这一特定属性上,其他更多属性的结果我们放在了附件中。值得注意的是,“笑容”这一属性是数据集所给的 40 个标签中最具挑战性的一个属性,因为其同时涉及脸部中的多个部分,添加和消除笑容都需要模型对输入图片有高级的语义理解,这样才能同时修改多个脸部图片的组成部分而不改变其他信息。
从可视化结果中可以看到,StarGAN 和 CycleGAN 倾向于在嘴周围生成模糊和失真的结果,因此在大多数生成图片中,它们没法很好地正确编辑对应属性。ELEGANT 则总是把参考图片中与属性无关的信息也迁移到生成图片中,这是因为它进行属性交换的隐空间并没有很好地解耦。
PA-GAN 是基于空间注意力的方法,因此它较好地保留了一些无关的信息,例如背景等,但是可以看到,面对难以定义确定修改区域的“笑容”属性,其通常会出现修改不充分的情况,因而无法正确地编辑属性。InterfaceGAN * 能够生成高质量的图片,但是在一些细节上仍然做的不够好,比如眼睛和嘴的生成。同时其有时会修改输入图片的身份信息,这是因为其仅仅考虑了属性间的解耦,而没有考虑身份等其他信息。
在量化结果上,我们主要采用了 FID 和属性操作准确率来分别评价合成图片的质量以及属性编辑的结果正确率。可以看到除了在消除笑容这一结果上的 FID 比 PA-GAN 低,其他的结果都是超过了所有最新的结果的,而 PA-GAN 是以修改不充分为代价来达到较高的图片质量的。
除了上述结果,我们的模型还展现出了其他的能力,包括:控制编辑属性的强度、同时修改多个属性以及对未见过的图片的迁移等。
因为经过训练之后的隐空间是一个学习到了语义信息的连续空间,当我们线性地把变换到时,合成的图片所表示的关于目标域的语义信息也会逐渐增加,关于原域的语义信息会逐渐减少,同时因为我们对、与 Sun 的垂直限制,这个过程不会改变其他无关的信息。这一过程可以表达为:
我们可以通过控制超参数来控制合成图片的相关属性的强度。
此外,我们的 L2M-GAN 模型以 StarGAN V2 作为骨架网络,所以可以很自然地进行多属性编辑的任务。
本文还使用了数据集外的图片测试了我们模型的泛化能力。可以看到,我们的模型在 CelebA-HQ 这一真实人脸数据集上训练过后,直接在分布差异比较大的动漫数据集上测试也可以很好地实现属性编辑的功能且合成质量很高的图片。
同时,为了进一步验证我们模型结构的有效性,我们还在非人脸的动物数据集 AFHQ 上进行训练。从可视化结果中可以看到,我们的模型在非人脸数据集上也能达到很好的属性编辑效果以及生成图片质量。这进一步验证了我们的方法的有效性及泛化性。
总结我们提出了一种新的基于隐空间分解的脸部属性编辑模型。
我们提出的模型 L2M-GAN 是首个基于隐空间分解的端到端脸部属性编辑模型,其可以有效地编辑局部和全局属性。这得益于提出的新的风格转换器将隐向量分解为属性相关的部分和属性无关的部分,并对转换前后的向量施加了垂直约束。大量的实验证明了我们提出的 L2M-GAN 比其他现有的方法有明显的改进。
另外本论文已经开源,欢迎大家多多试用、来个 star~
开源链接:https://github.com/rucmlcv/L2M-GAN
论文地址:
https://openaccess.thecvf.com/content/CVPR2021/papers/Yang_L2M-GAN_Learning_To_Manipulate_Latent_Space_Semantics_for_Facial_Attribute_CVPR_2021_paper.pdf