【计算机视觉|生成对抗】带条件的对抗网络进行图像到图像的转换(pix2pix)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处

标题:Image-to-Image Translation with Conditional Adversarial Networks

链接:Image-to-Image Translation with Conditional Adversarial Networks | IEEE Conference Publication | IEEE Xplore

摘要

我们研究了将条件对抗网络作为通用解决方案,用于图像到图像的转换问题。这些网络不仅学习从输入图像到输出图像的映射,还学习了一个损失函数来训练这种映射。这使得可以将相同的通用方法应用于传统上需要非常不同损失公式的问题。我们证明了这种方法在从标签映射合成照片、从边缘映射重建物体和给图像上色等任务中是有效的。此外,自从与本论文相关联的pix2pix软件发布以来,已经有数百名Twitter用户发布了使用我们的系统进行艺术实验的作品。作为一个社区,我们不再手工设计映射函数,这项工作表明我们可以在不手工设计损失函数的情况下获得合理的结果。

1. 引言

在图像处理、计算机图形学和计算机视觉中,许多问题可以被看作是将输入图像“翻译”为相应的输出图像。就像一个概念可以用英语或法语表达一样,一个场景可以被渲染成RGB图像、梯度场、边缘映射、语义标签映射等等。类比于自动语言翻译,我们将自动图像到图像转换定义为在足够的训练数据下,将一个场景的一种可能表示转换为另一种表示的问题(见图1)。传统上,每个任务都使用独立的、专用的机制来解决(例如,[14、23、18、8、10、50、30、36、16、55、58]),尽管事实上背景始终是相同的:从像素预测像素。本文的目标是为所有这些问题开发一个共同的框架。

图1:图像处理、图形学和视觉领域中的许多问题涉及将输入图像转换为相应的输出图像。这些问题通常会使用特定于应用的算法来处理,尽管背景始终相同:将像素映射到像素。条件对抗网络是一种通用解决方案,似乎在各种各样的这些问题上表现良好。在这里,我们展示了该方法在几个问题上的结果。在每种情况下,我们使用相同的架构和目标,只是在不同的数据上进行训练。

社区已经朝着这个方向迈出了重要的一步,卷积神经网络(CNNs)已成为各种图像预测问题的通用工具。CNNs学习最小化损失函数——评估结果质量的目标——虽然学习过程是自动的,但仍需要大量的人工工作来设计有效的损失。换句话说,我们仍然必须告诉CNN我们希望它最小化什么。但是,就像金色国王米达斯一样,我们必须小心我们的愿望!如果我们采取幼稚的方法,要求CNN最小化预测像素与实际像素之间的欧氏距离,它往往会产生模糊的结果[40、58]。这是因为欧氏距离通过对所有可能的输出求平均来最小化,从而导致模糊。提出能够强制CNN执行我们真正想要的任务的损失函数——例如,输出清晰、逼真的图像——是一个开放的问题,通常需要专业知识。

如果我们能够只指定一个高层次的目标,比如“使输出与现实不可区分”,然后自动学习适合满足这个目标的损失函数,那将是非常理想的。幸运的是,这正是最近提出的生成对抗网络(GANs)所做的[22、12、41、49、59]。GANs学习一个损失,试图分类输出图像是真实还是伪造的,同时训练一个生成模型来最小化这个损失。模糊的图像将不会被容忍,因为它们看起来显然是伪造的。因为GANs学习适应数据的损失,所以它们可以应用于许多传统上需要非常不同类型的损失函数的任务。

在本文中,我们在条件设置下探讨了GANs。正如GANs学习数据的生成模型一样,条件生成对抗网络(cGANs)学习了一个条件生成模型[22]。这使得cGANs适用于图像到图像的转换任务,我们在输入图像的条件下生成相应的输出图像。

虽然在过去的两年里已经对GANs进行了广泛的研究,并且本文中探讨的许多技术之前已经被提出过,但是早期的论文集中在特定的应用上,图像条件GANs是否可以作为图像到图像转换的通用解决方案仍然不清楚。我们的主要贡献是证明,在各种各样的问题上,条件GANs能够产生合理的结果。我们的第二个贡献是提出一个简单的框架,足以实现良好的结果,并分析了几个重要的架构选择的影响。代码可在https://github.com/phillipi/pix2pix上获得。

2. 相关工作

结构化损失用于图像建模 图像到图像转换问题通常被制定为像素级的分类或回归问题(例如,[36、55、25、32、58])。这些制定将输出空间视为“非结构化”,意味着每个输出像素在给定输入图像的情况下被认为是条件独立的。相反,条件生成对抗网络学习的是结构化损失。结构化损失惩罚输出的联合配置。大量文献考虑了这种类型的损失,其中的方法包括条件随机场[9]、SSIM指标[53]、特征匹配[13]、非参数损失[34]、卷积伪先验[54],以及基于匹配协方差统计的损失[27]。条件生成对抗网络的不同之处在于学习了损失,理论上可以惩罚输出和目标之间的任何可能不同的结构。

