初探验证码识别

这是我研究的第1种类型的幅验证码图片,虽然简单,但是大家可以看到验证码识别的一般过程

一副验证码图片

我们首先对其进行对比度调节,你会发现干扰圈不见了

对比度处理后的验证码

我们对图片进行二值化,然后对字母进行边缘加强,然后去除噪点

彻底降噪后的验证码图片

接下来我们就对图片进行分割,得到单字符

分解到单个字符

然后对其进行区域扫描,根据所占区域的百分比,来算出字符的特征值(注:这里我没有对字符进行旋转处理,因为样本数不会很多,对于旋转处理,我会在下一个章节讨论)

例如6这个文字,特征码从下面可以看出:010100111101010

○■○
■○○
■■■
■○■
○■○

特征码的区域划分根据验证码的情况来划分,这里是划成了3*5的块。这样我们把很多样本的特征码保存起来,变成一个库,在一个未知的图片输入进来的时候,我们在列表中匹配,找到最相似的特征码,这样就知道图片是那个字符了。

我们希望的不是对单个验证码的识别,必须研究一套框架,便于识别大部分的验证码。
验证码识别框架

这里要注意,就是这里图片里的验证码情况比较简单,没有出现连字的情况,也就是说你可以很容易区分每个字符,例如像gmail这样的验证码,写这个验证码的工程师说,目前还没有发现能够达到写出识别这个验证码的人类

另外这种识别验证码的方式还比较原始,使用的是模板匹配的方式,另外还有Bayes分类、几何分类、神经网络分类来识别验证码,我也会在以后的帖子中和大家一起探讨这些方法。

 

 

作者: 4111y80y
所在目录: 验证码识别 at 6月 5th, 2008. Trackback URI: trackback
Tags: ,

No Responses to “初探验证码识别”

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>