Interpreting the Latent Space of GANs for Semantic Face Editing

Abstract

尽管生成对抗网络(GANs)最近在高保真图像合成方面取得了进展,但人们对GANs如何能够将随机分布中采样的潜在代码映射到逼真的图像缺乏足够的了解。以往的研究假设GANs学习到的潜在空间遵循分布式表示,但观察到向量算术现象。在这项工作中,我们提出了一个名为InterFaceGAN的新框架,通过解释GANs学习到的潜在语义来进行语义人脸编辑。在此框架下,我们详细研究了不同的语义是如何编码在GANs的潜在空间中用于人脸合成的。我们发现,经过线性变换后,训练良好的生成模型的潜在代码实际上学会了一种解纠缠的表示。我们探索了各种语义之间的解纠缠,并成功地利用子空间投影对一些纠缠语义进行解纠缠,从而实现对人脸属性更精确的控制。除了操纵性别、年龄、表情和眼镜的存在,我们甚至可以改变面部姿势,以及修复GAN模型意外生成的工件。将该方法与GAN反演方法或一些涉及编码器的模型相结合,实现了真实的图像处理。大量的研究结果表明,学习自发地合成人脸可以带来一种分离的、可控的面部属性表征。

1 Introduction

生成对抗网络(GANs)[15]近年来在图像合成方面取得了显著的进展。GANs背后的原理是通过对抗训练学习从潜在分布到真实数据的映射。在学习了这样的非线性映射之后,GAN就能够从随机采样的潜码中产生逼真的图像。然而,语义如何在潜在空间中产生和组织是不确定的。以人脸合成为例,在对潜在代码进行采样以生成图像时,代码如何能够确定输出人脸的各种语义属性(如性别和年龄),以及这些属性如何相互纠缠。
现有的工作通常集中在提高GAN的合成质量[40,28,21,8,22],然而,很少有人致力于研究GAN对潜在空间的实际学习。Radford等[31]首先观察到潜在空间中的向量算术性质。最近的一项工作[4]进一步表明,来自GAN生成器中间层的一些单元被专门用于合成某些视觉概念,如沙发和电视用于客厅生成。尽管如此,GAN是如何连接潜空间和图像语义空间的,以及如何将潜代码用于图像编辑,还缺乏足够的理解。
在本文中,我们提出了一个框架InterFaceGAN (interpretation Face GANs的缩写)来识别经过良好训练的人脸合成模型潜在空间中编码的语义,然后利用它们进行语义人脸编辑。除了向量算法性质外,该框架还提供了理论分析和实验结果,以验证线性子空间与潜在空间中出现的不同真假语义对齐。我们进一步研究了不同语义之间的解纠缠,表明我们可以通过线性子空间投影解纠缠的属性(例如,老年人比年轻人更可能戴眼镜)。这些分离的语义使任何给定的GAN模型都能精确控制面部属性,而无需再训练。
我们的贡献总结如下:

  • 我们提出InterFaceGAN来探讨单个或多个语义是如何在GANs的潜空间中编码的,如PGGAN[21]和StyleGAN[22],并观察到GANs自发地学习对应于特定属性的各种潜子空间。在进行了一些线性转换之后,这些属性表示就变得清晰了。
  • 我们展示了InterFaceGAN能够使用任何固定的预训练GAN模型进行语义人脸编辑。一些结果如图1所示。除了性别、年龄、表情和眼镜的存在,我们还可以明显地改变面部姿势或纠正GANs产生的一些伪影。
  • 我们将InterFaceGAN扩展到使用GAN反演方法和涉及编码器的模型进行真实图像编辑。通过简单地改变潜在代码,我们成功地操纵了真实面孔的属性,甚至使用了不是专门为编辑任务设计的gan。

1.1 相关工作

Generative Adversarial Networks 近年来,GAN[15]因其在生成照片真实感图像方面的巨大潜力而受到广泛关注[1,17,6,40,28,21,8,22]。它通常采用采样潜伏代码作为图像合成的输入和输出。为了使GAN适用于真实图像处理,现有的方法提出了将潜在空间的映射反向到图像空间[30,42,27,5,16]或学习与GAN训练相关的额外编码器[13,12,41]。尽管取得了巨大的成功,但关于理解GANs如何学习将输入潜在空间与真实视觉世界中的语义连接的工作却很少。

