一、何谓验证码识别
所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。验证码识别程序就是利用系统将图片进行计算自动识别出来这些验证码。
二、验证码识别的分类
1、四位数字,随机的一数字字符串,最原始的验证码,验证作用几乎为零。
2、随机数字图片验证码。图片上的字符比较中规中矩,有的可能加入一些随机干扰素,还有一些是随机字符颜色,验证作用比上一个好。没有基本图形图像学知识的人,不可破!
3、各种图片格式的随机数字+随机大写英文字母+随机干扰像素+随机位置。
4、汉字是注册目前最普遍的验证码,随机生成,打起来更难了,影响用户体验,所以,一般应用的比较少。
三、验证码识别的流程
1、取出字模 识别验证码,毕竟不是专业的OCR识别,并且,由于各个网站的验证码各不相同,所以,最常见的方法就是就是建立这个验证码的特征码库。去字模时,我们需要多下载几张图片,使这些图片中,包括所有的字符,我们这里的字母只有图片,所以,只要收集到包括0-9的图片即可。
2、二值化 二值化就是把图片上的验证数字上每个象素用一种数字表示1,其他部分用0表示。这样就可以计算出每个数字字模,记录下这些字模来,当作key即可。
3、计算特征
把要识别的图片,进行二值化,得到图片特征。
4、对照样本 把步骤3种的图片特征码和验证码的字模进行对比,得到验证图片上的数字。 使用目前这种方法,对验证码的识别基本上可以做到100%。 通过以上步骤,您可能说了,并没有发现如何取出干扰素啊!其实取出干扰素的方法很简单,干扰素的一个重要特征是,不能影响验证码的显示效果,所以制作干扰素时它的RGB可能低于或者高于某个特定值,比如我给的例子中的图片,干扰素的RGB各项值是不会超过125的,所以,这样我们就很容易去掉干扰素了。
四、国内应用案例
目前像是答题吧打码平台在这方面的识别技术就是行业的领先地位。利用验证码识别程序接入平台。
示例图:
五、验证码识别程序的用途
1. 利用现成的网站的高流量,让那些过路者免费帮忙输入验证码。
2. 通过软件,帮助需要进行验证码输入的平台进行验证码的自动输入,减少时间的浪费;
3、目前使用比较多的就是给软件作者提高软件的使用价值,同时也是通过用户验证码的识别获取盈利;
4、使用人群:需要批量操作的软件开发者。