《Image-to-Image Translation with Conditional Adversarial Networks》翻译

基于条件对抗网络的图像间转换

 

Phillip Isola    Jun-Yan Zhu    Tinghui Zhou    Alexei A. Efros

Berkeley AI Research (BAIR) Laboratory, UC Berkeley

{fisola,junyanz,tinghuiz,efrosg}@eecs.berkeley.edu

 

图1:图像处理,图形和视觉中的许多问题涉及将输入图像转换成相应的输出图像。这些问题通常使用特定于应用程序的算法来处理,即使设置始终相同:将像素映射到像素。有条件的对抗性网络是一种通用的解决方案,似乎可以很好地解决各种各样的问题。这里我们展示几种方法的结果。在每种情况下,我们使用相同的架构和目标,并简单地训练不同的数据。

摘要

我们研究条件对抗网络作为图像到图像转换问题的通用解决方案。这些网络不仅学习从输入图像到输出图像的映射,还学习了用于训练该映射的损失函数。这使得可以对传统上需要非常不同的损失方程的问题应用相同的通用方法。我们证明了这种方法可以有效地合成标签贴图中的照片,从边缘贴图重建对象,以及着色图像等。事实上,自从与本文相关的pix2pix软件发布以来,大量互联网用户(其中许多是艺术家)已经在我们的系统中发布了自己的实验,进一步证明了其广泛的适用性和易于采用,而无需参数调整。作为一个社区,我们不再手工设计我们的绘图功能,这项工作表明我们可以在不手工设计损失函数的情况下获得合理的结果。

 

  1. 介绍

图像处理,计算机图形和计算机视觉中的许多问题可以表现为将输入图像“转换”成相应的输出图像。正如概念可以用英语或法语表达一样,场景可以呈现为RGB图像,渐变场,边缘图,语义标签图等。与自动语言翻译类似,我们定义自动图像 -  在给定足够的训练数据的情况下,将图像转换作为将场景的一种可能表示转换为另一种的任务(参见图1)。 传统上,这些任务中的每一个都使用单独的专用机器(例如[16、25、20、9、11、53、33、39、18、58、62])进行处理,尽管设置总是相同的:从像素预测像素。 我们在本文中的目标是为所有这些问题开发一个通用框架。

社区已经朝着这个方向迈出了重要的一步,卷积神经网络(CNNs)成为各种图像预测问题背后的共同主力。CNNs学会将损失函数降至最低 - 这是一个评估结果质量的目标 - 尽管学习过程是自动的,但很多手动工作仍然需要设计有效的损失。换句话说,我们仍然必须告诉CNN我们希望它最小化。但是,就像King Midas一样,我们必须小心我们的期望!如果我们采取天真的方法并要求CNN最小化预测和地面真实像素之间的欧几里德距离,它将倾向于产生模糊的结果。这是因为通过平均所有合理的输出来最小化欧几里德距离,这会导致模糊。提出损失功能迫使CNN做我们真正想要的事情 - 例如,输出清晰,逼真的图像 - 是一个开放的问题,通常需要专业知识。

         如果我们只能指定一个高级别目标,例如“使输出与现实无法区分”,然后自动学习适合于满足此目标的损失函数,那将是非常可取的。 幸运的是,这正是最近提出的生成对抗网络(GANs)所做的。如果输出图像是真实的或假的,GAN会学习一种损失,试图对其进行分类,同时训练生成模型以最小化这种损失。模糊的图像是不容忍的,因为它们看起来很明显是伪造的。 因为GANs学习了适应数据的损失,所以它们可以应用于传统上需要非常不同类型的损失函数的大量任务。

         在本文中,我们在条件设置中探索GANs。 就像GANs学习数据的生成模型一样,条件GANs(cGANs)学习条件生成模型。这使得cGAN适用于图像到图像转换任务,其中我们对输入图像进行调节并生成相应的输出图像。

         GAN在过去两年中得到了大力研究,我们在本文中探索的许多技术都是先前提出的。尽管如此,早期的论文主要关注具体的应用,目前还不清楚图像条件GAN如何作为图像到图像转换的通用解决方案。我们的主要贡献是证明在有各种各样的问题上,有条件的GAN产生了合理的结果。我们的第二个贡献是提供一个足以取得良好结果的简单框架,并分析几个重要架构选择的影响。代码位置:https://github.com/phillipi/pix2pix。

 

  1. 相关工作