条件生成对抗网络 我们不是第一个将GANs应用于条件设置的人。之前的研究已经将GANs置于离散标签[38、21、12]、文本[43],以及实际上图像等条件之下。图像条件模型已经处理了从法线贴图[52]预测图像、未来帧预测[37]、产品照片生成[56],以及从稀疏注释生成图像[28、45]的图像预测问题(参见[44]以获得同一问题的自回归方法)。还有其他一些论文也使用GANs进行图像到图像的映射,但只是无条件地应用GANs,依赖其他术语(如L2回归)来强制输出对输入进行条件约束。这些论文在修复[40]、未来状态预测[60]、受用户约束引导的图像处理[61]、风格转移[35]和超分辨率[33]方面取得了令人印象深刻的结果。每种方法都是针对特定应用进行了调整。我们的框架的不同之处在于没有任何特定于应用的内容。这使得我们的设置比大多数其他方法要简单得多。

我们的方法在生成器和鉴别器的几个架构选择方面也与之前的工作不同。与以往的工作不同,对于生成器,我们使用了基于“U-Net”的架构[47],对于鉴别器,我们使用了卷积“PatchGAN”分类器,该分类器只对图像块尺度上的结构进行惩罚。类似的PatchGAN架构之前在[35]中提出,用于捕捉局部风格统计。在这里,我们展示了这种方法在更广泛的问题上的有效性,并且我们研究了更改图像块尺寸的影响。

3. 方法

GANs是生成模型,它们学习从随机噪声向量 z z z到输出图像 y y y的映射, G : z → y G : z → y G:zy [22]。相比之下,条件生成对抗网络学习从观察到的图像 x x x和随机噪声向量 z z z y y y的映射, G : { x , z } → y G : \{x, z\} → y G:{x,z}y

生成器 G G G的训练目标是生成的输出无法被经过对抗训练的鉴别器 D D D与“真实”图像区分开来,鉴别器 D D D的训练目标是尽可能地检测生成器的“伪造”图像。这个训练过程在图2中有所说明。

图2:训练条件生成对抗网络从边缘映射→照片的映射。鉴别器 D D D学习将伪造的(由生成器合成的)和真实的{边缘映射,照片}元组进行分类。生成器 G G G学习欺骗鉴别器。与无条件的GAN不同,生成器和鉴别器都观察输入的边缘映射。

3.1. 目标函数

条件生成对抗网络的目标函数可以表示为

L c G A N ( G , D ) = E x , y [ log ⁡ D ( x , y ) ] + E x , z [ log ⁡ ( 1 − D ( x , G ( x , z ) ) ) ] (1) L_{cGAN}(G, D) = E_{x,y}[\log D(x, y)] + E_{x,z}[\log(1 - D(x, G(x, z)))] \tag{1} LcGAN(G,D)=Ex,y[logD(x,y)]+Ex,z[log(1D(x,G(x,z)))](1)

其中生成器 G G G试图最小化这个目标函数,对抗性的鉴别器 D D D试图最大化它,即 G ∗ = arg ⁡ min ⁡ G max ⁡ D L c G A N ( G , D ) G^* = \arg\min_G \max_D L_{cGAN}(G, D) G=argminGmaxDLcGAN(G,D)

为了测试条件鉴别器的重要性,我们还将其与不含条件的变种进行比较,其中鉴别器不观察 x x x
L G A N ( G , D ) = E y [ log ⁡ D ( y ) ] + E x , z [ log ⁡ ( 1 − D ( G ( x , z ) ) ) ] (2) L_{GAN}(G, D) = E_{y}[\log D(y)] + E_{x,z}[\log(1 - D(G(x, z)))] \tag{2} LGAN(G,D)=Ey[logD(y)]+Ex,z[log(1D(G(x,z)))](2)

先前的方法发现将GAN目标与更传统的损失(如L2距离)混合是有益的[40]。鉴别器的任务保持不变,但生成器不仅要欺骗鉴别器,还要在L2意义上接近地面实际输出。我们也探索了这个选项,使用L1距离代替L2,因为L1鼓励更少的模糊:

L L 1 ( G ) = E x , y , z [ ∥ y − G ( x , z ) ∥ 1 ] (3) L_{L1}(G) = E_{x,y,z}[\|y - G(x, z)\|_1] \tag{3} LL1(G)=Ex,y,z[yG(x,z)1](3)

我们的最终目标是

G ∗ = arg ⁡ min ⁡ G max ⁡ D ( L c G A N ( G , D ) + λ L L 1 ( G ) ) (4) G^* = \arg\min_G \max_D (L_{cGAN}(G, D) + \lambda L_{L1}(G)) \tag{4} G=argGminDmax(LcGAN(G,D)+λLL1(G))(4)

