@每日文献Day1:High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
基于Conditional GANs 的高分辨率图像合成与语义处理
论文地址:High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs 代码地址:Pix2PixHD
摘要
提出了一种利用条件生成对抗网络(conditional generative adversarial networks,简称GANs)从语义标签映射中合成高分辨率真实感图像的新方法。有条件gan已经支持了各种应用程序,但结果往往局限于低分辨率,仍然远远不现实。在这项工作中,我们generate2048×1024visually吸引的结果与新的对抗损失,以及新的多尺度发生器和鉴别器体系结构。此外,我们生成器扩展到交互视觉操作,增加了两个特性。首先,我们合并了对象实例分割信息,这支持对象操作,如删除/添加对象和更改对象类别。其次,我们提出了一种方法来生成不同的结果给定相同的输入,允许用户交互地编辑对象的外观。人们意见研究表明,我们的方法明显优于现有的方法,提高了质量和分辨率的深度图像合成和编辑。
1.介绍
使用标准图形技术进行逼真的图像渲染涉及到,因为必须明确地模拟几何、材料和光传输。尽管现有的图形算法擅长于此任务,但构建和编辑虚拟环境是昂贵和耗时的。这是因为我们必须明确地为世界的每个方面建模。如果我们能够使用从数据中学习的模型来渲染逼真的图像,我们就可以将图形渲染的过程转化为模型学习和推理问题。然后,我们可以通过在新的数据集上训练模型来简化创建新的虚拟世界的过程。我们甚至可以让用户更容易地定制环境,允许用户简单地指定整体语义结构,而不是建模几何、材料或照明。本文讨论了一种从语义标签映射生成高分辨率图像的新方法。该方法具有广泛的应用前景。例如,我们可以使用它为训练视觉识别算法创建合成训练数据,因为为所需场景创建语义标签比生成训练图像容易得多。利用语义分割方法,可以将图像转换为语义标签域,编辑标签域中的对象,再将其转换回图像域。这种方法也为我们提供了高级图像编辑的新工具,例如,向图像中添加对象或改变现有对象的外观。要从语义标签合成图像,可以使用pix2pix方法,这是一个图像到图像的转换框架[21],它在条件设置中利用生成对抗网络[16]。最近,Chen和Koltun[5]提出对抗性训练在高分辨率图像生成任务中可能不稳定且容易失败。相反,他们采用改进的感知损失[11,13,22]来合成图像,图像分辨率高,但往往缺乏精细细节和真实纹理。 这里我们解决了上述最先进方法的两个主要问题:(1)用GANs21]生成高分辨率图像的困难(2)在之前的高分辨率结果[5]中缺乏细节和逼真的纹理。我们证明,通过一个新的、鲁棒的对抗学习目标,加上新的多尺度生成器和鉴别器体系结构,我们可以合成出逼真的图像为2048×1024的分辨率,这些图像比以前的方法计算出的图像更具视觉吸引力[5,21]。首先,我们仅通过对抗性训练获得结果,而不依赖任何手工损失[44]或预训练网络(如VGGNet[48])来获得知觉损失[11,22(图9c,10b)。然后我们发现,如果预先训练网络可用,在某些情况下,添加来自预训练网络[48]的知觉损失可以略微改善结果(图9d,10c)。这两个结果在图像质量方面都大大优于以前的作品。 此外,为了支持交互语义操作,我们从两个方向扩展了我们的方法。首先,我们使用实例级对象分割信息,它可以在同一类别中分离不同的对象实例。这支持灵活的对象操作,例如添加/删除对象和更改对象类型。其次,我们提出了一种方法来生成不同的结果给定相同的输入标签映射,允许用户交互式地编辑相同对象的外观。 我们对比了最先进的视觉合成系统[5,21],表明我们的方法在定量评估和人类感知研究方面都优于这些方法。我们还对训练目标和实例级分割信息的重要性进行了消融研究。除了语义操作,我们还在edge2photo应用程序上测试了我们的方法(图2、13),这显示了我们方法的通用性。代码和数据可在我们的网站上获得。
2.相关工作
**生成对抗网络生成对抗网络(gan)16]**的目标是通过强制生成的样本与自然图像不可区分来模拟自然图像的分布。gan可以实现各种各样的应用,如图像生成[1,42,62]、表示学习[45]、图像处理[64]、目标检测[33]和视频应用[38,51,54]。人们提出了各种从粗到细的方案[4][9,19,26,57来在无条件的条件下合成更大的图像(e.g.256×256)。受到他们成功的启发,我们提出了一种新的从粗到细的生成器和多尺度鉴别器体系结构,适用于在更高分辨率的条件图像生成。 图像到图像的转换许多研究人员利用对抗性学习进行图像到图像的转换[21],其目标是将输入图像从一个域转换到另一个域,给定输入输出图像对作为训练数据。相对于经常导致图像模糊的L1 loss[21,22],对抗损失[16]已经成为许多图像到图像任务的流行选择[10,24,25,32,41,46,55,60,66]。原因是该鉴别器可以学习一个可训练的损失函数,自动适应目标域中生成的图像与真实图像的差异。例如,最近的pix2pix框架[21]为不同的应用程序使用了图像条件gan[39],例如将谷歌地图转换为卫星视图,以及从用户草图生成猫。在缺乏训练对的情况下,也提出了多种方法来学习图像到图像的翻译[2,34,35,47,50,52,56,65]。 最近,Chen和Koltun[5]提出,由于训练的不稳定性和优化问题,条件gan可能很难生成高分辨率的图像。为了避免这种困难,他们使用了基于感知损失的直接回归目标[11,13,22],并产生了第一个可以合成2048×1024图像的模型。生成的结果是高分辨率的,但往往缺乏细节和逼真的纹理。受他们成功的激励,我们表明,使用我们新的目标函数以及新的多尺度生成器和判别器,我们不仅在很大程度上稳定了高分辨率图像上的条件gan训练,而且取得了比Chen和Koltun[5]显著更好的结果。并排比较清楚地显示出我们的优势(图1、9、8、10)。 深度视觉处理近年来,深度神经网络在各种图像处理任务中取得了很好的效果,如风格转换[13]、图像修复[41]、着色[58]和恢复[14]。然而,这些工作大多缺乏一个界面,用户无法调整当前的结果或探索输出空间。为了解决这个问题,Zhuet等[64]开发了一种基于gan学习到的先验信息编辑对象外观的优化方法。最近的作品[21,46,59]也提供了用户界面,用于从颜色和素描等低层次线索创建新的图像。所有之前的工作都报告了低分辨率图像的结果。我们的系统与过去的工作具有相同的精神,但我们专注于对象级的语义编辑,允许用户与整个场景交互,并操纵图像中的单个对象。因此,用户可以用最少的努力快速创建一个新场景。我们的界面是受到先前数据驱动图形系统的启发[6,23,29]。但我们的系统允许更灵活的操作,并产生高分辨率的实时结果。
3.实例级图像合成(Instance-Level Image Synthesis)
提出了一种从语义标签映射生成高分辨率逼真图像的条件对抗框架。我们首先回顾我们的baseline 模型pix2pix(章节3.1)。然后我们描述如何通过改进的目标函数和网络设计来增加结果的真实感和分辨率(章节3.2)。接下来,我们使用额外的实例级对象语义信息来进一步改善图像质量(章节3.3)。最后,我们介绍了一种实例级特征嵌入方案,以更好地处理图像合成的多模态特性,使交互对象编辑成为可能(章节3.4)。
###3.1pix2pix baseline pix2pix方法[21]是一个用于图像到图像转换的有条件GAN框架。它由一个生成器G和一个判别器D组成。在我们的任务中,生成器的目标是将语义标签映射转换成逼真的图像,而判别器的目标是将真实的图像与翻译的图像进行区分。框架在一个受监督的设置中运行。换句话说,训练数据集是一组对应的图像{(si,xi)},其中si是一个语义标签映射,xi是一个对应的自然照片。条件gan的目的是通过以下的极小极大博弈来模拟给定输入语义标签映射的真实图像的条件分布:
pix2pix方法采用U-Net[43]作为生成器,采用基于patch的全卷积网络[36]作为鉴别器。鉴别器的输入是语义标签映射和对应图像的通道级联。然而,Cityscapes[7]上生成的图像的分辨率是256×256以上。我们直接使用pix2pix框架生成高分辨率图像进行了测试,但发现训练不稳定,生成的图像质量不理想。因此,我们将在下一小节中描述如何改进pix2pix框架。
###3.2提高照片真实感和分辨率(Improving Photorealism and Resolution) 我们改进了pix2pix框架,使用了粗到细的生成器、多尺度鉴别器体系结构和鲁棒的对抗学习目标函数。粗到细的生成器我们将生成器分解为两个子网络:G1和G2。我们把G1称为全局生成器网络,把G2称为局部增强器网络。生成器由tupleG= {G1, G2}给出,如图3所示。全局生成器网络以分辨率1024×512运行,而局部增强器网络输出的图像分辨率为4×前一个图像的输出大小(2×沿着每个图像维度)。为了以更高的分辨率合成图像,可以使用额外的局部增强网络。例如,生成器G={G1, G2}是2048×1024的输出图像分辨率,G={G1, G2, G3}是4096×2048的输出图像分辨率。 我们的全局生成器是建立在Johnson.[22]提出的架构之上的,该架构已被证明在512×512以上成功地用于神经风格的图像传输。它由3个部分组成:一个卷积前端G(F) 1,一组残差块G ? 1[18]和一个转置卷积后端G(B) 1。分辨率为1024×512的语义标签映射依次通过3个组件输出结果为1024×512的图像。 局部增强器网络也由3个部分组成:卷积前端G(F) 2、一组残差块G? 2和转置卷积后端G(B) 2。输入G2的标签映射的分辨率是2048×1024。与全局生成器网络不同的是,残差块G ? 2的输入是两个特征图的元素和:G(F) 2的输出特征图和全局生成器网络的后端最后一个特征图G (B) 1。这有助于集成G1到G2的全局信息。 在训练过程中,我们先训练全局生成器,然后再训练局部增强器。然后我们共同对所有网络进行微调。我们使用这种生成器设计来有效地聚合图像合成任务的全局和局部信息。我们注意到,在计算机视觉中,这种多分辨率的pipeline是一个很好的实践,而双尺度通常就足够了。在最近的无条件GANs[9,19]和条件图像生成[5,57]中可以发现类似的想法但不同的架构。 多尺度鉴别器高分辨率图像合成是GAN鉴别器设计的重要挑战。为了区分高分辨率的真实图像和合成图像,鉴别器需要有一个大的接收域。这需要更深的网络或更大的卷积核,这两者都会增加网络容量,并可能导致过拟合。此外,这两种选择都需要更大的训练内存,而这对于高分辨率图像生成来说已经是一个稀缺资源。 为了解决这个问题,我们提出使用多尺度鉴别器。我们使用的鉴别器具有相同的网络结构,但在不同的图像尺度下操作。我们将把鉴别器称为D1, D2和D3。具体来说,我们对真实的和合成的高分辨率图像进行2倍和4倍的向下采样,以创建3个尺度的图像金字塔。然后训练鉴别器D1、D2和D3分别在3个不同尺度上区分真实图像和合成图像。尽管鉴别器有相同的结构,但在最粗糙的尺度上操作的鉴别器具有最大的接受域。它具有更全局的图像视图,可以指导生成器生成全局一致的图像。另一方面,在最佳尺度上的鉴别器鼓励生成器产生更精细的细节。这也使得训练粗到细的生成器更容易,因为扩展低分辨率模型到高分辨率只需要在最精细的级别添加discriminator,而不是从头开始训练。在没有多尺度鉴别器的情况下,我们观察到生成的图像中经常出现许多重复的模式。 有了鉴别器,式(1)中的学习问题就变成了的多任务学习问题: 在无条件GANs[12]中提出了在相同图像尺度下使用多个GAN鉴别器。Iizuka等人的[20]在条件gan中添加了一个全局图像分类器来合成用于inpainting的全局相干内容。在这里,我们将设计扩展到不同图像尺度的多个鉴别器来建模高分辨率图像。 改进对抗损失函数我们通过加入一个基于鉴别器的特征匹配损失来改善Eq.(2)中的GAN的损失。这种损失稳定了训练,因为生成器必须在多个尺度上产生自然统计。具体来说,我们从鉴别器的多层提取特征,并学习从真实图像和合成图像中匹配这些中间表示。为了便于表示,我们表示鉴别器Dk作为D(i) k的层特征提取器(从Dk的输入层到第i层)。将特征匹配的损失LFM(G, Dk)计算为:
我们的完整目标将GAN损失和特征匹配损失结合为: ###3.3使用实例映射(Using Instance Maps) 现有的图像合成方法只使用语义标签映射[5,21,25],即图像中的每个像素值代表该像素的对象类。这张地图不能区分同一类别的物体。另外一方面,实例级语义标签映射包含每个单独对象的唯一对象ID。要合并实例映射,可以直接将其传递到网络中,或将其编码为一个热点向量。然而,这两种方法在实践中都很难实现,因为不同的图像可能包含不同数量的同一类别的物体。或者,可以为每个类预先分配固定数量的通道(例如,10),但当通道数量设置过小时,此方法会失败,而当通道数量设置过大时,则会浪费内存。 相反,我们认为实例映射提供的最关键的信息是对象边界,这在语义标签映射中是不可用的。例如,当同一类的对象彼此相邻时,仅看语义标签映射是无法将它们区分开来的。在街景中尤其如此,因为很多停放的汽车或行走的行人往往是挨在一起的,如图4a所示。然而,使用实例映射,分离这些对象就变得更容易了。 因此,为了提取这一信息,我们首先计算实例边界图(图4b)。在我们的实现中,实例边界映射中的一个像素,如果它的对象ID与它的4个邻居中的任何一个不同,则为1,否则为0。然后,实例边界图与语义标签图的一个热点向量表示连接起来,并送入生成器网络。类似地,鉴别器的输入是实例边界映射、语义标签映射和真实/合成图像的通道级联。图5b展示了一个使用对象边界的改进示例。我们在第4节的用户研究还展示了使用实例边界地图训练的模型,从而呈现出更加逼真的对象边界。 ###3.4学习实例级特征嵌入(Learning an Instance-level Feature Embedding) 基于语义标签映射的图像合成是一个多对映射问题。一个理想的图像合成算法应该能够使用相同的语义标签映射生成不同的、真实的图像。最近,一些作品学会了在给定相同的输入[5,15]的情况下产生固定数量的离散输出[5,15],或者由编码整个图像的潜在代码控制合成不同的模式[66]。 尽管这些方法解决的是多模态图像合成问题,但它们不适合我们的图像处理任务主要有两个原因。首先,用户无法直观地控制模型会生成哪种图像[5,15]。其次,这些方法专注于全局颜色和纹理变化,不允许对生成的内容进行对象级控制。 为了生成不同的图像并允许实例级控制,我们建议添加额外的低维特征通道作为生成器网络的输入。我们证明,通过操纵这些特征,我们可以灵活地控制图像合成过程。此外,请注意,由于特征通道是连续的数量,我们的模型,在原则上,能够产生无限多的图像。 为了生成低维特征,我们训练一个编码器网络来找到一个低维特征向量,对应于图像中每个实例的地面真值目标。我们的特征编码器体系结构是一个标准的编码器-解码器网络。为了确保每个实例中的特征是一致的,我们在编码器的输出中添加了一个实例平均池层来计算对象实例的平均特征。然后将平均特征传播到实例的所有像素位置。图6显示了编码特性的示例。 我们将Eq.(5)中的G(s)替换为G(s, E(x)),并与生成器和鉴别器联合训练编码器。编码器训练完成后,在训练图像中的所有实例上运行,并记录得到的特征。然后对每个语义类别的特征进行K-means聚类。因此,每个集群都编码了特定风格的特征,例如,道路的沥青或鹅卵石纹理。在推理时,我们随机选择一个聚类中心并将其作为编码特征。 这些特性与标签映射连接在一起,并用作生成器的输入。我们试图在特征空间上强制使用Kullback-Leibler损失[28],以便更好地测试时间采样,正如最近的工作[66]中使用的那样,但发现用户直接调整每个对象的潜在向量非常复杂。相反,对于每个对象实例,我们提供了k种模式供用户选择。
4.结果
我们首先在第4.1节中提供了对主要方法的定量比较。然后我们在第4.2节报告了一个主观的人类知觉研究。最后,我们在第4.3节中展示了一些交互对象编辑结果的示例。 实现细节我们使用LSGANs[37]进行稳定训练。在所有的实验中,我们设置权重λ= 10(Eq.(5), K-means的k = 10。我们使用三维向量为每个对象实例编码特征。我们实验在我们的目标(Eq.(5))中加入:
其中λ= 10和F(i)表示VGG网络的第i层的Mi元素。我们观察到这种损失稍微改善了结果。我们将这两种变体命名为ours和ours(w/o VGG loss)。请在附录中找到更多的培训和架构细节。 数据集我们对城市景观数据集[7]和纽约大学室内RGBD数据集[40]进行了广泛的比较和消融研究。我们报告了ADE20K数据集[63]和Helen Face数据集[31,49]的额外定性结果。 Baselines我们将我们的方法与两种最先进的算法进行了比较:pix2pix[21]和CRN[5]。我们使用默认设置在高分辨率图像上训练pix2pix模型。我们通过作者的公开模型生成高分辨率CRN图像。
###4.1定量的比较(Quantitative Comparisons) 我们采用以前图像到图像转换工作中的相同评估协议[21,65]。为了量化结果的质量,我们对合成图像进行语义分割,并比较预测片段与输入图像的匹配程度。直觉上,如果我们能够生成与输入标签图相对应的真实图像,那么现成的语义分割模型(例如,我们使用的PSPNet[61])应该能够预测ground truth标签。表1报告了计算的分割精度。可以看出,无论是在像素精度方面,还是在平均交并(IoU)方面,我们的方法都远远优于其他方法。而且,我们的结果非常接近原始图像的结果,理论的“上界”我们可以实现的真实感。这证明了我们算法的优越性。 ###4.2人类的感知研究(Human Perceptual Study) 我们通过人类的主观研究进一步评估我们的算法。我们在城市景观数据集[7]上执行部署在Amazon Mechanical Turk (MTurk)平台上的成对A/B测试。我们遵循Chen和Koltun[5]中描述的相同的实验程序。具体来说,进行了两种不同的实验:无限时间和有限时间,如下所述: 无限的时间对于这个任务,工作人员一次得到两幅图像,每一幅图像都用不同的方法合成为相同的标签图。我们给他们无限的时间来选择哪个图像看起来更自然。左右的顺序和图像的顺序是随机的,以确保公平的比较。对所有500 cityscape 测试图像进行了10次比较,每种方法产生了5000个人类判断。在这个实验中,我们使用仅在标签上训练的模型(没有实例映射),以确保公平的比较。表2显示,我们方法的两个变体都显著优于其他方法。 表2:城市景观数据集7的两两比较结果。每个单元格列出了我们的结果优于其他方法的百分比。机会是50%。
有限时间接下来,在有限时间的实验中,我们将我们的结果与CRN和原始图像(ground truth)进行比较。在每次比较中,我们展示了两种方法在短时间内的结果。我们随机选择1/8秒到8秒之间的持续时间,就像之前的工作[5]所采用的那样。这可以评估图像之间的差异有多快可以被感知。图7为不同时间间隔的对比结果。随着给定的时间越来越长,这三种图像之间的差异变得越来越明显,也越来越容易观察。图9和10显示了一些示例结果。
损失函数的分析我们还利用无限时间实验研究了目标函数中每一项的重要性。具体来说,我们的最终损失包含三个部分:GAN损失、基于鉴别器的特征匹配损失和VGG感知损失。我们将我们的最终实现与(1)仅使用GAN损失和(2)GAN+特征匹配损失(即,没有VGG损失)的结果进行比较。获得的优惠率分别为68.55%和58.90%。可以看出,加入特征匹配损失大大提高了性能,而加入感知损失进一步增强了结果。然而,请注意,使用知觉损失并不是关键,即使没有它,我们仍然能够产生视觉上吸引人的结果(例如,图9c,10b)。 使用实例映射我们将使用实例映射的结果与不使用实例映射的结果进行比较。我们高亮图像中的汽车区域,并要求参与者选择哪个区域看起来更真实。我们获得了64.34%的偏好率,这表明使用实例地图提高了我们的结果的真实感,特别是在对象边界附近。 生成器分析我们比较不同的生成器与所有其他固定组件的结果。特别地,我们将我们的生成器与两种最先进的生成器架构进行了比较:U-Net[21,43]和CRN[5]。我们根据语义分割得分和人类知觉研究结果来评估性能。表3和表4显示,我们的粗到精生成器的性能大大优于其他网络。 鉴别器分析接下来,我们还比较了使用我们的多尺度鉴别器的结果和只使用一个鉴别器的结果,而我们保持生成器和损失函数固定。在城市景观[7]上的分割得分(表5)表明,使用多尺度鉴别器有助于产生更高质量的结果,并稳定了对抗训练。我们还在Amazon Mechanical Turk平台上进行了配对A/B测试。69.2%的参与者更喜欢我们用多尺度鉴别器得到的结果,而不是用单尺度鉴别器得到的结果(概率是50%)。 额外的数据集为了进一步评估我们的方法,我们在NYU数据集上进行了无限时间比较。对pix2pix和CRN分别获得了86.7%和63.7%。图8显示了一些示例图像。最后,我们展示了ADE20K[63]数据集上的结果(图11)。 图11:ADE20K数据集的结果63。我们的方法生成的图像具有与原始图像相似的真实感水平。
###4.3交互式对象编辑(Interactive Object Editing) 我们的特征编码器允许我们对结果图像执行交互式实例编辑。例如,我们可以改变图像中的物体标签来快速创建新的场景,比如用建筑替换树木(图1b)。我们也可以改变个别汽车的颜色或道路的纹理(图1c)。请在我们的网站上查看我们的互动演示。 此外,我们在Helen Face数据集上实现了交互式对象编辑功能,其中不同面部部分的标签是可用的49。这使得编辑人像变得很容易,例如,改变脸的颜色来模仿不同的化妆效果,或者在脸上添加胡须。
5讨论与结论
本文的结果表明,有条件的GAN可以合成高分辨率的真实感图像,而不需要任何手工损耗或预先训练的网络。我们已经观察到加入知觉损失[22]可以略微改善结果。我们的方法允许许多应用,并将潜在地用于需要高分辨率结果但没有预先训练的网络的领域(例如,医学成像[17]和生物学[8])。 本文还表明,图像到图像的合成pipeline可以扩展到产生不同的输出,并允许在给定适当的训练输入-输出对(e.g., instance maps in our case)的情况下进行交互式图像操作。在没有被告知什么是“纹理”的情况下,我们的模型学会了对不同的对象进行风格化,这些对象也可以推广到其他数据集(例如,使用一个数据集中的纹理来合成另一个数据集中的图像)。我们相信这些扩展可以潜在地应用于其他图像合成问题。 感谢我们感谢Taesung Park、Phillip Isola、Tinghui Zhou、Richard Zhang、Rafael V alle和Alexei A. Efros的有益评论。我们也感谢Chen和Koltun[5]和Isola等人[21]分享他们的代码。JYZ是由Facebook的研究生奖学金支持的。
|