在图像转换问题中,图像建模中的结构损失通常是通过像素分类或回归来表示的。(例如, [39, 58, 28, 35, 62]). 这些公式将输出空间视为“非结构化”,即在给定输入图像的情况下,每个输出像素被视为与所有其他像素有条件地独立。CGAN学习结构化损失。结构化损失将惩罚输出图像的构造节点。大量的文献都考虑过这种损失,使用包括条件随机字段的方法[10],SSIM结构相似性度量,特征匹配[15],非参数损失[37],卷积伪先验[57],以及基于匹配协方差统计的损失[30]。条件GAN的不同之处在于,损失是可以学习的,理论上,它可以惩罚输出和目标之间任何可能的结构。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第1张图片

图2:训练条件GAN以映射边缘->照片。判别器D学习在假(由发生器合成)和真实(边缘,照片)元组之间进行分类。发生器G学会愚弄判别器。 与无条件GAN不同,生成器和判别器都观察输入边缘映射。

我们不是第一个在条件设置中应用GAN的人。 先前和并发的工作已经在离散标签,文本以及实际上图像上调整了GAN。图像条件模型已经处理了来自法线贴图,未来帧预测,产品照片生成以及稀疏注释的图像生成的图像预测(对于相同问题的自回归方法,参见[47])。其他几篇论文也使用GAN进行图像到图像的映射,但只是无条件地应用GAN,依赖于其他术语(如L2回归)来强制输出以输入为条件。这些论文在修复,未来状态预测,用户约束引导的图像处理,样式转移和超分辨率方面取得了令人瞩目的成果。每种方法都是针对特定应用而定制的。 我们的框架不同之处在于没有特定于应用程序 这使我们的设置比大多数其他设置简单得多。

  我们的方法也与先前的工作不同,在发生器和判别器的几种架构选择中。 与以前的工作不同,对于我们的生成器,我们使用基于“U-Net”的架构,对于我们的判别器,我们使用卷积“PatchGAN”分类器,其仅在图像块的尺度上惩罚结构。之前提出了类似的PatchGAN架构[38]来捕获本地样式统计信息。在这里,我们表明这种方法对更广泛的问题有效,我们研究了改变patch大小的效果。

  1. 方法

GAN是生成模型,用于学习从随机噪声向量z到输出图像y的映射,G : z ->y 。相反,条件GAN学习从观察图像x和随机噪声向量z到y的映射,G : {x; z}-> y。训练生成器G以产生不能通过对抗训练的判别器D与“真实”图像区分的输出,该判别器被训练成尽可能地检测发生器的“假”。 该训练过程如图2所示。

3.1. 目标函数

  条件GAN的目标函数可以表示为

  

其中G试图最小化这个目标,以对抗试图最大化它的敌对D,即G∗=argminGmaxDLcGAN(G,D)G∗=arg⁡minGmaxDLcGAN(G,D)。

  为了测试调节判别器的重要性,我们还比较了一个无条件变量,其中判别器没有观察到x:

 

  先前的方法已经发现将GAN目标与更传统的损失(例如L2距离)混合是有益的。判别器的工作保持不变,但是生成器的任务不仅是欺骗判别器,而且还要接近L2意义上的真实图片输出。 我们也探索这个选项,使用L1距离而不是L2,因为L1鼓励减少模糊:

我们最后的目标方程为:

  如果没有z,网络仍然可以学习从x到y的映射,但会产生确定性输出,因此无法匹配除delta函数之外的任何分布。过去的条件GAN已经承认了这一点并且除了x之外还提供了高斯噪声z作为发生器的输入(例如,[55])。在最初的实验中,我们没有发现这种策略有效 - 发生器只是学会忽略噪声 - 这与Mathieu等人一致。相反,对于我们的最终模型,我们仅以dropout的形式提供噪声,在训练和测试时间应用于我们的生成器的多个层。 尽管存在dropout噪声,但我们观察到网络输出中只有轻微的随机性。设计产生高随机输出的条件GAN,从而捕获它们建模的条件分布的完整熵,是当前工作留下的一个重要问题。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第2张图片

