谷歌论文抢鲜看:教机器画画

本文的 “咱们” 所指的是谷歌,本文为翻译文章。

前言

抽象的视觉传达是人们彼此之间交流的一种方式,占着交流方式的主要一部分。从小的时候开始,孩纸们就能够经过简单的描绘来形容一个具体的物体或者描述他们的心情,可是他们所画的东西不像照片所拍摄的同样与现实事物同样,可是它能够告诉咱们一些关于人们如何表明和重建周围世界图像的方式。html

图 : sketch-rnn 矢量绘图算法

正文

在谷歌最近的论文“A Neural Representation of Sketch Drawings”中,提出了一种可以产生普通物体草图的生成式复现神经网络,其目的是训练机器人以和人类类似的方式绘制和归纳一些抽象概念,在手绘草图训练模型,每个笔:移动方向、何时抬起笔、何时中止绘画,在这个过程当中,他们建立了一个可能有着诸多应用的程序模型,从辅助创做家创做到帮助学生绘制。网络

虽然如今已经有大量使用神经网络的图像生成建模工做,但大部分工做着重于对2D网格像素的光栅图像进行建模,虽然这些模型均能生成一些逼真的图像,因为2D网格像素的高维度,它们的关键是生成具备相干结构的图像,好比它们可能会生成拥有3只或者更多眼睛的猫、拥有多个头部的狗。框架

用128x128 ImageNet数据集训练,使用之前的GAN模型产生的身体部位数量错误的动物的例子, Generative Adversarial Networks, Ian Goodfellow, NIPS 2016 Tutorial.ide

在本文中,咱们研究了一个基于人体绘制的低维向量的表示,咱们的模型,sketch-rnn是基于序列到序列(seq2seq)自动编码器框架。 它包含变分推理,并将超网络用做复发神经网络单元。seq2seq自动编码器的目标是训练网络将输入序列编码为浮点数的向量,称为潜向向量,而且从该潜矢量使用解码器来重构输出序列,该解码器尽量复制输入序列 。工具

图 : sketch-rnn原理图学习

在咱们的模型中,咱们刻意的在向量中添加噪声,在咱们的论文中,咱们代表,经过将噪声引入到编码器和解码器之间的通讯通道中,该模型不可以准确地再现输入草图,而是必须学会将草图的本质捕获为嘈杂的潜在向量。咱们的解码器采用这个潜在的向量,并产生用于构建新草图的一系列运动动做。 在下图中,咱们将几个实际的猫的草图提供给编码器,以使用解码器产生重建的草图。google

图 : 猫草图的重建编码

强调:

重建的猫草图不是输入的草图的副本,而是与输入具备类似特征的猫的新草图,为了证实该模型不是简单的复制,而且实际学到了一些关于人们绘制猫的方式,咱们能够尝试将非标准的草图提供给编码器:spa

当咱们提供一只拥有3只眼睛的猫做为输入草图时,该模型产生了一只两只眼睛的猫,这代表咱们的模型已经知道了猫一般只有两只眼睛,为了代表咱们的模型不是简单的从大量记忆猫草图中选择最接近正常猫,因此咱们尝试输入不一样的东西,如牙刷草图,咱们看到了该编码器产生了一个像猫的形状,长满胡须,模仿牙刷的特征和方向。这代表网络已经学会将草图编码嵌入到潜在向量的一组抽象猫概念,而且还能基于这个潜在向量构建全新的草图。

若是不相信咱们能够重复一次对猪草图训练的模型,而且得出相似的结论,当出现一只有8只脚的猪时,该模型生成一只只有四条腿的猪,若是在这个输入草图中再加入卡车,咱们会获得一直看起来像卡车的猪。

图 : 猪草图的重建

为了研究这些潜在载体如何编码概念动物特征,在下图中,咱们首先得到两个很是不一样的猪编码的两个潜在载体,在这种状况下,猪头(绿色盒子)和一头满完整和猪(橙色) 框)。 咱们想知道咱们的模型如何学习表明猪,一种方法是在两个不一样的潜在向量之间进行插值,并从每一个内插潜在向量中可视化每一个生成的草图。 在下图中,咱们能够看出猪头的草图如何缓慢地变成全猪的草图,并在此过程当中展现了模型如何组织猪草图的概念。 咱们看到,潜伏矢量控制鼻子相对于头部的相对位置和大小,以及草图中身体和腿部的存在。

