论文翻译:MichiGAN: Multi-Input-Conditioned Hair Image Generation for Portrait Editing

本文提出MichiGAN,一种用于交互式人像头发操作的条件图像生成方法。它将头发分解为形状、结构、外观和背景四个属性,设计对应条件模块,与骨干生成器集成。在此基础上建立交互式编辑系统,经实验证明该方法在结果质量和用户可控性上表现优越。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:https://arxiv.org/pdf/2010.16417.pdf

文中所有图片与表格统一移动至了文末

MichiGAN:用于人像编辑的多输入条件头发图像生成

摘要

尽管最近利用GANs成功地生成了人脸图像,但由于其几何形状和外观的复杂性未被充分挖掘,条件头发编辑仍然具有挑战性。在本文中,我们提出了MichiGAN(多输入条件头发图像GAN),这是一种用于交互式人像头发操作的新型条件图像生成方法。为了提供用户对每一个主要头发视觉因素的控制,我们显式地将头发分解为四个正交属性,包括形状、结构、外观和背景。对于每一个属性,我们都设计了相应的条件模块来表示、处理和转换用户的输入,并以尊重不同视觉属性性质的方式来调节图像生成流水线。所有这些条件模块都与骨干生成器集成在一起,形成最终的端到端网络,它可以从多个用户输入中实现完全条件头发生成。在此基础上,我们还建立了一个交互式的人像头发编辑系统,通过将直观的高级用户输入(如画好的掩膜、引导笔触或参考照片)投射到定义良好的条件表示中,实现对头发的直接操作。通过大量的实验和评估,我们证明了我们的方法在结果质量和用户可控性方面的优越性。

1.引言

人类的头发是如此的精致、多变和富有表现力,以至于它在面部图像中不断地扮演着描绘主体的独特角色。鉴于头发的多样性和灵活性,长期以来,人们一直渴望在人像照片中对头发进行全方位的操控,以便于进行真正的个性化人像编辑,从延伸某根头发丝,改变局部区域的结构,到完全转换头发的颜色和外观。

然而,与人类面部的大多数其他部分不同,其特殊的几何形状和材料使头发极难分析、表现和生成。视觉感知的复杂性来自于用户可能打算编辑或保存的多种因素。如果我们仔细观察,通过粗略地将头发区域分解成相应的掩膜形状和颜色外观,可以发现几个关键方面对于视觉质量至关重要。形状上,错综复杂的遮罩边界,以及不同的不透明度都会导致精确发型控制和无缝背景融合的挑战。外观上,头发纤维的各向异性往往会卷入发流和材料特性,其中前者渲染主要的局部结构,而后者则决定了全局一致的调色和发间变化。因此,为了实现可控的头发操作,我们需要的系统不仅能够生成照片般逼真的头发图像,而且能够衔接各种用户控制,并利用它们来调节头发的生成,尊重不同视觉因素的本性。

幸运的是,深度神经网络,或者更具体地说,生成对抗网络(GAN)的最新进展已经推动了人脸合成的进步。最近的成功,如ProgressiveGAN[Karras,2018]和StyleGAN[Karras,2019],已经可以从随机潜在代码中生成高度逼真的人脸,包括头发。然而作为交互式人脸编辑的核心,条件生成被认为更具挑战性,其探索也较少。尽管最近在使用语义图[Lee,2019]或草图[Jo&Park 2019]的条件式人脸生成方面做出了许多努力,但我们距离既完全可控又方便用户使用的高质量头发编辑还很遥远。

在本文中,我们提出了MichiGAN(Multi-Input-Conditioned Hair Image GAN),这是一种新型的用于交互式人像操作的条件式头发图像生成方法。为此,我们显式地将头发信息拆分为形状、结构、外观和背景这四种属性,并特意设计了表示和调节机制,以实现图像生成流水线内的正交控制。

为此,我们根据这些属性的特殊感知特征和尺度,提出了三种不同的条件模块。具体来说,形状和结构的空间变化属性分别被表示为模糊语义掩膜和加权方向图,它们用条件归一化结构来调制网络[Huang&Belongie 2017;Park 2019]。更加全面的是,外观通过我们的掩膜变换的特征提取网络进行编码,它作为网络最开始的隐码输入,并通过任意参考指导的外观风格引导生成器。此外,一个背景编码器被平行放置在生成分支上,它通过以掩膜感知的方式逐步向生成器注入特征,而不损失生成能力,从而保持背景的完整性。

通过整合所有这些条件模块,我们拥有了一个端到端图像生成网络,可以对每一个主要的头发属性进行完全控制。针对这样一个复杂的网络,我们进一步开发了一个数据准备与增强流水线,用于将头发拆解为兼容的训练数据对,同时结合新颖的损失函数来实现平滑和稳健的训练。通过在广泛的自然人像图像上对MichiGAN进行评估,并与条件图像生成的SOTA方法和替代网络设计进行比较,我们证明了所提出的方法在结果质量和可控性方面的优越性。

总而言之,本文的主要贡献包括:

  • 明确拆分头发的视觉属性,以及一套条件模块,针对每个属性的特定视觉特征,实现其有效的条件机制。
  • 一个端到端的条件头发生成网络,对所有属性单独或联合提供完整的正交控制。
  • 一个交互式的头发编辑系统,通过直观的用户输入,实现了直接和灵活的头发操作。训练代码、预训练模型和交互式系统都是公开的,以便于今后的研究。

2.相关工作

人像操作: 人像图像处理是视觉和图形学界长期以来广泛研究的领域。早期的方法是通过传统的图像编辑技术来解决特定的应用驱动型问题,例如人脸交换[Bitouk,2008],人脸形状美化[Leyvand,2008],以及人像增强[Joshi,2010]。最近,基于图像的3D人脸重建[Blanz&Vetter,1999]的普及使得许多3D感知的人像操作方法得以实现,包括表情编辑[Yang,2011]、补光[Wang,2009]、老化[Kemelmacher-Shlizerman,2014]、相机操作[Fried,2016]、几何重塑[Cao,2014]、身份置换[Dale,2011]和表演重现[Thies,2016]。然而,人脸代理的拟合精度和模型质量有限,往往会影响结果的真实性。得益于最近在深度神经网络上的进展,高保真人像操作已经在多个场景中变得可行,包括基于草图的生成[Jo&Park,2019;Lee,2019]、属性编辑[Geng,2019;Shu,2017]、视图合成[Nagano,2019]和补光[Sun,2019]。

