电子说
编者按:自去年《绝地求生》(PUBG)火遍全球后,大量“吃鸡”类新游密集出现,游戏厂商们也纷纷效仿,在自家游戏中加入“吃鸡”模式,其中最成功的是公布于2011年却一直难产的《堡垒之夜》。截至今年6月,《堡垒之夜》的全球玩家数已超过1.25亿,大有后来居上的势头。虽然游戏很火爆,游戏机制也很有趣,但口味“刁钻”的玩家还是有不满意的地方,比如它的卡通风格。
今天,论智给大家带来的是数据科学家Chintan Trivedi的实现:用CycleGAN把《堡垒之夜》转成《绝地求生》写实风。
左:《堡垒之夜》卡通画面;右:《绝地求生》写实画面
如果你是一名游戏爱好者,你一定听说过现在风靡全球的两大“吃鸡游戏”:《堡垒之夜》和《绝地求生》。它们的游戏机制十分类似:把100名玩家空投到一座孤岛上,让他们搜集武器互相残杀,直到留下最后一个幸存者。我个人虽然更喜欢《堡垒之夜》的玩法,但也喜欢《绝地求生》的画面。这就产生了一个问题:我们能不能绕过游戏开发人员,自己为游戏提供图形模块,从而自定义画面风格。
简单来说,这其实是为《堡垒之夜》打一个《绝地求生》mod,重点是,我该怎么做?作为数据科学家和AI爱好者,深度学习是我的第一选择,经过一段时间的研究,我选择了一种名为CycleGAN的神经网络,它恰好擅长图像风格转换。
小方框中是CycleGAN转换后的图像
什么是CycleGAN?
CycleGAN是加州大学伯克利分校研究人员提出的一种用于跨域图到图转换的GAN,它可以把一类图像的风格(比如《堡垒之夜》)转换成另一类图像(比如《绝地求生》),优点是采用无监督学习,即不需要两个域的图像间存在一对一映射,既可以处理配对图像,也可以处理非配对图像。
这个神经网络可以被看作是两个镜像对称的GAN,第一个GAN输入原始域图像,把它转成目标域风格;第二个GAN则把新转换的图像重新转成原始域风格,和原图对比差异。这个差异越小,神经网络学到的特征关联就越多,转换效果就越好。由于项目已经开源,这里我们不再具体介绍它的技术细节。如下图所示,CycleGAN可以把马转成斑马,可以把苹果转成橘子,从理论上来说,它也可以转换游戏画面风格。
实现方法
首先,我们需要大量游戏截图作为数据集。在这些数据基础上,我训练了两个GAN,一个基于原始域《堡垒之夜》,另一个基于目标域《绝地求生》。这两个网络以循环的方式同时训练,以便它们学习两个游戏中相同对象之间的关系,从而进行适当的风格转换。下图是这对GAN的循环架构:
CycleGAN由两个生成器和一个判别器构成。其中生成器F2P输入《堡垒之夜》截图,然后把它转成《绝地求生》风格;生成器P2F输入重构的截图,然后把它还原成《堡垒之夜》风格,和原图做对比;判别器则负责判断重构的截图是否真的来自《绝地求生》(生成器“作假”,判别器“打假”)。
常规的GAN只有一对生成器、判别器,CycleGAN这个多出来的生成器P2F是为了强制执行重建条件。试想一下,我们用的不是配对图像,数据间不存在一对一映射,如果不在原始域和目标域之间建立可靠的联系,神经网络是无法实现风格转换的。生成器P2F的作用是强调重构的图必须与原始图像存在相似条件,还原后的图和原图肯定有差距,我们要在训练过程中把这个损失值降到最低。这个思路和自动编码器基本类似。
生成器F2P
生成器F2P由三个主要卷积块组成。其中第一个负责在较低维的潜在空间中找到《堡垒之夜》的截图编码;第二个负责把这些编码转换成同一潜在空间中的《绝地求生》编码;第三个则负责解码,输出重构图像,也就是写实风格的《堡垒之夜》。
在训练过程中,因为GPU内存限制,我只能用256×256的图像,这个大小显然没法玩游戏。如果你的内存在8G以上,你可以得到512×512的图,虽然还是小了点,但有进步。所以如果你够“壕”,而且有足够的耐心,玩上全屏的《绝地求生》版《堡垒之夜》不是梦。
结果
经过12小时的训练,CycleGAN已经能成功地把天空、树木、草地转成《绝地求生》样式,原先卡通风格的过饱和颜色也更自然、逼真。除了天空不那么蓝,草地不那么绿,神经网络居然还学会了把《堡垒之夜》的弹药和血量指示器换成《绝地求生》风格。
总而言之,神经网络在识别两个域图像并转换风格上表现出色,虽然分辨率不高,但这些美中不足都会随技术发展逐渐消失。更重要的是,这种方法直接跳过了传统3D渲染技术,而且结果还意外地不错。联想到欧美大厂正在纷纷开设AI实验室,日系游戏厂商也在积极和新技术接轨,未来神经网络会为游戏工业带来多大变革呢?我们拭目以待。
全部0条评论
快来发表一下你的评论吧 !