原文转载于:https://blog.csdn.net/L70AShC3Q50/article/details/81187226

作者:邵宇,清华大学计算机专业博士

近期谷歌的“猜画小歌”小程序在微信里很风靡,大家对它又恨又爱,原来电脑这么好玩,画得这么乱都能识别出来,但是有时候明明画得很像,为什么就不能正确识别呢?

谷歌在2017年5月发布的文章《ANeural Representation of Sketch Drawings》中,详细介绍了如何对这类简笔画进行建模,以及如何用电脑自动生成简笔画。

如果想自己动手玩,网址是:https://magenta.tensorflow.org/sketch-rnn-demo

0. 这篇文章有哪些好玩的结果?

答:(1)模仿人画画。上面一排是人画的,下面一排是AI在人画的基础上,重建的简笔画

(2)能画出“狮身人面像”。如输入一个牙刷到猫模型里面,就出现了具有牙刷样子的猫

(3)能帮人纠错。如果输入了八条腿的猪,输出会纠正为四条腿。

(4)能做变换。从一个物体变到另一个物体,如从自行车渐变到瑜伽,从猫变到一头猪。

(5)能做预测。预测人未来可能画画的步骤,如下图红色的人画的,其它颜色是AI预测的。

(6)能从一个简单的输入,得到不同的简笔画。如输入一个圆圈和正方形,在不同的模型中,得到了蚂蚁、自行车、直升飞机等等不一样的输出。

1. 电脑AI识别简笔画具体的模型?

答:该模型谷歌将其称为:sketch-rnn。

蓝色的部分是将简笔画进行编码,生成一个图像的特征向量,自动编码框架的目标是训练一个将输入序列编码为浮点数向量的神经网络,这个向量称为latent vector。而粉红色的部分是是利用特征向量生成简笔画,使用解码器从latentvector重构输出序列。

该模型的训练过程非常好理解,就是深度学习里的自动编码器原理。由于这篇文章是开创性的,考虑到画画是一个序列过程,因此这篇文章很自然的:在编码和解码都用到了RNN,后续也有其他学者对其进行来改进,如用 CNN-RNN来进行编码。

2. GAN模型也能让AI自动画画,为什么不用GAN模型?

答:GAN往往是基于像素来生成,会出现很奇怪、很吓人的结果,如三个头的猴子。而sketch-rnn是基于笔画建模的,最终AI画画的结果是向量图。

3. 为什么这个自动编码器能这么成功?

