# 让程序来帮你“看图猜词”

- 作者：陈一斌
- 发布时间：2012-09-17 18:00
- 分类：公司
- 原文：https://www.ifanr.com/155183

[![](https://s3.ifanr.com/wp-content/uploads/2012/09/stick-figure-drawing.jpg "stick figure drawing")](https://s3.ifanr.com/wp-content/uploads/2012/09/stick-figure-drawing.jpg)

让电脑听懂我们说的话，曾经是一件很困难的事，然而随着商业与技术的发展，现在我们的梦想已经得到实现——在未来让电脑识别人的手写字体，或是简笔画，或许也不遥远。 美国布朗大学和德国柏林工业大学在一个项目上进行合作，[开发出](http://news.brown.edu/pressreleases/2012/09/sketches)一个可以识别人们“正在画什么”的程序。

就程序本身而言，它是一个非常简单的数字画板，你只能在一个小方格里面作画，而且画笔不能调整粗细，我也找不到橡皮擦在哪里（更正：按下鼠标右键就是橡皮擦）。不过没关系，因为程序的魔力不在于绘画功能有多强大——而是当你在作画的时候，程序能够根据你所画的图案，来猜测你在画什么——这种猜测是实时的，这才是重点。何谓“实时猜测”？当你在画着一张披萨饼的时候，程序会根据你中间所画出来的图案“猜测”你画的是什么，比如你在画披萨饼的轮廓时，程序可能会识别出这是一 个圆形，或是一个球，诸如此类。不过，当你将更多的细节增补上去，程序会根据更多的细节，让“猜测”逐步向披萨饼靠拢—— 当我在程序中画上披萨饼的轮廓，也就是一个圆的时候，程序就已经做好准备，猜测这个到底是一个月亮，还是一个西红柿，还是人的头等等，总之程序识别出这个是圆形，并将跟 “圆形”有联系的物体都放在旁边。跟圆形有最有直接联系的物体，是“moon”，因此程序将它放在所有猜测的最前面。

[![](https://s3.ifanr.com/wp-content/uploads/2012/09/sketch-1.jpg "sketch 1")](https://s3.ifanr.com/wp-content/uploads/2012/09/sketch-1.jpg)

而当我给图画增加更多细节的时候，比如将一整个圆形切分几个部分，这个时候程序开始根据增补的细节猜测我所画的图案是另外一种物体——这一次，它猜测图案是“wheel”。最后，我给用简单的图案代表了披萨饼上面的洋葱、香肠、奶酪等，给披萨饼增加最后的细节。这一次，程序终于识别出，这是一张披萨饼。

[![](https://s3.ifanr.com/wp-content/uploads/2012/09/sketch-2.jpg "sketch 2")](https://s3.ifanr.com/wp-content/uploads/2012/09/sketch-2.jpg)

光靠文字描述，也许很难让你感受到“实时猜测”功能的强大。下面是一段视频说明：

[Youku](http://v.youku.com/v_show/id_XNDUxMzIzNTk2.html)\|[Vimeo](http://vimeo.com/49311857#at=0)

在 这个程序上，我看到了计算机正在模仿人类的认知过程——就好像我看到突然看到一个未知的物体，我首先界定了它的外形来猜测它的功能，然后通过眼睛仔细观察、用手不停把玩，我甚至可能会闻一下，以加深对这个物体的了解从而找到符合它的概念。当我发现的细节越多，我所得出的概念就越确定。 目前而言，该程序只认识了 250 个单词，也就是只知道 250 种不同类别的东西——但根据该项目的负责人，来自布朗大学的计算机科学教授 James Hays 的描述，为了让计算机认识这 250 个单词，项目组成员花了很大功夫。 让计算机认识一种物体，目前流行的方式是“喂给”它们大量的数据，然后通过机器学习算法，最终得到有关的概念。之前，Google X 与纽约大学也进行过[类似的尝试](http://www.ifanr.com/102771)。 首先，Hays 他们找到 [LabelMe](http://labelme.csail.mit.edu/Release3.0/)，这是 MIT 为帮助计算机图形领域研究而开发的图像标注服务，上面保存了数量巨大的图像数据。在上面，研究人员找到了 250 种比较流行的物体类别。然后，他们借助 Amazon 旗下的群众外包平台 Mechanical Turk，雇人为每个类别的物体画画。项目最终收集到 20000 张简笔画风格的手绘草图。最后，研究人员图像分类，然后让计算机自我学习。也就是说，只要有相关的基础数据，计算机还能够认识更多概念。 目前程序识别手绘草图的正确率达到 56%，这个数字并不低，因为研究人员也把手绘草图拿给人识别，正确率为 73%。Hays 说，“人类和计算机性能直接的差距并不那么大，肯定不像研究其它计算机视觉问题时那么大。 谈及未来的发展，项目成员看到了“看图猜词”这类游戏的潜力，它们能够帮助项目手机到足够多的图像数据。Hays 称“数据”是项目发展很重要的一部分：

> 阻碍（项目）发展的，不是数字表示法，不是机器学习，而是数据的收集。让程序认出一幅画有狮子的草图，仅仅依靠聪明的算法是不可能的。这个算法必须遍历差不多 100 幅人们如何画狮子的实例，然后它才可能知道狮子与盆栽植物的差别。

如果你对该项目感兴趣，可以直接到[官网](http://cybertron.cg.tu-berlin.de/eitz/projects/classifysketch/)下载相关的[论文](http://cybertron.cg.tu-berlin.de/eitz/pdf/2012_siggraph_classifysketch.pdf)，以及 Demo 程序（支持 Windows 以及 Mac 两大平台），还可以在 App Store 上下载相关的[手机应用](http://itunes.apple.com/app/whatsmysketch/id542242001)。 题图来自 [jonyoder](http://www.jonyoder.com/2012/03/dad-52/)