在没有 z z z的情况下,网络仍然可以从 x x x y y y学习映射,但会产生确定性输出,因此无法匹配除了Delta函数以外的任何分布。过去的条件GAN已经承认了这一点,并且在生成器的输入中提供了高斯噪声 z z z,除了 x x x之外(例如,[52])。在初始实验中,我们发现这种策略并不有效 - 生成器只是学会忽略噪声 - 这与Mathieu等人的研究一致[37]。相反,对于我们的最终模型,我们只在生成器的几层上以Dropout的形式提供噪声,这在训练和测试时都会应用。尽管有Dropout的噪声,我们观察到网络的输出只有微小的随机性。设计能够产生高度随机输出的条件GAN,并因此捕捉所建模条件分布的全部熵,是目前工作中未解决的重要问题。

3.2. 网络架构

我们从[41]中的生成器和鉴别器架构进行了调整。生成器和鉴别器都使用了形式为卷积-BatchNorm-ReLU [26]的模块。有关架构的详细信息可在补充材料中找到,在下面讨论了关键特征。

3.2.1 具有跳跃连接的生成器

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

许多先前的解决方案[40、52、27、60、56]针对这个领域的问题使用了编码器-解码器网络[24]。在这样的网络中,输入经过一系列逐渐下采样的层,直到瓶颈层,此时过程被反转。这样的网络要求所有信息流都通过所有层,包括瓶颈。对于许多图像转换问题,输入和输出之间共享了大量的低级信息,可以将这些信息直接传递到网络中是可取的。例如,在图像着色的情况下,输入和输出共享突出边缘的位置。

为了使生成器能够绕过瓶颈,以传递类似信息,我们添加了跳跃连接,遵循“U-Net” [47]的一般形状。具体来说,我们在每个层 i i i和层 n − i n - i ni之间添加跳跃连接,其中 n n n是总层数。每个跳跃连接简单地将层 i i i和层 n − i n - i ni中的所有通道连接起来。

3.2.2 马尔可夫鉴别器(PatchGAN)

众所周知,L2损失 - 和L1,参见图3 - 在图像生成问题上会产生模糊的结果[31]。尽管这些损失不能鼓励高频清晰度,在许多情况下,它们仍然准确捕捉了低频信息。对于这种情况,我们不需要一个全新的框架来在低频上强制正确性。L1已经足够。

图3:不同损失引发不同质量的结果。 每一列显示在不同损失下训练的结果。更多示例请参见 https://phillipi.github.io/pix2pix/ 。

这激发了将GAN鉴别器限制为仅模拟高频结构,依靠L1项来强制低频正确性(方程4)。为了模拟高频,将注意力限制在局部图像块的结构上就足够了。因此,我们设计了一个鉴别器架构 - 我们称之为PatchGAN - 它仅对图像块尺度上的结构进行惩罚。该鉴别器试图对图像中的每个 N × N N × N N×N块进行分类,判断其是否为真实的或伪造的。我们通过卷积在整个图像上运行此鉴别器,平均所有响应以提供 D D D的最终输出。

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

这样的鉴别器有效地将图像建模为马尔可夫随机场,假设在大于一个图像块直径的像素之间是独立的。这个联系之前在[35]中探讨过,也是纹理[15、19]和风格[14、23、20、34]模型中的常见假设。因此,我们的PatchGAN可以被理解为纹理/风格损失的一种形式。

3.3. 优化与推理

为了优化我们的网络,我们遵循了[22]中的标准方法:在D上进行一次梯度下降步骤,然后在G上进行一步。我们使用小批量随机梯度下降(SGD),并应用Adam求解器[29]。

在推理时,我们以与训练阶段完全相同的方式运行生成器网络。这与通常的协议不同,我们在测试时应用了Dropout,并且我们使用测试批次的统计数据,而不是训练批次的聚合统计数据来应用批归一化[26]。当批量大小设置为1时,这种批归一化的方法被称为“实例归一化”,并且已被证明在图像生成任务上是有效的[51]。在我们的实验中,根据实验,我们使用了批量大小在1到10之间。

4. 实验

为了探索条件生成对抗网络的普适性,我们在各种任务和数据集上测试了该方法,包括图形任务(如照片生成)和视觉任务(如语义分割):

  • 语义标签↔照片,训练于Cityscapes数据集[11]。
  • 建筑标签→照片,训练于CMP Facades [42]。
  • 地图↔航拍照片,使用从Google地图获取的数据进行训练。
  • 黑白照片→彩色照片,使用[48]进行训练。
  • 边缘→照片,使用来自[61]和[57]的数据进行训练;使用HED边缘检测器[55]生成的二值边缘以及后处理。
  • 素描→照片:在[17]的人工绘制的素描上测试边缘→照片模型。
  • 白天→夜晚,训练于[30]的数据。

