使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(一)

简介: 使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(一)

Sprite生产的几个阶段。即草图,线条图,底纹,区域上色和索引。

image.png


上面的图片来自Trajes Fatais:Feats of Fate游戏,我作为首席开发者从事该游戏的制作。长话短说,每个精灵要绘制大约一小时,每个角色平均要绘制五百个精灵。在“游戏的机器学习辅助资料生成:像素绘画Sprite表格研究”中,我们探索了Pix2Pix架构来自动生产Sprite的流程,将每个Sprite花费的平均时间减少了15分钟(〜25%)。这是我们首次发表的有关精灵生成的工作,我们希望在将来进一步改进它。

该论文获得了2019年巴西游戏与数字娱乐研讨会(SBGames 2019)的最佳论文奖。

像素绘画是视频游戏中最受欢迎的美学之一。它致力于重现任天堂和Arcade旧游戏的外观。在90年代,像素绘画是大多数游戏机的唯一选择。屏幕分辨率有限,并且大多数设备无法实时执行高级技术。如今,像素绘画已成为一种选择-一种昂贵的选择。

为了实现街机游戏的外观和感觉,绘画者必须受颜色数量限制。最初的Game Boy只有四种绿色。它的继任者Game Boy Color可同时显示多达56种不同的颜色。后来的设备称为16位生成器,每个像素点最多允许256种颜色,这是美学上的重大突破。在我们的游戏中,我们限制为每个角色256个颜色。

image.png

每个像素点都有自己的256种颜色

通常,像素点是“索引精灵”与“调色板”的混合体。绘画时,绘画者使用与调色板的256种颜色之一相关的“索引”对每个像素进行着色。在游戏中,每个索引精灵都用其关联的颜色替换,从而构成最终图像。此过程使设计人员可以为每个角色创建不同的“皮肤”,从而允许用户自定义其体验并为角色创建“邪恶”版本。下图描绘了索引精灵,调色板和渲染的混合。

image.png

索引精灵,调色板和渲染

将绘画者的颜色选择限制为256种是不科学的。这使得选择阴影很难。为了简化此任务,在语义上对工作进行了划分。在我们的通道中,生成了两个中间的精灵:“阴影”精灵和“区域”精灵。前者最多使用6个选择来表示“灯光”,而后者最多使用42个选择来表示精灵的“区域”,例如手臂,头发,腿等。将两个精灵像素相乘 -之后我们获得了索引精灵,它最多可以支持252种颜色(6 * 42)。下图显示了阴影,区域和索引精灵的示例。此过程将256色问题转换为两个简单的子问题,每个子问题分别具有6和42色。

image.png

从左到右,阴影,区域和索引精灵。

最终,每个角色都是由一个人设计的,他将为其所有动画进行绘制。它们以“草图”子图形显示,后来又被精炼为“艺术线条”子图形。前者用于在游戏中快速制作新动画的原型,后者用于与其他绘画者交流最终精灵的外观。这样,设计人员可以在几天内概念化整个角色,并将其余工作外包给绘图团队。以下是草图和艺术线条精灵的示例:

image.png

草图和艺术线条

设计师将所有动画放在一起,通过绘制每个动画的草图,然后制作各自的艺术线条来创建角色。这些线型精灵将按顺序传递给绘图团队,后者将绘制它们的着色和区域。最后,使用脚本将两者结合起来以生成可用于游戏的索引精灵。

总共大约需要一个小时。草图,线条图和区域精灵的制作平均需要10分钟,而阴影则需要花费其余时间才能完成。跟踪每个图纸花费的确切时间几乎是不可能的。为了计算它们,我们检查了生产日志,采访了团队,并以可控的方式测量了12个精灵的绘制步骤。

假设使用机器学习模型可以生成阴影和彩色图片,那么生成的精灵必须足够好,以至于人类绘画者可以用比从头开始绘制更少的时间来完善它。

生成对抗网络入门

在这项工作中,我们解决了两个图像映射问题:线条到阴影和线条到区域。形式上,我们必须创建一个生成器G(x),该生成器从线条艺术中接收输入,并在阴影/区域中生成输出。此问题也称为图像翻译。

为了保证G(x)是有用的映射,我们将创建一个鉴别器D(x,y),该鉴别器查看x和y并说明y是否是一个优质子画面。换句话说,G是我们的“虚拟艺术家”,D是我们的“虚拟鉴赏家”。如果我们能让G使D开心,那么我们就有一个有用的映射。

更详细地说,考虑一下我们有几个线条艺术精灵(x)以及已经绘制的人类绘画者的阴影和区域精灵(y)。我们知道这些通过了质量控制,因此D(x,y)将很高兴。现在我们的任务是训练G给定x产生ŷ(对真实y的模仿)。如果复制良好,D将批准ŷ;否则,它将予以谴责。最后,我们会修正D的对与错,并要求D提供有建设性的反馈。

我刚刚描述的过程称为对抗训练。从某种意义上说,两种模式“竞争”,一种正在试图击败另一种。在我们的案例中,G试图击败D使其认为ŷ是y,而D则拼命试图说出什么是真实的,什么是假的。随着时间的流逝,G将成为成功的艺术家,而D可能会被解雇。

