这两天,一个“魔法画板”在国外传疯了。
AI圈内外的灵魂画手们玩到根本停不下来,创造的惊喜画作能装满好几个美术馆。
这个画板背后,可不是一个普通的画画AI。它,会脑补。
随便画一笔,就能得到一只猫:
画个圆圈,变成猫:
画个三角,变成猫:
画个方块,变成猫:
真是万物皆可喵喵。
当然,你也可以不让它画猫,改成画狗。只要你设定了一个绘画的目标,之后随便画一笔,AI就能脑补出余下的画面。
这个“魔法”,是来自谷歌的吸猫少女Monica Dinculescu用Sketch RNN开发的。
因为她爱猫成痴,不仅自己头像是和自家喵子的合影,连个人主页域名都叫Meowni.ca,我们就叫她喵妮卡好了。
所以,受到创作者的影响,这个AI默认属性为吸猫爱好者,但除了猫之外,AI也会脑补许多其他内容,脑洞很大。
发布之后,众人竞相玩耍,好评如潮,2000多人点赞。
有人让AI画了满屏的骷髅,说,好美啊!
谷歌大佬David Ha也表示,他已经试过用各种基本形状来教导AI画羊了。
喵妮卡给应用起名为魔法画板 (Magic Sketchpad) ,也名副其实。
毕竟,只要画一笔,妈咪妈咪哄!一整张图就出现在眼前。
而且,只要按一下选择栏左边的刷新按钮,AI就会根据刚才那一笔,不断为你展现新的画法。
一共有100多种东西可以画,青蛙,秋千,直升飞机,连龙猫里的猫巴士都有。
我是一只豆豆眼的猫头鹰:
我是一只很鬼魅的仙人掌:
为了这100多种选项,都能找到合适的色彩来诠释,画板还提供了18种颜色的画笔。
这样一来,就有数不清的排列组合。有大胆想法的小伙伴们,可以在魔法画板上尽情加戏了。
在你开始表演之前,量子位先抛抛砖:
鲸鱼喷出的不一定是水,也有可能是花。
牙刷上方温柔的曲线不一定是牙膏,也有可能是蜗牛。
另外,如果你还没想到,除了排列组合之外,还可以鬼畜啊。
一头鲸鱼喷水没什么,十几头鲸一起喷,就很有节奏感了 (误) 。
一个人做瑜伽太孤单了,十几个人一起做,姿态各不相同,清明瑜伽图岂不美哉?
不过虽然好玩,量子位似乎还是发现了一个bug,像猫巴士 (Catbus) 这种组合选项:画方成车,画圆成猫,无法兼顾。那么,怎样才能一步生成下面这样的效果呢?
想要体验一下的盆友,传送门照例在文末~
可能你已经发觉了,它的画风很像的谷歌推出的Quick, Draw!,中文名为“猜画小歌”。
是的,他们是一家人。
喵妮卡在推特上说了,她的魔法画板使用的就是Quick, Draw!数据集。
这个数据集里面,有5000万张画,分为345个类别。每一张画,都记录了画画的整个过程:画笔运动的方向,何时提笔,何时停止绘画。
如果你玩过猜画小歌,那这个数据集里,也有你的一份贡献。
既然使用的是Quick, Draw!数据集,模型基本上没有什么悬念。
正是Sketch-RNN。这是一个用Quick, Draw!数据集训练出来循环神经网络(RNN)。目标是让AI以类似人类的方式来画画,并概括出抽象的概念。
模型有这样的能力,做出来魔法画板也就没有那么难了。
你随手画个圈,就是为Sketch-RNN输入了一个序列,它可以根据这个序列和你选择要画的东西,预测接下来的序列:也就是补完这幅画。
虽然画风奇特,但画啥就有点像啥。
具体的实现代码,喵妮卡也全部放出来了。(传送门在文末。)
除了这个万物皆可喵的网页之外,喵妮卡所在的Google Magenta团队还用Sketch-RNN创作了几个不同的涂鸦应用。
你涂鸦的每一笔,都被我预料到了。
无论你画了个啥,我都能猜出你接下来准备如何下笔。
并且,我有无数种方案,只要点击predict,就可以出现新的9种图案。
而且我还能选择不同的美术风格,通过调整temperature,数值越接近1,我的画风越抽象、越狂放不羁;
数值越接近0,我的画风越写实,下笔婉转,基本符合小学美术的要求。
和GAN的许多应用Demo一样,Sketch-RNN也可以实现“渐变”功能。
比如,我们随机选了两个公交车的图案,图案的美术风格依然由“狂放度”temperature决定。
之后,点击Interpolate!就可以实现插值效果,也就是两个图案渐变过程的每一帧变化图案。
这个玩法用上了变分自动编码器(Variational Auto-Encoder,VAE)
VAE在这里的应用,是“模仿你画画”。
比如,画一只猫猫,画完之后点击auto-encode,就可以模仿你的笔触,画出各种不同的猫。
不过,在不同品类上,似乎学得不太像。
可能是贡献数据集的那些外国人,不认识“王”字,对小脑斧的理解跟我们不太一样吧。
另外,这个AI很有个性,非常坚持自己的看法。
比如选中菠萝pineapple,你非要画一个苹果,它也不相信你画的就是菠萝。
真是“投之以苹果,报之以菠萝”。
亲测手机可玩 https://magic-sketchpad.glitch.me/
实现代码: https://glitch.com/edit/#!/magic-sketchpad?path=README.md:1:0
多预测: https://magenta.tensorflow.org/assets/sketch_rnn_demo/multi_predict.html
插值: https://magenta.tensorflow.org/assets/sketch_rnn_demo/interp.html
变分自动编码器(VAE): https://magenta.tensorflow.org/assets/sketch_rnn_demo/multi_vae.html
Sketch-RNN论文: https://arxiv.org/abs/1704.03477
Google博客: https://ai.googleblog.com/2017/04/teaching-machines-to-draw.html
Magenta博客: https://magenta.tensorflow.org/sketch-rnn-demo
— 完 —