查看原文
其他

神经网络已经猜到了你要绘制的内容

Google TensorFlow 2018-11-08
文 / David Ha,JONAS JONGEJANIan Johnson

Try the sketch-rnn demo


对于通过蜂窝数据连接网络的移动用户:第一个演示大小约为 5 MB 数据。每次在演示中更改模型时,您将使用另外 5 MB 的数据。


我们进行了一个交互式网络实验,让你能与一个名为 sketch-rnn 的循环神经网络模型一起绘制作品。我们利用来自于 Quick Draw! 游戏的数百万涂鸦训练该神经网络。一旦开始绘制对象,sketch-rnn 将提出许多可行的方法基于你中断的位置继续绘制此对象。试试第一个演示。


在上面的演示中,我们被提示开始绘制特定对象。一旦你停止涂鸦,神经网络将接管并试图猜测涂鸦的其余部分。你可以再次接管绘图并继续从中断处开始。我们训练了大约 100 种可以用于试验的模型,并且一些模型在多种类别上进行了训练。



其他 sketch-rnn 演示

下面的演示最好在桌面浏览器上体验,而不是在移动设备上体验。


多预测


多预测演示


该演示类似于第一个预测绘图其余部分的演示。在此版本中,您将在左侧区域内绘制草图的开头,模型将在右侧较小的框内预测图形的其余部分。这样,您可以看到模型预测的各种不同结局。预测的结局有时会让人感到期待,有时会出乎意料和奇怪,而且有时也可能是丑陋和完全错误的。


你还可以选择不同的类别,使模型基于相同的不完整的起始草图绘制不同的对象,或者使模型绘制方形猫或圆形卡车等内容。你可以随时中断模型并继续在左侧区域内绘制图形,并让模型不断预测你离开的位置。



插值


插值演示


除了预测不完整绘图的其余部分外,sketch-rnn 还可以从一个绘图变换到另一个绘图。在 Interpolation Demo 中,可以使用屏幕两侧的按钮随机生成两个图像。点击 Interpolate 按钮,模型将提出新的草图,作为两个原始草图之间的插值。在上图中,模型在自行车和瑜伽位置之间进行插值。尝试使用插值演示在两个随机生成的图像之间进行变换。


变分自动编码器


变分自动编码器演示


该模型还可以模拟你的绘图并生成类似的涂鸦。在变分自动编码器演示中,你将绘制指定对象的完整图形。在左侧区域内绘制完整草图后,点击自动编码按钮,模型将开始在右侧较小的框内绘制类似的草图。模型将尝试模拟你的绘图,而不是绘制完美的绘图副本。


你可以尝试绘制其他类别的绘图对象,并查看模型如何解释你的绘图。尝试变分自动编码器演示。



想了解更多?

如果您想了解更多信息,请参阅以下几点:


谷歌搜索关于本模型的 blog post(https://ai.googleblog.com/2017/04/teaching-machines-to-draw.html)

阅读我们的论文 A Neural Representation of Sketch Drawings (https://arxiv.org/abs/1704.03477)

早期的 Magenta blog post (https://magenta.tensorflow.org/sketch_rnn)介绍了此模型的 TensorFlow 实现。GitHub repo(https://github.com/tensorflow/magenta/blob/master/magenta/models/sketch_rnn/README.md)

该模型的 JavaScript 实现以及预先训练的模型权重。GitHub repo(https://github.com/tensorflow/magenta-demos/blob/master/sketch-rnn-js/README.md)


更多 AI 相关阅读:

· 快速入门 TensorFlow.js

· MobileNetV2:下一代设备上计算机视觉网络

· 利用显微图像的硅片标记查看更多信息

Be a Tensorflower


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存