Study on Latent Space of GANs 一般将GANs的潜空间视为黎曼流形[9,2,23]。之前的工作集中在探索如何通过潜空间插值使输出图像从一个合成平滑地变化到另一个合成,而不管图像是否语义可控[24,32]。GLO[7]同时优化了生成器和潜伏代码,以学习更好的潜伏空间。然而,一个训练有素的GAN如何能够在潜在空间内编码不同的语义的研究仍然缺乏。一些工作已经观察到向量的算术性质[31,36]。此外,本研究从单个语义的性质和多个语义的解纠缠两个方面详细分析了潜伏空间中编码的语义。一些同时进行的工作还探索了GANs学习到的潜在语义。Jahanian等人[20]研究了GANs关于相机运动和图像色调的导向性。Goetschalckx等。[14]提高了输出图像的可记忆性。Yang等人[38]探讨了用于场景合成的深层生成表示中的层次语义。与他们不同的是,我们专注于GANs中出现的面部属性来进行人脸合成,并将我们的方法扩展到真实的图像处理。

Semantic Face Editing with GANs. 语义人脸编辑旨在操纵给定图像的人脸属性。与可以任意生成图像的无条件GANs相比,语义编辑希望模型只改变目标属性,但保持输入人脸的其他信息。为了实现这一目标,目前的方法需要精心设计的损失函数[29,10,35],引入额外的属性标签或特征[25,39,3,37,34],或特殊的架构[11,33]来训练新模型。然而,这些模型的合成分辨率和质量远远落后于原生gan,如PGGAN[21]和StyleGAN[22]。与以往基于学习的方法不同,本文探索了固定GAN模型潜空间内的可解释语义,通过改变潜代码将无约束的GAN转变为可控的GAN。

2 Framework of InterFaceGAN

本节介绍interfacegan框架,首先对训练良好的GAN模型的潜空间中出现的语义属性进行严格的分析,然后构建一个利用潜代码中的语义进行面部属性编辑的操作管道。

2.1. Semantics in the Latent Space

给定一个训练良好的GAN模型,生成器可以的确定函数g:ZX。这里,ZRd表示d维隐空间,通常使用高斯分布N(0,Id)[28, 21, 8, 22]。X表示图像空间,其中每个样本x具有一定的语义信息,如人脸模型的性别和年龄。假设我们有一个语义评分函数fS:XS,其中SRm表示具有m语义的语义空间。我们可以用S=fS(g(Z))连接潜空间Z和语义空间S,其中s和z分别表示语义得分和采样的潜代码。

Single Semantic. 广泛观察到,当线性插值两个隐码z1和z2时,对应的合成外观连续变化[31,8,22]。这意味着图像中包含的语义也是逐渐变化的。根据性质1,z1和z2之间的线性插值形成Z上的一个方向,进而定义了一个超平面。因此,我们假设2对于任何二元语义(例如,男性对女性),潜空间中存在一个超平面作为分离边界。当潜在代码游走在超平面的同一侧时,语义保持不变,但当跨越边界时,语义变成相反的.
给定一个单位法向量n∈rd的超平面,我们定义样本z到该超平面的“距离”为

(1)d(n,z)=nTz

这里,d(·,·)不是一个严格定义的距离,因为它可以是负的。当z位于边界附近并向超平面移动和跨越超平面时,“距离”和语义分数都相应变化。而正是在“距离”改变其数值符号的时候,语义属性发生了逆转。因此,我们期望这两者基于这样的线性关系:
(2)f(g(z))=λ(n,z)

其中f(·)是特定语义的评分函数,λ>0是一个标量,用于度量语义随距离变化的速度。根据性质2,从N (0, Id)中抽取的随机样本极有可能位于足够接近给定超平面的位置。因此,对应的语义可以用n定义的线性子空间来建模.

性质1 性质1懒得翻译了,这个主要说的是如何找超平面,也就是一个平面的定义是又法向量来确定的。

性质2 性质二也懒得翻译的latex打到吐血。它其实说了这么一个事情,空间上的点到某个平面的距离,在一个比较大的概率上都在某个区域内,如果这个空间的点服从某种分布。

Multiple Semantics 当有m个不同的语义时,我们有:
$$
\mathbf{s} \equiv f_S(g(\mathbf{z})) = \Lambda N^T\mathbf{z} \tag{3}
$
其中s = [s1, . . . , sm] T表示语义得分,Λ = diag(λ1, . . . , λm)为包含线性系数的对角矩阵,N = [n1, . . . , nm]表示分离边界。已知随机样本z的分布,即N (0, Id),我们可以轻松计算语义分数s 的均值和协方差矩阵

