论文:
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
GitHub:
CycleGAN
讲解:
https://blog.csdn.net/qq_21190081/article/details/78807931 这篇讲的挺清楚的

一图看懂

[CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图1
image.png

优势

domain A和domain B的图片可以互相转化,输入的图片可以是unpaired

网络结构

CycleGAN本质上是两个生成器(Generator A2B和Generator B2A),两个判别器(D_A和D_B)。
生成器采用U-Net,判别器采用LS-GAN。

损失函数

[CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图2
对于半个CycleGAN来说,loss由判别loss和生成loss组成。

  • 判别loss(D_B)
    判断输入是否是真实的domain B图像
    [CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图3
  • 生成loss
    重建的A图像和真实输入的A图像之间的差距,选择了L1 loss
    [CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图4

由半个推整个,整个网络的loss也是由判别loss和生成loss组成。

  • domain-X的判别loss
    [CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图5
  • domain-Y的判别loss
    [CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图6
  • 生成loss
    [CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图7
  • 所有损失
    [CycleGAN]Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks - 图8

整个看下来还是挺好理解的,简单,但效果惊人。