头发建模和编辑: 作为人脸的一个关键而又具有挑战性的组成部分,头发也引起了研究人员的极大兴趣。大多数头发学习流水线专注于从各种图像输入中捕获头发的几何特性,包括多视图[Hu,2014;Luo,2013;Paris,2008;Zhang,2017a]和单视图[Chai,2016,2013;Hu,2015;Liang,2018;Saito,2018;Zhou,2018]。利用单视角图像近似的粗头发几何形状,提出了一些关于头发转换[Chai,2012]、动画[Cha,2013]、补光[Chai,2015]、变形[Weng,2013]的头发编辑方法。但由于缺乏对许多关键视觉因素深入理解以及操作方法,结果质量和编辑的灵活性受到了大大的影响。近期基于GAN的图像生成方法[Karras,2019]的高度逼真的人像合成结果在弥补这一质量差距方面显示出巨大的潜力。然而,条件图像生成通常被认为比从随机代码中生成要困难得多。虽然最近的一些工作[Jo&Park,2019;Lee,2019;Qiu,2019;Wei,2018]已经在有限类型输入的条件头发生成上取得了进展,但遗憾的是这些方法并不直观可控,也不普遍适用。在本文中,我们提出了一组不相干的头发属性,以覆盖全范围的视觉头发因子,并为每个属性设计了一个条件模块,可以通过用户友好的输入来有效控制生成器。这种完全有条件的、可控的头发生成器是以前没有实现过的。

基于GAN的图像生成: 由于深度神经网络强大的建模能力,已经提出了多种生成模型来学习在无条件环境下合成图像。典型的方法包括生成对抗网络(GAN)[Goodfellow,2014;Mao,2017;Metz,2017]和变分自编码器(VAE)[Doersch,2016;Sønderby,2016]。与VAE相比,GAN被证明更受欢迎,并且能够对细粒度的细节进行建模。从随机编码开始,GAN可以在目标域中生成与自然图像具有相同分布的假图像。著名的作品ProgressiveGAN[Karras,2018]首次利用渐进式生成网络结构,可以生成包括头发在内的非常逼真的面部图像。StyleGAN[Karras,2019]通过进一步将潜伏信息和噪声信息融入到浅层和深层中,进一步显著提高了生成质量。我们的工作是建立在GAN基础上的,但目标是条件图像生成任务,由于要精心控制头发合成所需的的多个条件,因此更具挑战性。利用这些预训练的GAN网络,最近的许多作品[Abdal,2019;Bau,2019]通过操作这些网络隐藏空间中的嵌入式特征,实现了令人信服的图像编辑结果(包括人像)。

条件图像生成: 最近的许多工作利用条件GAN(cGAN)进行图像生成,以不同类型的输入为条件,如类别标签[Brock,2019;Mirza&Osindero 2014;Odena,2017]、文本[Reed,2016;Yin,2019;Zhang,2017b]或图像[Isola,2017;Jo&Park 2019;Lee,2019;Park,2019;Wang,2018]。在这些不同的形式中,图像条件生成,即图像到图像的转换,是交互式图像编辑的核心。Pix2Pix[Isola,2017]提出了一个统一的框架,适用于不同的应用,如将语义分割掩模或草图转化为真实照片图像。Pix2PixHD[Wang,2018]对其进行了进一步的改进,采用多尺度生成器进行高分辨率图像生成。SPADE[Park,2019]提出了空间自适应归一化,以更好地将分割掩模转换为真实的照片图像。少数工作[Hong,2018;Singh,2019;Yao,2018]提出了离散图像生成,它们与我们的目的相似。最近,一些工作在利用条件GAN进行交互式面部图像编辑方面做出了努力。例如,MaskGAN[Lee,2019]专注于基于细粒度语义掩膜的面部图像生成。SC-FEGAN[Jo&Park,2019]将条件输入扩展到草图和颜色,允许用户控制面部的形状和颜色。尽管在条件图像生成方面已经取得了巨大的进步,但由于其复杂性,我们仍然远远没有达到可完全控制的高质量头发编辑。在本文中,我们重点研究了以多种属性为条件的头发图像生成,可以实现用户友好的交互式头发编辑。

3.概述

给定一个输入的人像图像 I I I,我们的MichiGAN旨在根据不同的用户控制输入对头发区域进行条件编辑,同时保持背景不变。输出表示为 I o u t {I_{out}} Iout

如图2所示,所提出的流水线由一个骨干生成网络和三个条件模块组成,这三个条件模块以各种方式对图像生成网络进行调节,后面会介绍。由于这三个条件模块,网络提供了对四种不同头发属性的正交控制:形状、结构、外观和背景;分别表示为语义头发掩模 M M M、密集方向图 O O O、头发外观参考 I r e f {I_{ref}} Iref ,以及输入图像的背景区域 I I I。综合所有条件输入,我们可以将生成过程表述为确定性函数 G \mathcal{G} G I out = G ( M , O , I ref , I ) ( 1 ) {I_{{\text{out}}}} = {\mathcal{G}}\left( {M,O,{I_{{\text{ref}}}},I} \right)\quad (1) Iout=G(M,O,Iref,I)(1) 除背景外,这些条件既可以来自交互系统,也可以简单地从目标/参考图像中提取。因此,用户不仅可以只编辑一个属性,修正所有其他属性,而且可以同时改变多个属性。

我们将在接下来的三节中对技术方法和整个系统进行详细的阐述,具体安排如下。我们首先介绍我们的条件、结构的表示,以及它们对应的条件模块的机制(第4节)。然后,我们介绍了集成所有条件模块的MichiGAN骨干生成网络,并讨论其训练策略(第5节)。最后,介绍了我们建立在MichiGAN基础上的交互式头发编辑系统,同时介绍了各种交互方法,使用户能够友好地控制所有属性(第6节)。

