Chintan Trivedi作者王淑婷 贾伟编译

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

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

本文旨在了解如何将 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!两个域中无法联系起来的是玩家的外表,这也是为什么它周围的像素有点模糊。总体来看,网络在两个域中识别目标并转换它们的外观方面做得还不错。

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

在游戏中应用图形模式

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

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


原文链接:https://towardsdatascience.com/turning-fortnite-into-pubg-with-deep-learning-cyclegan-2f9d339dcdb0

工程CycleGAN风格迁移游戏
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

图形模型技术

【图形模型】比实际模型更加抽象地描述实物的一种模型。它可用各种图来表示系统的信息流程、物质流程、时间顺序、逻辑关系以及相互联系的结点和支路组成的网络图,如电路图、信息流程图、网络分析的网结图等。

CycleGAN技术

GAN的一个变种

生成对抗网络技术

生成对抗网络是一种无监督学习方法,是一种通过用对抗网络来训练生成模型的架构。它由两个网络组成:用来拟合数据分布的生成网络G,和用来判断输入是否“真实”的判别网络D。在训练过程中,生成网络-G通过接受一个随机的噪声来尽量模仿训练集中的真实图片去“欺骗”D,而D则尽可能的分辨真实数据和生成网络的输出,从而形成两个网络的博弈过程。理想的情况下,博弈的结果会得到一个可以“以假乱真”的生成模型。

推荐文章
暂无评论
暂无评论~