1. Introduction

找到一个统一的框架来处理从图片生成图片(image-to-image translation)的任务,其中包含由label map合成图片,由eage maps 重建目标,图片上色。

  1. Related Work

CNN存在的问题:人工干预如何最小化损失。如果计算预测图片和真实图片的欧氏距离,结果将会非常模糊,因为欧氏距离在最小化看似正确的结果的平均值,这会导致结果模糊。

本文基于CGAN,将输入图像作为条件,生成与之相关的输出图像。不同于之前的一些针对特定任务的特定结构,本文的框架可以完成不同类的多种任务,只要是基于image-to-image.

本文CGAN的生成器使用U-Net,判别器使用PatchGAN的分类器,这个分类器只对图像块尺度上的结构进行惩罚。

  1. Method

3.1 Objective | 损失函数
之前有论文提出,生成器不仅要骗过判别器,还要用L2损失来使生成图像接近ground truth output.本文使用L1损失而不是L2,因为L1可以减小产生模糊的现象。
LL1(G) = Ex,y,z[ || y - G(x , z) ||1 ]
生成器最终的目标损失为
G* = arg min(G)max(D) LcGAN(G,D)+ λ \lambda λLL1(G).
之所以要有随机噪声z的输入,是为了生成不确定输出。
但在实验过程中发现模型在学习过程中总是忽略初始噪声,所以在本模型中,以Dropout的形式提供噪声,并应用在生成器的多层上。尽管这样,输出还是只体现了很小的随机性。
3.2 Network architectures
convolution-BatchNorm-ReLu
3.2.1 Generator with skips | 跳步生成
image-to-image的一个问题是输入和输出都是高分辨率图片,很多工作用encoder-decoder网络来解决,即不停下采样再上采样。这种网络要求所有的图片信息通过网络结构,包括大量低级信息。比如图片上色中图片里明显边缘的位置,其实可以直接将这些信息通过网络,而不是让它们也一层一层的经过网络。
因此设计出skip connections,结构如U-Net一样,在第 i 层和第 n-i 层添加连接,这些连接简单的将每个channels进行全连接。
3.2.2 PatchGAN
在图片生成中使用L1和L2损失,会导致生成模糊的结果。虽然在高频结构上的结果不好,但在低频上表现还不错。因此这里只用判别器来判别高频结构,用L1来判别低频结构。
PatchGAN对N*N大小的每个图片块分为real和fake,使用卷积(滑动窗口)进行,最后对所有结果进行平均得到最终结果。
较小的PatchGAN具有更少的参数,但生成的结果依然不错,且运行速度快,可以应用到任意大小的图片上。
3.3 Optimization and inference
最大化logD(x, G(x, z))
优化D时将损失除以2,以降低D相对于G的学习率。
miniBatch SGD
Adam lr=0.0002 , β \beta β1=0.5 , β \beta β2=0.999
测试时使用Dropout,并使用测试数据的均值和方差进行批量归一化。这种批大小为1的归一化被称为(instance normalization)实例归一化,在生成任务中很有效。
4. Experiments
4.1 Evaluation metrics
评估生成图片的质量一直是个挑战。

为了更好的从整体方面评估生成的结果,使用两个方法。
第一个是用ATM(Amazon Mechanical Turk)来分辨真假。对于图片上色和图片生成,最终目标为骗过人类,因此使用ATM来评估特征生成,图片生成(aerial photo generation)和图片上色。
第二个是用类似于IS的已有识别系统来测试是否能够识别(特征或类别)。
注:ATM为辅助人工智能的人力,比如标注,识别。
4.1.1
ATM感知研究:在每个试验中,每个图片出现一秒,由Turk(识别员一样的存在)来标定真假。每个环节的前十张图片Turks会得到反馈(对工人的训练),后面的四十张图片没有反馈。每个环节只评估一个算法。每个Turk只能完成一个环节。每个算法由50个Turks来评估。
对于图片上色,真实图片和生成图片都来自于同一灰度级的输入。
For our colorization experiments, the real and fake images were generated from the same grayscale input.
???Why do real images also need to be generated???
对于特征生成图片(map↔aerial photo),真实图片和生成图片不是由相同的输入产生的,这么做的目的是让这一任务更难并避免发生floor-level results.训练时使用256256的图片,测试时使用512512的图片,然后进行下采样至256256并让Turks进行判断。
对于图片上色,在256
256的图片上进行训练和测试,并以相同分辨率让Turks分辨。
4.1.2 FCN-Score
类似于IS,采用FCN-8s结构进行语义识别。并在城市风景数据集上训练它。然后计算得分,这一得分是测试分类标签的准确率,测得的正确类别标签个数 / 所有标签个数 。

