当前位置

一个Captcha的思路

Captcha——或者很山寨的说——图形验证码,是一个让人又爱又恨的技术。一方面它给正常用户增加了额外的负担,降低可用性;另一方面没有它,你一定迟早碰到 spam 的问题。

我想大家都在致力于提高 Captcha 的可用性,即设计出"人"可以轻松识别,但是对机器(ANN/SVM)却很困难的技术。每当看到Google那样扭曲到变态的图标,正常用户都会感到愤怒。

我以前看到一个比较有意思的方法是,让用户把一副图片旋转成正确的角度:比如一个凳子的图片,人类很轻松就知道应该四脚朝下,椅背方向朝上;但机器恐怕比较难做到这点。

后来有一天我想到一个主意。人类的眼球有一个特性,就是只要切换速度足够快,那么可以感觉到一幅幅静止的图片动起来;甚至类似隔行扫描(A场、B场)那种技术,人类神经可以自动把一幅幅残缺的图片拼凑成整张。电视正是这么干的:

我的想法是借助动态gif,每一帧都有大量噪点(电视这个例子上是每一帧都有50%的噪点?),但噪点位置帧和帧之间都不一致,组合起来后或许能被人类自动忽略,而关注在我们希望展示的内容上。因此还特意研究了一下动态gif的技术(http://www.dup2.org/node/1250)。但最后没有得到一个好结果,就中止研究了。不过有了这样一个结论:一定要让背景(内容)和前景(噪声)同时运动,否则识别难度没有本质提高。

本来这个属于失败的研究,不打算blog的,可是看到了一个新出来的 Captcha 服务:NuCaptcha,也是同时有动态背景和动态前景。那么这个思路可能还是值得分享一下

Topic: 

评论

那个nucaptcha并没有交错逐帧显示图案。。。