ABSTRACT
在本文中,我们探讨了从线条生成逼真的人脸图像的任务。先前的基于条件生成对抗网络(cGANs)的方法已经证明,当条件图像和输出图像共享对齐良好的结构时,它们能够生成视觉上可信的图像。然而,这些模型无法合成具有完整定义结构的人脸图像,例如眼睛、鼻子、嘴巴等,特别是当条件线图缺少一个或多个部分时。为了解决这一问题,我们提出了一个条件自注意生成对抗网络(CSAGAN)。我们在cGANs中引入了条件自注意机制来捕获面部不同区域之间的长范围依赖关系。我们还建立了一个多尺度判别器。大规模判别器增强了全局结构的完整性,小规模判别器增强了细节,增强了生成的人脸图像的真实感。我们在CelebA-HD数据集上通过两个感知用户研究和三个定量指标来评估所提出的模型。实验结果表明,该方法在保留人脸结构的同时,生成了高质量的人脸图像。我们的结果在定量和定性上都超过了最先进的方法。
1 INTRODUCTION
当从头开始创作某个东西时,一个自然和直接的方法就是画线。线条绘制是一种有效的视觉思维方式。它比文本更具体地描述所需对象的结构和形状。将线条转化为逼真的图像在计算机图形学和计算机视觉领域引起了广泛的关注。得益于互联网上海量的图像,在过去的十年中,许多基于线的图像检索和图像合成技术的方法被提出[3,9,29,36]。虽然这些方法成功地保持了目标物体或场景的基本结构,但由于传统图像合成技术的能力有限,它们通常无法生成精细的细节。
随着深度神经网络(deep neural networks, DNN)的出现,提出了一系列基于生成对抗网络(generate adversarial networks, GANs)的逼真图像合成方法[18,30]。GANs中的一个生成器和一个判别器通过玩一个最小最大的游戏来训练,以使生成的样本与真实样本难以区分。图像到图像的转换是条件GANs的一种具体应用,其目的是将一个域内的图像转换为另一个域内的目标图像,同时保留两幅图像的主要内容和结构。自从第一个图像到图像的转换模型pix2pix[13]被提出以来,监督和非监督的方式都有很多变体[16,20,33,37,39,40]。当完整和详细的结构在条件图像中给出时,这些模型成功地合成了真实纹理。
然而,当条件图像只提供了部分结构,这正是线条图或边缘图会遇到的情况,以前的模型无法完成缺失的结构。这主要是因为这些方法在合成生成的图像时严格遵循所提供的边缘;因此,它们不会在只提供了少量边的地方生成新的结构。由于人脸是由定义良好的结构部分组成的,例如鼻子、嘴巴、眼睛等,因此合成的人脸图像应该包含所有这些结构部分,以使其看起来更真实,即使条件线图在这些部分的假定位置周围缺少边缘。如图1所示:
使用我们的方法,从两个具有不同层次细节的线图生成的图像更加真实,因为它们具有完整的全局结构和精细的纹理。之前的方法[4,13]在嘴巴区域边缘不完整的情况下,无法渲染出真实的人脸图像。
造成这一失败的根本原因主要有两方面:
- 首先,现有的GANs主要建立在卷积层上。由于卷积运算符根据其内核大小有一个局部接受域,因此通过叠加多个卷积层可以获得一个较大的接受域。然而,当前的网络优化器要通过几个卷积层[38]来发现合适的参数值来对长范围的依赖关系进行建模并非易事。
- 其次,GANs中现有的判别器侧重于检测局部patch,而不是捕获全局信息;因此,它们不能强制生成器合成生成的图像的全局结构。
针对第一个问题,我们提出了一个有条件的自注意机制来解决这个问题。自注意机制是将一个位置的响应计算为所有位置特征的加权和,能够捕获不同部分的长范围依赖性[6,31,34,38]。为了适应图像到图像转换的条件设置和鼓励GAN模型充分利用直接来自条件图像的信息,我们提出一个条件自注意模块(CSAM),使更高层去感受来自条件图像的信息并捕获长范围的依赖。对于第二个问题,我们建立了一个多尺度判别器来从不同的层次捕获信息。小尺度判别器具有局部接受域,改善了局部patch的精细纹理,而大尺度判别器保证了生成图像的全局结构的完整性。
在这篇论文中,我们着重于从线条图生成人像照片的任务,同时保留明确的面部结构,这对面部照片的真实性至关重要。我们的贡献总结如下:
- 本文首先将自注意机制引入到线条到图象的转换中,提出了一种新的条件自注意生成对抗网络。与基于卷积的方法不同,该模型能够在人脸图像上进行长范围依赖和全局结构的建模。
- 通过对CelebA-HD数据集的一系列实验,验证了该模型的有效性。我们的方法从稀疏线生成高质量的人脸图像,并保留面部结构。所提出的CSAGAN方法在定量和定性的结果上都优于最先进的方法。
2 RELATED WORK
我们的CSAGAN方法用于从线图生成人脸照片,它是建立在先前的图像到图像转换、注意机制和基于线的图像合成的基础上的。我们将在本节中讨论大多数相关的技术。
2.1 Image-to-Image Translation with GANs
给定一个域中的图像,图像到图像的转换方法在另一个域中生成对应的图像,同时以不同的风格描述相同的场景或对象。pix2pix方法[13]首先为一系列应用引入了有条件GAN的图像到图像的转换。然而,pix2pix中使用的基于卷积的架构很难发现不同区域之间的长范围相关性。此外,pix2pix中的patch式判别器不能保证全局结构被很好地捕获。在pix2pix之后,人们提出了许多监督技术来提高目标图像的分辨率和细节。[15]研究了如何从结合属性的语义标签图生成户外场景图像。[40]提出了一个框架,鼓励输出和潜在编码之间的连接是可逆的,以便对可能的输出的多模态分布建模。[2,33]利用由粗到精的细化框架,从语义标签图中合成高分辨率的摄影图像。相比之下,我们的工作重点是将粗糙的线条转化为真实的人脸照片,其中关键的挑战是学习人脸图像的全局结构和跨区域的长范围依赖性。
2.2 Self-Attention Mechanism
为了在一个大的接受域中感知全局结构,在以前的基于GAN的技术中通常需要几个卷积层和大的内核大小。然而,简单地叠加卷积层或增加内核大小会严重影响计算效率。自注意机制即一个位置的响应为所有位置特征的加权和的计算结果,能够捕获不同部分之间的长范围相关性。[31]应用自注意来捕获序列数据中的全局依赖关系,并证明了自注意机制的有效性。[24]研究了自注意机制与自回归模型的结合,提出了一种用于图像生成的图像转换器模型。受计算机视觉中的非局域操作启发,[34]将自注意机制作为一种非局域操作来对视频处理的长范围的时空依赖关系进行建模。[38]将自我注意引入到无条件GANs中,并展示了它在从噪声向量生成自然图像方面的优势。[27]侧重于显著性检测,浅层使用循环结构,深层使用自注意模块。[32]提出了一种用于超分辨立体图像的视差自注意算法。在前人研究的基础上,我们首先探索了线条到照片转换语境下的自注意机制,以利用面部不同部位之间的全局结构和长范围依赖关系。
2.3 Lines-based Synthesis
从笔画或线条合成图像和模型[5]并不是一个新奇的想法。早期的线图像合成技术[3,9]使用绘制的线在大型数据库中搜索图像补丁,然后将检索到的图像补丁融合在一起。随着最近开发的GANs,图像到图像的转换技术已经被应用到边缘到照片的任务中[13,33]。但是,这些一般框架并不是专门为线条图设计的,它们需要包含完整的、仔细绘制的线条的输入边缘图来生成视觉上令人愉悦的结果。SketchyGAN以手绘草图为输入,合成了50个对象类别[4]的可信图像。提出了一种通过注入多尺度的输入图像来改善信息流动的掩码残差单元(MRU)。然而,当条件线图缺少特定的结构部分时,这些基于GAN的方法在生成的图像中会遇到结构不完整的问题。相比之下,我们的方法在人脸图像中学习长范围依赖,来从不同细节层次的线状图中生成逼真的图像。
3 METHOD
在这一节中,我们介绍了我们的条件自注意生成对抗网络(CSAGAN),用于将线图转换为逼真的人脸照片。我们模型的架构如图2所示:
该生成器基于带有残差块的编码器-解码器架构。在编码器和解码器的相应层之间应用[25]跳过连接。在我们的框架中,我们采用了掩码残差单元(MRUs)[4]。在最后一个MRU之前,我们添加了我们提出的条件注意模块(sec3.1)来建模特征图之间的长范围依赖关系。条件线图的大小被调整,并以多种尺度连接到特征映射中,以用作MRUs和CSAM的输入。最后,为了鼓励生成器生成具有完整结构和精细纹理的真实人脸图像,我们使用多尺度判别器(第3.2节)对全局人脸图像和局部图像块进行分类,判别其为真实的或合成的。
CSAGAN的输入. 由于线图是非常稀疏和粗糙的,我们采用使用距离变换得到的密集表征。从黑白线图中计算出一个无符号的欧氏距离场作为条件图像。图3显示了由两个具有不同详细级别的线图生成的距离域的两个示例:
与稀疏和粗糙的线图相比,密集距离场将形状信息分散到所有像素上,使得提取的特征图对输入线图的不完全性和噪声具有更强的鲁棒性。类似的使用距离场表征的想法可以在几个基于草图的应用中找到[4,11,23]。去查查看是怎么实现的另一方面,一些条件GANs将噪声矢量作为输入加入到生成器中,以避免产生确定性输出。然而,pix2pix模型表明,噪声矢量被生成器忽略,几乎不改变输出。我们在实验中观察到同样的现象,因此我们没有在我们的模型中应用噪声向量。
3.1 Conditional Self-Attention Module (CSAM)
受SAGANs[38]的启发,我们提出了一个条件自注意模块(CSAM),用于我们的线到照片的转换任务,以提取长范围依赖。该模块是作为条件框架的通用模块设计的,可以在现有的任何条件模块的特征提取之后添加。给定从上一层提取的特征图a∈RC×H×W,以及与当前特征图的分辨率相匹配的条件线图x∈R1×H×W。我们连接他们得到[a, x]作为条件特征,其中[.,.]是串联操作,C, H和W分别是特征图a的通道数量,高度和宽度。这使得网络形成了基于条件图和特征图的注意。为了计算注意,我们将条件特征[a, x]映射到两个特征空间:
Wf, Wg∈RCˆ×(C + 1)是可训练的权重和由1×1的卷积实现。在这里,根据SAGAN[38]的设置,我们在实验中使用Cˆ= C / 8。
令B∈RN×N为注意图,其中N = H×W。B中的每个元素,记作bj,i,表示模型在合成第j个像素时对第i个像素的关注程度。bj,i计算式为:
其中sij = f ([a,x])T g([a, x])。接下来,我们使用bj,i作为注意权值,计算每个位置的响应图r = (r1,r2,···,rN)∈RC×N,即所有位置特征的加权和:
其中h([a,x]) = Wh[a,x], Wh∈RC×(C+1)。如在[38]的建议,我们进一步将注意层的响应ri乘以一个尺度参数γ,然后将其重新添加到输入特征图ai中。最终的输出为:
γ是可训练的值,在训练的开始设置为0。这样,网络在训练过程的早期阶段学习局部依赖,然后通过逐步赋予更多的权重到非局部证据来学习长范围依赖。
3.2 Multi-Scale Discriminator
pix2pix模型和SketchyGAN的判别器采用了基于patch的方法,在比输入图像小得多的局部接受域通过patch卷积的方法来区分真假图像。所有响应的平均值计算为patch判别器的最终输出。这基于距离超过一个patch直径的像素之间是独立的假设。然而,由于结构约束是贯穿整个图像的全局信息,因此按patch分类的判别器无法捕获全局结构。我们设计了一种多尺度判别器,它由不同深度的ND子网络组成,因此在最后一层中接收域的大小也不同。在最深的子网络的最后一层的接受域和整个图像一样大来捕获全局结构。这些子网络在最初的几层之间共享权重,因为这些判别器的低层特性应该是相同的。
我们注意到,使用多个判别器的类似想法已经被[2,7,33]提出。他们将真/假图像调整到多个尺度,并应用具有相同架构的判别子网络来感知真/假图像的不同层次结构。相比之下,我们修正了真假图像的大小,并应用不同深度的判别器来实现多个大小的接受域。共享浅卷积层的权值更稳定,计算效率更高。第4.5节描述了不同数量判别器子网络和以前的多尺度判别器的比较实验。
3.3 Loss Function
包含着子网络{Di, i=0,1,...,ND}的多尺度判别器D,其对抗损失写成:
与pix2pix模型相似,我们使用L1损失去鼓励来自线图x的生成图像G(x)与真实图y接近。L1损失为:
为了在生成的人脸图像中获得更好的视觉质量,我们添加了特征映射损失Lfm。特征映射损失[33]是感知损失[8,10,14]的变体,旨在缩小特征空间中生成图像和对应真实图之间的误差。与之前的通过VGG模型实现感知损失的技术不同,特征匹配损失使用了我们CSAGAN中判别器生成的特征图。这是因为在以前的方法中使用的VGG模型总是使用ImageNet数据集进行训练,并且具有人脸图像的域间隔(因为它不是特地为了线图到人脸这两个域设计的,而是用于多个域)。我们的判别器是专门为人脸图像训练的;因此,它更适合于提取呈现人脸感知信息的特征。设Dqi(·)为有nqi元素的第i个判别器子网第q层的输出,特征匹配损失为:
其中Q为所选判别器层数的集合,NQ为所选层的数量。在实验中,我们从每个判别器子网络中选择最后三个卷积层。
将多尺度判别器与特征匹配损失相结合,实现了对CSAGAN的完整训练:
其中λ和μ是平衡三个损失的权重。在实验中,我们设置λ=100.0、 μ=1.0
3.4 Training Techniques
GANs的训练是不容易的,因为在对抗性最小最大博弈中,生成器和判别器网络很难找到平衡点。我们运用几种技术来稳定我们的训练。
- 双时间尺度更新规则(TTUR)。之前的研究[12,38]表明,对生成器和判别器分别采用不同的学习速率,可以弥补判别器学习速度慢的问题。TTUR在我们的训练过程中得到了应用,并被证明是有效的。
- 光谱归一化Spectral Normalization。谱归一化[22]是近年来提出的一种归一化技术,它通过限制判别器各层的谱范数来约束其Lipschitz常数。谱归一化计算效率高,不需要额外的超参数。此外,谱归一化有助于生成器训练,因为它可以防止不寻常的梯度变化[38]。我们将谱归一化应用于我们的生成器和判别器。
- 多阶段训练。为了稳定训练,我们将训练过程分为三个阶段。在第一个阶段,我们在没有CSAM的情况下训练模型。然后,在第二阶段我们添加CSAM并训练CSAM,同时固定其他层的权重。最后,我们一起微调整个CSAGAN模型。
4 EXPERIMENT
我们应用提出的CSGAN框架,从人脸的稀疏线条图生成真实的照片。我们进行了一系列的实验来证明我们的方法在保留面部结构和产生精细细节方面的有效性。与其他先进方法的比较也表明了所提出的CSGAN的优越性。
数据集。为了训练我们的网络,我们使用了CelebA-HD数据集[16],其中包含3万张高分辨率名人图片。我们随机选取24K张图像用于训练,6K张图像用于测试。在我们的实验中,所有的图像都被调整为256×256。为了生成成对的线条图和人脸照片进行监督训练,我们采用了类似于pix2pix的管道。具体来说,首先使用一种称为整体嵌套边缘检测器(HED)[35]的深边缘检测器来提取边缘。在生成的边缘图中,每个像素都有一个值pHED,表示它是边缘的概率。几个后处理步骤,包括细化,短边去除和侵蚀,以获得更简单和更清晰的线图与更少的边缘碎片。
训练参数。我们使用带有momentum参数β1 = 0.5,β2 = 0.999的Adam[17]优化器。我们为G或D交替更新一个step,批量大小设置为8。第一阶段或第二阶段持续100个epoch,生成器的初始学习率为lrG = 0.0001, 判别器的初始学习率为lrD = 0.0004,第三阶段共50个epoch,初始学习率lrG = 0.00001, lrD = 0.00004。学习速率在每个阶段的中途会衰减。整个训练过程在8个GeForce GTX 1080Ti gpu上大约需要7天。
4.1 Evaluation Metrics
生成模型的评价是一项开放而复杂的工作。一个模型在一个标准上表现良好,并不一定意味着在另一个标准上表现良好[21,28]。传统的度量方法,如像素方向的均方误差,不能提供合成样本的联合统计,因此不能评估条件生成模型的性能。
由于我们的线到图的转换的目标是生成视觉上可信的人脸图像,所以我们将不同模型的结果与感知用户研究的结果进行比较,感知用户研究通常用于评价GAN模型[2,7,19,26,33]。按照[2]中描述的类似过程,我们进行了两种实验:无限时间用户研究和有限时间用户研究。此外,我们使用三个受欢迎的定量评价指标,the inception score (IS) [26], Fre ́chet Inception Distance (FID) [12], and Kernel Inception Distance (KID) [1], 他们被证明在评估图像的真实性时是符合人类评估。更多细节将在下面解释。
无限的时间的用户研究。在每次不限制时间的用户研究试验中,我们都会从测试数据集中随机选择一个条件线图,并使用两种方法生成两个合成图像。这两幅合成的图像随机显示在条件线图的左侧和右侧。用户有无限的时间来选择哪一个“更真实且更符合条件图”。每次试验后不提供反馈,以免影响用户的感性判断和偏好。
有限的时间的用户研究。在有限时间的研究中,我们评估了用户感知图像差异的速度。对于每个线图,我们得到了四个对应的人脸图像(一个真实图像和三个我们方法生成的合成图像,分别是pix2pix[13]和SketchyGAN[4])。在每次比较中,我们从这四张对应的人脸图像中随机选取两张,并将这两张选择的图像用条件线图表示出来。类似地,这两幅图像在线状图的左右两侧随机显示给用户。在一段时间内,从一组{1/8,1/4,1/2,1,2,4,8}秒中随机选择,用户被要求选择哪一个“更现实,更符合条件图”。我们计算不同方法产生的结果的百分比,表示这些方法在不同的时间段里哪个更受欢迎。
Inception score (IS)。IS[26]计算条件类分布和边缘类分布的KL散度。虽然有人指出信息系统有严重的局限性,因为它更关注生成图像的可识别性,而不是细节的真实性或类内多样性[28],但它仍然被广泛用于比较生成图像的质量。
Fre ́chet Inception Distance (FID)。FID[12]是最近提出的一个广泛应用的生成模型评价指标。结果表明,这与人类对生成样本真实感的感知评价是一致的。它利用Inception网络来提取特征,并计算生成的图像特征与真实图像之间的Wasserstein-2距离。FID值越低,说明合成分布越接近真实分布。
Kernel Inception Distance (KID)。与FID类似,KID[1]通过计算Inception表征之间最大均值差异的平方来度量两组样本之间的差异。此外,与所说的依赖经验偏差的FID不同,KID有一个三次核[1]的无偏估计值,它更一致地匹配人类的感知。
4.2 Comparisons with Previous Methods
我们将提出的模型与两种最先进的线到照片的转换方法,pix2pix[13]和SketchyGAN[4]进行了比较。我们使用[13]中描述的默认设置在我们的边脸数据集上训练pix2pix模型。SketchyGAN最初是为多类素描图像生成而设计的。我们删除了它的分类分支和分类的损失项,并使用我们的线面数据集训练修剪后的网络。
首先,进行无限时间用户研究,评估生成图像的感知质量。50名用户参与了这些实验,每个用户进行了大约250次试验。结果见表1:
这些结果表明,在不限制时间的情况下,用户能够发现使用我们的模型生成的人脸图像与之前生成的人脸图像之间的视觉差异。与pix2pix和SketchyGAN相比,根据测试用户,我们的结果明显更好。
其次,在有限的时间内对用户进行研究,评估用户感知不同方法产生的图像的差异的速度。图5显示了结果:
当图像显示的时间很短(1/8秒)时,用户无法感受到不同方法和真实图之间的差异。随着时间的增加,用户感知到更多的差异,更多的用户更喜欢我们CSAGAN生成的结果。
第三,表2列出了我们的方法与其他方法的定量比较:
正如我们所看到的,我们的全模型在IS/FID/KID的平均值方面大大超过了pix2pix模型和SketchGAN,证明了我们的模型能够生成更真实的人脸照片。
最后,图6显示了一组使用所提出的模型和以前的方法合成的人脸图像(彩色显示效果更好):
我们观察到我们的模型的结果包含了更多的细节,特别是在有毛发、胡须和高亮区域,而之前的模型的结果过于平滑,缺乏真实的细节。此外,我们的结果在人脸的明亮处表现更真实。
4.3 Ablation Study
我们基于IS/FID/KID检查模型中每个组件的重要性,如表2的第三行和第四行所示。实验是通过从整个模型中去除每个特定的部分,然后训练剩下的没有缺失部分的模型。具体来说,我们删除了:
1)提议的CSAM(我们的 w/o CSAM)
2)多尺度判别器,只使用patch判别器Dp(我们的 w/ Dp)
正如我们所看到的,与完整的模型相比,没有CSAM的模型的性能显著下降,这表明了CSAM在我们的模型中的重要性。模型的性能也得益于多尺度判别器。
我们还将注意图可视化,以演示不同位置的像素在学习模型中是如何相互关联和相互依赖的。图7显示了一组注意图示例。三个位置(即鼻子和两只眼睛)用红色标记,并分别显示与这些位置相关的注意图:
注意图中较大的值在图中更亮(即当我们标注左眼时,会发现右眼或鼻子的区域的值也很大,都是亮的,说明这几个区域之间是相关的)。我们注意到,CSAM捕捉到了长范围依赖。例如,为了在一只眼睛中生成像素,两只眼睛的区域都被给予了高度的关注。换句话说,生成特定像素的信息不仅来自于该像素的局部区域,还来自于远离该像素的相关区域。
4.4 Different Levels of Details in Line Maps.
为了评估CSAGAN的鲁棒性,我们使用具有不同层次的细节的线图来生成面部图像。正如在数据集构建中所讨论的,我们使用几个后处理步骤生成基于pHED的边缘映射。通过保持边缘像素为pHED >τ来生成每个线图的边。更大的τ值导致边图中较小的细节。通过设置不同的τ值,我们生成具有不同层次的细节的边缘图,如图8所示:
当输入是具有不同层次细节的线图时,该模型具有足够的鲁棒性来生成具有整个结构的人脸图像。相比之下,当有着更大τ值(0.3和0.6)的线图的细节边缘丢失时,之前的两种模型都不能生成人脸的某些部分(即鼻子)。
4.5 Comparison of Different Multi-scale Discriminators
我们将我们带着变体的多尺度判别器和以前研究[33]的判别器相比较。更具体地说,我们设置ND为判别器子网络的数量,我们用相同的生成器与有着ND ={2,3,4}个子网络的判别器来训练模型,表示为 ours,ND ={2,3,4}。每个子网在前几层与其他子网共享权重,但深度不同。因此,子网络中最后一层的接受域是不同的,子网络将生成的样本与真实样本在不同尺度上区分开来。基于IS/FID/KID的定量比较结果如表2最后三行所示。
此外,我们比较了我们的多尺度判别器与在[33]中的判别器。具体来说,我们使用我们的生成器,将我们的判别器切换到[33](ND = 3)的判别器,然后用我们的三阶段训练过程来训练这个模型,记作 ours,w/ Dpix2pixHD。结果如表2所示,我们的多尺度判别器(ours,ND=3)在IS/FID/KID的测量上超过了它的对手,在定量评价上显示出了它的优势。
5 CONCLUSION
在这项工作中,我们提出了一个有条件的自注意GAN (CSAGAN)来从稀疏的线条合成逼真的人脸图像。将自注意机制和多尺度判别器引入到条件GANs中,实现了对人脸图像中不同区域和全局结构的长范围依赖。综合实验通过两个感知研究和三个定量指标验证了该方法的有效性。我们的框架显示了即使在输入线状图的某些部分缺失的情况下,它仍有通过合成完整的面部结构和精细的细节来生成高质量的面部图像的能力。