Image-to-Image Translation with Conditional Adversarial Networks

条件生成对抗网络(cGAN)用于图像风格迁移

Image-to-Image Translation with Conditional Adversarial Networks

原文链接:http://arxiv.org/pdf/1611.07004

通过这篇文章介绍一下cGAN的思想。

这篇文章的主要贡献:

现实中有大量的图像风格迁移任务。根据任务的不同,往往需要选择不同的框架,这给开发者造成了很大的困难。所以本文试图提出一种通用框架,为绝大多数图像风格迁移任务提供解决方案。下图是一些使用cGAN的例子。
在这里插入图片描述

通过以下四个点来介绍cGAN。

第一,cGAN中“条件”的含义。

我们与普通GAN对比来看。

GAN:

  • 生成器G: z->y , 使用噪声生成图片。
  • 判别器D: 识别真实图像和生成图像,也就是说一次识别一张图像的真假。
  • 优化对象公式:在这里插入图片描述

cGAN:

  • 生成器G: (z,x)->y , 使用噪声和输入图片生成风格迁移的图片。
  • 判别器D: 通过输入一对图像识别真假,如下图。在这里插入图片描述
  • 优化对象公式:在这里插入图片描述

对比之下就可以体现出cGAN与GAN的主要不同了。

第二,G使用U-Net代替自编码器。

在这里插入图片描述
上图分别表示自编码器和U-Net结构。可以看出,自编码器要求信息被压缩到很小维度后,整个信息流都是流通的,或者说尽量是无损的。可以想象,这样是比较困难的。U-Net(如果有n层)将第i层与第n-i层连接(指把对应层的特征结合在一起),加强了信息的流通,这样G的功能就更加强大了。

第三,D使用了PatchGAN结构。(这句话可能不太严谨,毕竟D不可能是GAN嘛,主要是方便大家理解)

所谓PatchGAN主要就是对输入D的图像进行分块操作,对每一个块进行判决,最后对所有块的判决评分取平均就实现了对原图的判决(实验证明70x70的块大小最合适)。相比于不分块操作,主要有两个好处:

  • 既然可以分块,那么网络对于图像大小就没有什么要求了。这点类似于FCNN。
  • 对图像块(比较小)进行判决,网络参数和规模自然减小了。

第四,引入了L1损失。

网络训练过程中,最后的优化对象如公式所示:
在这里插入图片描述
其中,
在这里插入图片描述

可以看出,L1损失代表真实图像和生成图像差的绝对值。可以这样理解,优化目标的前半部分希望GAN能够重构图像的低频部分,那么后半部分的L1则对生成图像的高频进行一定的约束。至于为何不适用L2,作者说L1会减少模糊(至于为什么,还希望有大佬指点)。

以上四个部分就是cGAN中最关键的几个地方。实验证明,以上四点缺一不可。

总结:在有良好的成对数据集的情况下,cGAN是一个图像风格迁移的良好的baseline。

欢迎讨论 欢迎吐槽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值