一个神人创造了验证码,又让验证码做出了巨大贡献

jopen 10年前

 本文来自知乎的一个问答贴,题主的原问题是「能不能把上网的人的能量收集起来为人所用?」。下面是吴阳林的回复。


很多人已经知道神人Luis von Ahn和reCAPTCHA了,我再啰嗦讲一下。Luis von Ahn是CMU教授,2000左右和别人提出了CAPTCHA,就是万恶的验证码。现在看来也许验证码是个显而易见的点子,但是从历史上看,它绝对是个判 断正在输入的是人类还是机器的简单高效方法。再后来,这个教授就想了,每天这么多人都在识别输入一串字符,能不能利用它呢?于是后来他就又搞出了 reCAPTCHA。

如果我们想电子化一些从前的文档,比如19世纪的纽约时报,我们要不得依靠人力,手动地一个一个字地输入电脑,要不然就直接扫描,然后用软件识别。但是软件识别的准确率不能保证,尤其是扫描或者文档本身质量很差的时候,比如:

 一个神人创造了验证码,又让验证码做出了巨大贡献

reCAPTCHA做的,简单来说就是把上图的单词切割抽取出来,然后与一组自动生成的字符混合,生成验证码,发送到各各网站上,像这样:

 一个神人创造了验证码,又让验证码做出了巨大贡献

reCAPTCHA默认如果电脑产生的字符你输入正确,那么从文档中抽取的字符你的输入也将是正确的,然后通过交叉验证,重复验证,各种算法保证准确率。于是坐在电脑前上网的我们,每次输入验证码的时候,就可能顺便为某个图书馆的文档录入做出了贡献。详细点的介绍可看:关于 reCAPTCHA 验证码

一个经常被提到的实例就是,借助广大网民之手,纽约时报从1851年到现在的所有报纸,总共超过1千3百万篇文章都已经成功录入计算机。如果依靠手工输入,人力,资金,时间都将是巨大的,然而借助reCAPTCHA, 以及每天上网的我们,这项工作短时间内已经完成了。

09年reCAPTCHA被谷歌收购了,大家可能也都注意到了,谷歌更进一步利用验证码来帮助它们识别门牌号,路牌等等,用来修正谷歌地图的精度。这样谷歌地图的准确度,以及用户的体验都得到了提升。

 一个神人创造了验证码,又让验证码做出了巨大贡献

Luis von Ahn真是很有想法的人,后来他又创办了很火的Duolingo,帮助大家学外语。

update 1-15====收了好多赞,但我觉得我只是个搬运工============================

可以听听Luis von Ahn自己怎么说的,下面是他上个月在油Tube上介绍reCAPTCHA project的一段几分钟视频:
https://www.油Tube.com/watch?v=PQ-xzwj_p_4

据他说,目前有已经有11亿人次帮助他们至少输入了一个单词,谷歌每年电子化了相当于200万本书的文本。比较有趣的是,留言里部分人义愤填膺,觉得自己被利用了或者被验证码折磨了。

再补充一段Duolingo志愿者推荐的视频:http://youtu.be/-Ht4qiDRZE8,“主要就是讲Luis怎么用众包的概念创立公司的。他也曾在TechCrunch的演讲里提到过那个自己幼年构想发电健身房的故事,可能这样能更好地回答题主的疑问。几乎我们所有多邻国的志愿者都有看过这个。”

有个评论提到了,Luis von Ahn现在更多地投入在Duolingo上。帮助大家学习外语的同时,类似reCAPTCHA的思路,Duolingo利用大家的学习参与过程,实现翻译 文本。(例如截取CNN新闻的片段让你翻译成其他语言(暂时没有中文),多个参与者的练习拼凑起来就是一篇翻译好的文本,然后卖回去给CNN。)

========评论里还会有人问起是怎么保证正确率的?用评论里的回复的补充===============

以上面街景截图带门派号的验证码为例子,左边一组数字是街景的截图(希望你帮系统识别出来的,系统原来并不知道是上面数字),右边一组是系统产生的 数字(系统知道是上面数字)。当你正确输入了右边的数字,系统就判断你是人,于是默认你左边输入的数字就是他们原来并不知道的门牌号。如果有人不小心或者 故意把左边的门牌输错怎么办?另外一个机制是,系统会把左边的图发送给多个用户验证,然后从多个用户里取出现次数大于一定阀值的那个答案,(例如10个 人,有8个人给出相同的答案,那可以认为就是正确答案了)。否则就重复以上步骤,或者其他更复杂的机制。

总结一下reCAPTCHA有效的两个机制就是:

  • 1.和传统验证码配合使用,确保你是个人类,人类识别字符是轻而易举的。
  • 2.多重验证,保证正确率。