0%

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

声明

作者:YingJoy
本文的 “我们” 所指的是谷歌,本文为翻译文章。

前言

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

图 : sketch-rnn 矢量绘图

正文

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

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

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

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

图 : sketch-rnn原理图

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

图 : 猫草图的重建

强调:

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

当我们提供一只拥有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计划的一部分。