因此,我们有s ~ N (0, Σs),这是一个多元正态分布。当且仅当Σs是一个对角矩阵时,s的不同元素可以解缠,而这需要{n1,…, nm}相互正交。如果不满足该条件,则某些语义会相互关联,可以用niTnj来衡量第i个语义与第j个语义之间的纠缠程度。

2.2. Manipulation in the Latent Space

在这一部分中,我们介绍了如何利用潜在空间中的语义进行图像编辑。
Single Attribute Manipulation 根据公式(2),为了操纵合成图像的属性,我们可以用zedit = z+αn轻松地编辑原始潜代码z。使用α>0将使合成在这种语义上看起来更积极;因为经过编辑后分数变为f(g(zedit)) = f(g(z)) + λα。同样,α<0会让合成看起来更负。

Conditional Manipulation 当有多个属性时,编辑一个属性可能会影响另一个属性,因为一些语义可以相互耦合。为了实现更精确的控制,我们提出了条件操作,手动强制式(5)中的N^TN为对角阵。特别地,我们使用投影来正交不同的向量。如图2所示,给定两个法向量n1和n2的超平面,我们得到了一个投影方向n1−(n1^Tn2)n2,使得沿着这个新方向移动样本可以改变“属性1”而不影响“属性2”。我们称这种操作为条件操作。如果有多个属性需要条件化,我们只需减去原始方向到由所有条件化方向构成的平面上的投影。

Real Image Manipulation 由于我们的方法支持从固定GAN模型的潜在空间进行语义编辑,因此在执行操作之前,我们需要首先将真实图像映射到潜在代码。为此,已有方法提出直接优化潜码以最小化重构损失[27],或学习额外的编码器将目标图像反演回潜空间[42,5]。还有一些模型已经包含了编码器和GANs的训练过程[13,12,41],我们可以直接使用它们进行推理。

3 Experiments

在本节中,我们用最先进的GAN模型PGGAN[21]和StyleGAN[22]评估InterFaceGAN。具体而言,在PGGAN上进行了3.1、3.2和3.3节的实验,解释了传统发电机的潜在空间。第3.4节在StyleGAN上进行了实验,研究了基于样式的生成器,并比较了StyleGAN中两组潜在表示的差异。我们还将我们的方法应用于Sec.3.5中的真实图像,看看如何将GANs隐式学习的语义应用于真实的人脸编辑。实现细节可以在附录中找到。

3.1. Latent Space Separation

如第2.1节所述,我们的框架基于这样一个假设:对于任何二元属性,潜空间中都存在一个超平面,使得来自同一侧的所有样本都具有相同的属性。因此,我们想首先评估这一假设的正确性,以使其余的分析相当可观。
我们针对姿势、微笑、年龄、性别、眼镜训练5个独立线性支持向量机,然后在验证集(属性得分置信度高的6K样本)和整个集合(480K随机样本)上对它们进行评估。表1显示了结果。我们发现所有的线性边界在验证集上都达到了95%以上的精度,在整个验证集上达到了75%以上的精度,这表明对于一个二元属性,潜在空间中存在一个线性超平面,可以很好地将数据分为两组。我们还将图3中的一些样本按照到决策边界的距离进行排序。请注意,这些极端情况(图3中的第一行和最后一行)不太可能直接采样,而是通过向法线方向“无限”移动潜在代码来构建。从图3可以看出,正样本和负样本在对应的属性上是可区分的。
我们还将图3中的一些样本按照到决策边界的距离进行排序。请注意,这些极端情况(图3中的第一行和最后一行)不太可能直接采样,而是通过向法线方向“无限”移动潜在代码来构建。从图3可以看出,正样本和负样本在对应的属性上是可区分的。

3.2. Latent Space Manipulation

Manipulating Single Attribute.
图4绘制了5个不同属性的操作结果。这表明我们的操作方法在正向和负向的所有属性上都表现良好。特别是在位姿属性上,我们观察到即使通过求解双分类问题来搜索边界,移动潜码也会产生连续的变化。此外,尽管在训练集中缺乏足够的极端姿势的数据,GAN能够想象侧脸应该是什么样子。同样的情况也发生在眼镜属性上。尽管训练集中的数据不足,我们仍然可以手动创建许多戴眼镜的面孔。这两个观察结果提供了强有力的证据,证明GAN不是随机产生图像,而是从潜在空间学习一些可解释的语义。