4.条件模块

在本节中,我们将介绍我们的条件模块,用于在编辑过程中控制头发的特定语义属性。根据目标属性的不同性质,其对应的条件模块也应有所不同。在这里,我们提出了三个不同的模块来处理四种类型的主要属性,同时也介绍了每个模块的条件表示、组件网络设计以及与主干网络的集成。

4.1.形状与结构

头发形状: 我们将头发形状表示为其占用的图像区域的二维二元掩码,与那些以语义标签图为条件的图像生成方法类似[Park,2019]。

然而,与其他类型的物体不同,头发边缘的视觉透视性和复杂性使得二元掩膜不可避免地成为形状的粗略近似。为了从用语义分割网络估计的或用户交互式绘制的粗糙掩膜中鲁棒地生成逼真的形状细节和自然的混合效果,我们通过采用模糊掩膜调节来放松条件的严格性,以允许边缘区域有一定的灵活性。为了达到这个目的,我们在训练过程中对每个数据对的掩膜进行随机宽度的稀释或侵蚀,以在一定程度上解除边缘细节与精确形状轮廓的耦合。

头发结构: 关于目标对象的结构,尽管具有通用性,但通常情况下,掩膜形状过于稀疏和模糊,无法制约生成,这一点对于头发来说尤其如此。但幸运的是,头发是这样一个特殊的对象,具有很强的各向异性和均匀性,你总能在区域内均匀分布的发丝描绘出头发的内部结构。因此,我们使用密集的方向图来表示头发的结构,它定义了每个像素的2D方向角。

我们使用定向滤波器来估计确信的的像素级方向图,这已被广泛用于头发重建[Paris,2008]和渲染[Wei,2018]。给定一个定向滤波核库 { K θ } \left\{K_{\theta}\right\} {Kθ}(我们在实现中使用32个Gabor滤波器),有 θ ∈ [ 0 , π ) \theta \in[0, \pi) θ[0,π),我们估算图像 I I I的方向标签图 o ′ o^{\prime} o,及其相关的置信度 w w w,在像素位置 p p p有: o p ′ = arg ⁡ max ⁡ θ ∣ ( K θ ⊗ I ) p ∣ ( 2 ) o_p^\prime = \mathop {\arg \max }\limits_\theta \left| {{{\left( {{K_\theta } \otimes I} \right)}_p}} \right|\quad (2) op=θargmax(KθI)p(2) w p = max ⁡ θ ∣ ( K θ ⊗ I ) p ∣ ( 3 ) {w_p} = {\max _\theta }\left| {{{\left( {{K_\theta } \otimes I} \right)}_p}} \right|\quad (3) wp=θmax(KθI)p(3) 其中 ⊗ \otimes 代表卷积运算符。

对于神经网络来说,连续的旋转表示并非不重要[Zhou, 2019]。方向标签图 o ′ o^{\prime} o包含 [ 0 , π ) [0, \pi) [0,π)中的离散角度值,由于方向是循环的,即方向 0 0 0等于 π \pi π。 因此,直接使用方向标签图会引入模糊问题。我们将标签图 o ′ o^{\prime} o转换为每个像素 p p p的双通道连续方向图 O ′ O^{\prime} O,即: O p ′ = [ cos ⁡ ( 2 ⋅ o p ′ ) , sin ⁡ ( 2 ⋅ o p ′ ) ] ( 4 ) O_p^\prime = \left[ {\cos \left( {2 \cdot o_p^\prime } \right),\sin \left( {2 \cdot o_p^\prime } \right)} \right]\quad (4) Op=[cos(2op),sin(2op)](4) 并反向转换为: o p ′ = arctan ⁡ ( O p ′ ) / 2 ( 5 ) o_p^\prime = \arctan \left( {O_p^\prime } \right)/2\quad (5) op=arctan(Op)/2(5) 在网络训练和推理过程中,我们通过两种方式使用方向图来实现结构控制:

  • 条件输入。 我们使用密集方向图作为形状&结构条件模块的输入。然而,由于存在噪声和暗区,定向滤波器的原始输出 O ′ O^{\prime} O可能会出现不准确的结果。因此,我们通过对 O ′ O^{\prime} O进行一次高斯平滑处理,并通过置信度 w w w进行局部加权,来计算最终的密集方位图 O O O
  • 训练监督。 为了显式地对结果的结构进行监督,我们还提出了一个新的训练期结构损失。一般的,我们在输出 I edit I_{\text {edit}} Iedit后,按照公式(2,3)将方向估算步骤制定为网络中的一个可微层,并通过置信度 w w w加权测量头发区域的每个像素的 L 1 L_1 L1方向距离。详细的公式将在第5.2节讨论。

我们通过将 M M M O O O叠加在一起生成形状&结构的条件输入。考虑它们的空间多样性,我们采用空间自适应归一化[Park,2019]来实现条件控制,如图2(a)所示。

4.2.外观

与形状或结构不同,头发外观描述的是他们全球一致的对特定的形状或结构不变的色彩风格。它包括多种因素,如固有的反射色、与环境相关的阴影变化,甚至是缕缕风格的颗粒度。由于其全局一致性,外观可以紧凑地表现出来。考虑到自然头发风格的复杂性,我们没有从头开始生成外观特征,而是将头发外观作为一个风格转移问题来处理,从参考图像中提取风格并将其转移到目标图像。

为了强制分离头发外观,我们设计了外观条件模块,使其在全局范围内运行,不易受局部形状和结构的影响。此外,它应该是掩膜不变的,以便能够在测试时适用于任何头发掩膜。

我们的外观条件网络的详细架构如图2(b)所示。为此,我们有以下关键思想,其对结果质量至关重要。

  • 为了保证编码后的外观特征只关注头发区域,不受背景信息的影响,我们采用带有参考图像头发掩模 M r e f {M_{ref}} Mref的局部卷积[Liu,2018]。
  • 为了捕捉全局的头发外观,并尽可能抛弃空间变量信息,我们在参考头发区域 M r e f {M_{ref}} Mref内,在最后一个局部卷积的输出中添加一个实例级的平均池化层 。
  • 为了使外观代码与目标发型保持一致,并将提取的外观特征均匀分布,我们将参考发型外观特征在空间上复制到目标发型 M M M内的每一个像素,生成外观图 A A A