有关这些数据集的详细训练细节可以在在线的补充材料中找到。在所有情况下,输入和输出都是1-3通道图像。定性结果在图7、图8、图9、图10和图11中展示,其他结果和失败案例可以在在线材料中找到(https://phillipi.github.io/pix2pix/)。

4.1. 评估指标

评估合成图像的质量是一个开放且困难的问题[49]。传统的指标,如像素级均方误差,不评估结果的联合统计信息,因此无法衡量结构化损失旨在捕捉的结构。

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

其次,我们衡量我们合成的城市景观是否足够逼真,以至于现成的识别系统能够识别其中的对象。这个指标类似于[49]中的“Inception分数”,[52]中的目标检测评估,以及[58]和[39]中的“语义可解释性”度量。

AMT感知研究 对于我们的AMT实验,我们遵循了[58]中的协议:Turkers被呈现了一系列试验,其中一个“真实”图像与由我们的算法生成的“伪造”图像相对比。在每个试验中,每个图像出现1秒钟,之后图像消失,Turkers被给予无限时间来回答哪个是伪造的。每个会话的前10张图像是练习,并且Turkers会得到反馈。在主要实验的40次试验中没有提供反馈。每次会话一次只测试一个算法,Turkers不允许完成多个会话。大约有50名Turkers对每个算法进行评估。所有图像都以256×256的分辨率呈现。与[58]不同的是,我们没有包括警觉性试验。对于我们的着色实验,真实和伪造的图像都是从相同的灰度输入生成的。对于地图↔航拍照片,真实和伪造的图像不是从相同的输入生成的,以使任务更加困难,避免底层结果。

FCN分数 尽管量化评估生成模型的挑战性是众所周知的,但最近的作品[49、52、58、39]尝试使用预训练的语义分类器作为伪指标来测量生成的刺激的可辨别性。直觉是,如果生成的图像逼真,那么在真实图像上训练的分类器也能够正确地对合成图像进行分类。为此,我们采用了FCN-8s [36]架构进行语义分割,并在cityscapes数据集上对其进行了训练。然后,我们通过对这些照片的分类准确率对比这些照片生成的标签,对合成的照片进行评分。

4.2. 目标函数分析

在方程(4)的目标中,哪些组件是重要的?我们进行消融研究以分离L1项、GAN项的影响,同时比较使用条件化鉴别器(cGAN,方程(1))与使用无条件鉴别器(GAN,方程(2))。

图3展示了这些变化对两个标签→照片问题的定性影响。仅使用L1会导致合理但模糊的结果。仅使用cGAN(在方程(4)中设置λ = 0)会产生更锐利的结果,但会在某些应用中引入视觉伪影。将两个术语结合在一起(λ = 100)可以减少这些伪影。

我们使用城市景观标签→照片任务上的FCN分数来量化这些观察结果(见表1):基于GAN的目标实现了更高的分数,表明合成图像包括更多可识别的结构。我们还测试了从鉴别器中移除条件的效果(标记为GAN)。在这种情况下,损失不会惩罚输入和输出之间的不匹配;它只关心输出看起来是否真实。这个变体的性能非常差;检查结果发现生成器几乎产生了几乎相同的输出,而不管输入照片。显然,在这种情况下,损失测量输入和输出之间的匹配质量非常重要,事实上cGAN比GAN表现得更好。然而,需要注意的是,添加L1项也鼓励输出尊重输入,因为L1损失惩罚了地面真实输出与合成输出之间的距离,这些合成输出可能不匹配。相应地,L1+GAN也能够有效地创建尊重输入标签映射的真实渲染。将所有术语组合在一起,L1+cGAN的表现也很好。

表1:在Cityscapes数据集上对语义标签↔照片任务进行评估的FCN分数

色彩鲜艳性 条件生成对抗网络引人注目的效果是它们产生锐利的图像,甚至在输入标签映射中不存在空间结构的情况下也产生空间结构的幻觉。人们可能会想象cGAN对光谱维度的“锐化”具有类似的效果 - 即使图像更丰富多彩。就像当不确定边缘的确切位置时,L1会鼓励模糊一样,它也会在不确定像素应该采用哪个可行的颜色值时,鼓励选择平均的灰色。特别地,选择使L1最小化可能颜色的条件概率密度函数的中值。

另一方面,对抗性损失原则上可以意识到灰色输出是不现实的,并鼓励匹配真实的颜色分布[22]。在图6中,我们调查了我们的cGAN在Cityscapes数据集上是否实现了这种效果。这些图显示了Lab颜色空间中输出颜色值的边际分布。虚线表示地面真实分布。显然,L1会导致比地面真实分布更窄的分布,验证了L1鼓励平均灰色颜色的假设。另一方面,使用cGAN会将输出分布推向地面真实分布。

4.3. 生成器架构分析

U-Net架构允许低级信息在网络中进行快速传递。这是否会导致更好的结果?图4比较了U-Net和编码器-解码器在城市景观生成方面的表现。编码器-解码器仅通过切断U-Net中的跳跃连接来创建。在我们的实验中,编码器-解码器无法学习生成真实图像。U-Net的优势似乎不局限于条件性GAN:当U-Net和编码器-解码器都使用L1损失进行训练时,U-Net再次取得了优越的结果(见图4)。

图4:在编码器-解码器中添加跳过连接以创建“U-Net”会产生更高质量的结果。

4.4. 从PixelGAN到PatchGAN到ImageGAN

我们测试了变化的鉴别器感受野的补丁大小N的效果,从1 × 1的“PixelGAN”到完整的286 × 286的“ImageGAN”1。图5显示了此分析的定性结果,表2定量了使用FCN分数的效果。请注意,在本文的其他部分,除非另有说明,所有实验都使用70 × 70的PatchGAN,而在本节中,所有实验都使用L1+cGAN损失。

图5:补丁大小变化。不同的损失函数会以不同的方式表现出输出的不确定性。在L1下,不确定的区域变得模糊且不饱和。1x1的PixelGAN鼓励更大的颜色多样性,但对空间统计没有影响。16x16的PatchGAN会产生局部锐利的结果,但也会在其能观察到的范围之外产生平铺伪影。70×70的PatchGAN会在空间和光谱(色彩丰富度)维度上强制产生锐利的输出,即使是不正确的。完整的286×286的ImageGAN在视觉上与70×70的PatchGAN的结果相似,但根据我们的FCN-score指标(表2)略低一些。请参阅 https://phillipi.github.io/pix2pix/ 获取其他示例。

表2:在Cityscapes标签→照片任务上,不同判别器感受野大小的FCN分数。请注意,输入图像为256×256像素,较大的感受野大小通过填充零来实现。

PixelGAN对空间清晰度没有影响,但确实增加了结果的色彩丰富性(在图6中定量)。例如,图5中的公共汽车在使用L1损失进行训练时被涂成灰色,但在使用PixelGAN损失时变成了红色。颜色直方图匹配是图像处理中的常见问题[46],而PixelGAN可能是一个有前景的轻量级解决方案。

图6:cGAN的颜色分布匹配特性,在Cityscapes数据集上进行测试。(参考原始GAN论文[22]的图1)。请注意,直方图交叉分数主要受高概率区域的差异影响,在图中无法察觉,因为图中显示的是对数概率,因此强调低概率区域的差异。

使用16×16的PatchGAN足以促使输出清晰,并实现良好的FCN分数,但也会导致平铺伪影。70 × 70的PatchGAN减轻了这些伪影问题,并实现了类似的分数。超越这一点,达到完整的286 × 286的ImageGAN并没有显著提高结果的视觉质量,实际上FCN分数显著降低(表2)。这可能是因为ImageGAN具有比70 × 70的PatchGAN更多的参数和更大的深度,可能更难训练。

全卷积转换的一个优势是,固定大小的补丁鉴别器可以应用于任意大小的图像。我们还可以在比训练图像更大的图像上对生成器进行卷积。我们在地图↔航拍照片任务上进行了测试。在对256×256图像进行生成器训练后,我们在512×512图像上对其进行测试。图7中的结果展示了这种方法的有效性。

图7:在512x512分辨率上的Google Maps示例结果(模型在256x256分辨率图像上训练,在测试时在较大图像上进行了卷积)。为了清晰起见进行了对比度调整。

4.5. 感知验证

我们在地图↔航拍照片和灰度→彩色任务上验证了结果的感知逼真度。地图↔照片的AMT实验结果如表3所示。我们方法生成的航拍照片在18.9%的试验中欺骗了参与者,明显高于L1基线,后者产生模糊的结果,几乎从未欺骗过参与者。相反,在照片→地图方向上,我们的方法在6.1%的试验中欺骗了参与者,与L1基线的表现没有显著差异(基于bootstrap测试)。这可能是因为地图中的轻微结构错误在视觉上更加明显,而地图具有刚性几何,而航拍照片则更加混乱。

表3:在地图↔航空照片任务上进行的AMT“真实 vs 虚假”测试。

我们在ImageNet[48]上进行了彩色化的训练,并在[58, 32]引入的测试集上进行了测试。我们的方法,使用L1+cGAN损失,在22.5%的试验中欺骗了参与者(表4)。我们还测试了[58]的结果以及他们的方法的变体,该方法使用了L2损失(有关详细信息,请参见[58])。条件GAN的得分与[58]的L2变体相似(通过bootstrap测试的差异不显著),但未达到[58]的完整方法水平,在我们的实验中,后者在27.8%的试验中欺骗了参与者。我们注意到他们的方法专门设计用于在彩色化方面表现良好。

表4:在上色任务上进行的AMT“真实 vs 虚假”测试。

图8:条件GAN与[58]中的L2回归和[60]中的完整方法(通过重新平衡进行分类)的上色结果对比。cGAN可以产生引人注目的上色效果(前两行),但有一个常见的失败模式,即生成灰度或去饱和的结果(最后一行)。

4.6. 语义分割

条件性GAN似乎在输出高度详细或照片般的问题上是有效的,这在图像处理和图形任务中很常见。那么对于输出比输入更简单的视觉问题,如语义分割,情况如何呢?

为了开始测试这一点,我们在城市景观照片→标签上训练了一个cGAN(带/不带L1损失)。图11显示了定性结果,定量分类准确性在表5中报告。有趣的是,没有L1损失进行训练的cGAN能够在合理的精度下解决这个问题。据我们所知,这是第一个成功生成“标签”的GAN演示,这些标签几乎是离散的,而不是具有连续变化的“图像”2。尽管cGAN取得了一些成功,但它们远未成为解决这个问题的最佳方法:仅使用L1回归得到的分数比使用cGAN要好,如表5所示。我们认为对于视觉问题,目标(即预测与地面真值接近的输出)可能比图形任务的目标更少模糊,而像L1这样的重建损失基本足够。

表5:在城市景观数据集上进行的照片→标签任务的性能。

4.7. 社区驱动的研究

自论文和我们的pix2pix代码库首次发布以来,Twitter社区,包括计算机视觉和图形领域的从业者以及艺术家,已经成功地将我们的框架应用于多种新颖的图像到图像转换任务,远远超出了原始论文的范围。图10仅展示了#pix2pix标签下的一些示例,例如素描→肖像、”Do as I Do”姿势转移、深度→街景、背景去除、调色板生成、素描→宝可梦,以及广受欢迎的#edges2cats。

图9:我们方法在几个任务上的结果(数据来自[42]和[17])。请注意,草图→照片的结果是由在自动边缘检测上训练并在人工绘制的草图上测试的模型生成的。请查看在线材料以获取额外的示例。

图10:基于我们的pix2pix代码库开发的在线社区示例应用:#edges2cats [3] 由Christopher Hesse,Sketch → Portrait [7] 由Mario Kingemann,“Do As I Do” 姿势转换 [2] 由Brannon Dorsey,Depth→ Streetview [5] 由Jasper van Loenen,背景去除 [6] 由Kaihu Chen,调色板生成 [4] 由Jack Qiao,以及Sketch→ Pokemon [1] 由Bertrand Gondouin。

图11:将条件性GAN应用于语义分割。cGAN生成锐利的图像,乍一看与真实情况相似,但实际上包含许多小型幻像对象。

5. 结论

本文的结果表明,条件性对抗网络是许多图像到图像转换任务的一种有前途的方法,尤其是涉及高度结构化图形输出的任务。这些网络学习了适应特定任务和数据的损失,使它们适用于各种不同的情境。

致谢

我们感谢Richard Zhang、Deepak Pathak和Shubham Tulsiani的有益讨论,感谢Saining Xie为HED边缘检测器提供帮助,以及在线社区在探索许多应用并提出改进意见方面的贡献。本工作部分得到了NSF SMA-1514512、NGA NURI、IARPA通过空军研究实验室、Intel Corp、Berkeley Deep Drive以及Nvidia的硬件捐赠的支持。

REFRENCE

  1. Bertrand Gondouin. https://twitter.com/bgondouin/status/818571935529377792. Accessed, 2017-04-21.
  2. Brannon Dorsey. https://twitter.com/brannondorsey/status/806283494041223168. Accessed, 2017-04-21.
  3. Christopher Hesse. https://affinelayer.com/pixsrv/. Accessed: 2017-04-21.
  4. Jack Qiao. http://colormind.io/blog/. Accessed: 2017-04-21.
  5. Jasper van Loenen. https://jaspervanloenen.com/neural-city/. Accessed, 2017-04-21.
  6. Kaihu Chen. http://www.terraai.org/imageops/index.html. Accessed, 2017-04-21.
  7. Mario Klingemann. https://twitter.com/quasimondo/status/826065030944870400. Accessed, 2017-04-21.
  8. A. Buades, B. Coll, and J.-M. Morel. A non-local algorithm for image denoising. In CVPR, volume 2, pages 60–65. IEEE, 2005.
  9. L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. Semantic image segmentation with deep convolutional nets and fully connected CRFs. In ICLR, 2015.
  10. T. Chen, M.-M. Cheng, P. Tan, A. Shamir, and S.-M. Hu. Sketch2photo: internet image montage. ACM Transactions on Graphics (TOG), 28(5):124, 2009.
  11. M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth, and B. Schiele. The Cityscapes Dataset for semantic urban scene understanding. In CVPR, 2016.
  12. E. L. Denton, S. Chintala, R. Fergus, et al. Deep generative image models using a Laplacian pyramid of adversarial networks. In NIPS, pages 1486–1494, 2015.
  13. A. Dosovitskiy and T. Brox. Generating images with perceptual similarity metrics based on deep networks. arXiv preprint arXiv:1602.02644, 2016.
  14. A. A. Efros and W. T. Freeman. Image quilting for texture synthesis and transfer. In SIGGRAPH, pages 341–346. ACM, 2001.
  15. A. A. Efros and T. K. Leung. Texture synthesis by non-parametric sampling. In ICCV, volume 2, pages 1033–1038. IEEE, 1999.
  16. D. Eigen and R. Fergus. Predicting depth, surface normals and semantic labels with a common multi-scale convolutional architecture. In Proceedings of the IEEE International Conference on Computer Vision, pages 2650–2658, 2015.
  17. M. Eitz, J. Hays, and M. Alexa. How do humans sketch objects? SIGGRAPH, 31(4):44–1, 2012.
  18. R. Fergus, B. Singh, A. Hertzmann, S. T. Roweis, and W. T. Freeman. Removing camera shake from a single photograph. In ACM Transactions on Graphics (TOG), volume 25, pages 787–794. ACM, 2006.
  19. L. A. Gatys, A. S. Ecker, and M. Bethge. Texture synthesis and the controlled generation of natural stimuli using convolutional neural networks. arXiv preprint arXiv:1505.07376, 2015.
  20. L. A. Gatys, A. S. Ecker, and M. Bethge. Image style transfer using convolutional neural networks. CVPR, 2016.
  21. J. Gauthier. Conditional generative adversarial nets for convolutional face generation. Class Project for Stanford CS231N: Convolutional Neural Networks for Visual Recognition, Winter semester, 2014(5):2, 2014.
  22. I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, 2014.
  23. A. Hertzmann, C. E. Jacobs, N. Oliver, B. Curless, and D. H. Salesin. Image analogies. In SIGGRAPH, pages 327–340. ACM, 2001.
  24. G. E. Hinton and R. R. Salakhutdinov. Reducing the dimensionality of data with neural networks. Science, 313(5786):504–507, 2006.
  25. S. Iizuka, E. Simo-Serra, and H. Ishikawa. Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic Image Colorization with Simultaneous Classification. ACM Transactions on Graphics (TOG), 35(4), 2016.
  26. S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. 2015.
  27. J. Johnson, A. Alahi, and L. Fei-Fei. Perceptual losses for real-time style transfer and super-resolution. 2016.
  28. L. Karacan, Z. Akata, A. Erdem, and E. Erdem. Learning to generate images of outdoor scenes from attributes and semantic layouts. arXiv preprint arXiv:1612.00215, 2016.
  29. D. Kingma and J. Ba. Adam: A method for stochastic optimization. ICLR, 2015.
  30. P.-Y. Laffont, Z. Ren, X. Tao, C. Qian, and J. Hays. Transient attributes for high-level understanding and editing of outdoor scenes. ACM Transactions on Graphics (TOG), 33(4):149, 2014.
  31. A. B. L. Larsen, S. K. Sønderby, and O. Winther. Autoencoding beyond pixels using a learned similarity metric. arXiv preprint arXiv:1512.09300, 2015.
  32. G. Larsson, M. Maire, and G. Shakhnarovich. Learning representations for automatic colorization. ECCV, 2016.
  33. C. Ledig, L. Theis, F. Huszár, J. Caballero, A. Cunningham, A. Acosta, A. Aitken, A. Tejani, J. Totz, Z. Wang, et al. Photo-realistic single image super-resolution using a generative adversarial network. arXiv preprint arXiv:1609.04802, 2016.
  34. C. Li and M. Wand. Combining Markov random fields and convolutional neural networks for image synthesis. CVPR, 2016.
  35. C. Li and M. Wand. Precomputed real-time texture synthesis with Markovian generative adversarial networks. ECCV, 2016.
  36. J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, pages 3431–3440, 2015.
  37. M. Mathieu, C. Couprie, and Y. LeCun. Deep multi-scale video prediction beyond mean square error. ICLR, 2016.
  38. M. Mirza and S. Osindero. Conditional generative adversarial nets. arXiv preprint arXiv:1411.1784, 2014.
  39. A. Owens, P. Isola, J. McDermott, A. Torralba, E. H. Adelson, and W. T. Freeman. Visually indicated sounds. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2405–2413, 2016.
  40. D. Pathak, P. Krahenbuhl, J. Donahue, T. Darrell, and A. A. Efros. Context encoders: Feature learning by inpainting. CVPR, 2016.
  41. A. Radford, L. Metz, and S. Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv preprint arXiv:1511.06434, 2015.
  42. R. S. Radim Tylecek. Spatial pattern templates for recognition of objects with regular structure. In Proc. GCPR, Saarbrucken, Germany, 2013.
  43. S. Reed, Z. Akata, X. Yan, L. Logeswaran, B. Schiele, and H. Lee. Generative adversarial text to image synthesis. arXiv preprint arXiv:1605.05396, 2016.
  44. S. Reed, A. van den Oord, N. Kalchbrenner, V. Bapst, M. Botvinick, and N. de Freitas. Generating interpretable images with controllable structure. Technical report, Technical report, 2016.
  45. S. E. Reed, Z. Akata, S. Mohan, S. Tenka, B. Schiele, and H. Lee. Learning what and where to draw. In Advances In Neural Information Processing Systems, pages 217–225, 2016.
  46. E. Reinhard, M. Ashikhmin, B. Gooch, and P. Shirley. Color transfer between images. IEEE Computer Graphics and Applications, 21:34–41, 2001.
  47. O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. In MICCAI, pages 234–241. Springer, 2015.
  48. O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. Imagenet large scale visual recognition challenge. IJCV, 115(3):211–252, 2015.
  49. T. Salimans, I. Goodfellow, W. Zaremba, V. Cheung, A. Radford, and X. Chen. Improved techniques for training GANs. arXiv preprint arXiv:1606.03498, 2016.
  50. Y. Shih, S. Paris, F. Durand, and W. T. Freeman. Data-driven hallucination of different times of day from a single outdoor photo. ACM Transactions on Graphics (TOG), 32(6):200, 2013.
  51. D. Ulyanov, A. Vedaldi, and V. Lempitsky. Instance normalization: The missing ingredient for fast stylization. arXiv preprint arXiv:1607.08022, 2016.
  52. X. Wang and A. Gupta. Generative image modeling using style and structure adversarial networks. ECCV, 2016.
  53. Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. IEEE Transactions on Image Processing, 13(4):600–612, 2004.
  54. S. Xie, X. Huang, and Z. Tu. Top-down learning for structured labeling with convolutional pseudoprior. 2015.
  55. S. Xie and Z. Tu. Holistically-nested edge detection. In ICCV, 2015.
  56. D. Yoo, N. Kim, S. Park, A. S. Paek, and I. S. Kweon. Pixel-level domain transfer. ECCV, 2016.
  57. A. Yu and K. Grauman. Fine-Grained Visual Comparisons with Local Learning. In CVPR, 2014.
  58. R. Zhang, P. Isola, and A. A. Efros. Colorful image colorization. ECCV, 2016.
  59. J. Zhao, M. Mathieu, and Y. LeCun. Energy-based generative adversarial network. arXiv preprint arXiv:1609.03126, 2016.
  60. Y. Zhou and T. L. Berg. Learning temporal transformations from time-lapse videos. In ECCV, 2016.
  61. J.-Y. Zhu, P. Kr¨ahenb¨uhl, E. Shechtman, and A. A. Efros. Generative visual manipulation on the natural image manifold. In ECCV, 2016.
    rsarial network. arXiv preprint arXiv:1609.03126, 2016.
  62. Y. Zhou and T. L. Berg. Learning temporal transformations from time-lapse videos. In ECCV, 2016.
  63. J.-Y. Zhu, P. Kr¨ahenb¨uhl, E. Shechtman, and A. A. Efros. Generative visual manipulation on the natural image manifold. In ECCV, 2016.

  1. 我们通过调整GAN判别器的深度来实现这种补丁大小的变化。有关此过程的详细信息以及判别器架构,请参阅在线的补充材料。 ↩︎

  2. 请注意,我们训练时使用的标签图并不完全是离散值,因为它们是通过双线性插值从原始地图调整大小并保存为JPEG图像的,其中可能存在一些压缩伪影。 ↩︎

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【资源说明】 基于对抗生成网络GAN生成奖杯图像python源码+项目说明(图像处理大作业).zip 准备工作 1. 按照项目说明.md, 进行配置 2. 下载数据集,文件夹改名为raw_data,路径为data/raw_data/pos和data/raw_data/pos 3. 执行prepare.py进行数据的预处理,raw2jpg()将原始图像统一为RGB格式,jpg2tensor()将jpg转成tensor格式,并保证图片tensor大小[3, H, W]为三通道 4. 以cgan.py为例,我用data/cup_plus/dataset.py里的Cup类定义了奖杯数据集,人工指定了label,可参照该格式进行改写 5. 其他操作详见README.md,需要注意的是我改了项目结构,这是为了能顺利导入Cup类 关于cup_plus 1. pos类去除了奇形怪状的,黑色背景的,歪的,非居中的,重复的奖杯(高质量) 2. 图像分辨率较高,需要选择合适的预处理,改进网络结构(高分辨率) 傻瓜式 1. 下数据集, 名字改成raw_data 2. 预处理 自己电脑的内存不够,因此对数据集做一个resize,顺便统一下分辨率 ``` python cd data/cup_plus python3 prepare.py cd ../../ ``` 1. 训练 ``` python python3 wgan.py ``` 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远哥挺乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值