Distance Effect of Semantic Subspace.在对潜码进行操作时,我们观察到一个有趣的距离效应,如果离边界太远,样本的外观会发生严重的变化,最终趋向于成为图3所示的极端情况。图5以性别编辑为例说明了这一现象。近边界操作效果很好。然而,当样本超过某个区域时,编辑的结果就不再像原来的脸了。但这种效应并不影响我们对潜空间解纠缠语义的理解。这是因为这种极端样本不太可能直接从标准正态分布中提取,这一点在第2.1节的性质2中已经指出。相反,它们是通过沿着特定的方向不断移动正常采样的潜在代码来手动构造的。这样可以更好地解释gan的潜在语义。

Artifacts Correction.(是不是翻译成非自然修正比较好)
我们进一步应用我们的方法来修复合成输出中有时出现的工件。我们手动标记4K不良合成,然后训练线性支持向量机找到分离超平面,和其他属性一样。我们惊奇地发现GAN也在潜伏空间中编码这些信息。基于这一发现,我们能够修正GAN在生成过程中所犯的一些错误,如图6所示。

3.3 Conditional Manipulation

Correlation between Attributes
不同于[22]引入感知路径长度和线性可分性来度量潜在空间的解纠缠性,我们更关注不同隐藏语义之间的关系,研究它们之间是如何耦合的。在这里,使用两种不同的度量方法来度量两个属性之间的相关性。(i)计算两个方向之间的余弦相似度cos(n1, n2) = n1^T n2,其中n1和n2代表单位向量。(ii)我们将每个属性得分视为随机变量,并使用从所有500K合成数据中观察到的属性分布来计算相关系数ρ。这里,我们有ρA1A2 = Cov(A1,A2) / σA1 σA2,其中A1和A2代表两个关于两个属性的随机变量。Cov(·,·)为协方差,σ为标准差
表2和表3报告了结果。我们可以看出,属性在这两个指标下的行为相似,这表明我们的InterFaceGAN能够准确地识别隐藏在潜在空间中的语义。我们还发现姿势和微笑几乎与其他属性正交。然而,性别、年龄和眼镜是高度相关的。这一观察结果在一定程度上反映了训练数据集(即CelebA-HQ[21])中的属性相关性,其中男性老年人更倾向于佩戴眼镜。GAN在学习产生真实观察时也捕捉到了这一特征。

Conditional Manipulation 为了将不同的语义去关联到独立的面部属性编辑中,我们在第2.2节中提出了条件操作。图7显示了用一个属性操作另一个属性作为条件的一些结果。以图7中左侧样本为例,随着年龄的增长(第一行),结果趋于男性化。我们通过从年龄方向减去它在性别方向(第二行)上的投影来解决这个问题,从而得到一个新的方向。这样,当样本沿着投影方向(第三行)移动时,我们可以确保性别成分几乎不受影响。图8显示了具有多个约束的条件操作,其中我们通过有条件地保留年龄和性别添加眼镜。起初,戴眼镜与改变年龄和性别纠缠在一起。但通过投影操作,我们成功地在不影响年龄和性别的情况下添加了眼镜。这两个实验表明,我们提出的条件控制方法有助于实现独立和精确的属性控制。

3.4. Results on StyleGAN

与传统的GANs不同,StyleGAN[22]提出了基于样式的生成器。基本上,StyleGAN学会将潜在代码从空间Z映射到另一个高维空间W,然后将其输入生成器。正如[22]中指出的,W表现出比Z更强的解纠缠性,因为W不受任何特定分布的限制,可以更好地模拟真实数据的底层特征。
我们对StyleGAN的Z和W空间做了类似的分析,就像对PGGAN做的那样,发现W空间确实学习了一种更解纠缠的表示,正如[22]所指出的那样。这种解纠缠使得W空间在属性编辑方面比Z空间具有强大的优势。如图9所示,年龄和眼镜在StyleGAN模型中也是纠缠在一起的。与Z空间(第二行)相比,W空间(第一行)的性能更好,特别是在远程操作方面。然而,我们可以使用第2.2节中描述的条件操作技巧在Z空间(第三行)中去关联这两个属性,从而得到更吸引人的结果。然而,这个技巧不能应用于W空间。我们发现W空间有时会捕捉到训练数据中发生的属性相关性,并将它们编码在一起作为一个耦合的“样式”。以图9为例,“年龄”和“眼镜”被支持为两个独立的语义,但StyleGAN实际上学习了一个包含眼镜的年龄方向,因此这个新方向以某种方式正交于眼镜方向本身。这样,减去几乎为零的投影,几乎不会影响最终结果。