因此,最终外观图 A A A的计算公式为: A = ∑ ( A r e f ′ ∗ M r e f ) ∑ M r e f ⊙ M ( 6 ) A = \frac{{\sum {\left( {A_{ref}^\prime *{M_{ref}}} \right)} }}{{\sum {{M_{ref}}} }} \odot M\quad (6) A=Mref(ArefMref)M(6) 其中 A r e f ′ {A_{ref}^\prime } Aref是最后一个局部卷积的输出, ∗ * 表示元素乘法, ⊙ \odot 表示重复运算符。

我们的掩膜变换特征提取网络的输出,即外观图 A A A,被用作骨干生成网络最开始的隐码输入,以特定的外观风格代替随机噪声来引导生成器。

4.3.背景

最后,我们需要保持所有非头发像素(即背景)不受影响,这样我们就可以只将修改限制在目标头发区域 M M M。这并不像看起来那么琐碎[Bau等人,2019],因为:a)如果我们强制GAN重建相同的背景内容,会浪费大量的网络能力,并极大地限制前景生成的灵活性;b)如果我们只生成前景区域,然后将其与原始背景混合作为后处理步骤,会引入严重的混合伪像。

为了将必要的背景信息以一种温和的方式传递给生成网络,使其能够轻松地重建背景像素,并且不会受到额外约束的干扰,我们将背景条件模块设计为一个平行于骨干网络最后几层的编码器网络,如图2.c所示。编码器试图产生多层次的特征图,其可以很容易地被生成器重用来重建背景。每层卷积后的编码特征设计为与骨干网中相应层的输入特征具有相同的维度,这样就可以与输入特征合并,逐步向生成器提供信息。

我们以掩膜引导的方式进行特征合并,它保留了前景头发区域的原始生成器特征,但用编码器的输出替换背景。将骨干 F i F_i Fi中第i+1层最后一层的输出 F i g F_i^g Fig,与条件模块中第i层的输出 F i b F_i^b Fib之间的输入特征图混合为: F i = F i g ∗ M + F i b ∗ ( 1 − M ) ( 7 ) {F_i} = F_i^g*M + F_i^b*(1 - M)\quad (7) Fi=FigM+Fib(1M)(7) 背景编码器的输入 I b a c k {I_{back}} Iback是原始背景区域。我们通过混合原始输入 I t a g {I_{tag}} Itag和随机噪声模式 N N N来掩盖前景区域: I back = N ∗ M ′ + I ( I ∗ M in , M in − M in ∩ M ) ∗ ( 1 − M ′ ) ( 8 ) {I_{{\text{back}}}} = N*{M^\prime } + I\left( {I*{M_{{\text{in}}}},{M_{{\text{in}}}} - {M_{{\text{in}}}} \cap M} \right)*\left( {1 - {M^\prime }} \right)\quad (8) Iback=NM+I(IMin,MinMinM)(1M)(8) 这里 M i n M_{in} Min表示输入图像𝐼的头发掩膜。 M ′ M^\prime M表示目标掩膜 M M M膨胀版本,以去除背景中由于不准确分割或杂乱的头发丝而导致的剩余头发信息。这也隐含着要求网络细化薄区域 M ′ − M M^\prime - M MM,以达到更好的边界混合质量。 I ( I , M ) I(I,M) I(I,M)是背景图像inpainter[Liu,2018],在编辑掩膜 I I I小于原始头发掩膜 M i n M_{in} Min的情况下,用 I I I的图像内容填充有洞的掩膜 M M M

5.骨干生成器

在介绍了我们所有的条件模块之后,我们现在介绍整合所有条件输入并产生最终结果的骨干生成网络,以及它的训练策略。

5.1.结构

给定通过上述条件模块获得的条件信息,生成网络作为系统的主干数据流,目的是产生符合所有条件的理想人像图像输出。根据其特殊的感知特征和尺度,对三个条件模块的输出进行不同的处理。

如图2.d所示,我们的生成器是由6个上采样SPADE残差块(ResBlk)[Park,2019]和一个卷积层连续串联而成,输出最终的生成结果。对三种类型的条件输入进行简单回顾:

  • 外观模块将特征图 A A A输入到第一个SPADE ResBlk中,取代了传统GAN中随机采样的隐码。
  • 形状与结构模块通过条件输入给每一个SPADE ResBlk提供叠加的头发掩膜 M M M和方向图 O O O,以调节各层的激活。
  • 背景模块将背景特征逐步融合到最后一个SPADE ResBlks的输出中。
5.2.训练策略

考虑到当条件输入来自不同的来源时,我们没有ground truth图像,因此训练所提出的MichiGAN本质上是一个无监督学习问题。然而,大多数现有的无监督学习算法[Huang,2018;Liu,2019;Zhu,2017]在生成结果的视觉质量方面,通常表现得比有监督学习更差。而且更重要的是,这些无监督学习方法针对的是不同领域之间的图像转换,这使得它们对于我们这种编辑任务来说,在像素级约束下的可行性较低。受[He,2018]在图像着色上面临类似问题的启发,我们提出以伪监督的方式训练我们的MichiGAN。具体来说,我们将从同一源图像中提取的四个条件输入输入到MichiGAN中,并在训练过程中通过显式监督强制其恢复原始图像,并在推理中将其推广到来自不同来源的任意条件组合。得益于我们的头发属性解构和强大的学习能力,MichiGAN在监督训练过程中利用所有属性的信息获得了泛化能力,忽略其中任何一个属性都会产生更大的loss。

为了对训练数据进行预处理,对于每个训练人像图像 I I I,我们用语义分割网络生成它的头发掩膜 M M M,用第4.1节介绍的密集方位估计方法生成它的方向图 O O O。最终,我们有了ground truth的人像图像 I I I的训练对,以及由条件重建的网络输出 I ′ = G ( M , O , I , I ) I^{\prime}=\mathcal{G}(M, O, I, I) I=G(M,O,I,I)