图3:生成器结构的两个选择。“U-Net”是一个编码解码器,它与镜像层在编码器和解码器堆栈之间的滑行连接。

 

3.2.网络结构

我们使用[44]中的生成器和判别器结构进行调整。 生成器和判别器都使用convolution-BatchNorm-ReLu形式的模块。 在线补充材料中提供了该架构的详细信息,其中包括下面讨论的主要功能。

3.2.1带有跳线的生成器

  图像到图像转换问题的一个定义特征是它们将高分辨率输入网格映射到高分辨率输出网格。另外,对于我们考虑的问题,输入和输出的表面外观不同,但两者都是相同底层结构的渲染。 因此,输入中的结构与输出中的结构大致对齐。 我们围绕这些考虑设计了生成器架构。

  以前许多解决该领域问题的方法都使用了编码器 - 解码器网络。 在这样的网络中,输入通过一系列逐渐下采样的层,直到瓶颈层,此时该过程被反转。 这样的网络要求所有信息流都通过所有层,包括瓶颈。对于许多图像转换问题,在输入和输出之间共享大量低级信息,并且希望直接在网络上传送该信息。 例如,在图像着色的情况下,输入和输出共享突出边缘的位置。

  为了给生成器提供一种绕过这样的信息瓶颈的方法,我们按照“U-Net”的一般形状添加跳过连接。 具体来说,我们在每个层i和层n-i之间添加跳过连接,其中n是层的总数。 每个跳过连接简单地将第i层的所有通道与第n-i层的通道连接起来。

 