4.2 目标函数的分析
为了探究清楚目标函数中L1项、GAN损失项哪个更重要,并比较有条件的判别器和无条件的判别器,进行了消融实验(ablation studies)。
注:消融实验:类似于控制变量法,为了探究在有多个变量影响的实验中哪个变量的影响更重要。
图4:

展示了不同目标函数下的结果
只用L1,结果会模糊;
只用cGAN,图片清晰很多,但引入了一些奇怪的特征(ground truth中没有的)
使用L1 + cGAN,会减少上述的奇怪特征。
评估模型时使用FCN-score,有GAN结构的目标得分都很高,证明其生成的图片包含了更多的可识别的结构。本实验还将有条件的判别器换成无条件的,其损失函数不会惩罚输入和输出的不匹配(即生成图片是否包含输入的condition),只会关心真实图片是否看起来像真实的。这个实验的表现很不好,不论输入什么图片,输出都几乎一样。

注意,添加L1会增加输入对于输出的影响,因为L1会根据匹配了输入标签的真实图片和可能没有匹配输入标签的生成图片间的距离进行惩罚。
[Note, however, that adding an L1 term also encourages that the output respect the input, since the L1 loss penalizes the distance between
ground truth outputs, which correctly match the input, and synthesized outputs, which may not.]

图片上色
就像L1会产生模糊图片,因为它不知道将比较突出的边缘放置在哪里,对于颜色也是这样,它无法搞清楚一个像素应该有哪种颜色,因此生成的颜色没有cGANs丰富,而更偏向于生成“平均颜色”。L1会通过选择条件概率密度函数的中间值而不是可能的颜色来减小损失。

4.3 生成器结构
生成器是U-Net结构。
本实验中Encoder-Decoder结构不能够生成逼真的图像。
不管是用L1损失还是cGANs,使用U-Net结构的模型生成的图像都更加真实。

4.4 从PixelGANs到PatchGANs到ImageGANs
探究拥有不同的感受野大小N的判别器的效果,从11的PixelGANs到286286的ImageGANs,本文中的其他环节的实验,如果没有特别说明,都是使用7070的PatchGANs,本环节使用L1+cGAN损失函数。

L1损失下的图片很模糊,并且颜色饱和度很低

使用L1 + cGANs损失,图片的颜色饱和度和锐度都有改善,但会有一些奇怪的结构出现。

70
70 表现很好,286286表现也很好,但在FCN-score上的评估不如7070。这可能是因为286*286的模型拥有太多参数,难以训练的缘故。

PixelGAN在空间锐度上面没有明显改善,但会改善颜色饱和度。
Color Histogram matching是图像处理的普遍问题,PixelGANs可以提供一个简单的改良。

Fully-convolutional translation
PatchGANs的优势是固定大小的patch可以应用于任何大小的图像上。

4.5 Perceptual validation

4.6 语义分割

语义分割方面,在城市风景照的图片->标签任务中,只使用L1损失的Per-pixel-acc和Per-class-acc以及Class-IOU都比cGANs要高。我们认为在可视化任务中(vision problems),目标函数要比图像任务(graphics tasks)更模糊,因此L1损失函数已足够。
猜想:cGANs损失函数的惩罚力度更强会导致过拟合从而导致测试的精确度反而下降?

4.7 社区驱动研究
我们的模型成功得被用于各种图像任务,包括轮廓画猫猫、黑色背景去除、调色板生成、素描->肖像、素描->宝可梦、“Do as I do 动作迁移”和fotogenerator。

  1. 总结
    略。