我们采用以下损失项来训练网络:

  • 色彩损失: 生成的结果应该尽可能地接近ground truth,但强像素重建监督也会损害网络的泛化能力。因此,我们不测量所有颜色的重建误差,而是将图像转换为CIELAB颜色空间,只测量a、b通道的颜色距离,以放宽监督,但又仍可惩罚色彩偏差: L c = ∥ Lab ⁡ ( I ′ ) ab − Lab ⁡ ( I ) ab ∥ 1 ( 9 ) {L_c} = {\left\| {\operatorname{Lab} {{\left( {{I^\prime }} \right)}_{{\text{ab}}}} - \operatorname{Lab} {{(I)}_{{\text{ab}}}}} \right\|_1}\quad (9) Lc=Lab(I)abLab(I)ab1(9)
  • 结构损失: 我们提出了一个额外的结构损失来强制执行结构监督,利用我们的差分方向估计层。如第4.1节所述,方向估计层同时输出方向 O ′ O^{\prime} O和置信度 w ′ w^{\prime} w,而原始方向输出不一定在每个像素上都准确。因此我们将损失表述为方向差的加权和: L s = ∥ ( O ′ − O ) ∗ w ′ ∗ M ∥ 1 ( 10 ) {L_s} = {\left\| {\left( {{O^\prime } - O} \right)*{w^\prime }*M} \right\|_1}\quad (10) Ls=(OO)wM1(10)
  • 感知损失: 我们还用预先训练好的VGG19模型[Simonyan&Zisserman,2015]来测量高级特征损失,该模型在之前的图像翻译问题中被广泛使用[Chen,2017a,b;Liao,2017]。 L p = ∥ VGG 19 ( I ′ ) − VGG 19 ( I ) ∥ 1 ( 11 ) {L_p} = {\left\| {{\text{VGG}}19\left( {{I^\prime }} \right) - {\text{VGG}}19(I)} \right\|_1}\quad (11) Lp=VGG19(I)VGG19(I)1(11)
  • 对抗损失: 一个双尺度的PatchGAN[Isola,2017年;Wang,2018年]判别器D用于匹配生成结果和真实人像之间的分布,以强制自然视觉质量并提升局部细节。
  • 特征匹配损失: 为了实现更鲁棒的GAN训练,我们还采用了判别器特征匹配损失[Wang,2018]。

综上所述,总的训练目标可以定义为: min ⁡ G max ⁡ D ( λ c L c + λ s L s + λ p L p + λ a L a + λ f L f ) ( 12 ) \min _{\mathcal{G}} \max _{\mathcal{D}}\left(\lambda_{c} L_{c}+\lambda_{s} L_{s}+\lambda_{p} L_{p}+\lambda_{a} L_{a}+\lambda_{f} L_{f}\right) \quad (12) GminDmax(λcLc+λsLs+λpLp+λaLa+λfLf)(12)

6.交互式编辑系统

在提出的MichiGAN的基础上,我们还构建了一个交互式人像头发编辑系统。图3是编辑系统的用户界面的一个截图。在该系统中,用户可以分别或共同控制形状(左上角)、结构(中上角)和外观(左下角),并在右上角看到结果。

为了方便用户对多种方法的控制,我们进一步提出了两种交互模式,即参考模式和绘画模式。

参考模式: 用户对人像中的头发进行操作的一个直接动机,就是想把另一张参考照片中的头发属性尝试移动到目标照片上。所以我们为这种直观的交互方式提供了支持,允许用户单独或联合提供不同属性的参考人像,并提取网络可理解的条件输入来引导生成。

具体来说,用户最多可以分别指定形状( I s h a p e I_{shape} Ishape)、结构( I s t r I_{str} Istr)和外观( I r e f I_{ref} Iref)这三个参照。然后,系统会从 I s h a p e I_{shape} Ishape中计算头发掩膜 M M M,从 I s t r I_{str} Istr中计算出方向图 O O O,并用 I r e f I_{ref} Iref提取外观特征。这些输入用来驱动结果的生成。

当目标掩膜和方向图来自不同的来源时,方向的形状可能无法完全覆盖整个目标形状。因此,我们训练一个类似于背景网络的方向inpainting网络(第4.3节)来完成方向图中缺失的漏洞。
绘画模式: 让用户对图像进行局部和细节的编辑,自然也要比参考模式灵活得多。为了实现这一目的,我们提供了一个基于笔触的交互界面,以实现对形状和结构的局部修改,并提供了一个调色板工具来控制头发的外观。下面介绍其基础方法:

  • 形状画笔: 用户可以通过形状画笔改变二元头发掩膜,随意增强或删除某些掩膜区域,类似于[Park,2019]的界面。这些编辑区域的平滑边界可能与头实的头发边界质量不匹配,但我们的模糊掩膜增强(第4.1节)仍然可以很好地捕捉这些细节。
  • 结构画笔: 结构交互是比形状更具有挑战性的一种方式,因为方向是密集的,不能直观地理解。为此,我们提出了一种引导式结构编辑方法,以实现用户友好的操作。给定当前的方向图 O O O和一组用户引导笔画 M s t r M_{str} Mstr,在笔画周围一定的局部区域 M h o l e M_{hole} Mhole内,我们合成新的方向信息,它应该与笔画引导和外部区域兼容。孔洞掩膜 M h o l e M_{hole} Mhole是通过对用户笔画的薄掩膜进行一定半径的稀释生成的。而与笔画的引导方向 O s t r O_{str} Ostr是通过构成笔画路径的线段的已知画序来计算的。我们将所有的信息编入一个部分方向图 O i n O_{in} Oin为: O i n = O ∗ ( 1 − M h o l e ) + O s t r ∗ M s t r + N ∗ ( M h o l e − M s t r ) ( 13 ) O_{i n}=O *\left(1-M_{h o l e}\right)+O_{s t r} * M_{s t r}+N *\left(M_{h o l e}-M_{s t r}\right) \quad (13) Oin=O(1Mhole)+OstrMstr+N(MholeMstr)(13) 其中 N N N代表一个随机的噪声模式以隐藏原来的方向。我们使用方向inpainting网络来合成孔洞区域 M h o l e M_{hole} Mhole内的新方位,该网络是在成对的ground truth方向图数据上进行训练,并合成在其上追踪的随机用户笔画。
  • 外观选择器: 对于用户来说,寻找一个特定的好的外观参照物可能是一个头疼的问题。在绘画模式下,我们设计了一个类似调色板的外观拾取器工具,通过标记单一的RGB发色来查找、聚类和导航参考。这是通过将我们所有的参考肖像(从我们的测试数据集中选择)嵌入到颜色空间中,计算平均头发颜色来实现的。给定一个任意的目标颜色,我们在其周围进行KNN搜索,以找到 K K K个最接近的参考以供用户测试。而一旦用户选择了一个参照物,系统会立即更新候选列表,包含围绕所选参照物聚类的参照物。

