本文翻译、总结自朱俊彦的线上报告,主要讲了如何用机器学习生成图片。

来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告

人员信息

主讲嘉宾

姓名朱俊彦(Jun-Yan Zhu)
现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial Intelligence Laboratory, CSAIL)
个人主页:http://people.csail.mit.edu/junyanz/

主持人

周晓巍
现状:浙江大学CAD&CG国家重点实验室
个人主页:http://www.cad.zju.edu.cn/home/xzhou/

报告内容

这是机器学习滴时代!

计算机视觉(Computer Vision, CV)领域近年来发生了巨大的变化。在2012年之前,CV的主要研究方法是使用**人工设计(hand-designed)**的特征完成各种任务(见下图)。

2012年使用深度神经网络(Deep Neural Network, DNN) 在ImageNet的分类任务上取得了巨大成功(见下图)。

从此**深度学习(Deep Learning)**的相关研究如火如荼地展开了,比如说下面这三个栗子:

  1. 物体识别(Object detection) [Redmon etal., 2018]
  2. 对人体的理解(Human understanding) [Guler et al., 2018]
  3. 自动驾驶(Autonomous driving) [Zhao et al., 2017]

图形学中的尝试:趁手的武器 or 白费功夫?

在传统的图形学管线(pipeline)中,输出图像需要经过建模、材质贴图、光照、渲染等一系列繁琐的步骤(见下图)。

现在大家看到了Deep Learning的潜力,那我们自然的就有个想法:有没有可能使用Deep Learning简化计算机图形学(Computer Graphics)的研究呢?

一个直接的想法是把DNN“倒过来用”。之前的DNN可能是输入一幅图像,输出一个标签(比如说猫),那我们能不能输入“猫”这个字,输出一张猫的照片呢?

很遗憾,答案是No!因为这种任务实在太复杂啦!我们很难让DNN凭空输出图像这样的高维数据(High dimensional data)(这里的“高维”可以理解成数据量大)。实际上,在很长一段时间里,DNN只能输出数字这种简单的、低分别率的小图像,就像下面这样:

而想要生成想游戏场景这类的图片,这种方法根本没用。所以,我们必须得想出更厉害滴东西完成这项任务(使命感爆棚)!

GAN就完了?Naive!

于是…在月黑风高的某一天(画风逐渐跑偏),一个叫做生成对抗网络(Generative Adversarial Network)——也就是大名鼎鼎的GAN——的东西横空出世。作者是下面这位小哥和他的小伙伴们:

那么,我们该怎么GAN出图像呢?且听我细细道来~

一般来说,GAN中包含两种类型的网络 G G G GG G GGGG duang的一下变出的斑马:

橘子变苹果:


可以看到,CycleGAN能够比较准确的找到橘子的位置,并把它变成苹果。

图像风格的迁移:

游戏场景替换

这个应用就很酷了,它以一些德国城市的照片作为输入,成功替换了游戏GTA5中的场景!

失败例子

在输入骑马的普京大帝照片时,输出图像里把普京也变成了斑马。

这是因为,训练图像里并没有骑马的人,所以网络就傻掉了。

目前暂且的解决办法是先用Mask R-CNN做图像分割之后再针对马进行变化,不过这个效果也不好,因为人和马在图像上有重叠的部分。这个问题需要未来解决。

源代码

这里给出CycleGAN和pix2pix的github项目。

这是2017年github最受欢迎的项目之一,截止到本文写作时间(2018年9月),已经有5000+ Star了:

课程

CycleGAN现在非常火,以致于很多大学和在线平台都开设了它的课程:

用户的结果

下面是这些课程里的一些学生作业:

Twitter上也有一些很有趣的应用,比如把狗变成猫@itok_msi:

或者把猫变成狗:

再比如“吃鸡”游戏的风格转换@Cahintan Trivedi:


不过这里存在一个严重的问题:CycleGAN只能输出256p/512p的低分辨率图像

pix2pixHD

是的,我们还剩一个悬而未决的问题:分辨率和图像质量。pix2pixHD就是用来解决这个问题的!

假设我们输入一张高分辨率的草图:

使用pix2pix,结果很差(之前说过,让网络产生高维数据输出很难):

pix2pixHD采取了金字塔式的方法:

  1. 先输出低分辨率的图片。
  2. 将之前输出的低分辨率图片作为另一个网络的输入,然后生成分辨率更高的图片。

这样,就把一个困难的问题拆分成了两个相对简单的问题~

最终的效果是,给定下面的高分辨率草图:

pix2pixHD可以**实时(real time)**产生这样的效果:

pix2pixHD也支持用户交互,比如加一辆车、添几棵树之类的:

pix2pixHD还有许多有趣的应用。

比如用草图生成高分辨率人脸:

再比如:

  • 图像增强(Image Enhancement)
  • 图像去雾(Image Dehazing)
  • 非监督动作重定向Neural Kinematic Networks for Unsupervised Motion Retargetting

其他问题

目前生成的斑马视频帧与帧之间的纹理变化较大,为了解决帧之间的连续性问题,新的研究工作应运而生:Video-to-Video Synthesis。
它主要的解决思路有下面三个:

  1. 输入一段视频中的几帧,检查真假
  2. 把前面的帧当做后面帧的输入
  3. 使用“optical flow”,具体请看paper

总结

本文介绍了怎样用神经网络生成图片,我们使用pix2pix完成了基本任务,使用CycleGAN解决了输入数据不成对的问题,最后用pix2pixHD解决了图像分辨率和图像质量的问题。

如何用深度学习生成图片(GAN, pix2pix, CycleGAN和pix2pixHD)相关推荐

  1. [人工智能-深度学习-63]:生成对抗网络GAN - 图片创作:普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  2. pix2pixhd_一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

    人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artifi ...

  3. 一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

    人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artifi ...

  4. 附pdf下载 | 入门深度学习和GAN的几本书

    今天分享几本深度学习.GAN等好的电子书资源!收藏! 如今,GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 2014 年的生 ...

  5. 最新版动手学习深度学习和GAN电子书免费下载!

    今天给大家推荐一个GAN方面的优质公众号---机器学习与生成对抗网络.该公众号里分享了几本深度学习.GAN等好的电子书资源! 强烈推荐李沐等人的<动手学习深度学习>最新版!完整中文版 PD ...

  6. 准确率99.9%!如何用深度学习最快找出放倒的那张X光胸片(代码+数据)

    医学图像数据的质量一直是个老大难题.难以清理的数据制约着许多深度学习的应用. 而实际上,深度学习本身就是清洗医疗数据的好帮手. 今天,我们就来讲一个案例,展示如何用深度学习迅速清洗一个杂乱的医疗图像数 ...

  7. 如何用深度学习做自然语言处理?这里有份最佳实践清单

    如何用深度学习做自然语言处理?这里有份最佳实践清单 By 机器之心2017年7月26日 14:16 对于如何使用深度学习进行自然语言处理,本文作者 Sebastian Ruder 给出了一份详细的最佳 ...

  8. 如何用深度学习进行语音识别

    作者:九五要当学霸 链接:https://zhuanlan.zhihu.com/p/24703268 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 原文:Adam G ...

  9. 附pdf下载 | 动手学习深度学习和GAN电子书

    今天分享几本深度学习.GAN等好的电子书资源!推荐收藏! 如今,生成对抗网络GAN技术已经延伸至AI各个方向之中,例如图像处理.自然语言处理和语音等. 深度学习三巨头之一的 Yann LeCun 对 ...

最新文章

  1. 使用vagrant基于官方的box制作自己的基础box
  2. 7项最佳实践助您利用媒体转换不断发展数据中心网络
  3. TypeError: Class advice impossible in Python3. Use the @Implementer class decorator instead
  4. python数据分析年薪百万_如何成为一个年薪 50 万以上的数据分析师?
  5. 【NLP保姆级教程】手把手带你RNN文本分类(附代码)
  6. Flex入门的好书——《Flex3 Cookbook 中文版》
  7. ap 目标检测算法map_目标检测算法介绍
  8. 盐城市公交路线及时刻表
  9. 扑克牌排序(结构体)
  10. python 进行文本情感分析
  11. 如何解决VMware Workstation上ubuntu出现Host SMbus controller not enabled
  12. deepin更新启动项_Deepin修复启动项菜单---grub2启动修复
  13. 【转载】任正非:鼓足干劲,力争上游,不畏一切艰难困苦
  14. 北京精雕现状_6秒精密加工,日本走下神坛,北京精雕也做了一个!
  15. 兄弟1218无线打印服务器错误,兄弟无线打印机无法打印怎么办?
  16. computed,watch
  17. python营业数据分析_基于pandas python的美团某商家的评论销售(数据分析)
  18. 函数<小罗爱c语言>
  19. 微服务项目之电商--17.商品规格数据结构SPU和SKU
  20. 【安装库】Pycharm安装Qt platform

热门文章

  1. Redis复制:部分同步PSYNC详解
  2. 北大计算机直博第五年,我选择退学,没有硕士学位...
  3. 直播课堂系统,打造出超过线下培训场景200%的在线学习课堂
  4. 守望先锋:地图工坊FOR,IF,WHILE分享
  5. 网站服务器不缴费会清档吗,云服务器不缴费释放
  6. Ubuntu下WIFI不稳定问题
  7. 今日分享一些好看的壁纸,有没有你喜欢的
  8. python+adb游戏辅助脚本
  9. android xml sax解析,《android用SAX解析xml》
  10. python修改图片,Python之修改图片像素值的方法