简要介绍CycleGAN

本文探讨了 CycleGAN 的理论基础,重点介绍了其如何处理成对与不成对图像的风格迁移问题,以及beta-CycleGAN在无监督金属artifact学习中的应用。通过循环一致性原理,解决了单独优化映射导致的问题。同时,文章详细阐述了整体架构、损失函数及实际应用实例。


原文地址

CycleGAN:
J. Zhu, T. Park, P. Isola and A. A. Efros, “Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks,” 2017 IEEE International Conference on Computer Vision (ICCV), 2017, pp. 2242-2251, doi: 10.1109/ICCV.2017.244.

beta-CycleGAN:
J. Lee, J. Gu and J. C. Ye, “Unsupervised CT Metal Artifact Learning Using Attention-Guided β-CycleGAN,” in IEEE Transactions on Medical Imaging, vol. 40, no. 12, pp. 3932-3944, Dec. 2021, doi:10.1109/TMI.2021.3101363.


一、CycleGAN的理论理解

在这里插入图片描述

目的:图像之间的风格迁移
贡献:不需要成对的配对样本,只需要源域和目标域的图像。

如何定义成对图像呢?
左边为成对图像,两者风格不一样,但内容是一样的,我们还是能看出都是皮鞋、靴子等;右边则是不成对图像,但X,Y两侧都由各自的共同点,左边X都为真实的风景照,右边Y为油画。那如何能利用不成对的图像来训练一个网络,当网络训练好之后,能输入一张风景照,输出一张油画呢。CycleGAN的目的就是解决这一问题。

在这里插入图片描述
那么CycleGAN是如何解决这一问题的呢?
我们可以看到对于成对图像,如果要进行风格迁移,通常只要学习成对样本(xi,yi)之间xi到yi 的映射关系即可;而对于成对图像,如果要进行风格迁移,就需要学习X域到Y域之间的映射关系。便有G: X->Y,对于具体的例子就有y’ = G(x),x属于X,所生成的y满足Y的分布。按理来说,我们只需要学习X域到Y域的映射关系便可以完成风格转换,也就是将风景图转换为油画。但是在实践中,作者发现很难孤立的优化这一目标,通常会导致网络崩溃,即所有输入图像都会映射到同一输出图像。

那么又是如何优化这一目标呢?
作者为这个网络增加了更多的结构,这里利用了“循环一致性”(cycle consistent)(不知道这样翻译对不对)。简单理解就是,我们如果用一个翻译器将中文翻译为英文,然后再将英文翻译为中文,那么句子的意思应该不变。用公式表示为G:X->Y;F: Y->X.

二、CycleGAN细节介绍

在这里插入图片描述
图(a)是CycleGAN的整体思路,G完成X域到Y域的风格迁移,DY判断G所生成图像是否符合Y域;F完成Y域到X域的风格迁移,DX 判断F所生成的图像是否符合X域。
但是还有一个问题,那就是只是单纯的风格迁移也不行,加入网络输入一张真实的人脸的照片,不能输出一张风景油画吧。也就是说我们要保证图像内容不变,上图的图(b)和图©就是为了确保图像内容不变。例如我们输入一张真实的人脸的照片x,通过生成器G得到相应的人脸油画y’,再通过生成器Y应该要生成一张真实人脸照片x’,x和x’的内容应该是一样的。

通过上述介绍,损失函数也可以确定下来了,一方面就是对抗损失,确保G和F分别能生成Y域和X域的图像;另一方面就是循环一致性损失,确保我们在将中译英,英译中过程里,句子的意思不变。

总体损失:
在这里插入图片描述
对抗损失:
在这里插入图片描述
循环一致损失:
在这里插入图片描述

### Cyclegan 介绍 CycleGAN 是一种基于生成对抗网络(GAN)的无监督图像到图像转换模型,它能够将一个领域的图像转换为另一个领域的图像风格,而无需源图像和目标图像之间的一一对应关系。CycleGAN 的核心思想是通过循环一致性约束来确保转换后的图像能被还原回原始图像,从而提高转换质量[^1]。 例如,CycleGAN 可以实现图像风格转移、季节转换、物体类别转换以及视频序列转换等多种任务。具体应用包括但不限于:将黑白照片转化为彩色图片、将风景图片转变为梵高风格的艺术作品、将春天的景色转换成冬天的样子、将马变成斑马或苹果变成橙子等[^1]。 ### CycleGAN 的原理 CycleGAN 的原理基于生成对抗网络(GAN)框架,并引入了循环一致性损失(Cycle Consistency Loss)。GAN 由生成器(Generator)和判别器(Discriminator)组成,生成器负责生成逼真的图像,判别器则负责区分生成图像与真实图像。CycleGAN 在此基础上增加了两个生成器 \(G\) 和 \(F\),分别用于 A 到 B 的转换和 B 到 A 的转换,同时引入了循环一致性损失以确保转换过程中的信息不丢失[^2]。 具体来说,循环一致性损失的作用是确保经过两次转换后,图像可以恢复到原始状态。即对于输入图像 \(x\),有 \(F(G(x)) \approx x\);对于输入图像 \(y\),有 \(G(F(y)) \approx y\)。这种机制使得 CycleGAN 能够在没有配对数据的情况下进行有效的训练。 ### CycleGAN 的实现 CycleGAN 的实现主要依赖于 PyTorch 或 TensorFlow 等深度学习框架。以下是一个简单的训练命令示例,用于训练 horse2zebra 数据集: ```bash python train.py --dataroot ./datasets/horse2zebra --name maps_cyclegan --model cycle_gan ``` 该命令指定了数据集路径、模型名称和使用的模型类型。在训练过程中,可以通过可视化工具监控生成器和判别器的损失变化,以及生成图像的质量。通常情况下,CycleGAN 的训练需要较长时间,例如可能需要两天左右完成 200 轮训练[^3]。 ### CycleGAN 的应用案例 CycleGAN 已经在多个领域取得了成功应用。例如,在艺术创作中,CycleGAN 可以将普通照片转换为特定艺术家风格的作品;在医学图像处理中,CycleGAN 可以将 MRI 图像转换为 CT 图像,从而帮助医生更方便地进行诊断;在自动驾驶领域,CycleGAN 可以模拟不同天气条件下的道路场景,从而提高自动驾驶系统的鲁棒性[^1]。 此外,CycleGAN 还可以应用于视频处理领域,例如改变视频中的天气条件或时间,从而生成更具创意的视觉效果[^1]。 ### 总结 CycleGAN 是一种强大的无监督图像到图像转换工具,其核心在于通过循环一致性约束实现了高质量的图像转换。无论是艺术创作、医学图像处理还是自动驾驶等领域,CycleGAN 都展现出了广泛的应用前景[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值