点击上方“AI搞事情”关注我们


Paper:《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》
Home:https://junyanz.github.io/CycleGAN/
Blog:https://hardikbansal.github.io/CycleGANBlog/
GIT: https://github.com/junyanz/CycleGAN (官方pytorch)
https://github.com/vanhuyz/CycleGAN-TensorFlow (Tensorflow)

一篇比较老的文章(2017  ICCV),image to image translation模型,即从一副图像到另一副图像的转换。在这之前基于GAN的Pix2Pix模型,需要提供成对图像x和y,模型将噪声z,依据条件x,生成和真实图片y相近的 。然而现实场景下成对的图片数据往往不是都存在的,于是pix2pix团队便提出了这篇Unpaired图像转换模型CycleGAN,只需要准备两个存在某种联系的数据域图片集合,便可以进行两个数据域的相互转换。

网络结构

两个生成器网络:G和F,生成器G用来基于X域的图像生成Y域的图像(斑马->马),生成器F用来基于Y域的图像生成X域的图像(马->斑马);两个鉴别器网络:Dx和Dy,分别判断输入的X域或Y域图像是真实图像还是生成图像。整个网络看做是2个GAN的融合,是一个对偶结构。

损失函数

损失函数含两部分:GAN的生成对抗损失、循环一致性损失。GAN损失优化生成器与辨别器,使其达到纳什均衡的状态;循环一致性损失确保生成的图像须保留有原始图像的特性,原始图像通过生成器GenratorA-B生成的假图像,通过另外一个生成器GenratorB-A能尽可能恢复成原始图像。

总损失函数:

对抗损失函数:循环一致性损失:
循环损失分为前向循环损失和后向循环损失,分别为:

实验结果

图像生成

风格迁移对比

失败样例

搞事情

卡通人脸

https://github.com/minivision-ai/photo2cartoon

「配置环境」

  • python 3.6

  • pytorch 1.4

  • tensorflow-gpu 1.14

  • face-alignment

  • dlib

「克隆项目」

git clone https://github.com/minivision-ai/photo2cartoon.git
cd ./photo2cartoon

「下载模型」
git主页有百度网盘地址

「测试图像」

python test.py --photo_path ./images/photo_test.jpg --save_path ./images/cartoon_result.png

其他应用

「车牌生成」

「字体生成」

「印章去除」 想当初实习的时候我也做过CycleGAN去除印章,提升票据OCR效果

「卡通人脸生成」

往期推荐

长按二维码关注我们

有趣的灵魂在等你

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