通过使用神经网络实现G和D,我们得到了所谓的生成对抗网络。将标题分解为“条件”是因为G接受x而不是随机噪声作为输入,“对抗”是因为它训练对手成为输入器,而“网络”则是(神奇!)神经网络 。

从算法上来说,对于每个线条艺术x和阴影/区域精灵y:

  1. 使用G从x生成ŷ
  2. 使用D评估ŷ是否看起来逼真
  3. 使用y和D的反馈来训练G
  4. 训练D认识到ŷ是假的而y是真的。

多次对整个数据集重复执行此过程,最终将融合为一个G网络(创建逼真的绘画)和一个D网络(无法分辨出图像是真实的或伪造的)。

Pix2Pix架构

Pix2Pix体系结构为基于U-Net生成器和基于补丁(Patch)的鉴别器。下图显示了组合的体系结构。鉴别器经过训练,可将每个32x32图片分类为真实或伪造,并经过交叉熵损失训练。反过来,训练生成器以使y和ŷ之间的L1损失最小,并使鉴别器损失最大。

image.png

高级Pix2Pix架构。

U-Net模型是基于编码器-解码器思想的全卷积神经网络。对于每个编码器层,将跳过全连接添加到解码器层。这允许网络利用来自编码层的“原始”信息和通过解码器层的“已处理”信息。这里给出了该体系结构及其相应出版物的全面概述。

鉴别器是一个截断的网络,输出对多个补丁图像的判断,而不是对整个图像的判断。因此,鉴别器向生成器提供详细的反馈,指出哪些区域看起来是真实的,哪些区域看起来是伪造的。可以在此处找到该体系结构内部细节的完整概述。

与原始网络相比,我们进行了以下更改:

  1. 我们使用了Y型网络。一个编码器,两个解码器和两个鉴别器。这样一来,即可解决阴影和区域问题。
  2. 使用分叉架构,每个分支都有两个损失。同样,我们使用L2范数代替L1范数,因为它显示出更好的结果。
  3. 原始论文使用LeakyReLU单位。我们使用了ELU单位。
  4. 在编码器中,我们对每次下采样使用了两次卷积运算,而不是一次卷积。
目录
相关文章
|
机器学习/深度学习 自然语言处理 数据可视化
时序预测的三种方式:统计学模型、机器学习、循环神经网络
时序预测是一类经典的问题,在学术界和工业界都有着广泛的研究和应用。甚至说,世间万物加上时间维度后都可抽象为时间序列问题,例如股票价格、天气变化等等。关于时序预测问题的相关理论也极为广泛,除了经典的各种统计学模型外,当下火热的机器学习以及深度学习中的循环神经网络也都可以用于时序预测问题的建模。今天,本文就来介绍三种方式的简单应用,并在一个真实的时序数据集上加以验证。
459 0
时序预测的三种方式:统计学模型、机器学习、循环神经网络
|
机器学习/深度学习 算法 计算机视觉
使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(三)
使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(三)
204 0
使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(三)
|
机器学习/深度学习 算法
使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(二)
使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(二)
164 0
使用GAN绘制像素画,用机器学习的方式协助绘画者更快地完成作品(二)
|
机器学习/深度学习 数据可视化 算法
机器学习基础:可视化方式理解决策树剪枝
机器学习基础:可视化方式理解决策树剪枝
机器学习基础:可视化方式理解决策树剪枝
|
机器学习/深度学习
【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式
【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式
【机器学习技巧】回归模型的几个常用评估指标(R2、Adjusted-R2、MSE、RMSE、MAE、MAPE)及其在sklearn中的调用方式
|
机器学习/深度学习 Python
【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)
【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)
【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)
|
机器学习/深度学习 算法
阿旭机器学习实战【1】K-近邻算法(KNN)模型应用实例,以及图像表征方式
阿旭机器学习实战【1】K-近邻算法(KNN)模型应用实例,以及图像表征方式
阿旭机器学习实战【1】K-近邻算法(KNN)模型应用实例,以及图像表征方式
|
机器学习/深度学习 算法 数据挖掘
机器学习的几种学习方式
机器学习的几种学习方式
258 0
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】神经网络简介 ( 有向图本质 | 拓扑结构 | 连接方式 | 学习规则 | 分类 | 深度学习 | 机器学习 )(二)
【数据挖掘】神经网络简介 ( 有向图本质 | 拓扑结构 | 连接方式 | 学习规则 | 分类 | 深度学习 | 机器学习 )(二)
267 0
|
机器学习/深度学习 物联网 数据挖掘
【数据挖掘】神经网络简介 ( 有向图本质 | 拓扑结构 | 连接方式 | 学习规则 | 分类 | 深度学习 | 机器学习 )(一)
【数据挖掘】神经网络简介 ( 有向图本质 | 拓扑结构 | 连接方式 | 学习规则 | 分类 | 深度学习 | 机器学习 )(一)
759 0