文章来源:Github 翻译:马卓奇博士

  从油画生成照片,将马转换成斑马,进行风格转换,以及更多(UC Berkeley)

  项目主页:https://junyanz.github.io/CycleGAN/

  论文:https://arxiv.org/pdf/1703.10593.pdf

  本文是用Torch实现的图像到图像的转换(pix2pix),而不用输入输出数据对,例如:

  

  这个程序包包含CycleGAN,pix2pix,以及其他方法,例如:BiGAN/ALI以及苹果的论文:S+U learning.

  代码作者:Jun-YanZhu和TaesungPark

  PyTorch版本即将上线

  应用莫奈油画转换成照片

  

  画集风格转换

  

  目标变形

  

  季节转换

  

  照片增强:iPhone照片转DSLR(数码单反相机)照片

  

  环境要求

  ·Linux or OSX

  ·NVIDIA GPU + CUDA CuDNN (CPU 模式 和 CUDA 不用CuDNN 加速或许需要进行一些小的调整,但是还未测试)

  ·如果使用的是MAC,你需要Linux或GNU命令: gfind 和 gwc, 可以用brew install findutils coreutils 命令进行安装。

  开始安装

  ·从官网安装torch及其依赖项: https://github.com/torch/distro

  ·安装torch附加包 nngraph, class, display

  luarocks install nngraph

  luarocks install class

  luarocks installhttps://raw.githubusercontent.com/szym/display/master/display-scm-0.rockspec

  • 复制该仓库

  git clone https://github.com/junyanz/CycleGAN

  cd CycleGAN

  应用预训练模型

  • 下载测试照片(摄影师:Alexei Efros)

  bash./datasets/download_dataset.sh ae_photos

  • 下载预训练模型:style_cezanne

  bash./pretrained_models/download_model.sh style_cezanne

  • 现在,让我们来生成塞尚风格的图像:

  DATA_ROOT=./datasets/ae_photosname=style_cezanne_pretrained model=one_direction_test phase=test loadSize=256fineSize=256 resize_or_crop="scale_width" th test.lua

  测试结果会存到:./results/style_cezanne_pretrained/latest_test/index.html路径下

  想要了解更多预训练模型,请参考Model Zoo。

  ./examples/test_vangogh_style_on_ae_photos.sh是一个示例脚本,可以下载预训练的梵高风格网络,并且在 Alexei的照片上进行测试

  训练

  • 下载数据集(例如ImageNet中斑马和马的图片)

  bash ./datasets/download_dataset.sh horse2zebra

  • 训练模型

  DATA_ROOT=./datasets/horse2zebraname=horse2zebra_model th train.lua

  • (仅使用CPU)训练命令一样,只是不使用GPU或CUDNN。设置环境变量 gpu=0cudnn=0 强制只使用CPU

  DATA_ROOT=./datasets/horse2zebraname=horse2zebra_model gpu=0 cudnn=0 th train.lua

  • (可选)打开显示服务器可以在模型训练的过程中查看结果。(更多细节请看Display UI(显示界面)部分。)

  th -ldisplay.start 8000 0.0.0.0

  测试

  • 最终,测试模型

  DATA_ROOT=./datasets/horse2zebraname=horse2zebra_model phase=test th test.lua

  测试结果会存入一个html文件。

  Model Zoo

  用如下代码下载预训练的模型。模型会保存在:./checkpoints/model_name/latest_net_G.t7.

  bash ./pretrained_models/download_model.shmodel_name

  ·orange2apple (橘子->苹果) and apple2orange: 在ImageNet苹果和橘子数据集上进行训练

  ·horse2zebra (马 -> 斑马) and zebra2horse (zebra -> horse): 在ImageNet马和斑马数据集上进行训练

  ·style_monet (风景照片 -> 莫奈油画风格), style_vangogh (风景照片 -> 梵高油画风格), style_ukiyoe (风景照片 -> 浮世绘风格), style_cezanne (风景照片 -> 塞尚绘画风格 ): 在油画和Flickr风景照片集上进行训练

  ·monet2photo (莫奈绘画 -> 实景图片): 在油画和Flickr风景照片集上进行训练

  ·cityscapes_photo2label (街景 -> 标签) and cityscapes_label2photo (标签 -> 街景): 在Cityscapes数据集上进行训练

  ·map2sat (地图 -> 航拍图) and sat2map (航拍图 -> 地图): 在Google地图数据集上训练.

  ·iphone2dslr_flower (iPhone花卉照片 -> DSLR 花卉照片): 在Flickr照片集上训练.

  训练和测试细节训练模型:

  DATA_ROOT=/path/to/data/ name=expt_name thtrain.lua

  模型保存在:./checkpoints/expt_name(可以把train.lua中checkpoint_dir改成你的路径来改变存储路径)

  想了解其他训练设置,可以在options.lua中查看opt_train参数

  测试模型:

  DATA_ROOT=/path/to/data/ name=expt_namewhich_direction='AtoB' phase=test th test.lua

  这行命令会训练expt_name模型,在/path/to/data/testA和/path/to/data/testB中的所有图片上进行双向训练。

  如果which_direction设置为'BtoA',那么数据集的两个子集A和B会翻转。实验结果图像以及查看网址会保存在:./results/expt_name(可以把test.lua中result_dir改成你的路径来改变存储路径)

  想了解其他测试设置,可以在options.lua中查看test options参数。

  如果只想生成训练网络的单向输出,设置model=one_direction_test

  数据集使用如下程序下载数据集:

  bash ./datasets/download_dataset.sh dataset_name

  ·facades: 400 张图片,来自 CMP Facades 数据集.

  http://cmp.felk.cvut.cz/~tylecr1/facade/

  ·cityscapes: 2975 张图片,来自 Cityscapes 训练集.

  https://www.cityscapes-dataset.com/

  ·maps: 1096 张图片,来自 Google Maps(谷歌地图).

  ·horse2zebra: 939 张马的图片和1177张斑马图片,从ImageNet中使用关键词wild horse(野马)和zebra(斑马)下载

  ·apple2orange: 996 张苹果图片 and 1020 张橘子图片, 从ImageNet中使用关键词apple(苹果)和navel orange(橘子)下载

  ·summer2winter_yosemite: 1273 张夏季 Yosemite(约塞米蒂国家公园) 的照片和 854 张冬季Yosemite的照片,使用Flickr API进行下载,具体细节请参考我们的论文。

  ·monet2photo, vangogh2photo, ukiyoe2photo, cezanne2photo:艺术绘画图片从Wikiart下载。实景照片使用标签风景和风景照片结合,从Flickr 下载。每种艺术风格的训练集数据量为:莫奈:1074,塞尚:584, 梵高:401, 浮世绘:1433, 照片:6853.

  ·iphone2dslr_flower: 两类图片均从Flickr上下载。训练集数据量分别为: iPhone照片:1813, DSLR照片:3316. 具体细节请参考我们的论文

  显示界面可选,可以在训练和测试过程中显示图片,使用display程序包。

  • 安装

  luarocks install https://raw.githubusercontent.com/szym/display/master/display-scm-0.rockspec

  • 启动服务器

  th -ldisplay.start

  • 浏览器中打开该URL: http://localhost:8000

  默认设置下,服务器会监听本地端口。传递设置0.0.0.0 允许任何终端界面连接:

  th -ldisplay.start 8000 0.0.0.0

  然后在浏览器中打开:http://(hostname):(port)/,下载远程桌面

  设置训练和测试数据如果想在你自己的数据集上训练CycleGAN模型,你需要创建一个数据文件夹,包含两个子目录trainA和trainB,分别包含域A和域B的图片。你可以在训练集上测试模型,在test.lua中设置phase='train'。如果你有其他的测试数据,也可以创建子目录testA和testB。

  我们的方法不能应用在两个随机的数据集的结合上(例如猫咪图片转换为键盘图片)。从我们的实验结果中,我们发现如果两个数据集包含同样的视觉内容,算法效果会更好一些。例如,街景绘画和街景照片互相转换的效果,要比肖像画和街景照片相互转换的效果好。斑马和马的照片相互转化能得到很好的结果,而猫和狗的照片转换会完全失败。

  失败样例分析这里展示了几个典型的失败样例。

  

  在涉及到色彩和纹理变化的转换任务中,该方法一般都能成功。我们也探索了需要几何变换的任务,很少能够成功。例如,在猫和狗的互相转换中,学习的转换器会退化,只能对输入图像产生很小的变化。我们也在用成对训练数据训练的结果和不成对方法产生的结果之间发现了一个无法弥补的差距。在某些情况下,这个差距会更严重,甚至闭合:例如,我们的方法有时会在街景照片转换为标签的任务下,改变输出中的树和建筑的标签顺序。

  引用如果我们的代码帮助到了您的研究工作,请引用我们的论文:

  @article{CycleGAN2017,

  title={Unpaired Image-to-Image Translationusing Cycle-Consistent Adversarial Networks},

  author={Zhu, Jun-Yan and Park, Taesung andIsola, Phillip and Efros, Alexei A},

  journal={arXiv preprint arXiv:1703.10593},

  year={2017}

  }

  相关项目

  github link:https://github.com/junyanz/CycleGAN

  Pix2pix:使用条件对抗网络进行图像到图像的转换

  https://github.com/phillipi/pix2pix

  iGAN:使用生成对抗网络进行互动图像生成

  https://github.com/junyanz/iGAN