7.实验

7.1.实现细节

数据集: 为了生成用于有监督训练的数据对,我们使用Flickr-Faces-HQ(FFHQ)的大规模肖像数据集[Karras,2019]。整个数据集分为两部分:56000张图片用于训练,14000张图片用于测试。图像的分辨率被调整为512×512。

网络结构: 我们在图2中说明了MichiGAN的结构。具体来说,外观模块使用5个连续的下采样局部卷积,然后进行平均池化,得到外观向量。所有这些局部卷积都被外观参考掩盖,卷积核大小同样为3×3,特征通道增加为64/128/256/512/1024。每一个局部卷积之后都要进行归一化和leaky ReLu激活。然后使用掩膜变换块在目标头发掩膜的引导下,将外观特征向量空间复制到外观图(大小为8×8)。形状和结构模块遵循SPADE中相同的调制网络,以目标头发掩膜和方向(inpainting后)对骨干中的每个SPADE ResBlk进行去标准化。背景模块通过inpainting和噪声填充生成背景输入,并使用由4个3×3卷积层组成的网络产生4个尺寸的背景特征,特征通道分别为64/128/256/512。这些特征在背景掩膜的引导下混合到骨干中。最后,骨干生成器接受外观图作为输入,经过6次上采样SPADE ResBlks和一次最后卷积生成结果。这些层的特征通道为1024/1024/1024/512/256/128/64。方向和背景的inpainting网络都遵循[Liu,2018]提出的结构。

训练参数: 我们对所有条件模块和骨干生成器进行联合训练。采用Adam优化器[Kingma&Ba,2015],batch size为8,total epoch为50。生成器和判别器的学习率分别设置为0.0001和0.0004。结构损失权重 λ s {\lambda _s} λs为10,其他所有损失权重 λ c {\lambda _c} λc λ p {\lambda _p} λp λ a {\lambda _a} λa λ f {\lambda _f} λf简单地设置为1(5.2节)。为了得到膨胀的目标掩膜 M ′ M^{\prime} M(4.3节), M M M被随机扩大[0.03,0.07]倍的图像宽度。

7.2.与SOTA相比

语义图像生成: 我们将MichiGAN与两个语义图像合成baseline进行比较:pix2pixHD[Wang,2018]和SPADE[Park,2019]。Pix2pixHD只支持基于语义掩膜的生成。而SPADE允许用户对语义掩码和参考风格图像进行控制,这是目前最先进的基于GAN的条件图像合成框架。我们使用其作者提供的实现来训练pix2pixHD和SPADE模型,并且使用与我们训练MichiGAN所用的完全相同的数据。为了公平比较,将原始图像的头发掩膜转换为输入的语义掩膜,同时将参考图像设置为原始输入。另外,由于pix2pixHD和SPADE不能保持背景不变,我们将其生成的头发与原始背景用软头发掩膜进行融合。在这种重建设置中,由于所有的输入条件都来自于原始图像,因此可以将原始图像视为所求结果的ground truth。

定量而言,MichiGAN以较大的优势领先于竞争方法,如表1所示。我们的方法实现了10.7的FID得分,不到pix2pixHD和SPADE的一半。这说明我们的方法编辑的人像图像的真实度比这两种baseline好得多。

定性而言,总体来说,所有的方法都可以产生可信的头发结果,而我们的结果具有最好的视觉质量。一组视觉对比结果如图5所示。仔细观察合成头发的细节,我们可以发现,pix2pixHD和SPADE模型生成的结果颗粒较粗,有一些明显的伪像,而我们的结果颗粒较细,纹理细节丰富细腻。

在可控性方面,MichiGAN的表现比pix2pixHD和SPADE好很多。Pix2pixHD只能生成对输入的头发掩膜自适应的头发,但颜色和结构不可控。SPADE也可以合成对语义掩模自适应的头发。与pix2pixHD相比,它有额外的能力将参考图像的风格转移到合成的头发上。但是,即使以原图为参考,转移的结果看起来也明显与想要的不同,这一点并不令人满意。另外,SPADE也无法控制合成头发的结构。与pix2pixHD和SPADE相比,MichiGAN不仅可以生成自适应语义遮罩的头发,还可以精确控制头发的不同属性,包括外观和结构,从而制作出与参照物最相似的理想头发。

另外,pix2pixHD和SPADE制作的头发与原图的背景并不相容。尽管使用高质量的头发掩膜将结果与背景柔和地融合在一起,但我们仍然很容易看到头发边界周围的融合伪像,尤其是对于一些复杂的背景,这给应用pix2pixHD和SPADE进行交互式编辑带来了困难。相比之下,MichiGAN就不会出现这个问题,因为我们将原始图像的背景作为输入条件之一,直接生成整张图像,同时生成所需的头发和固定的背景。

条件人脸生成: 我们还将MichiGAN与最近的两种条件人脸生成方法进行比较:MaskGAN[Lee,2019]和SC-FEGAN[Jo&Park 2019]。

