Turning Fortnite into PUBG with Deep Learning (CycleGAN) ,作者为  Chintan Trivedi  。

翻译 | 庄娴    整理 |  MY   来源 | AI研习社

了解 CycleGAN 的图像风格转换并探索其在在游戏图形模块中的应用。

点一点,《小惊喜》

神经网络试图在绝地求生的视觉风格中重现堡垒之夜。

如果你是一名玩家,你一定听说过现在两场疯狂流行的大战「大逃杀」,堡垒之夜和绝地求生。他们是两个非常相似的游戏,其中有 100 个玩家在一个小岛上出没,直到剩下一个幸存者。我喜欢堡垒之夜的游戏玩法,但更喜欢绝地求生更逼真的视觉效果。这让我想到了,我们是否可以为游戏提供图形模块,以便我们可以选择喜欢的视觉效果,而无需依赖游戏开发人员为我们提供该选项?如果一个 mod 可以在绝地求生的视觉效果中呈现堡垒之夜的帧,那该怎么办?这就是我决定探索深度学习是否有所帮助的地方,并且我遇到了一种名为 CycleGANs 的神经网络,这种网络恰好擅长风格转换。在这篇文章中,我将介绍 CycleGANs 的工作方式,然后训练它们将堡垒之夜视觉转换为绝地求生。

堡垒之夜(左)是卡通的视觉效果,而绝地求生(右)有更逼真的视觉效果。

  什么是 CycleGANs?

CycleGAN是用于跨域图像风格转换的一种生成对抗网络。可以训练它们将一个域的图像(如堡垒之夜)转换为另一个域(如绝地求生)。该任务以无监督的方式执行,即这两个域中没有图像的一对一映射。

原始的 Github 实现及其结果可以在这里找到:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

这个网络能够理解原始域图像中的对象,并应用必要的转换来匹配目标域图像中同一对象的外观。这个算法的最初实现经过训练,可将马匹转化为斑马,将苹果变为橘子,并将照片转化为具有惊人效果的绘画。

  它们如何工作? 

让我们试着了解 CycleGAN 如何使用堡垒之夜作为我们的输入域和绝地求生作为我们的目标域的例子。使用这两款游戏的屏幕截图,我们训练了一对一的生成性对抗网络,其中一个网络学习堡垒之夜和绝地求生的视觉样式。这两个网络以循环的方式同时训练,以便它们学习在两个游戏中形成对象之间的关系,从而进行适当的视觉转换。下图显示了这两个网络的循环设置的一般架构。

从「真正的堡垒之夜」到「假绝地求生」再到「重建的堡垒之夜」循环。

我们从堡垒之夜的原始图像开始训练。我们将训练两个深层网络,一个生成器和一个鉴别器。鉴别器将随时间学习来区分堡垒之夜的真实和虚假图像。生成器将被训练以使用来自训练集的绝地求生的随机屏幕截图将输入图像从原始域转换为目标域。

为了确保这种转变是有意义的,我们实施了一个重构条件。这意味着我们同时训练另一组生成器/鉴别器,它们从伪域中重构原始域中的图像。我们实施的条件是这种重构必须与原始图像相似,给我们一个循环损失值,我们的目标是在训练过程中最小化。这与自动编码器类似,不同之处在于我们不在中间步骤的隐藏空间中寻找编码,而是在目标域中寻找整个图像。

上图中显示的生成器 F2P 的概述。

这里使用的生成器网络(F2P)主要由三个卷积块组成。第一个在较低纬的隐藏空间中找到堡垒之夜屏幕截图的编码。这种编码被转换为表示同一个隐藏空间中的绝地求生的编码。然后解码器从转换后的编码中构造输出图像,给出看上去像绝地求生的堡垒之夜图像。

在训练过程中,我遇到的一个限制是由于 GPU 内存限制,我只能处理 256 x256 的图像。这将显著影响结果,但是如果您的视频内存超过 5gb,就可以尝试生成最多 512x512 的图像。如果您有能力,请在此告诉我。