3.5 Real Image Manipulation

在本部分中,我们使用所提出的InterFaceGAN对真实人脸进行操作,验证GAN学习到的语义属性是否可以应用于真实人脸。回想一下,InterFaceGAN通过沿特定方向移动潜在代码来实现语义面编辑。因此,我们需要首先将给定的真实图像转换回潜在代码。事实证明,这是一项艰巨的任务,因为GANs不能完全捕获所有的模式以及真实分布的多样性。要反演预先训练的GAN模型,有两种典型的方法。一种是基于优化的方法,使用固定生成器直接优化潜在代码,以最小化像素级重构错误[27]。另一种是基于编码器的,其中一个额外的编码器网络被训练来学习反向映射[42]。我们在PGGAN和StyleGAN上测试了这两种基线方法。
结果如图10所示。我们可以看出,基于优化(第一行)和基于编码器(第二行)的方法在反求PGGAN时性能都很差。这可以归因于训练和测试数据分布之间的强烈差异。例如,即使输入是东方人,模型也倾向于生成西方人(见图10的右例)。然而,即使与输入不同,反向图像仍然可以使用InterFaceGAN进行语义编辑。与PGGAN相比,StyleGAN(第三行)上的结果要好得多。在这里,我们将分层样式(即所有层的样式为w)作为优化目标。在编辑实例时,我们将所有样式代码推向同一个方向。如图10所示,我们成功地改变了真实人脸图像的属性,而无需再训练StyleGAN,而是利用潜在空间的解释语义。

我们还在编码器-解码器生成模型上测试了InterFaceGAN,该模型将编码器与生成器和鉴别器一起训练。在模型收敛后,编码器可以直接用于推断,将给定的图像映射到潜在空间。我们用该方法解释了最新的编码器-解码器模型LIA[41]的潜在空间。操作结果如图11所示,我们成功地编辑了具有不同属性的输入人脸,如年龄和面部姿势。这表明基于编码器-解码器的生成模型中的潜在代码也支持语义操作。此外,与图10 (b)中在GAN模型准备就绪后单独学习编码器相比,编码器与生成器一起训练得到了更好的重构和操作结果。

4. Conclusion

我们提出InterFaceGAN来解释编码在GANs潜在空间中的语义。通过利用解释语义和提出的条件操作技术,我们可以用任何固定的GAN模型精确控制面部属性,甚至可以将无条件的GAN转化为可控的GAN。大量的实验表明,InterFaceGAN也可以应用于真实的图像编辑

Appendix

B. Implementation Details

我们选择五个关键的面部属性进行分析,包括姿势、微笑(表情)、年龄、性别和眼镜。相应的正向方向被定义为右转、大笑、变老、变男性和戴眼镜。注意,只要属性检测器可用,我们总是可以轻松插入更多的属性。
为了更好地从合成图像中预测这些属性,我们使用来自CelebA数据集[26]和ResNet50网络[18]的注释来训练一个辅助属性预测模型。该模型使用多任务损失进行训练,以同时预测微笑、年龄、性别、眼镜以及5点面部特征点。这里,面部特征点将用于计算偏航姿态,在进一步分析中也将其视为二元属性(左或右)。除标记点外,所有其他属性都采用softmax交叉熵损失作为双分类问题进行学习,而标记点则采用l2回归损失进行优化。由于PGGAN和StyleGAN产生的图像具有1024×1024的分辨率,我们在将它们输入属性模型之前将它们调整为224×224。
在预先训练好的GAN模型下,我们通过随机采样潜在空间合成500K图像。在准备如此大规模的数据时,主要有两个原因:(1)为了消除抽样带来的随机性,确保潜伏码的分布符合预期(ii)获得足够的佩戴眼镜样本,这在PGGAN模型中是非常罕见的。
为在潜空间中找到语义边界,使用预训练属性预测模型为所有500K合成图像分配属性得分。对于每个属性,我们对相应的分数进行排序,并选择分数最高的10K个样本和分数最低的10K个样本作为候选样本。这样做的原因是预测模型不是绝对准确的,对于有歧义的样本可能会产生错误的预测,例如中年人对于年龄属性。然后从候选样本中随机选择70%的样本作为训练集,学习线性SVM,得到决策边界。回想一下,所有边界的法线方向都归一化为单位向量。
剩下的30%用于验证线性分类器的行为。这里支持向量机训练的输入为512d潜码,二进制标签由辅助属性预测模型分配





posted @   dawningblue  阅读(470)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示