阿福 发表于 2010-11-14 17:26:14

验证码识别例子(1)背景为图片底纹(2)粘连(3)旋转

本帖最后由 阿福 于 2010-11-30 19:23 编辑

(1)背景为图片底纹:这是朋友要求做的,不过发来的原始验证码字母不全,没给我验证码的原始链接,所以识别库做的不是很好,如果能将链接发来,还可以再大幅提高识别率。
所以目前只能识别已提供来的验证码中出现的字母了。
原始验证码:

转换后(转换后过程未保存,如需保存请联系):

所提供的原始验证码:

下载:

使用:验证码图图片存在[朋友请求4]目录.运行后结果在文本文件中。

(2)粘连:用于识别:http://bo.tianxia.taobao.com/checkcode.jpg这个网址的验证码.
原始验证码:

下载:

此类型验证码(注意是此类型,不是指此组验证码,这组验证码只是左右粘连,没有上下波动,字体变化,是此类型验证码中最简单的,所以单就这组验证组另有其他简单的算法处理)识别要求机器配置够好.因为au3不支持真正意义上的多线程,所以这种验证码基本上是AU3能识别的极限了,再高级的就要用支持多线程的其他语言或DLL调用.
1)该验证码由大字符和小字符组成,小字符字库很好取,所以认真做了字库,可以准确识别.
2)大字符因为一个验证码只出现一个,很懒的做字库,就按小字符库的特征来识别,受干扰线的影响,识别效果不好.
3)这种粘连且位置变化的验证码类似QQ验证码,如果再多用几种字库并旋转就和QQ验证码一样难了.此类验证码要用多线程处理(注意是此类,而不是这组验证码,由于这组验证码没有上下波动,实际上有更简单的识别方法,我现在的这个例子,把验证码可能上下波动也考虑到了,你们可以PS试一下把验证码单个或全部上下挪移,一样能识别),用AU3写很不合适.为了能用纯AU3写,我做了伪多线程.
4).机器不好的不用试了,单CPU机器识别一个验证码可能要几分钟,单核的识别一个验证码可能要30秒左右.我的4核机器(相当于8CPU),设成10-20个伪线程,识别一个验证码是3秒左右.
5)设置伪多线程数在生成的ini文件中,task=4是默认4个伪线程. Per是小字库精度要求,Per2是大字库精度要求,前面说过了大字库没做只取小字库特征,所以per2要设低.
机器不是很好的一定要试的话,task设成1-4为宜
6)使用:验证码图下载到[演示5]目录.结果生成在CheckCode.txt,过程记录在Task.ini

(2)粘连的补充:
1)单只针对这个验证码的识别程序:
A) 2维算法

可以达到接近100%的识别率.对机器要求也较低,普通机器在10秒左右可以准确识别,在我的机器上只要1-3秒.如果识别效果和速度不理想,用户可调整ini文件中的Per值(字库匹配率,默认99%)和Task值(多任务,默认2).
B) 1维算法:

可以达到接近100%的识别率.对机器要求最低,普通机器在4秒左右可以准确识别.
C) 1维特征索引算法

可以达到接近100%的识别率.对机器要求最低,普通机器在1秒左右可以准确识别.不需开多任务
2)软件要生成临时文件,使用了FileInstall,所以有些杀毒软件会阻止它的运行.

(3)旋转:
验证码地址: http://www.ipal.com/?_task=index&_action=vcode,

此演示程序要连接作者服务器.
提供此网址的朋友只要求50%识别率,所以只做了快速倾斜校正,未对粘连做进一步处理,如果粘连点超过4个以上的,程序可能会乱拆分(粘连只能处理到本程序所带的样图94这两个字符这种粘连的).
此演示程序对于无粘连验证码有较好识别率,对于粘连验证码的拆分相当花时间,寒假时可以考虑花一天试试.
下载的验证码存到[演示6]目录下的CheckCode.bmp,结果存在CheckCode.txt

afan 发表于 2018-8-15 17:34:29

redapple2008 发表于 2018-8-15 17:29
这么好的事,我下载也紧张了。都不敢乱下。afan能不能给我点下载币?

等你叮当响的时候我就会出现~

pusofalse 发表于 2010-11-14 17:37:25

能开源吗?

xyold1 发表于 2010-11-14 17:45:56

真强,这都能识别

chenronting 发表于 2010-11-14 19:48:42

无话可说, 很强大 。谢谢分享

雀巢咖啡 发表于 2010-11-14 22:52:20

真的很强大,了不起

.個朲綉√ 发表于 2010-11-15 11:03:08

又见阿福啊,强帖必顶啊。。。

阿祥 发表于 2010-11-15 14:11:23

这个也可以验证不??

pei 发表于 2010-11-15 15:51:44

太酷了!
又见到阿福兄的心得

shykx 发表于 2010-11-15 16:17:07

强、太强大 谢谢

zhiye_xg 发表于 2010-11-18 22:42:54

能开源吗?很想学习一下

ghl781258 发表于 2010-11-19 16:47:20

支持,希望达到老大的高度

快雪时晴 发表于 2010-11-19 18:03:52

前排膜拜赛阿福

bob 发表于 2010-11-19 20:07:39

很久不见了,小孩还好吧!

zhongzijie 发表于 2010-11-19 21:59:40

{:face (356):}谢谢阿福 分享,好强大的验证码

颜勇 发表于 2010-11-20 17:35:17

厉害 高手啊
页: [1] 2 3 4 5
查看完整版本: 验证码识别例子(1)背景为图片底纹(2)粘连(3)旋转