Python那些事

▲长按图片识别二维码关注

Python那些事,人生苦短,我用 Python。Python 越来越受广大程序员的喜爱。「Python那些事」致力于做最好的Python公众号,只为爱Python的你!公众号主要分享 Python 开发相关的技术文章、面试算法、工具资源和热门教程等。


  结果

经过 12 小时的训练,CycleGAN 生成的图像看起来非常有前景。该网络能够成功地将天空、树木和草丛的颜色从堡垒之夜转换为绝地求生。堡垒之夜的过度饱和颜色被转换成绝地求生的更真实的的颜色。

天空看起来没有那么蓝,草丛和树木的卡通绿色看起来更接近在绝地求生中看到的。它甚至学会了用绝地求生的枪和弹药指示器替换屏幕底部的健康仪表!在两个领域无法链接的是播放器的外观,这就是为什么它周围的像素是模糊的。总体而言,网络在识别两个域的对象和改变它们的外观方面做了很好的工作。

要查看更长的结果,请查看下面嵌入的视频。如果你喜欢所看到的,别忘了点击这里,订阅我的 YouTube 频道!

  游戏中图形模块的应用

虽然结果对我来说很好,但很明显,在我真正使用绝地求生图形玩堡垒之夜之前,我们还有很长的路要走。但是一旦我们能够使用这些网络实时生成更高分辨率的图像,就有可能在未来为游戏构建图形引擎,而不必依赖游戏开发人员。我们可以使用我们喜欢的游戏的视觉风格,并将其应用于其他任何游戏!

我将探索如何通过使用我在本文中讨论的相同技术将游戏画面转换为真实照片来实现游戏中的图像真实感。如果您想跟踪,请在 YouTube 频道上关注我。感谢您的阅读!

作者 Github 个人站:

https://github.com/ChintanTrivedi?tab=repositories