开源|效果惊人!Cycle Gan瞬间让马变成斑马相关推荐

  1. 【转】8 个效果惊人的 WebGL/JavaScript 演示

    英文原文:9 IMPRESSIVE WEBGL JAVASCRIPT EFFECT SHOWCASE,翻译:iteye WebGL 是一种 3D 绘图标准,这种绘图技术标准允许把 JavaScript ...

  2. 【Pytorch】Cycle GAN实战(一):风格转换--真实风景图像转换为VanGogh风格

    文章目录 一.Cycle GAN(CGAN)原理 1.1Conditional GAN 1.2Unsupervised Conditional GAN No.1 Direct Transformati ...

  3. Pytorch-《Deep learning with pytorch》1.2.2 使用GAN将“马变成斑马”

    最近在学习<Deep learning with pytorch>,跟着b站的一个up主敲代码,本篇内容对应视频. (实验在colab上完成,对此感兴趣的可以看这一篇,有使用介绍.) 实现 ...

  4. 读论文-Cycle GAN

    Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks pix2pix和Cycle GAN都是做 ...

  5. Cycle GAN(复现)---笔记

    因为目前的课题了解到了Cycle GAN,所以最近去学习了相关的一些知识. 目前网上绝大多数的代码都是https://github.com/junyanz/pytorch-CycleGAN-and-p ...

  6. CSDN开发者周刊第 20 期:Google 下一代操作系统 Fuchsia 源码正式公开;AI 消除马赛克 效果惊人

    CSDN开发者周刊:只为传递"有趣/有用"的开发者内容,点击 Star(CodeChina)! 本周热门项目 1.红帽停止维护 CentOS 8,创始人另起炉灶 12 月 8 日, ...

  7. 【轩说AI】生成模型(2)—— GAN生成对抗网络 + WGAN + Conditional GAN + Cycle GAN

    文章目录 GAN生成对抗网络(Generative Adversarial Network) 神经网络的本质就是一个函数,一个用于拟合的函数 生成模型面临的前所未有的问题 GAN解决这一问题的思想 O ...

  8. 40个html作品,40个效果惊人的单页设计

    单页网站是一个越来越火的设计趋势,尽管它不能成为主流,不过已经有很多设计师注意到这种设计风格,今天我们收集了40个风格迥异.效果惊人的单页网站,对这类型感兴趣的同学可以学习一下,希望给你带来灵感. V ...

  9. 百度宣布AI同传最新突破!能预测,低延时,演示效果惊人,外媒称媲美人类翻译...

    夏乙 栗子 乾明 一璞 发自 三区五地  量子位 报道 | 公众号 QbitAI 同传AI,刚刚在国内掀起过暴风骤雨. 但现在,百度于硅谷宣布了最新重大突破--一个名为STACL的同传AI,论文结果优 ...

