吃鸡的小伙伴们不会不知道,目前全球最火的两款吃鸡游戏要数《绝地求生》和《堡垒之夜》了。前者是写实画风,后者是卡通画风。有个《堡垒之夜》玩家爱上《绝地》的写实风格后,突发奇想要把这种风格应用到《堡垒之夜》中……

本文旨在了解如何将 CycleGAN 用于风格迁移并探索其在游戏图形模型中的应用。

用神经网络尝试在《堡垒之夜》中重现《绝地求生》的画面风格。

如果你是一名游戏玩家,肯定听说过如今最火的两款「吃鸡」游戏:《堡垒之夜》(Fortnite)和《绝地求生》。这两个游戏很相似,都是 100 名玩家降落在一个小岛上,然后淘汰至最后一人「吃鸡」。作者之前比较喜欢《堡垒之夜》的游戏风格,但现在更喜欢《绝地求生》的写实画面。于是他不禁开始思考,是否有可能创建一个图形模式,让我们选择喜欢的画面风格而不必依赖于开发者给我们提供的画面选择?如果有个图形模式能够将《绝地求生》的画风渲染至《堡垒之夜》呢?于是作者决定用深度学习来探索这一模式,然后发现了一种叫 CycleGAN 的神经网络。该网络非常擅长图像风格迁移。在本文中,作者将介绍 CycleGAN 的工作原理,然后训练它们将《堡垒之夜》可视化地转为《绝地求生》。

卡通风格的《堡垒之夜》(左)和写实风格的《绝地求生》(右)

CycleGAN 是什么?

CycleGAN 是一种用于跨域图像风格迁移的生成对抗网络,它能将图像从一个域迁移到另一个域,例如从《堡垒之夜》到《绝地求生》的迁移。任务是以无监督方式执行的,即两个域的图像没有一一映射的关系。

Github 实现及其结果:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

该网络能够理解原始域图像中的对象,并对目标域图像中相同对象的外观做相应的变换。该网络的算法实现经训练后,可以将马转化为斑马,将苹果转化为橙子,将照片转化为漂亮的油画等等。

如何实现?

我们简单分析一下如何使用 CycleGAN 将《堡垒之夜》和《绝地求生》分别作为输入域和目标域进行风格迁移。

首先,我们通过截屏的方式分别获得两个游戏的大量图像作为数据集。

其次,我们训练一对 GAN,一个用来学习《堡垒之夜》的画风,另一个学习《绝地求生》的画风。这两个网络通过循环的方式同时训练,从而在两个游戏中学到相同对象之间的关系,以进行恰当的画风变换。

下图是 CycleGAN 的基本架构:

从「Real Fortnite」到「Fake PUBG」,再到「Reconstructed Fortnite」的循环。

我们从《堡垒之夜》的原始图像开始整个训练过程。训练包括两个深度网络,一个是生成器,一个是鉴别器。鉴别器将随着时间推移而学习到区分「Real Fortnite」和「Fake Fortnite」。生成器将使用从训练数据集中随机取出的《绝地求生》截图进行训练,从而学习如何将原始域图像迁移到目标域图像。

为了确保这种迁移是有意义的,我们同时训练了另一组生成器和鉴别器(即生成器 P2F 和鉴别器 P),它们的作用是从伪域重建原始域的图像。另外,我们通过最小化训练过程中的循环损失(Cycle loss),使重建后的图像与原始图像相似。这个过程类似自动编码,只是我们不在中间步骤的潜在空间中寻找编码,而是在目标域中寻找整个图像。

F2P 框架

这里使用的生成器网络(F2P)由三个主要的卷积模块组成:第一个模块在较低维度的潜在空间中找到《堡垒之夜》截屏的编码;然后,第二个模块将该编码转换成在相同潜在空间中表示《绝地求生》的编码;在第三个模块中,解码器根据转换的编码构建出输出图像,于是便得到了《绝地求生》版的《堡垒之夜》图像。

在训练过程中,由于 GPU 内存限制,所以只能处理大小为 256x256 的图像,这很影响最终结果。如果你有超过 8GB 的视频内存,可以尝试生成大小为 512x512 的图像。

结果

经过 12 小时的训练之后,CycleGAN 生成的图像看起来很有前景。该网络能够成功地将《堡垒之夜》中天空、树和草地的颜色转换成《绝地求生》中的画风。《堡垒之夜》中过度渲染的颜色被转换成了《绝地求生》中那种更真实的颜色。

天空看起来没那么蓝了,卡通风格的草地和树看起来也更接近《绝地求生》了。它甚至学会了把底部的 health meter 替换成了《绝地求生》中的枪支和弹药指标了!amazing!两个域中无法联系起来的是玩家的外表,这也是为什么它周围的像素有点模糊。总体来看,网络在两个域中识别目标并转换它们的外观方面做得还不错。

如果想看更长的结果,请戳以下视频:

在游戏中应用图形模式

虽然结果看起来很好,但要真正实现《绝地求生》画面风格的《堡垒之夜》,还有很长的路要走。一旦我们能够用这些网络实时生成更高分辨率的图像,那将来为游戏构建图形模式引擎而不必依赖开发者不是没有可能的。

