论文地址: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.概述

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

如图2所示,所提出的流水线由一个骨干生成网络和三个条件模块组成,这三个条件模块以各种方式对图像生成网络进行调节,后面会介绍。由于这三个条件模块,网络提供了对四种不同头发属性的正交控制:形状、结构、外观和背景;分别表示为语义头发掩模MMM、密集方向图OOO、头发外观参考Iref{I_{ref}}Iref​ ,以及输入图像的背景区域III。综合所有条件输入,我们可以将生成过程表述为确定性函数G\mathcal{G}G: Iout=G(M,O,Iref,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,π),我们估算图像III的方向标签图o′o^{\prime}o′,及其相关的置信度www,在像素位置ppp有: op′=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) wp=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,π)中的离散角度值,由于方向是循环的,即方向000等于π\piπ。 因此,直接使用方向标签图会引入模糊问题。我们将标签图o′o^{\prime}o′转换为每个像素ppp的双通道连续方向图O′O^{\prime}O′,即: Op′=[cos⁡(2⋅op′),sin⁡(2⋅op′)](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(2⋅op′​),sin(2⋅op′​)](4) 并反向转换为: op′=arctan⁡(Op′)/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′进行一次高斯平滑处理,并通过置信度www进行局部加权,来计算最终的密集方位图OOO。
  • 训练监督。 为了显式地对结果的结构进行监督,我们还提出了一个新的训练期结构损失。一般的,我们在输出IeditI_{\text {edit}}Iedit​后,按照公式(2,3)将方向估算步骤制定为网络中的一个可微层,并通过置信度www加权测量头发区域的每个像素的L1L_1L1​方向距离。详细的公式将在第5.2节讨论。

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

4.2.外观

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

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

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

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

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

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

4.3.背景

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

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

我们以掩膜引导的方式进行特征合并,它保留了前景头发区域的原始生成器特征,但用编码器的输出替换背景。将骨干FiF_iFi​中第i+1层最后一层的输出FigF_i^gFig​,与条件模块中第i层的输出FibF_i^bFib​之间的输入特征图混合为: Fi=Fig∗M+Fib∗(1−M)(7){F_i} = F_i^g*M + F_i^b*(1 - M)\quad (7)Fi​=Fig​∗M+Fib​∗(1−M)(7) 背景编码器的输入Iback{I_{back}}Iback​是原始背景区域。我们通过混合原始输入Itag{I_{tag}}Itag​和随机噪声模式NNN来掩盖前景区域: Iback=N∗M′+I(I∗Min,Min−Min∩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​=N∗M′+I(I∗Min​,Min​−Min​∩M)∗(1−M′)(8) 这里MinM_{in}Min​表示输入图像

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

  1. 图像分类经典卷积神经网络—GoogLeNet论文翻译(中英文对照版)—Going Deeper with Convolutions(走向更深的卷积神经网络)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[GoogLeNet纯中文版] Going Deeper with Convolution ...

  2. Spatial As Deep: Spatial CNN for Traffic Scene Understanding论文翻译

    Spatial As Deep: Spatial CNN for Traffic Scene Understanding论文翻译 Abstract摘要 Convolutional neural net ...

  3. Arcface v1 论文翻译与解读

    神罗Noctis 2019-10-13 16:14:39  543  收藏 4 展开 论文地址:http://arxiv.org/pdf/1801.07698v1.pdf 最新版本v3的论文翻译:Ar ...

  4. Deep Residual Learning for Image Recognition(ResNet)论文翻译及学习笔记

    [论文翻译]:Deep Residual Learning for Image Recognition [论文来源]:Deep Residual Learning for Image Recognit ...

  5. 2015-FCN论文翻译

    文章原址 文章目录 FCN论文翻译 摘要 1. 介绍 2. 相关工作 3. 全卷积网络 3.1 适用分类器用于dense prediction 3.2 Shift-and stitch是滤波稀疏 3. ...

  6. AlexNet论文翻译(中英文对照版)-ImageNet Classification with Deep Convolutional Neural Networks

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[AlexNet纯中文版] ImageNet Classification with De ...

  7. GPT-2 论文翻译

    GPT-2 论文翻译 基本是机器翻译,也进行了基本的人工矫正,凑活看吧 原论文:<Language Models are Unsupervised Multitask Learners> ...

  8. 图像分类经典卷积神经网络—ResNet论文翻译(中英文对照版)—Deep Residual Learning for Image Recognition(深度残差学习的图像识别)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ResNet纯中文版] Deep Residual Learning for Image ...

  9. [论文翻译] Deep Learning

    [论文翻译] Deep Learning 论文题目:Deep Learning 论文来源:Deep learning Nature 2015 翻译人:BDML@CQUT实验室 Deep learnin ...

最新文章

  1. 06Chrome调试工具
  2. SpringBoot监听redis过期key
  3. 藏经阁计划发布一年,阿里知识引擎有哪些技术突破?
  4. 使用帮助   history 用法   echo输出闪烁作业
  5. python2安装pyyaml_Python3安装Pyyaml
  6. python不知道错在哪里怎么办_python怎么处理错误和异常
  7. Ubuntu12.04下Linux内核编译
  8. easyui使用时出现这个Uncaught TypeError: Cannot read property 'combo' of undefined
  9. 2014第7周1Web安全概念学习
  10. 「leetcode」15. 三数之和:双指针法
  11. SGD ,Adam,momentum等优化算法比较
  12. unity3D-游戏/AR/VR在线就业班 C#入门访问修饰符学习笔记
  13. 游戏+AI,你不曾想象的未来
  14. Thickbox使用中的一些问题
  15. 双硬盘多系统独立引导(2-Windows xp Win7)
  16. 杭州seo优化常用的工作手法
  17. 利用远程外网服务器搭建代理服务器
  18. 深度强化学习面试问题集锦
  19. OSChina 周二乱弹 ——震惊!女友当着男友在大众面前竟和陌生男人做出这事!...
  20. 老陈来教你phpyun6.1vip版升级(20220424)新版微信模板消息怎么设置

热门文章

  1. java对象的内存分配_java对象在内存的分配问题
  2. mysq命令行导出sql_mysql利用命令导出数据sql语句
  3. 乌邦图怎么装php,Ubuntu如何安装php7?
  4. oracle锁mode,【案例】Oracle dml操作产生TM锁 lmode=6 分析原因和解决办法
  5. python黑色背景白色背景_用Python去除图像的黑色或白色背景实例
  6. 【caffe】Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERRO
  7. (Node*)malloc(sizeof(Node))的理解
  8. 输出呈三角形的杨辉三角形(C语言)
  9. python 读取excel文件,并读成数据框格式输出
  10. 禁止logback输出状态信息