MaskGAN使用细粒度的面部语义掩膜作为表征来操作人脸图像,并且能够在不同主体之间转移风格,这与SPADE[Park,2019]类似。因此我们在同样的掩膜条件生成实验中进行与MaskGAN的对比,如图5和表1。从定性和定量结果可以看出,虽然MaskGAN可以合成视觉上可信的头发,但我们的方法在能够保留或控制结构细节的同时,仍然可以获得更好的视觉质量。

SC-FEGAN在目标孔区域采用自由形式的草图进行人像生成,以控制结构和外观,这与我们基于笔触的头发生成相当。为了公平的比较,我们采用头发掩膜作为目标孔区域,并使用我们的交互系统绘制的同一组用户笔画。这些笔触与相应的头发颜色样本一起被转换为SC-FEGAN的草图输入。一组可视结果如图6所示,其中包含了对两个目标图像进行不同草图和外观参考的比较。如图6所示,虽然SC-FEGAN在一定程度上允许对头发结构和颜色进行控制,但生成的结果与我们的结果相比不太真实。这可能部分是由边缘检测器生成的合成草图和真实用户笔触之间的差距造成的。我们的方法通过使用密集方向图作为头发结构的统一表示,避免了这种差距。

7.3.定性结果

基于MichiGAN的交互式发型编辑系统,支持对发型的形状、结构、外观等属性进行单独或联合的灵活操作。这些属性可以通过两种方式方便地指定,一是给出参考图片,二是用画笔交互修改原图,对应系统的两种模式:基于参考的编辑和基于绘画的编辑。

基于参考的结果: 我们首先在自然人像图片上展示我们基于参考的发型编辑结果。在这种模式下,用户首先将一张原始图像加载到我们的系统中,然后可以通过提供另一张参考图像来简单调整某个属性。例如,一旦给结构属性提供了参考图像,我们的系统就会自动提取方向图,并根据方向条件生成一张新的头发结构的图像。对于外观和形状也是如此。图7为各属性单独调整的结果,图8为多个属性联合调整的结果。可以看出,MichiGAN很好地将这些视觉发属性进行了拆分,互不干扰。而且这些属性在生成新的图像时都能自然嵌入。

基于绘画的结果: 在这部分,我们展示了基于绘画的发型编辑结果,属性由用户通过交互式绘画界面进行修改(图3)。与基于参考的模式相比,这种基于绘画的模式更自然、更灵活,便于用户进行一些局部和细节的编辑。图10中给出了两个例子。用户首先使用画笔工具对掩膜图像进行修改,从而对头发的形状进行相应的改变。然后添加若干笔画来表示头发的方向,并按照方向生成新的头发结构。最后,用户可以通过指定一些花哨的颜色来改变头发的外观。请参考附带的视频进行演示。由于我们的界面友好,而且生成的结果会立即反馈给用户,所以用我们的系统编辑头发是相当方便的。用户研究表明,一个业余爱好者编辑一个实例平均需要15-30秒的时间。

发型转移验证: 我们还通过将同一对象的发型从一张图像转移到另一张图像上,来验证我们结果的真实性。如图9所示,我们收集了两张同一人不同发型的图像,以其中一张图像作为源条件,另一张作为目标,生成发型转移结果。我们的方法实现了外观和结构都与ground truth照片相似的真实效果。

7.4.用户研究

为了进一步评估真实性与真实的人类感知,我们在亚马逊土耳其机器人上进行了简单的用户研究。我们准备了两套图片,每套图片有200张。其中一个包含真实的人像照片,另一个包含由我们的方法生成的结果,条件输入来自随机选择的测试图像。在研究过程中,我们将两套图像混合,每次随机向用户展示一张图像,并要求用户主观判断这张图像是真还是假。每张图片都经过3个用户的评估。每个用户平均在每张图片上花费3秒的时间。最终我们的结果和真实图片的上当率分别为64.67%和81.10%。

7.5.消融研究

为了达到可信的结果,我们精心设计了所提出的框架,从网络架构设计到新引入的目标函数等几个关键成分。但考虑到空间限制和训练成本,只进行了三个关键消融分析实验,图像分辨率设置为256×256。

局部卷积和实例级平均池化: 当采用参考图像作为外观引导时,我们只希望外观条件模块能够吸收头发区域的外观信息,而不是背景区域的外观信息。但这是重要的,因为现代神经网络中现有的大多数运算符并不天然支持。例如,普通卷积层对所有可能的滑动窗口的像素进行常规网格内的处理。考虑到头发区域往往是不规则的形状,在外观模块中直接应用这些一般运算符将不可避免地把背景信息引入到编码的外观特征中。基于这一观察,我们分别用局部卷积层[Liu,2018]和实例级平均池化[Wang, 2018]代替所有一般的卷积层和平均池化层。

为了说明其必要性,我们进行了一个采用普通卷积和全局平均池化层的消融实验,记为 “Baseline-NCGA”。很明显,从图11中,我们可以发现baseline模型生成的头发明显引入了背景色,变得非常不真实。具体来说,在这两种情况下,目标头发分别被背景天空的白色和背景树的绿色所污染。相比之下,我们的方法在最终生成的结果中只采用参考头发颜色。如表1所示,我们的方法也取得了比Baseline-NCGA更好的FID得分。

结构损失的必要性: 为了实现结构头发控制,除了密集的方向图作为条件输入外,我们还利用网络中的一个可差分的方向层,并额外增加一个结构损失作为训练监督。在这个消融实验中,我们很好奇结构损失是否有必要。为了验证它,我们仍然将方向图输入网络,但忽略训练目标中的结构损失项。如表1所示,我们的方法在FID得分方面的表现比这个baseline更好。在图12中,我们提供了两个典型的例子,其中外观和方向引导都是由参考图像给出的。可以看出,虽然baseline方法可以采用一张参考图像的外观,但它根本无法实现结构控制。因此其结果中的发向很无序,使得整体结果不够真实。从这个实验中可以得出两个结论:1)头发结构控制不仅是一个特征,而且是真实头发生成的关键环节;2)如果没有明确的结构监督,生成网络很难生成合理的头发方向,更不用说保持参考方向了。

8.结论

