英语原文共 16 页,剩余内容已隐藏,支付完成后下载完整资料
基于条件对抗网络的图像到图像转换
Jun-Yan朱
Tinghui周
菲利普·伊索拉
阿列克谢·a·埃弗
伯克利人工智能研究(BAIR)实验室
加州大学伯克利分校
街景标签
标签外观
BW颜色
输入
空中映射
输出
输入
昼夜输出
输入
图片边缘输出
输入
输出
输入
输出
输入
输出
图1:图像处理、图形和视觉中的许多问题涉及到将输入图像转换成相应的输出图像。这些问题通常使用特定于应用程序的算法来处理,即使设置总是相同的:将像素映射到像素。有条件对抗网是一种通用的解决方案,似乎对各种各样的这些问题都很有效。这里我们展示了该方法的几个结果。在每种情况下,我们都使用相同的架构和目标,只是在不同的数据上训练。
摘 要
我们研究条件对抗网络作为图像到图像转换问题的通用解决方案。这些网络不仅学习从输入图像到输出图像的映射,而且学习一个损失函数来训练这种映射。这使得对传统上需要非常不同的损失公式的问题采用相同的通用方法成为可能。我们演示了这种方法在从标签地图合成照片、从边缘地图重建对象和彩色图像等任务中是有效的。作为一个社区,我们不再手工设计我们的地图功能,这项工作表明,我们也可以在不手工设计我们的损失功能的情况下获得合理的结果。
图像处理、计算机图形学和计算机视觉中的许多问题都可以归结为将输入图像“转换”为相应的输出图像。只是一个概念,可以用英语或法语表达,一个场景可以被渲染为RGB图像、梯度场、边缘图、语义标签图等。与语言的自动翻译类似,我们将图像到图像的自动翻译定义为将场景的一种可能表示转换为另一种,语言翻译困难的一个原因是语言之间的映射很少是一对一的——任何给定的概念在一种语言中都比在另一种语言中更容易表达。类似地,大多数图像到图像的转换问题要么是多对一(计算机视觉)——将照片映射到边缘、段或语义标签,要么是一对多(计算机图形)——将标签映射或稀疏的用户输入映射到真实图像。传统上,每一项任务都是用单独的、特殊用途的机制(如[7,15,11,3,37,21,26,9,42,46])来处理的,尽管实际设置总是相同的:逐像素预测。我们在本文中的目标是为所有这些问题开发一个共同的框架。
社区已经在这个方向上迈出了重要的一步,卷积神经网络(cnn)已经成为各种图像预测问题背后的常用工具。cnn学会了最小化损失函数——这是一个评分结果质量的目标——尽管学习过程是自动的,但仍然需要大量的人工努力来设计有效的损失。换句话说,我们仍然需要告诉CNN我们希望它最小化什么。但是,就像迈达斯一样,我们必须小心我们的愿望!如果我们采用一种朴素的方法,要求CNN最小化预测像素与ground truth像素之间的欧氏距离,则往往会产生模糊的结果[29,46]。这是因为欧氏距离是通过平均所有可能的输出来最小化的,这导致模糊。用损失函数迫使CNN做我们真正想做的事
-例如,输出清晰、逼真的图像-是一个开放的问题,通常需要专业知识。
如果我们能够指定一个高级目标,比如“让输出与现实难以区分”,然后自动学习一个适合于满足这一目标的损失函数,那将是非常可取的。幸运的是,这正是最近提出的生成对抗网络(GANs)所做的[14,5,30,36,47]。GANs学习一个损失,试图分类输出的图像是真的或假的,同时训练生成模型,以最小化这种损失。模糊图像是不能容忍的,因为它们看起来明显是假的。因为GANs学习的是与数据相适应的损失,所以它们可以应用于许多传统上需要非常不同类型的损失函数的任务。
在本文中,我们研究了条件设置下的gan。正如GANs学习数据的生成模型,条件GANs (cgan)学习条件生成模型[14]。这使得cgan适合于图像到图像的转换任务,在该任务中,我们以输入图像为条件,生成相应的输出图像。
在过去的两年中,gan得到了大力的研究,我们在本文中探索的许多技术都是以前提出的。尽管如此,早期的论文主要集中在特定的应用上,而对于以图像为条件的gan作为图像到图像转换的通用解决方案的有效性仍不清楚。我们的主要贡献是证明在各种各样的问题上,条件gan产生合理的结果。我们的第二个贡献是提供一个简单的框架,足以实现良好的结果,并分析几个重要架构选择的效果。代码可以在https://github.com/phillipi/pix2pix上找到。
1.相关工作
图像建模的结构损失图像到图像的平移问题经常被表述为逐像素类化或回归[26,42,17,23,46]。这些公式将输出空间视为“非结构化的”,即在给定的输入图像中,每个输出像素被认为是有条件地独立于所有其他像素的。条件gan学习的是结构性损失。结构性损失不利于产出的联合配置。大量文献考虑了这类损失,流行的方法包括条件随机场[2],SSIM度量[40],特征匹配[6],非参数损失[24],卷积伪先验[41],以及基于匹配协方差统计的损失[19]。我们的条件GAN的不同之处在于,损失是习得的,理论上,可以惩罚任何可能的输出和目标之间的不同结构。
我们不是第一个在条件设置中应用gan的人。以前的工作已经将gan设置为离散标签[28],文本[32],实际上还有图像。图像条件模型已经解决了着色[29],从法线映射的图像预测[39],由用户约束引导的图像处理[49],未来帧预测[27],未来状态预测[48],产品照片生成[43],以及风格传递[25]。这些方法都是为特定的应用量身定制的。我们的框架的不同之处在于没有任何东西是特定于应用程序的。这使得我们的设置比其他大多数设置要简单得多。
我们的方法在生成器和鉴别器的几个架构选择上也不同于以前的工作。与以往的工作不同,我们的生成器使用了基于“U-Net”的架构[34],而我们的鉴别器使用了卷积的“PatchGAN”分类器,它只在图像补丁的尺度上惩罚结构。类似的Patch- GAN架构之前在[25]中也提出过,目的是获取本地风格的统计信息。在这里,我们展示了这种方法在更广泛的问题上是有效的,我们研究了改变补丁大小的影响。
2.方法
GANs是生成模型,它学习从随机噪声向量z到输出图像y: G: z→y[14]的映射。相比之下,有条件的甘斯学习从观测到的图像映射x和z随机噪声向量,y:旅客:{x, z}→y。发电机G是训练有素的生产不能区别于“真实”的输出图像广告- versarially训练discrimintor, D,训练以及可能在检测发电机的“假货”。这个培训过程如图2所示。
2.1。客观的
条件GAN的目标可以表示为
负面的例子
正面的例子
真的还是假的?
真的还是假的?
G
G
试图合成假图像来愚弄D
D试图识别假货
D
D
图2:训练有条件的GAN来从地图预测航空照片。鉴别器D学习区分实数对和合成对。发生器学会了欺骗鉴别器。与无条件GAN不同,发生器和鉴别器都观察输入图像。
G试图使目标最小化,而对手D试图使目标最大化,也就是Glowast; =参数分G 马克斯D lcGAN (G, D)。
为了检验条件反射鉴别器的重要性,我们还将其与鉴别器不观察x的无条件变体进行比较:
以前研究条件GAN的方法发现,将GAN目标与更传统的损失(如L2距离[29])混合是有益的。鉴别器的工作保持不变,但发生器的任务不仅是欺骗鉴别器,而且在L2意义上接近地面真值输出。我们也探索了这个选项,使用L1距离而不是L2作为L1,可以减少模糊:
我们的最终目标是
* Glowast;= arg min Gmax DLcGAN (G, D) lambda;LL1(G)。(4)
如果没有z,网络仍然可以学习x到y的映射,但会产生确定性的输出,因此不能匹配除delta函数以外的任何分布。过去的有条件gan已经承认了这一点,除了x之外,还提供了高斯噪声z作为生成器的输入(例如,[39])。在最初的实验中,我们没有发现
Encoder-decoder
U-Net
图3:生成器架构的两种选择。“U-Net”[34]是一个编码器-解码器,在编码器和解码器堆栈的镜像层之间具有跳过连接。
这个策略是有效的-发电机只是学会了忽略噪音-这与Mathieu等人[27]是一致的。相反,对于我们最终的模型,我们只以dropout的形式提供噪声,并在训练和测试时应用于我们的生成器的几个层上。尽管有退出噪声,我们观察到在我们的网的输出中有很小的随机性。设计产生随机输出的条件gan,从而捕获它们所建模的条件分布的全部熵,是目前工作尚未解决的一个重要问题。
2.2.网络体系结构
我们从[30]中改编了我们的生成器和鉴别器架构。生成器和鉴别器都使用形式为卷积- batchnorm - relu[18]的模块。附录中提供了该体系结构的详细信息,下面将讨论其关键特性。
2.2.1带跳变的发电机
图像到图像的转换问题的一个定义特征是,它们将高分辨率的输入网格映射到高分辨率的输出网格。此外,对于我们考虑的问题,输入和输出表面外观不同,但都是相同的底层结构的渲染。因此,输入中的结构与输出中的结构大致对齐。我们围绕这些考虑来设计生成器架构。
在这一领域,许多以前的解决方案[29,39,19,48,43]都使用了编码器-解码器网络[16]。在这样的网络中,输入通过一系列层,并逐步向下采样,直到瓶颈层,此时过程颠倒(图3)。这样的网络要求所有信息流通过所有层,包括瓶颈层。对于许多图像平移问题,在输入和输出之间有大量的低级信息共享,这将是
希望直接在网络上传送这些信息。例如,在图像着色的情况下,输入和输出共享显著边缘的位置。
为了给生成器一种方法来绕过这样的信息瓶颈,我们按照“U-Net”[34]的一般形状添加了跳跃连接(图3)。具体地说,我们在每一层i和n - i之间添加了跳跃连接,其中n是总层数。每个跳跃式连接只是简单地将第i层的所有通道与第n - i层的通道连接起来。
2.2.2马尔可夫鉴别器(PatchGAN)
众所周知,L2损失-和L1,见图4 -对图像生成问题[22]产生模糊的结果。尽管这些损失并不能促进高频信号的清晰,但在许多情况下,它们仍然能准确地捕捉到低频信号。对于这种情况下的问题,我们不需要一个全新的框架来加强低频率的正确性。L1已经做的。
这就限制了GAN鉴别器仅建模高频结构,依赖L1项来强制低频正确性(Eqn. 4)。为了建模高频,将我们的注意力限制在局部图像块的结构上就足够了。因此,我们设计了一个鉴别器架构-我们称之为PatchGAN
-只在补丁的规模上惩罚结构。这个鉴别器试图区分图像中每个N times; N的patch是真的还是假的。我们在图像上卷积运行这个鉴别器,平均所有响应以提供D的最终输出。
在第3.4节中,我们演示了N可以比图像的全尺寸小得多,但仍然可以产生高质量的结果。这是有利的,因为较小的PatchGAN参数更少,运行更快,并且可以应用于任意大的图像。
这种鉴别器有效地将图像建模为马尔可夫随机场,假设间隔大于一个patch直径的像素之间具有独立性。这一联系之前在[25]中被探讨过,也是texture[8,12]和style[7,15,13,24]模型中常见的假设。因此,我们的PatchGAN可以被理解为一种纹理/风格的损失。
2.3。优化和推理
为了优化我们的网络,我们遵循来自[14]的标准方法:我们在D上交替执行一个梯度下降步骤,然后在g上执行一个梯度下降步骤。我们使用小批量SGD并应用Adam求解器[20]。
在推断时,我们以与训练阶段完全相同的方式运行发电网络。这与通常的协议不同,我们在测试时应用退出我们使用测试批的统计信息,而不是训练批的聚合统计信息来应用批归一化[18]。当批大小设置为1时,这种批归一化方法被称为“实例归一化”,并已被证明在图像生成任务[38]中是有效的。在我们的实验中,我们在某些实验中使用批大小为1,在其他实验中使用批大小为4,注意到这两种条件之间几乎没有差别。
3.实验
为了探索条件GANs的普遍性,我们在各种任务和数据集上测试了该方法,包括图像任务(如照片生成)和视觉任务(如语义分割):
bull;语义标签harr;photo,在cityscape数据集[4]上训练。
bull;建筑标签→照片,训练在CMP正面- cade数据集[31]。
地图harr;航拍照片,训练从谷歌Maps采集的数据。
bull;BW→彩色照片,训练[35]。
bull;边→照片,训练来自[49]和[44]的数据;使用HED边缘检测器[42]加上后处理生成二进制边缘。
bull;草图→照片:测试边缘→从[10]绘制草图上的照片模型。
bull;白天→晚上,训练[21]。
关于这些数据集的训练细节在附录中提供
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[603184],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。