答:所有的深度学习训练过程都用到自动编码,首先将输入的绘画序列变为一个本征向量(参数为。sketch-rnn中的两个金字塔神经网络模型(一个是编码、一个是解码)放在一起竟然能成功!其实谁也不知道为什么,但它就是好用,结果好行。

4. 画画的过程如何变成模型的输入?

答:一般一个简笔画,大概200~300个像素点。第一步:以落笔的第一点为原点,以后的每一点都用5个元素表示(X,Y,P1,P2,P3)来表示,其中X,Y是坐标点,P1,P2,P3是one-hot 向量,也即是这三个中只有一个为1,其余两个为0,其中P1=1表示当前正在画画,P2=1表示笔将离开画板,P3=1表示画画结束。

自动编码器的模型输入是不超过300点的序列。下面这个乌龟,用5个元素的序列表示如下。

5. 训练的样本量有多大?

答:每个类别都有7万个训练样本,以及2500个验证和测试样本。

6. 以上的sketch-rnn模型建模和训练,只能做到让电脑自动画简笔画,那电脑是如何判断我画的画是属于什么类别?

答:谷歌没有披露具体的过程,我猜一个简单的方法:是用sketch-rnn模型训练数据库里所有的数据,然后将模型蓝色部分(也就是编码部分)latentvector作为简笔画的特征,然后基于监督方法训练出一个判别函数,用于判别我画的内容属于哪一类。在实践中,AI可能同时猜出好几个类别出来,这可能是判别函数的输入latent vector上加了一点噪声,使得输出有好几种类别。

当然,也可以用比较复杂的方式实现:对样本中350多个类别,每个类别建立一个sketch-rnn模型,再叠加一个判别函数。

7. 玩“猜画小歌”有什么技巧?

答:(1)不要拖泥带水,简洁最重要。因为程序只能接受大约200个左右的输入点,如果画很多细节,反而认不出来。以下是我画的蝴蝶,够简单吧。那个斑马图输在脖子画太多细节了。

(2)如果第一次画的没有识别出来,迅速擦掉重画,不要希望AI会后期力挽狂澜。从sketch-rnn模型可以看出,画画的路径转换为latent vector,前期的数据比重很重要。

(4)最后一招:谷歌公开了所有类别的训练样本,大家可能上这个网站(https://github.com/googlecreativelab/quickdraw-dataset)下载,看看每个类别“正确”的画法。

8. 为什么要在中国推小程序?

答:因为谷歌的网页版猜画小歌,由于大家都知道的原因,没有中国的数据。这次利用微信小程序刚好收集一下中国的数据。有人还做了不同国家画画的差别,比如日本人画圆是顺时针的,而绝大多数国家是逆时针的,原因是日文中的圆的顺时针写的。韩国和俄罗斯用户脑中,最直觉性的椅子图像是侧放的,而美国、德国、巴西、南非都是正面放置的。后续基于这个大样本,还能分析出很多好玩的东西。

从“猜画小歌”背后的AI原理,教大家如何得高分相关推荐

  1. 你的灵魂画作都去哪儿了?“猜画小歌”背后的5000万组数据

    大数据文摘公众号(ID:BigDataDigest)出品 作者:魏子敏.halcyon 自从退出中国的搜索引擎市场,谷歌大概无时不刻都想"卷土重来".昨天,这家以搜索引擎著称的巨头 ...

  2. 还没通关“猜画小歌”?击败谷歌AI的秘籍在此

    这两天,Google又刷屏了. 不是因为这家公司要被欧盟罚款50亿美元,而是因为Google首款微信小程序"猜画小歌":跟AI玩我画你猜的小游戏.  有很多人赞美. " ...

  3. 猜画小歌技术解密!推出一天 中国网民“疯”了

    看点:退出中国8年后,谷歌靠一款小程序再度挑动全中国网民. 谷歌最近狠秀了一把存在感,前一刻还因安卓系统垄断事件被欧盟处以数十亿欧元的天价罚单,后一刻就凭借首款AI微信小程序"猜画小歌&qu ...

  4. 《猜画小歌》背后趣事

    前言 这个博客是补上周的,这次就聊一聊轻松的话题.要问这几天哪个游戏最火爆,非<猜画小歌>莫属,作为一个资深游戏爱好者,自然不能放过,连着完了N多盘,发现真的是爱不释手.下面就来说说< ...

  5. AI版「按图索骥」,比猜画小歌更复杂的的AI交互游戏

    郑集杨 发自 凹非寺  量子位 报道 | 公众号 QbitAI 你能在时间结束前根据Emoji找到你身边的物品吗?大概,像这样: 跟我玩?不不不,是你自己跟这个AI玩,找出东西然后让AI辨认它. 这并 ...

  6. 谷歌“猜画小歌”被吐槽:这AI怕是个傻子吧

    相信大家的朋友圈最近一定被"涂鸦"刷屏了. 西雅图IT圈:seattleit [今日作者]宇直 宇宙第一直男 最近,谷歌推出了旗下首款微信小程序"猜画小歌".和 ...

  7. 从「猜画小歌」,谈企业的「数据困惑」该何去何从?

    「猜画小歌」坐拥5000万组大数据,你怎么看? Google很会玩. 当所有做云计算.大数据.手机的厂商在广而告之其先进的技术能力时,通常采用直白宣讲式的说教,落地的东西却很少,听多了也就是过眼烟云. ...

  8. 一夜刷屏的「猜画小歌」遭到反编译,内部还暗藏哪些玄机?

    Mobile First To AI First!Google 携第一款微信小程序开始在中国 AI 领域试水. 昨天,Google AI 在国内发布了一款微信游戏小程序「猜画小歌」,瞬间刷爆了朋友圈, ...

  9. 厦门日报:猜画小歌的纠错助手来自厦门

    摘要: 谷歌推出的这款AI微信小程序风靡网络,厦门市创业团队为其提供排除程序错误服务 本报讯 (记者 林露虹 实习生 刘冰莹)让人工智能猜一猜你画的是什么东西,猜出来就算过关.最近一段时间,谷歌AI的 ...

最新文章

  1. MySqli操作数据库
  2. java 字符串 加密_如何用JAVA实现字符串简单加密解密?
  3. php文本教学,php中文本操作的类
  4. linux线程间通信优点,进程间通信与线程间通信【转】
  5. 五大特点_探究干细胞五大特点:(五)不成瘤
  6. Python游戏开发--外星人入侵(源代码)
  7. java传感器编程_JSensorReader 无线传感器网络环境,直接从节点读取 采集数据的java程序 Script 249万源代码下载- www.pudn.com...
  8. html文本框光标位置,html的文本框显示光标 如何在htmlText文本框光标处插入字符...
  9. matlab矩阵里的最大值和最小值,求助 Matlab 用MAGIC命令产生一个5阶矩阵,并求该矩阵每列的最大值、最小值、平均数、和...
  10. The name `AssetDatabase' does not exist in the current context
  11. 老九学堂 学习 C++ 第四天
  12. 基础提升*哈希函数与哈希表
  13. mysql 学习小札(1)
  14. 云计算原来是IT界工资最高的
  15. C语言从键盘获取一个小于1000的正数,要求输出它的平方根。
  16. 长安大学计算机技术历年复试线,长安大学2011年-2013年研究生历年复试分数线汇总.xls...
  17. linux推流软件推荐,在Linux 系统使用ffmpeg软件做哔哩哔哩视频网站推流 | IT工程师的生活足迹...
  18. 某程序员哀叹:提出离职后被公司挽留,千万别留!自己拒绝offer留下来,却惨遭边缘化!...
  19. python依托Excel批量实现调查问卷数据的图表可视化
  20. word 标题编号变成黑色方块怎么解决

热门文章

  1. 四川速匠抖音个人IP的技巧有哪些
  2. MEMS 陀螺仪资料整理之《MEMS 陀螺仪简介及其应用》
  3. ggplot2绘图颜色
  4. HTML标签与认识浏览器
  5. 小程序使用人数服务器,微信小程序用户现在有多少?2019使用人数总量达7亿(3)...
  6. 2019年人工智能的薪资前景如何?程序员如何学习人工智能?
  7. vux scroller在iOS上,一停止滑动就跳到顶部
  8. Linux 的GCC的编译过程及方式
  9. H3C VXLAN配置
  10. SQL SERVER 查询Job作业基本信息及执行情况