GAN Notes
Image-to-Image Translation with Conditional Adversarial Networks
pix2pix: Code
- 生成器网络:UNet,有助于生成更好的图像细节
- 判别器网络:条件PatchGAN 70x70
- 目标函数函数:
- Conditional GAN Loss
- GAN Loss
- L1 Loss
- 优化目标
- 需要的数据量: 100~400张图片
- 训练参数设置
- 优化方法:Adam
- 学习率: 0.0002
- 动量参数:
- 不同 Loss 函数选择对结果的影响
- 一般情况下 L1+cGAN 结果最佳
- L1 Loss 只能使到整体上颜色和形状分布接近真实图像,高频细节会丢失,生成的图像比较模糊
- cGAN Loss 有助于恢复图像高频细节,但是也会产生一些不存在的结构
- 应用
- label -> image 根据语义标注图生成比较真实的图片
- edge -> image 根据图像边缘轮廓图像生成相应彩色图片
- gray -> colorful 对灰度图像上色
- Day -> Night 根据白天图像生成夜晚图像,文中展示的效果较差
- 缺点
- pix2pix 训练图像必须是一一对应的,输入图像与生成图像在边缘、轮廓和结构上是一样的,输入过多的细节可能会导致生成的图像颜色混乱
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
摘要: 图像到图像的迁移变换是计算机视觉和图形学中常见的问题,以前的方法多数使用配对的图像,输入图像和金标图像必须是对齐的。但是通常情况下配对的数据很少,本文的目的在于提供一种非配对图像的转换,也就是通过深度学习的方式得到一个映射 , 也就是说 得到的分布于 是相同的。训练过程中,本文需要训练 的逆变换 , 由此引入一种循环训练方式
图像到图像的风格迁移,可以看做是从一系列图像中提取某些特征,然后将这些特征转换到另外一种风格的图像。
-
基本原理
如下图(a) 所示,我们将训练2个生成器 和 分别完成图像域 X 到 Y 的转换和 Y 到 X 的转换。相应地,我们需要两个判别器 和 ,分别促使 得到的分布更加接近 的分布以及 更近接近于 的分布。 -
公式
- 对抗 (Adversarial) Loss
- 循环一致性 (Cycle Consistency) Loss
- 目标函数
-
网络结构
生成器采用 Perceptual losses for real-time style transfer and super-resolution 中的网络结构,包括2个步长为2的卷积层、若干残差模块、2个步长为 的微步卷积 (fractionally strided convolutions ),其实就是转置卷积(nn.ConvTranspose2d)残差模块的数量依据图像分辨率而定,例如 和 图像分别有6个残差模块和9个残差模块。判别器都采用 的 PatchGAN. -
训练方法
由于GAN Loss 中的 运算会使训练不稳定,我们使用 least-squares loss,也就是对于 GAN loss ,在训练 G 时最小化目标函数为 , 训练 D 时最小化目标函数为
训练过程中判别器的训练使用的是前50步生成的数据,而不是当前生成器生成的数据,使用 Aadm 优化器,Batch_size=1, lr=0.0002, 前100轮学习率不变,后100轮学习率线性下降
应用
- 图像风格迁移
- 物体形态变换
- 季节变换
- 图像增强