路易斯发现,人类可以用肉眼很轻易地识别图片里的文字信息,而机器就不能。当时的计算机辨识技术还很落后,对于那些镶嵌在图片中的、被扭曲过、污染过的文字无法辨识,而人类只需要稍稍皱眉就可以识别出来。路易斯在导师布鲁姆的帮助下很快设计了一个程序,它先是产生一个随机的字符串,比如smwm,然后对这串字符进行随机的扭曲、重叠、污染,再显示给要进行操作的用户。只要能够识别这个变形了的smwm的,就是人类。
这个设计方案后来被命名为“CAPTCHA”,这是“Completely Automated Public Turing test to tell Computers and Humans Apart”首字母的缩写,意思是“全自动区分计算机和人类的图灵测试”,虽然看上去很夸张,但实际上还是挺简单易懂的。它的中文译名就是大家熟知的“验证码”啦。
人人都来当校对
21岁的路易斯·冯·安发明了验证码后真是名利双收,但他享受了掌声和鲜花后冷静了下来,为一件“小事”感到耿耿于怀:全世界的网民每天要输入验证码接近2亿次,假设每次花费10秒,那么算下来每天要花费50万小时。这个时间如果能利用起来,那将会有多大的力量啊。
路易斯将目光投向了旧书摊。信息时代来临之际,很多古旧的书籍报纸需要整理成电子版,但是电脑扫描辨识时常常出错,因为这些旧资料常常不可避免地有着字迹模糊、褪色、污损的情况。路易斯比任何人都清楚电脑在辨识文字上有多笨拙。唯一的方法是人工核对。但这样的工作显然不是一个人或者一个公司可以胜任的,为什么不让网民们来帮忙呢?
说干就干的路易斯很快开工了:他扫描了一些过期的旧报纸,将扫描得到的图片在计算机的分析下拆开成单词片段,再将这些单词作为验证码发送给用户。有人要问了,先前的那些验证码,系统是知道答案的,但这些书籍拆下来的单词,系统自己也搞不清楚答案,那怎么知道用户的判断结果对不对呢?
路易斯用一贯简洁优美的思路解决了这个问题,并将它起名为reCAPTCHA(意思是“二次验证码”):他让用户一次性辨识两个单词,其中一个是系统生成的真正的验证码,另外一个是从旧报纸上截下来的单词。如果用户输对了第一个验证码,那么输对第二个单词的几率也很高。
看了上面这个图,大家是不是感觉到了一点不妥呢?没错,扫描出来的图片和真正的验证码长得那么不像,reCHAPTCHA这个项目又人所皆知,用户一眼就能看出来右边那个“345”是假的验证码。很多认真的用户会乐意为辨识古书籍献出一份力,但并不是每个人都那么乐于助人,那些爱捣蛋的用户很可能会故意输入错误的单词。
为了防止恶意捣乱、提高答案的可信程度,路易斯后来还要对两个验证码进行加工,让它们成为“孪生子”:下面左边的这个morning,就是从旧报纸里截取出来的,是不是跟右边的overlooks长得很像呢?如果用户分不清那个是真验证码,哪个是“假验证码”,他们会更配合工作。路易斯还将同一个未知的单词输送给多个用户,如果所有用户辨识的结果一致,都是“morning”,那么就认为这个单词被“搞掂”了。
用这一个方法,在短短几个月时间内,路易斯让网民们帮忙完成了纽约时代130年来所有旧报纸的存档电子化——这原本可是个让人望而生畏的大工程啊。reCAPTCHA很快被Google收购,现在已经成为了Google旗下的一项免费服务:任何人都可以申请将reCAPTCHA用在自己的网站上,你不仅可以为你的网站建立一个防止垃圾信息的堡垒,还让你的用户们得以参与到完善人类电子图书馆的丰功伟业中来。
(编辑:)