Paper Reading:Image-to-Image Translation with Conditional Adversarial Networks相关推荐

  1. 《Image-to-Image Translation with Conditional Adversarial Networks》文章翻译

    图1 在图像处理,计算机图形.视觉中,将一幅图输入转换到另一张图输出的过程中存在很多问题.即使这里面的一些设置总是相同的,都是图像像素的映射,但这些问题通常使用特殊应用的算法.CAN似乎能很好的解决各 ...

  2. CVPR2017/图像翻译:Image-to-Image Translation with Conditional Adversarial Networks基于条件对抗网络的图像到图像的翻译

    CVPR2017/图像翻译:Image-to-Image Translation with Conditional Adversarial Networks基于条件对抗网络的图像到图像的翻译 0.摘要 ...

  3. Image-to-Image Translation with Conditional Adversarial Networks 论文翻译

    基于条件对抗网络的图像转换 源论文标题:Image-to-Image Translation with Conditional Adversarial Networks 源论文链接:https://p ...

  4. 【翻译】Image-to-Image Translation with Conditional Adversarial Networks

    条件生成网络实现图对图翻译 原论文标题:Image-to-Image Translation with Conditional Adversarial Networks Isola P, Zhu J ...

  5. pix2pix鼻祖——《Image-to-Image Translation with Conditional Adversarial Networks》论文解析

    今天要说的这篇论文,全名<Image-to-Image Translation with Conditional Adversarial Networks>,来自CVPR2017.这一篇可 ...

  6. [论文笔记]:Image-to-Image Translation with Conditional Adversarial Networks

    Image-to-Image Translation with Conditional Adversarial Networks 论文翻译 摘要 1. 介绍 2. 相关工作 3. 方法 3.1 评估 ...

  7. Image-to-Image Translation with conditional Adversarial Networks ---- Pix-2-Pix

    任务场景 Photos to semantic segmentation Cityscapes labels to photos Colorization Facades labels to phot ...

  8. Image-to-Image Translation with Conditional Adversarial Networks

    论文下载地址:https://arxiv.org/abs/1611.07004 一.摘要 本文研究条件对抗网络作为图像到图像转换问题的通用解决方案.这些网络不仅学习从输入图像到输出图像的映射,还学习了 ...

  9. PatchGAN:Image-to-Image Translation with Conditional Adversarial Networks

    写过很多次博客,但是有关GAN的很少,都快忘记了还要分享对于GAN的心得了,恰巧最近正在重新看之前看过的文章,借此机会也把更多GAN的内容总结成文,帮助自己做好笔记. 文章下载地址:http://op ...

最新文章

  1. oracle 使用netca报错
  2. ups的空开、电缆及电池的配置计算
  3. opencv学习笔记4:获取图像属性
  4. 6_2 铁轨(UVa514)栈
  5. ansible编译httpd playbook示例
  6. OpenVINO Inference Engine之custom Layer自定义算法(VPU版本)
  7. 项目周期一般多久_积木创意:影响小程序开发外包的周期因素有哪些?
  8. MySQL中SELECT语句简单使用 1
  9. 教你怎样做项目开发总结报告[转]
  10. python访问oracle时的问题总结
  11. 高德地图偏移android,关于JS接高德地图API,以及坐标偏移坐标转换(示例代码)
  12. 利用pandas处理二级office的Excel试题(一)
  13. java pdf文件如何转换tiff文件_C#实现TIF图像转PDF文件的方法
  14. 驭势领读 | 《让大象飞》:资本寒冬正好能让市场回归理性
  15. 压缩文件密码破解神器rarcrack
  16. CSP报错运行错误?
  17. llike与rlike
  18. 二手闲置物品交易数据快照
  19. 字节跳动张一鸣:给互联网人才的一些中肯建议!
  20. AoA-ToF(信号到达角-飞行时间)联合估计详解

热门文章

  1. loglog()函数
  2. require.context()的用法
  3. Paravirtualization
  4. 2021全球程序员收入报告出炉
  5. docker mysql 启动命令_Mac 下使用 Docker mysql 运行的容器如果挂载了/var/lib/mysql 不能启动容器...
  6. LaTex引用中文论文
  7. python如何表示小数_小数的定点表示(附python程序)
  8. UEFI Specification 第一章 引言(基于UEFI_Spec_2_9_2021_03_18)
  9. 吸拖一体机和扫地机器人哪个好,吸拖一体机值得买吗
  10. 红米AX6000折腾链路聚合