由你定义吃鸡风格!CycleGAN,你的自定义风格转换大师相关推荐

  1. 无盘服务器万兆网卡吃鸡报错,(2018.05.26)召唤绿化大师V3.2无盘万能包-xp-Win7x64

    吃鸡不报错版本 2018.3.19 3.2.2.0版本更新日志: 修复菜单文件不显示的bug 2017.8.9 3.2.2.0版本更新日志: 修复3.2.2.0 上,部分环境下,服务器镜像挂载失败的b ...

  2. 吃鸡修改服务器,绝地求生自定义服务器怎么玩 自定义服务器使用说明

    绝地求生自定义服务器要怎么玩,这个是全新推出的玩法,玩家可以自定义游戏内容,包括毒圈.玩家参与人数.玩法模式等内容,自定义游戏操作方式如下,我们来看下吧. [绝地求生QBU属性怎样 吃鸡QBU属性特点 ...

  3. 由你定义吃鸡风格!CycleGAN,你的自定义风格转换大师[楚才国科]

    如果你是一名玩家,你一定听说过现在两场疯狂流行的大战「大逃杀」,堡垒之夜和绝地求生.他们是两个非常相似的游戏,其中有 100 个玩家在一个小岛上出没,直到剩下一个幸存者.我喜欢堡垒之夜的游戏玩法,但更 ...

  4. android 内存占用60m,占60M内存的吃鸡

    占60M内存的吃鸡是一款卡通像素风格的休闲向枪战游戏,游戏采用的是2.5D视角,这里炫酷的技能伴随着欢乐无限的射击,你还可以和自己的朋友一起组队激战,痛快吃鸡.感兴趣的朋友们快来西西下载体验吧! 游戏 ...

  5. 王者荣耀吃鸡气泡等等头像框DIY在线生成N种风格微信小程序源码下载

    这是一款头像框DIY制作的一款微信小程序源码 内含多种多样化的模板 不同的风格让你更有创意 目前拥有六大分类,每大分类都有N个不同风格模板 主播头像框,微信状态框,气泡提醒框,吃鸡炫酷框,职业头像框等 ...

  6. 王者荣耀吃鸡气泡等等头像框DIY在线生成N种风格微信小程序源码下载支持流量主收益

    这是一款头像框DIY制作的一款微信小程序源码 内含多种多样化的模板 不同的风格让你更有创意 是一款非常不错的引流小帮手 目前拥有六大分类,每大分类都有N个不同风格模板 主播头像框,微信状态框,气泡提醒 ...

  7. 小程序源码:王者荣耀吃鸡气泡等等头像框DIY在线生成N种风格

    这是一款头像框DIY制作的一款微信小程序源码 内含多种多样化的模板 不同的风格让你更有创意 是一款非常不错的引流小帮手 目前拥有六大分类,每大分类都有N个不同风格模板 主播头像框,微信状态框,气泡提醒 ...

  8. 5天200万玩家,这款新游实现了我对吃鸡最狂野的想象

    ##前言 | 在吃鸡游戏里成为一名法师. | "怎么又TM是吃鸡,能不能整点儿别的?" 看到一款第一印象不错.主打PVP模式的新游,接着得知它是吃鸡规则的时候,在围观玩家群体里,你 ...

  9. 绝地服务器维护7月5日,绝地求生7月5日更新到几点 吃鸡更新维护公告

    原标题:绝地求生7月5日更新到几点 吃鸡更新维护公告 绝地求生将会在7月5日的早上10点进行一次新版本的更新,这次没什么重要的更新内容,预计是3个小时,估计会提早,大家可以做好准备,下面就来为大家分享 ...

最新文章

  1. stm32l0的停止模式怎么唤醒_汇聚力量,守护安全:2020 “AnQ唤醒云课堂”圆满收官!...
  2. POJ 3687 Labeling Balls【拓扑排序】
  3. PyCharm中批量查找及替换
  4. 今晚直播 | 微软亚洲研究院徐毅恒:预训练时代下的文档智能
  5. 【CSWS2014 Summer School】互联网广告中的匹配和排序算法-蒋龙(上)
  6. ListCtrl添加右键菜单(ListCtrl类里编辑,给ListCtrl 发送NM_RCLICK消息)
  7. Asp.Net ajax 面向对象类型系统2 - 使用事件
  8. 初识图机器学习(part4)--图表示学习1.0
  9. 一波情人节海报温暖来袭,注定与众不同
  10. linux怎么看系统盘,Linux系统怎么查看电脑的磁盘空间?
  11. Python3爬虫数据入数据库---把爬取到的数据存到数据库,带数据库去重功能
  12. Qt 获取qrc文件列表
  13. 《21天学通Java(第7版)》—— 2.8 问与答
  14. VSCode修改字体的方法
  15. 响应式web开发 许愿墙
  16. 机器人感知与规划笔记 (7) - 行为架构 (Behavioral Architectures)
  17. 如何通俗的理解机器学习中的VC维、shatter和break point?
  18. 「译」开发者如何提升和推销自己
  19. 四面体棱切球的一些特殊正弦定理及其几何性质
  20. 【性能测试】性能测试指标TPS(Transaction per Second)

热门文章

  1. 学计算机显卡要求,学计算机的,电脑需要什么配置?
  2. android应用程序设计大作业,Android实验大作业
  3. attention与FFN复杂度
  4. PostgreSQL 实时高效搜索 - 全文检索、模糊查询、正则查询、相似查询、ADHOC查询...
  5. 通过MOGRT(基本图形)实现AE与PR模板通用
  6. 手机外接usb摄像头软件下载_手机拍照识物软件app下载-手机拍照识物软件v2.0安卓版下载...
  7. 不要轻易选择ERP?亚马逊ERP卖家精细化运营
  8. 完成谷歌Android设置向导,Android RRO机制的运用-----google开机向导客制化
  9. 小白开发微信小程序20--web api文档制作
  10. vue原生获取屏幕高度