reCAPTCHA的诞生及意义

CMU(卡耐基梅隆大学)设计了一个名叫reCAPTCHA的强大系统,让电脑去向人类求助。具体做法是:将OCR(光学自动识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片;那些网站的用户在正确识别出这些文字之后,其答案便会被传回CMU。

reCAPTCHA是利用CAPTCHA的原理(CAPTCHA的中文全称是全自动区分计算机和人类的图灵测试),借助于人类大脑对难以识别的字符的辨别能力,进行对古旧书籍中难以被OCR识别的字符进行辨别的技术。也就是说,reCAPTCHA不仅可以反spam(垃圾邮件),而且同时还可以帮助进行古籍的数字化工作(可以称为人工OCR)。

每次reCAPTCHA会显示两个单词让人来识别,其中一个是需要用户识别的难认词,另外一个是答案已知的真正的CAPTCHA 词。软件将能够正确识别CAPTCHA词的用户看作是人类,当CAPTCHA 词被正确识别出来后,程序会纪录用户对无法阅读的词的回答并将其添加到它的数据库中。这样就完成了一次人工的OCR识别。过程如图1.

(图1)

‍‍为了改善软件的精确性, reCAPTCHA 会将最困难的词发送给多个用户并挑选其中有相同答案的作为正确的答案。据说准确率能够达到99%。用户每使用一次这个程序,实际上就是在帮助数字重现1908年《纽约时报》上的某一页,或者其它古书中的一页,这对考古学具有重大的意义。‍‍

‍‍下面是一个在使用reCAPTCHA进行注册验证的网站实例(图2):

(图2)

reCAPTCHAGoogle收购

‍‍reCAPTCHA在 2009 年被 Google 收购。之后国外陆续有一些网站的 reCAPTCHA 的验证码内容发生了变化,所显示的不再仅仅是古籍文字,而是还有照片——照片的一侧显示的是大家熟悉的扭曲的文字,另一侧则是模糊的数字,这些数字无疑就是街道地址,Google 的一位发言人介绍说,该系统并不局限于街道地址,街道名称甚至交通标志也会被包含进去。图例如图3.

(图3)

‍‍Google 让reCAPTCHA 里显示 Google 街景的图片。这样经常会从街景里提取如街道名称和交通标志等数据,向 Google 地图里添加商铺地址和位置等有用信息。

新版reCAPTCHA–noCAPTCHA

‍‍Google在2014.12.03发表了一篇文章《Are you a robot?Introducing “No CAPTCHA reCAPTCHA”》‍‍

‍‍文章开始讲述传统验证码的方式令“真正人类”头疼,且研究表明现在的人工智能技术已经能够解决99.8%的验证码,因此扭曲的文本验证方式可能不是一个可靠的方法。‍‍

‍‍新的reCAPTCHA被Google称作没有验证码的验证码("No CAPTCHA reCAPTCHA"),他让用户只需要简单的勾选就可以确认你是真实用户而非恶意机器人,操作非常简单。‍‍

‍‍noCAPTCHA只提供了一个复选框,里面写着“我不是机器人”。当你打钩之后,谷歌就能利用“风险分析引擎”进行一系列无缝检查,以此来判断你是否是真人。‍‍

(图4)

‍‍如果noCAPTCHA认为你是真人,那就不用再做什么了,这确实很容易。如果noCAPTCHA认为你不是真人,它就会要求你填一个传统的CAPTCHA字符串或更先进的字符串,比如从一组图片中挑选出正确的图片。‍‍

(图5)

‍‍noCAPTCHA的产品经理薛特(Vinay Shet)探讨了改良版服务背后的技术,他说复选框听起来虽然很简单,但是背后确实很复杂。新的风险分析引擎在用户点击复选框之前、之中和之后都会关注用户参与度来决定你是否是真人。

薛特说,风险分析引擎使用了机器学习技术,这种技术使用了很多的策略,知道普通用户看起来是什么样的,这样下次就知道该检查些什么了。‍‍

‍‍现在还不是所有人都能使用新版noCAPTCHA,只有一小部分用户能够使用它,想使用新版noCAPTCHA的大部分体验的开发者要想把它使用到他们的产品中必须使用新的API。目前,Snapchat、WordPress和Humble Bundle和cloud9等也正在测试新系统noCAPTCHA。‍‍

下面是cloud9注册时使用noCAPTCHA的截图:‍‍‍‍

(图6)

总结

reCAPTCHA不仅是一种验证码服务,同时也是一项具有重要意义的文化工程。被Google收购之后,reCAPTCHA内容也更加丰富。现在的noCAPTCHA似乎要将人类从“万恶的验证码”时代解放,更加注重用户体验,让真正的人类使用更加方便,让机器注册更加困难。

[作者/ArkTeam(团队帐号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)]

http://www.freebuf.com/news/special/57496.html

reCAPTCHA OCR 详解 , 验验证, OCR(光学自动识别)的更多相关文章

  1. linux screen 命令详解(未验证+研究)

    一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...

  2. jQuery Validate验证框架详解

    转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...

  3. js正则实现二代身份证号码验证详解

    js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至 ...

  4. <转>ASP.NET学习笔记之MVC 3 数据验证 Model Validation 详解

    MVC 3 数据验证 Model Validation 详解  再附加一些比较好的验证详解:(以下均为引用) 1.asp.net mvc3 的数据验证(一) - zhangkai2237 - 博客园 ...

  5. 【转】jQuery Validate验证框架详解

    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type=& ...

  6. Shrio授权验证详解

    所谓授权,就是控制你是否能访问某个资源,比如说,你可以方位page文件夹下的jsp页面,但是不可以访问page文件夹下的admin文件夹下的jsp页面. 在授权中,有三个核心元素:权限,角色,用户. ...

  7. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  8. Asp.NetMVC利用LigerUI搭建一个简单的后台管理详解(函登录验证)

    上一篇 Asp.Net 中Grid详解两种方法使用LigerUI加载数据库数据填充数据分页  了解了LigerUI 中Grid的基本用法  现在结合上一篇的内容做一个简单的后台管理,当然也有前台的页面 ...

  9. spring事务详解(四)测试验证

    系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...

随机推荐

  1. Numpy的一些学习记录

    Numpy的一些记录 产生numpy.array的方式 import numpy as np arr1 = np.array([1, 2, 3]) print(arr1) arr2 = np.zero ...

  2. 华为三层交换机限制vlan段的指定端口

    屏蔽vlan 120这个段的ip的所有2333端口 [NTT_3L]int Vlanif 120 [NTT_3L-Vlanif120]dis this # interface Vlanif120 ip ...

  3. 广告召回 Query-Ad Matching

    小结: 1.最为基础的召回链路就是要保证召回层的相关性,但是相关性高的广告并不一定具有很高的商业价值,所以开始尝试将一些商业化业务指标作为召回的依据 百度凤巢新一代广告召回系统--"莫比乌斯 ...

  4. setTimeout、Promise、Async/Await 的区别

    事件循环中分为宏任务队列和微任务队列其中setTimeout的回调函数放到宏任务队列里,等到执行栈清空以后执行promise.then里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码 ...

  5. 手把手教你定位常见Java性能问题

    概述 性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙 ...

  6. POJ 3461__KMP算法

    [题目描述] 法国作家乔治·佩雷克(Georges Perec,1936-1982)曾经写过一本书,<敏感字母>(La disparition),全篇没有一个字母'e'.他是乌力波小组(O ...

  7. logstash的S3 input插件

    logstash从AWS S3获取日志信息的常用方法有两种,一种是利用AWS lambda,另一种就是利用logstash的S3 input插件. 插件github:https://github.co ...

  8. IPSec 专题----转自华为文档

    参考链接:https://support.huawei.com/enterprise/zh/doc/EDOC1000122878?section=j004 IPSec 特性全景 1.介绍 由于IP报文 ...

  9. SSL与HTTPS协议

    1.SSL 1.1 什么是SSL SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及 ...

  10. C++ 标准模板库(STL):map

    目录 4. map 4.1 map的定义 4.2 map容器内元素的访问 4.3 map常用函数实例解析 4.4 map的常见用途 4. map map翻译为映射,也是常用的STL容器. 在定义数组时 ...