我们可以把自己喜欢的游戏画风应用到任何其它游戏上!

我有个大胆的想法,用风格迁移玩《绝地》版的《堡垒之夜》相关推荐

  1. 图像风格迁移【老版】

    深度学习目前为止最有用的东西是图像处理,我们可以用它在极早期判断癌症, 也可以用它在茫茫人海里寻找犯人,但是要我说你能写一个小程序取悦女朋友, 你就不一定能信, 这一招叫艺术风格变换,就是你点击一下, ...

  2. 一加8 Pro相机能“透视”,一加工程师:大家不要“有一个大胆的想法”

    一加正式发布新款一加8系列手机后,在市场上反响还不错,尤其是一加8 Pro,广受国内外用户好评. 近日,还有许多外国网友发现并晒出了一加8 Pro相机的隐藏功能--透视. 这里的透视指的是类似于X光的 ...

  3. 【游戏开发进阶】带你玩转模型法线,实验一下大胆的想法(法线贴图 | shader | Unity | python | 爬虫)

    文章目录 一.前言 二.直观感受法线贴图 三.表面法线 1.表面法线的概念 2.空间与坐标系 2.1.世界空间--世界坐标系 2.2.局部空间--局部坐标系 2.3.切线空间--切线坐标系 2.4.小 ...

  4. 人人都是作曲家:基于深度神经网络的音乐风格迁移

    参与 | shawn 编辑 | Donna 什么是风格迁移? 过去十年间,深度神经网络(DNN)被用于解决多种人工智能的任务,例如:图像分类.语音识别和游戏等,并迅速成为最先进的解决方法. 研究人员致 ...

  5. 图像风格迁移也有框架了

    选自Medium 作者:Philip Meier 机器之心编译 编辑:陈萍 易于使用的神经风格迁移框架 pystiche. 将内容图片与艺术风格图片进行融合,生成一张具有特定风格的新图,这种想法并不新 ...

  6. python神经结构二层_《python深度学习》笔记---8.3、神经风格迁移

    <python深度学习>笔记---8.3.神经风格迁移 一.总结 一句话总结: 神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容. 1."神经风格迁移是指将 ...

  7. 不会编程也能做这么酷炫的视频风格迁移?这个工具冲上Reddit热榜,还能在线试玩...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 这两天,Reddit上一则关于视频风格迁移的帖子火了,发布仅一天就冲上了机器学习社区的热榜第一. ...

  8. 谁说只有VGG才能做风格迁移,ResNet也可以!答案就在对抗攻击中

    https://www.toutiao.com/a6707818378641293836/ 2019-06-29 13:21:10 边策 发自 凹非寺 量子位 报道 | 公众号 QbitAI 风格迁移 ...

  9. 谁说只有VGG才能做风格迁移,ResNet也可以

    边策 发自 凹非寺 量子位 报道 | 公众号 QbitAI 风格迁移是VGG网络架构的拿手好戏.难道其他架构的CNN,比如ResNet就不可以吗?可以,但是直接用它来做风格迁移,原来的风格仍然非常明显 ...

最新文章

  1. C#正则表达式匹配字符串中的数字
  2. iis出现 Server Application Error 错误解决方法(xp iis5.1 配置asp项目出现500错)
  3. 贪心算法之最小堆实现霍夫曼编码
  4. oracle双引号拼接,oracle 单引号拼凑和动态sql | 学步园
  5. Docker与容器化-02-与镜像和容器操作相关的命令
  6. torchvision中Transform的normalize参数含义, 自己计算mean和std,可视化后的情况,其他必要的数据增强方式
  7. Pycharm2017补丁破解
  8. acwing1148——秘密的牛奶运输(求次小生成树)
  9. Arduino - 摇杆模块
  10. 最实用的网上赚钱方法:这个方法真的很实用哦!
  11. NodeJS C++ Addons基础
  12. 兽音译者iOS APP,支持iPhone、iPad、Mac~
  13. ISCC——部分题wp
  14. TensorRT - 自带工具trtexec的参数使用说明
  15. fatal: loose object...is corrupt解决方法
  16. 工程师解读:为何华为手机干不过小米
  17. 神经网络滤镜不能使用吗,神经滤镜为什么不能用
  18. 微信小程序之自定义遮罩,显示结果
  19. Unity3D 粒子系统实现一个简单的爆炸效果
  20. 加普威 JPW590 打印机驱动

热门文章

  1. p50搭载鸿蒙os有什么不同,华为P50系列手机推出发布,华为鸿蒙OS系统和EMUI系统有什么区别...
  2. opencv-python——2(颜色分割(RGB、HSV)、读取摄像头和视频并保存)
  3. phpexcel导出的数据换行
  4. HCL Technologies庆祝在澳大利亚和新西兰市场创新20年
  5. Python数据分析之股票分析
  6. FileInputStream路径
  7. HDU2571:命运(DP) 超详细题解
  8. python爬取微信公众号文章(携带cookie)
  9. hibernate 参数一览
  10. 在word中编辑目录的时候莫名其妙会出现一个折叠标题