图 :潜在空间插值生成的一个模型训练猪草图

咱们还想知道咱们的模型是否能够学习多种动物的特征表现,若是能够,会是什么样子? 在下图中,咱们经过在猫头和一只完整的猪之间插入潜在载体产生草图。 咱们看到这个表现如何从猫头,一只尾巴猫到一只胖胖的身体的猫,慢慢地变成一只全猪。 像一个学习绘画动物的孩子同样,咱们的模型经过将头,脚和尾巴附着在身上来学习建造动物。 咱们看到,该模型还可以绘制与猪头不一样的猫头。

图 :猫和猪一块儿做为输入草图训练图

这些插值示例代表潜在的矢量确实对草图的概念特征进行了编码。 可是,咱们可使用这些功能来增长没有这些功能的其余草图 - 例如,向猫添加一个身体?

图 :使用潜在的向量算法探索抽象概念之间的学习关系

事实上,咱们发现草图绘制类比是可能的,咱们的模型训练猫和猪草图。 例如,咱们能够从完整猪的潜在载体中减去编码猪头的潜在载体,以得到表明身体概念的载体。 将这种差别添加到猫头的潜在载体中会产生一只完整的猫(即猫头+身体=完整的猫)。 这些绘图类比使咱们可以探索模型如何组织其潜在空间,以便在生成的草图的多边形中表示不一样的概念。

创意应用

除了这项工做的研究部分,咱们对草图的潜在创意应用也感到很是兴奋。 例如,即便在最简单的用例中,模式设计人员也能够应用sketch-rnn为纺织品或壁纸打印生成大量类似但独特的设计。

图 :由单一输入草图(绿色和黄色框)生成的相似但独特的猫

如前所述,若是给出卡车的输入草图,则能够制做一个训练成猪仔的模型来绘制猪式卡车。 咱们能够将此结果扩展到应用程序,这些应用程序可能有助于创意设计师提出能够与目标受众更多共鸣的抽象设计。

例如,在下图中,咱们将四把椅子的草图放入咱们的绘图模型中,生产四只椅子般的猫。 咱们能够进一步,并结合前面介绍的插值方法来探索座椅猫的潜在空间,并产生一个大的网格生成的设计来选择。

探索不一样对象之间的潜在空间可能使创意设计师可以找到有趣的交叉点和不一样图形之间的关系

探索生成的平常物品草图的潜在空间

从左到右的潜在空间插值,而后从上到下

咱们也可使用sketch-rnn的解码器模块做为独立模型,并对其进行训练,以预测不完整草图的不一样结果。 这种技术可让应用程序经过提供完成不完整草图的替代方法来协助艺术家的创做过程。 在下图中,咱们绘制不一样的不完整草图(红色),并使模型获得不一样的可能方式来完成绘图。

该模型能够从不完整的草图(垂直线左侧的红色部分草图)开始,并自动生成不一样的图像

咱们能够进一步把这个概念,并有不一样的模型完成相同的不完整素描。 在下图中,咱们看到如何使同一个圆圈和方形图成为各类蚂蚁,火烈鸟,直升机,猫头鹰,沙发甚至油漆刷的一部分。 经过使用训练有素的多种模式来绘制各类对象,设计人员能够探索创造性的方式来向观众传达有意义的视觉信息。

使用训练了不一样对象的sketch-rnn模型 预测圆和矩形(中间)的结尾

这些模型将使许多使人兴奋的新的创意应用程序在各类不一样的方向。 他们也能够做为一个工具来帮助咱们提升对本身创意思惟过程的理解。 经过阅读咱们的论文“A Neural Representation of Sketch Drawings”,了解更多关于sketch-rnn的信息。

致谢

感谢Ian Johnson,Jonas Jongejan,Martin Wattenberg,Mike Schuster,Ben Poole,Kyle Kastner,Junyoung Chung,Kyle McDonald对这个项目的帮助。 这项工做是Google Brain Residency计划的一部分。

相关文章
相关标签/搜索