文章目录
- 解决问题
- 创新点
- 算法
- 损失函数
- 判别器
- 实验结果
- 总结
论文:
《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks Jun-Yan》
代码:
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
解决问题
大多图像迁移,需要成对图像,比如Pix2Pix,成对图像即主体目标位置不变,而风格发生变化,然后现实中数据难以达到这种要求,而CycleGAN支持非成对图像之间进行风格迁移。
创新点
作者的目标是学习映射G,使得G(X)与Y难以区分,但是这个映射约束不够,我们将它与逆映射F结合,引入循环一致性损失,F(G(X))=X;
算法
损失函数
CycleGAN包括两个损失:
对抗损失:使得生成图与目标图尽量接近;
循环一致性损失:防止模式坍塌,不同输入对应同一个输出;
以及5.2节提到的identity loss:确保保留输入输出之间颜色位置信息。
对抗损失如式1,其中G为输入源域X到目标域Y的映射,DY为用于判断Y样本生成好坏的判别器;
循环一致性损失如式2,F为目标域Y到源域X的映射,
整体损失函数如式3所示,
identity loss如下式所示,即保证目标域Y输入经过G生成图像也应为Y,
用于防止颜色发生变化,如图9所示,
判别器
CycleGAN中判别器使用70*70个PatchGAN,对每个patch进行分类,损失函数使用L1 Loss
实验结果
艺术品风格迁移
目标之间风格迁移、季节变化
图像转化照片、照片强化。
总结
CycleGAN在颜色、纹理变化任务上迁移比较容易成功,但在需要几何变化的任务上收效甚微,比如猫到狗迁移,可能与生成器架构有关,还有一些失败案例由训练集特征分布引起,比如骑马的人。
作者还观察到成对的训练数据可实现的结果与非配对方法实现的结果之间存在挥之不去的差距。在某些情况下,这种差距可能河南甚至不可能缩小。