掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

如何教机器绘画?

抽象的形象沟通对于人们交流思想发挥了重要的作用。孩子们很小的时候就发展出用简单的线条来描绘事物甚至表达自己情感的能力。这些简单的绘画可能没有照片来得真实,但它确实可以让我们从另一个角度了解人们是如何描绘和重建周围的世界的。

twitter_cover.png

sketch-rnn 生成的矢量图。

在最新论文《简笔画绘图的神经表征》(A Neural Representation of Sketch Drawings) 中,我们提出了一个能够生成常见物体简笔画的生成式循环神经网络,其目标是以类似于人类的方式训练机器绘画和概括抽象概念。我们利用一个手绘简笔画的数据集训练我们的模型,其中每张简笔画表示握笔动作的一个序列:往哪个方向移动,什么时候提笔以及停笔。这样我们就可以创建一个具有广泛应用潜力的模型,从协助艺术家进行创作到帮助教学生如何绘画。

对于使用神经网络的生成式建模方面,目前已做了大量工作,其中大部分工作的重心是以 2D 像素网格来表示光栅图像。尽管这些模型目前能够生成逼真的图像,但由于 2D 像素网格的高维度,其面临的一个关键挑战是生成具有连贯结构的图像。这些模型有时产生的图像很有趣,例如,有三只乃至更多眼睛的猫,或有多个头的狗。

image02.png

上图展示了生成的身体部位数量错误的动物,这些是使用 128x128 ImageNet 数据集训练的先前 GAN 模型生成的。上图是

Ian Goodfellow 的 NIPS 2016 教程《生成对抗网络》(Generative Adversarial Networks) 中的第 29 图。

在这项工作中,我们受到人类绘画方式的启发,对更低维度的基于向量的表征进行了研究。我们的模型 sketch-rnn 以 sequence-to-sequence (seq2seq) 自编码器框架为基础。它融入了变分推理,并将超网络用作循环神经网络细胞。seq2seq 自编码器的目标是训练网络将输入序列编码成一个被称作向量的浮点数向量,并通过一个解码器尽可能接近地再现输入序列,从这一隐向量中重建输出序列。

sketch_rnn.png

sketch-rnn 的原理图。

在我们的模型中,我们刻意向隐向量添加噪音。在我们的论文中,我们展示了通过将噪声引入编码器和解码器之间的通信通道中,让模型无法再准确地再现草图,而是必须学会以噪音隐向量的形式捕捉草图的本质。我们的解码器将使用这个隐向量生成用于构建新简笔画的一系列动作。在下图中,我们将几个表现真实的猫的样子的简笔画输入编码器中,以使用解码器生成重建的简笔画。

image11.png

受过猫简笔画训练的模型重建的简笔画。

需要强调的是,重建的猫简笔画并不是对输入的简笔画的复制,而是与输入的简笔画具有相似特征的全新草图。为证明模型不是简单地复制输入顺序,而是确实学会了人类画猫的一些技巧,我们可以尝试将非标准简笔画输入编码器中:

当我们输入一个三眼猫的简笔画后,模型将生成一个具有类似轮廓的猫,但它只有两只眼睛,这就表明我们的模型已经知道猫只有两只眼睛。为证明我们的模型并不是简单地从大量储存的猫简笔画中选择最接近正常的猫的简笔画,我们可以尝试输入一些完全不同于猫的物体,如一只牙刷的简笔画。我们看到网络仍然努力生成了一只猫的形象,拥有长长的胡须,同时尽量遵循牙刷的形状。这表明网络已经学会了将输入简笔画编码成一组抽象的猫的概念,并嵌入到隐向量中,同时还能基于这个隐向量重建一个全新的简笔画。

还是不太相信?我们再用一个受过小猪简笔画训练的模型来重复此实验,看看能不能得出相似结论。如果输入一只有八条腿的猪,该模型生成的形状将与猪相似,并且只有四条腿。如果向画猪的模型输入一辆卡车的简笔画,那么它就会画出一头长得像卡车的猪。

未命名1493870471.png

为了研究这些隐向量是如何编码动物形态特征的,在下图中,我们首先从两张迥然不同的小猪简笔画中获得隐向量,在此案例中是一个猪头(绿色框中)和猪的全身(橙色框中)。我们希望了解我们的模型是如何学会表现猪的形象的,一种方法是在两个不同的隐向量之间进行内插,并将内插的隐向量生成的每个简笔画进行可视化。如下图所示,我们展示了猪头的简笔画是如何慢慢变成整头猪的,以及模型是如何理解猪的简笔画这个概念的。我们可以看到隐向量控制着简笔画中鼻子相对于头的位置和尺寸,然后又添加了身体和腿。

image04.png

从一个受过猪简笔画训练的模型生成的隐空间插值。

