Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

思源报道

效果惊人:上古卷轴III等经典游戏也能使用超分辨率GAN重制了

很多游戏曾经承载着一代人的记忆,CS、魔兽争霸、红警更是经典中的经典。但是随着计算资源的大幅度提升和「显卡杀手」的不断涌现,很多时候我们会感觉这些游戏的画面非常粗糙,甚至适配到宽屏都需要特定的修改。很多游戏自身也会一直迭代新版本,然而也很难取代第一次玩游戏的感动。尽管目前有一些高清重制版,但需要很多成本和时间,因此技术宅们想到了深度学习,想到了图像超分辨率。

图像超分辨率是指从观测到的低分辨率图像重建出相应的高分辨率图像,这种重建不仅指令图像变得清晰锐利,同时还表示模型需要利用图像的高级语义信息重建出丢失的信息。因此这实际上是一个比较困难的任务,不过目前基于卷积神经网络生成对抗网络的方法还是有比较好的效果。

最近有研究者使用超分辨率技术「高清化」曾经的经典游戏,他们从去年 12 月开始陆续推出几款「高清重制版」游戏,包括《重返德军总部》、《毁灭战士》和《上古卷轴 III:晨风》,而这几天更是放出《马克思·佩恩》的高清版。这些高清化的游戏都可以直接下载:

  • 重返德军总部:http://www.mediafire.com/file/1o5k4ktrkk4cv54/pak1.pk3/file

  • 毁灭战士:https://www.doomworld.com/forum/topic/99021-v-0-95-doom-neural-upscale-2x/

  • 上古卷轴 III:晨风:https://www.nexusmods.com/morrowind/mods/46221?tab=files

  • 马克思·佩恩:https://www.moddb.com/games/max-payne/addons/max-payne-remastered

下面的视频展示了《重返德军总部》的超分辨率效果,游戏看上去精细了很多:

此外值得注意的是,重制版游戏的纹理都是采用 ESRGAN 构建的,因此重制的纹理保留了原始纹理的美感。这对很多玩家而言是非常有意义的事,因为老游戏的纹理不需要替换,它们的艺术风格同样不会改变。这也就避免了玩人工重制版游戏像玩新游戏那样的尴尬。

马克思·佩恩原版游戏截图与使用 ESRGAN 超分辨率重制游戏的截图。

这个项目采用的超分辨率技术是 2018 年提出的 ESRGAN,即增强型超分辨率生成对抗网络,这种技术会将真实的细节添加到低分辨率的图像中,因此产生更精细的画面。通过欺骗判别器,相比传统的超分辨率技术,它能生成更大保真度、更真实的图像。此外 ESRGAN 还开源了论文代码,说不定这些游戏就是使用这个项目做的呢。

ESRGAN 实现地址:https://github.com/xinntao/ESRGAN

ESRGAN 的核心思想同样非常直观,即我们希望生成器能生成高分辨率图像以欺骗判别器。其中生成器会将低分辨率图像作为输入,并采用如下的神经网络将低分辨率图像扩张成高分辨率图像。如果判别器不能识别生成高分辨率图像和已有高分辨图像之间的差别,那就表示超分辨率模型的效果非常好,我们就能愉快地重制经典游戏了。

如上所示,ESRGAN 采用 SRResNet 作为生成器的基本架构,其中大多数计算都发生在低分辨率的输入图像 LR 上,它因为尺寸较小而能节省很多计算力。此外相比于原版的 SRResNet,ESRGAN 修正了主要的残差模块,因此更适合生成对抗网络。在完成橙色部分的主要运算后,生成器能提取低分辨率图像的高级语义信息,借助这些信息并完成上采样后,模型最终能生成高清大图。

前面所示生成器的计算主要发生在橙色的残差模块,ESRGAN 发现批量归一化(BN)在训练集和测试集有显著差异的情况下会降低模型准确率,且在 GAN 框架下不是那么重要,因此他们删除了 BN 模块。ESRGAN 中的另一个改进是将残差模块替换为残差+密集连接模块,这两个改进都展示在下图。

ESRGAN 尽可能地提升生成器的表达能力,不过判别器只需要常见的二分类模型就行了,它需要判断图像到底是标注的高清图还是生成的高清图。当然,GAN 本身还有很多改进以匹配超分辨率任务,包括 采用 Relativistic 判别器和 Perceptual 损失函数等,感兴趣的读者可查阅以下原论文。

论文:ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks

论文地址:https://arxiv.org/abs/1809.00219

摘要:超分辨率生成对抗网络(SRGAN)是一项开创性的工作,能够在从单张低分辨率图像重建出高分辨率图像(single image super-resolution,SISR)过程中生成逼真的纹理。然而,预测细节通常伴随着令人不快的伪影。为了进一步提高视觉质量,我们彻底研究了 SRGAN 的三个关键组成部分:网络架构、对抗性损失和感知损失,并对每个组件进行了改进,得到了增强型 SRGAN(ESRGAN)。特别是,我们在没有批归一化的情况下引入 Residual-in-Residual Dense Block(RRDB)作为基本网络构建单元。此外,我们借用 relativistic GAN 的思想来让判别器预测相对真实性而不是绝对值。最后,我们通过使用激活前的特征来改善感知损失,这可以为亮度一致性和纹理恢复提供更强的监督。得益于这些改进,本研究提出的 ESRGAN 实现了始终如一的更好的视觉质量,具有比 SRGAN 更逼真和自然的纹理,并在 PIRM2018-SR 挑战赛中获得第一名。

理论超分辨率GAN游戏
1
相关数据
感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

图像重建技术

通过物体外部测量的数据,经数字处理获得三维物体的形状信息的技术。图像重建技术开始是在放射医疗设备中应用,显示人体各部分的图像,即计算机断层摄影技术,简称CT技术,后逐渐在许多领域获得应用。主要有投影重建、明暗恢复形状、立体视觉重建和激光测距重建。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

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

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

上采样技术

在数字信号处理中,上采样、扩展和内插是与多速率数字信号处理系统中的重采样过程相关的术语。 上采样可以与扩展同义,也可以描述整个扩展和过滤(插值)过程。

生成对抗网络技术

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

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

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