【发布时间】:2009-06-02 21:00:01
【问题描述】:
我对 SO 上使用的 CAPTCHA 系统很着迷……我想了解更多有关使 reCAPTCHA 工作的“many factors”的信息。可以理解的是,考虑到滥用的可能性,开发人员对他们系统的确切内部运作保持沉默......但是这种行为有据可查,所以也许我的好奇心仍然可以满足:
如果我要设计一个 reCAPTCHA 的克隆,我该怎么做?
reCAPTCHA 允许:
- 打字错误
- 在人们做这些事情的地方。 这表明你需要有关于错误的历史数据,然后根据这些数据制定算法。
检测打字错误需要大量使用数据库:一个用于数字化书籍中的单词,另一个用于已知单词。
技术已知细节
- 两个数据库:一个用于已知单词,另一个用于未知单词
- 用于组合词的后续数据库
未知的技术细节
- 如何快速分离单词以便您看到来自不同数据库的单词组合? 这是关于信号处理的。
- 如何将两个数据库中的数据提供给用户?
- 两个独立数据库中数据的初始形式是什么? PDF?
- 当来自两个数据库的数据合并时,数据的后续形式是什么? pdf?
- 如何将数据从两个 pdf 文件合并为一个?
- 如何有效地旋转图像?
- 使用哪些算法将图像与图书分开?
相关主题
- 信号处理
- 微积分:用于单词检测算法的系列,例如傅立叶和拉普拉斯。
- 概率论:有一个“计算机-人类”系数,只有在例如 95 置信区间时才会通过
- 也许数论:我们需要有效地存储和比较数据
【问题讨论】:
-
@yx:帖子没有回答我的问题。我想知道验证码允许多少打字错误,以及它如何知道哪个是正确的字母,哪个不是。
-
Recaptcha 的工作原理是从默认 ocr 无法确定准确文本的扫描书籍中提取两个单词图像。显示的单词之一是系统已知的,而另一个单词仅以较低的确定性(甚至可能为 0)已知。您必须几乎准确地输入已知单词,并且在其可疑值的某个计算距离内输入鲜为人知的单词。然后,您的输入将用于帮助确定未知单词的值,以便最终可以移动到“已知”类别。
-
你不会得到数学 - 坚韧不拔的细节是必然不共享。不过,我可以告诉你我是如何把这样的东西放在一起的,而且它比你提议的要简单得多。
-
@Masi:我已经编辑了这个,希望它可以变成可以回答的东西。我理解您的好奇心,但是当开发人员甚至没有将这些详细信息放在他们自己的网站上时,在公共网站上询问特定系统的详细信息会让您失望。