我们还想知道如果模型学会了表现多种动物,那它们将会是什么样子?在下图中,我们通过在猫头和整头猪之间内插隐向量生成简笔画。我们可以看到表征是如何慢慢地从猫头过渡到具有尾巴的猫,再过渡到一个有肥胖身体的猫,最后变成一头完整的猪。就像儿童学习绘画一样,我们的模型通过将动物的头、腿、尾巴添加到身体上来画出自己想要的动物。我们看到,模型还可以绘制与猪头完全不同的猫头。

未命名1493870533.png

以上这些插值示例表明隐向量确实对简笔画的概念特征进行了编码。但是,我们是否可以使用这些特征来填充没有此类特征的其他简笔画,比如为一个猫头加上身体?

未命名1493870540.png

确实,我们发现受过猫和猪绘制训练的模型可以进行简笔画绘制类比。例如,我们可以从整头猪的隐向量减去已编码的猪头的隐向量,从而得到一个表现身体概念的向量。将这一区别添加到猫头的隐向量中,从而得到一只完整的猫(即,猫头+身体=整只猫)。这些绘图类比让我们可以探索模型是如何组织其隐空间以在生成的众多简笔画中体现不同概念。

创新性应用

除这一工作的研究部分外,sketch-rnn 的创新性应用也让我们非常兴奋。例如,即使在最简单的用例中,图案设计人员也可使用 sketch-rnn 生成大量相似却又独一无二的设计,以用于纺织品或者墙纸印刷。

未命名1493870547.png

正如之前看到的,如果输入一个卡车的简笔画,则受过画猪训练的模型可被用来画像猪一样的卡车。我们可以将这一结果扩展到应用,以帮助创作型设计人员处理抽象设计,从而更好地与目标受众产生共鸣。

例如,在下图中,我们向进行绘制猫训练的模型中输入四个不同椅子的简笔画,从而生成了四只像椅子一样的猫。我们可以进一步融入之前介绍的插值方法,探索长得像椅子一样的猫的隐空间,并生成大量的设计以供选择。

未命名1493870562.png

对不同对象之间隐空间的探索可能会使创作型设计人员找到有趣的交集以及不同绘画之间的关系。

未命名1493870569.png

我们还可以使用 sketch-rnn 的解码器模块作为独立模型,并训练它预测不完整简笔画的各种可能的结尾。通过建议完成不完整作品的备用方法,可将这一技术应用于通过模型协助艺术家进行创作。下图中,我们绘制了不同的不完整简笔画(红色的),并且让模型以不同的可能方式完善这些绘图。未命名1493870577.png

我们可以进一步展开该概念,用不同的模型完成同样的不完整简笔画。在下图中,我们看到如何使同样的圆形和方形成为蚂蚁、火烈鸟、直升机、猫头鹰、沙发甚至画笔等物体的一部分。通过使用训练绘制不同物体的一组多样的模型,设计人员可以探索向受众传达有意义的视觉信息的创新方式。

multi_prediction.png

使用被训练用来绘制不同物体的各种 sketch-rnn 模型预测相同的圆形和方形(中心)的尾部形状。

生成式向量图像模型的前景非常光明,我们为此感到非常兴奋。这些模型可从多种不同方向为许多令人激动的新颖的创新性应用提供支持。它们也可以作为工具帮助我们提升对创新思维流程的理解。要了解有关 sketch-rnn 的更多详情,请阅读我们的论文《简笔画绘图的神经表征》(A Neural Representation of Sketch Drawings)。

致谢

非常感谢 Ian Johnson、Jonas Jongejan、Martin Wattenberg、Mike Schuster、Ben Poole、Kyle Kastner、Junyoung Chung、Kyle McDonald 在此项目上给予的帮助。这项工作是 Google Brain 学员计划的一部分。

0.gif

原文来自:谷歌开发者

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 营运车判定查询

    输入车牌号码或车架号,判定是否属于营运车辆。

    输入车牌号码或车架号,判定是否属于营运车辆。

  • 名下车辆数量查询

    根据身份证号码/统一社会信用代码查询名下车辆数量。

    根据身份证号码/统一社会信用代码查询名下车辆数量。

  • 车辆理赔情况查询

    根据身份证号码/社会统一信用代码/车架号/车牌号,查询车辆是否有理赔情况。

    根据身份证号码/社会统一信用代码/车架号/车牌号,查询车辆是否有理赔情况。

  • 车辆过户次数查询

    根据身份证号码/社会统一信用代码/车牌号/车架号,查询车辆的过户次数信息。

    根据身份证号码/社会统一信用代码/车牌号/车架号,查询车辆的过户次数信息。

  • 风险人员分值

    根据姓名和身份证查询风险人员分值。

    根据姓名和身份证查询风险人员分值。

0512-88869195
数 据 驱 动 未 来
Data Drives The Future