3.2.2.马尔科夫过程的判别器(PatchGAN

  众所周知,L2损失 - 和L1,见图4  - 在图像生成问题上产生模糊的结果。虽然这些损失不能鼓励高频脆性,但在许多情况下它们仍能准确地捕获低频。 对于出现这种情况的问题,我们不需要一个全新的框架来强制低频率的正确性。 L1已经做好了。

  这促使限制GAN判别器仅模拟高频结构,依赖于L1项来强制低频正确性(方程4)。为了模拟高频,将我们的注意力限制在局部图像块中的结构就足够了。 因此,我们设计了一个判别器体系结构 - 我们称之为PatchGAN  - 仅在patches规模上惩罚结构。该判别器试图分类图像中的每个NXN patch是真实的还是假的。 我们用判别器对整张图像进行卷积运算,并平均所有响应以提供D的最终输出。

  在4.4节中,我们证明了N可以比图像的完整尺寸小得多,并且仍然可以产生高质量的结果。 这是有利的,因为较小的PatchGAN具有较少的参数,运行得更快,并且可以应用于任意大小的图像。

这种判别器有效地将图像建模为马尔可夫随机场,假设像素之间的独立性超过了patch直径。 这种联系之前曾在[38]中探讨过,也是纹理和风格模型中的常见假设。 因此,我们的PatchGAN可以理解为纹理/风格损失的一种形式。

3.3 优化和推理

  为了优化网络,我们使用标准的方法:交替训练D和G。我们使用minibatch SGD并应用Adam优化器。 正如最初的GAN论文中所建议的,我们训练G最小化,而不是训练G去最大化 [24]。此外,我们在优化D时将目标除以2,这会减慢D相对于G的学习速度。我们使用Minibatch SGD并应用Adam解算器[32],学习速度为0:0002,动量参数β1=0.5,β2=0.999。

在推理时,我们用与训练阶段完全相同的方式运行生成网络。 这与通常的协议不同之处在于我们在测试时应用了dropout,并且我们使用测试批次的统计信息来应用批量标准化,而不是使用训练批次的汇总统计信息。当batch size设置为1时,这种批量标准化方法被称为“实例标准化”,并且已被证明在图像生成任务中是有效的。 在我们的实验中,我们根据实验使用1到10之间的批量大小。

 

  1. 实验

为了探索条件GAN的一般性,我们在各种任务和数据集上测试该方法,包括图形任务,如照片生成和视觉任务,如语义分割:

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第3张图片

在线补充资料中提供了关于这些数据集的训练细节。在所有情况下,输入和输出只是1-3个通道的图像。定性结果在图8, 9, 11, 10, 13, 14, 15,中展示。图21突出显示了几个失败案例。更全面的结果可在https://phillipi.github.io/pix2pix/.

         数据需求和速度,我们注意到,即使是在小数据集上,也常常可以获得良好的结果。我们的Facade训练集仅包含400张图片(参见图14中的结果),而日夜训练集仅包含91个独立的网络摄像头(参见图15中的结果)。在这种规模的数据集上,训练速度可能非常快:例如,图14中显示的结果在单个Pascal Titan X GPU上花了不到两个小时的训练。在测试时,所有模型都在这个GPU上运行一秒钟。

 

    1. 评估指标

评估合成图像的质量是一个开放和困难的问题。诸如每像素均方误差的传统度量不评估结果的联合统计,因此无法测量结构,loss想要捕获的结构。

为了更全面地评估我们的结果的视觉质量,我们采用两种策略。首先,我们对Amazon Mechanical Turk(AMT)进行“真实与假冒”的感知研究。 对于色彩化和照片生成等图形问题,人类观察者的合理性通常是最终目标。因此,我们使用这种方法测试我们的地图生成,航空照片生成和图像着色。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第4张图片

其次,我们衡量我们的综合城市景观是否足够真实,使现成的识别系统能够识别其中的对象。该指标类似于[52]中的“初始分数”、[55]中的目标检测评估以及[62]和[42]中的“语义可解释性”测量。

AMT 感知调查

在我们的AMT实验中,我们遵循了来自[62]的协议:Turkers进行了一系列试验,将“真实”图像与我们的算法生成的“假”图像进行对比。在每次试验中,每个图像出现1秒钟,之后图像消失,并且Turkers被给予有限时间来回答哪些是假的。 每个阶段的前10个图像都是练习,并且Turkers得到了反馈。没有提供关于主要实验的40个试验的反馈。 每个阶段一次仅测试一个算法,并且不允许Turkers完成多个阶段。 ~50个Turkers评估了每个算法。与[62]不同,我们没有包括警惕性试验。对于我们的着色实验,真实和伪造图像是从相同的灰度输入生成的。对于地图 - >航拍照片,真实和虚假图像不是从同一输入生成的,以使任务更加困难并避免楼层结果。对于地图 - >航拍照片,我们训练了256X256分辨率图像,但利用完全卷积翻译(如上所述)来测试512 X 512图像,然后对其进行下采样并以256 X 256分辨率呈现给Turkers。 对于着色,我们在256 X256分辨率图像上进行了训练和测试,并以相同的分辨率将结果呈现给Turkers。

“FCN分数

虽然已知生成模型的定量评估具有挑战性,但是最近的工作已经尝试使用预训练的语义分类器来测量所生成的刺激的可辨别性作为伪度量。直觉是如果生成的图像是真实的,则在真实图像上训练的分类器也能够正确地对合成图像进行分类。为此,我们采用流行的FCN-8s架构进行语义分割,并在城市景观数据集上进行训练。 然后,我们根据分类精度对这些照片合成的标签进行合成照片评分。

4.2目标函数分析

方程式4中目标的哪些组成部分很重要? 我们进行消融研究以隔离L1项,GAN项的影响,并使用以输入为条件的判别器(cGAN,Eqn.1)与使用无条件判别器(GAN,Eqn.2)进行比较。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第5张图片

         图4显示了这些变化对两个标签的定性影响!照片问题。仅l1会导致合理但模糊的结果。仅cGAN(在eqn中设置λ=0.4)给出了更清晰的结果,但在某些应用程序中引入了视觉效果。将这两个术语加在一起(λ=100)可以减少这些伪影像。

我们使用城市景观标签上的FCN评分来量化这些观察结果→照片任务(表1):基于GAN的目标实现了更高的评分,这表明合成尺寸的图像包含更多可识别的结构。我们还测试了从判别器(标记为GAN)中去除条件作用的效果。在这种情况下,损失不会导致输入和输出之间的不匹配;它只关心输出看起来真实。这种变形导致性能不佳;检查结果表明,无论输入照片如何,生成器都会崩溃,产生几乎完全相同的输出。显然,在这种情况下,损失度量输入和输出之间匹配的质量是很重要的,实际上,CGAN的性能比GAN要好得多。但是,请注意,添加一个L1项也会鼓励输出尊重输入,因为L1损失会惩罚正确匹配输入的地面真输出和合成输出之间的距离,而合成输出可能不会。相应地,L1+GAN也可以有效地创建符合输入标签图的真实渲染。结合所有术语,L1+CGAN,也表现得很好。

缺少色彩 条件GANs的一个显著效果是它们可以生成清晰的图像,甚至在输入的标签图中不存在的地方产生幻觉空间结构。我们可以想象,cGAN在光谱维度中的“锐化”有着类似的效果,使得图像更加丰富多彩。正如L1在不确定准确定位边缘的位置时会加权模糊一样,当确定像素应该采用哪种可能的颜色值时,它也会加权平均的、灰度的颜色。特别是通过选择条件概率密度函数的中值而不是可能的颜色,可以将L1最小化。另一方面,对立的损失函数原则上可以检测到灰色输出是不现实的,并加权匹配真实的颜色分布[24]。在图7中,我们调查了我们的CGAN是否真的在城市景观数据集中实现了这种效果。图中显示了实验室颜色空间中输出颜色值的边缘分布。地面真值分布用虚线表示。很明显,L1导致比基本事实更窄的分布,这证实了L1鼓励平均灰色的假设。另一方面,使用CGAN,将输出分布推近真实图。

 

4.3生成器结构分析

         U-NET架构允许低等级的信息在网络上进行快捷方式传输。这会导致更好的结果吗?图5和表2比较了U-NET和城市景观生成上的生成器。encoder-decoder是通过切断U-NET中的skip connections而创建的,encoder-decoder无法在我们的实验中学习生成真实的图像。U-NET的优点似乎并不是特定于条件GAN的:当U-NET和编码器解码器都被训练为L1损失时,U-NET再次获得了优异的效果。

 

4.4从PixelGANs到PatchGANs再到ImageGANs

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第6张图片

         我们测试了从1 x 1“PixelGAN”到286 x 286“ImageGAN”的判别器接收字段的patch大小N的变化效果。图6显示了该分析的定性结果,表3使用FCN评分量化了影响。请注意,在本文的其他地方,除非另有规定,否则所有实验都使用70 X 70的PatchGANs,在本节中,所有实验都使用L1+cGAN损失函数。

         PixelGan对空间清晰度没有影响,但确实增加了结果的色彩度(在图7中量化)。例如,图6中的巴士在被L1损失函数的网络训练为灰色,而在PixelGAN损失时训练为红色。彩色直方图匹配是图像处理中的一个常见问题[49],而PixelGAN可能是一个有前景的轻量化解决方案。

         使用一个16x16的PatchGANs补丁足以促进图片的清晰的输出,并达到较好的FCN分数,但也导致图片缺乏立体感。70 x 70 PatchGANs减轻了这些伪影,取得了稍好的分数。除此之外,扩展到286 x 286的ImageGAN,似乎无法提高结果的视觉质量,并且事实上,FCN得分要低得多(表3)。这可能是因为ImageGAN比70 x 70 PatchGANs具有更多的参数和更大的深度,并且可能更难训练。

         全卷积翻译  PatchGANs的一个优点是,一个固定大小的Patch判别器可以应用于任意大小的图像。我们也可以利用生成器卷积,并应用于比它所训练的图像更大的图像上。我们在地图-航拍图上测试这个任务。在对256x256个图像上的生成器进行了训练之后,我们在512x512个图像上对其进行了测试。图8中的结果证明了这种方法的有效性。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第7张图片

4.5 感知层研究

         我们在地图转航空卫星图和灰度图转彩色图的任务中验证了我们的结果的感知现实性。我们对地图转航空卫星图的AMT实验结果如表4所示。我们的方法生成的航拍照片的真实性欺骗了18.9%的试验参与者,明显高于结果模糊、几乎无法欺骗实验参与者的L1的基线。相反,在照片转地图方向图实验中,我们的方法在欺骗了6.1%的试验参与者,这与L1基线的性能(基于引导测试)没有显著差异。这可能是因为较小的结构误差在具有刚性几何图形的地图中比在更杂乱的航空照片中更明显。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第8张图片

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第9张图片

    我们在ImageNet[51]上训练了着色能力,并在[62,35]引入的测试分割上进行了测试。我们的方法是在L1+cGAN损失的情况下,欺骗了22.5%的试验参与者(表5)。我们还测试了[62]的结果及其使用L2损失的方法变体(详情请参见[62])。条件GAN的得分类似于[62]的L2变种(bootstrap测试的差异不显著),但低于[62]的完整方法,这在我们的实验中欺骗了27.8%的试验参与者。我们注意到他们的方法是专门设计的,可以更好地进行着色。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第10张图片

4.6语义分割

         有条件GANs似乎是有效的解决问题的方法,可在常规的图像处理和图形任务中,输出的充满细节或类似于摄影作品的图像。那么对于图像视觉问题,如,输入比输出复杂的语义分割问题,那该怎么办?

         在开始测试之前,我们训练了CGAN(有/没有L1丢失)!由城市风景图片转换为标签图。图10展示了定性结果,定量分类精度见表6。有趣的是,经过训练的没有L1损失的cGAN,能够在合理的精度范围解决这个问题。据我们所知,这是GAN第一次生成离散标签图而不是拥有连续值变量的图像的成功演示。虽然cGAN取得了一些成功,但它们远不是解决这个问题的最佳方法:简单地使用L1回归比使用cGAN能获得更好的分数,如表6所示。我们认为,对于视觉问题,目标(即预测接近地面的真实图像的输出)可能比图形任务更具体,像L1这样的重构损失基本上是足够的。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第11张图片

4.7外界驱动的相关研究

         自从PIX2Pix的论文和代码库首次发布以来,Twitter社区,包括计算机视觉和图形从业者以及视觉艺术家,已经成功地将我们的框架应用于各种新颖的图像到图像翻译任务,远远超出了原始论文的范围。图11和图12显示了Pix2Pix标签中的几个示例,包括背景移除、调色板生成和草图转换肖像图,素描转换口袋妖怪,“照我做”的姿势转换,视觉学习:阴沉的星期天,以及新奇的话题#edges2cats和#fotogenerator。请注意,这些应用程序是创造性的项目,不是在受控的科研环境下产生的,部分依赖于我们发布的pix2pix代码做的一些改进。尽管如此,它们证明了我们的方法具有作为图像到图像翻译问题的通用商品工具的发展前景。

《Image-to-Image Translation with Conditional Adversarial Networks》翻译_第12张图片

  1. 总结

         本论文的研究结果表明,条件对抗网络是一种很有前途的图像到图像的翻译方法,尤其是那些涉及高度结构化图形输出的任务。这些网络基于手头数据学习到一种自适应的损失函数,这使它们适用于各种设定。

         致谢:我们感谢Richard Zhang、Deepak Pathak和Shubham Tulsiani的讨论帮助,感谢Saining

Xie对HED边缘探测器的帮助,感谢在线社区探索众多应用程序并提出改进建议。感谢Christopher Hesse、Memo Akten、Kaihu Chen、Jack Qiao、Mario Klingeman、Brannon Dorsey、Gerda Bosman、Ivy Tsai和Yan Lecun允许在图11和图12中使用他们的创作。这项工作部分由NSF SMA-1514512、Nga Nuri、IARPA通过空军研究实验室、Intel公司、Berkeley Deep Drive和Hardwar提供支持。Nvidia的捐赠。J.-Y.Z.得到了Facebook研究生奖学金的支持。免责声明:本文所包含的观点和结论是作者的观点和结论,不应被解释为必然代表IARPA、AFRL或美国政府的官方政策或认可,无论明示或暗示。

 

 

 

 

你可能感兴趣的:(生成对抗网络)