最新文章

  1. jquery.raty评星插件
  2. 注塑机摆放间距多少合适_红木家具之间正确的摆放距离
  3. 产品管理:孵化产品 Beta 流程
  4. Mc神秘·音乐-舞曲网
  5. webpack 采坑(CleanWebpackPlugin 插件报错: CleanWebpackPlugin is not a constructor ;)
  6. 零基础学编程学java还是python-学编程选Python还是Java?就业发展哪个好?
  7. 末学者daylight__Linux磁盘管理及LVM
  8. 可由一个尾指针唯一确定的链表有_2013-2014学年二学期数据结构期末考试试卷(3卷)...
  9. 网页字体设置你了解吗?
  10. 前端学习(1805):前端调试之列表伪类练习
  11. DroidPlugin插件化开发
  12. C++If与Switch语句
  13. Java多线程学习二十一:ConcurrentHashMap 在 Java7 和 8 有何不同
  14. matlab 离散点求导_Matlab的离散点曲线导数曲率数值模拟方法
  15. 海康威视云台相机4200客户端调试记录
  16. keil5安装教程及下载
  17. 水煮肉片+各种牛肉等四种川味特色菜
  18. CSS基础 | (1) CSS是什么
  19. Android Studio报错——The device might have stale dexed jars that don‘t match the current version
  20. 3rd TMA大数据营销案例征集赛正式启动,报名ing!

热门文章

  1. 鱼c工作室python课件_我见过最全的python教程鱼C工作室
  2. c语言使用virtual类型,c语言virtual关键字
  3. Flink Watermark相关概念(窗口、水位线、迟到事件)
  4. 音频视频解决方案:GStreamer-ffmpeg-ffdshow-directshow-vfw
  5. 计算机进行取模的原理,计算机组成原理中按2取模是什么意思?
  6. 燃爆全网的程序员Disco(附MV)
  7. 老师不能被计算机取代的英文作文,2019专八作文范文赏析:老师不能被取代
  8. VC 监视网页中的元素事件
  9. Rar加密文件破解案例
  10. System.Diagnostics.Process