最后,我们提出了MichiGAN,一个用于人像操作应用的条件头发生成网络。与现有的条件脸部生成方法不同,我们的方法为用户提供了对每一个主要的头发视觉因素的控制,这是通过将头发显式地分解成四个正交属性来实现的,包括形状、结构、外观和背景。对于其中的每一个属性,我们都会用一个专门设计的条件模块来调节图像生成流水线,该模块会根据相应头发属性的独特性质来处理用户的输入。所有这些条件模块都与骨干生成器集成在一起,形成最终的端到端网络,从而可以从各种用户输入中获得全条件的头发生成。在此基础上,我们还构建了一个交互式的人像头发编辑系统,通过将直观的用户输入投射到定义良好的条件表示中,实现对头发的直接操作。

尽管我们的MichiGAN性能优越,但仍存在一些局限性,有待未来探索(图14)。

目标形状的掩膜,无论是画出来的,还是从参照物中画出来的,都应该与脸部合理地对齐。不匹配的掩膜会导致头发形状不自然。如果我们能根据不同的目标脸部姿势自动翘起头发形状,将有很大的帮助。我们计划在未来的研究中对这个课题进行研究:

  • 外观模块一般在具有全局一致性外观的头发图像上效果良好。但是,空间上多样的头发外观可能会在结果中被抹掉。
  • 即使是我们的引导方向inpainting,引导描边也应该与形状自然相容。极端的描边路径可能会造成意想不到的结构问题,因为在合成训练对中几乎没有类似的。
  • 我们在训练过程中随机对头发形状掩模进行膨胀/腐蚀,并收缩背景掩模,以强制要求从二元掩膜中合成自然头发边界的一定能力。然而,当头发形状发生剧烈变化时,由于我们没有明确地处理边缘光泽,因此结果可能仍然不太理想。在未来,我们有兴趣将MichiGAN与最新的基于学习的alpha matting方法相结合,进一步提高质量。

附录:本文所有图片与表格

图1: 给定输入的人像图像a,MichiGAN能够实现多种输入条件下的分离式头发操作。它不仅支持在保持背景不变的情况下单独编辑一个属性,包括外观b、结构c和形状d,而且允许联合操作多个属性f&g。用户还可以利用我们的交互式系统来创建更多的定制化的头发操作结果h。e是所有条件输入都来自a本身时的重构结果。
在这里插入图片描述
图2: MichiGAN的整体流水线。它由一个骨干生成网络d和三个条件模块:形状与结构a、外观b和背景c组成。
在这里插入图片描述

图3: 我们的交互式头发编辑系统。 e为原始输入人像;a为当前掩膜形状和绘画交互区域;b为当前结构方向图的可视化;d为用户选择的参考外观照片;c为生成结果。
在这里插入图片描述
图4: 引导定向inpainting。给定从输入图像 I I I和用户笔画 M s t r M_{str} Mstr中提取的当前的方向图 O O O,我们通过膨胀 M s t r M_{str} Mstr得到局部孔洞掩膜 M h o l e M_{hole} Mhole,并从 M s t r M_{str} Mstr计算出引导方向 O s t r O_{str} Ostr。将 O O O O s t r O_{str} Ostr M h o l e − M s t r M_{hole}-M_{str} MholeMstr合并在一起,我们输入 O i n O_{in} Oin到inpainting网络,最终输出新的方向图 O ∗ O^* O
在这里插入图片描述
图5: 与pix2pixHD、SPADE和MaskGAN的视觉比较。在这里,所有方法都使用原始图像的头发掩膜作为输入语义掩模。对于SPADE和MaskGAN,使用参考图像来嵌入头发的外观,它显示在结果图像的左下角。对于提出的MichiGAN,我们使用与SPADE/MaskGAN中相同的外观参考图像,并以原始图像作为方向参考。在最后一列,我们还展示了使用MichiGAN与另一个方向参考图像改变头发结构的例子。与这些baseline相比,对于不同的条件输入,MichiGAN可以产生可靠的条件结果,且视觉质量更高。
在这里插入图片描述
图6: 与SC-FEGAN的视觉比较。我们使用两个不同的用户草图来生成每个目标的头发。为每个草图生成两个结果,SC-FEGAN结果的插图中显示了不同的外观参考,包括图像本身(左)和另一个风格参考(右)。
在这里插入图片描述
图7: 只调整了单一属性下的基于参考的头发编辑结果。可以看出,我们的MichiGAN很好地将这些视觉属性进行了拆分,而不会相互干扰,从而实现了对每个属性的单独编辑。
在这里插入图片描述
图8: 基于参考的多属性联合调整的头发编辑结果。通过拆分外观、形状、结构和背景,我们的MichiGAN可以实现多个属性一起编辑,而且每个属性都来自一张特定的参考图像。
在这里插入图片描述
图9: 发型转移验证。我们收集两张同一人的不同发型的照片(左、中)。以图片(左)作为提供发型条件的参考,(中)作为提供背景的目标,生成结果(右)。
在这里插入图片描述
图10: 使用我们的交互系统进行头发编辑的结果。用户使用画笔工具修改头发掩膜来改变形状,绘画方向笔触来修改头发结构,或者通过选择其他颜色来改变头发的外观。
在这里插入图片描述
图11: 与使用一般卷积和全局平均池化的baseline模型的比较。Baseline-NCGA倾向于将背景颜色吸收到外观特征中,而我们的方法则不会。
在这里插入图片描述
图12: 与无结构损失的baseline模型的比较。可以看出,Baseline-NoS不能在最终生成的目标头发中采用参考头发的方向。
在这里插入图片描述
图13: 与没有掩膜引导的前景和背景特征均匀混合的baseline的比较。与我们的方法相比,由于背景的干扰,Baseline-FB不能很好地保留参考外观和方向。
在这里插入图片描述
图14: MichiGAN可能存在的三个局限性:1)我们需要目标掩膜与人脸合理对齐;2)我们不能很好地捕捉空间变化的外观;3)绘制的描边不能太极端。
在这里插入图片描述
表1: 不同生成器和设置的Frecet inception distance(FID)。我们使用从测试集中随机选取的5,000张图像。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值