验证码识别技术研究

来源:互联网 发布:照片恢复软件下载 编辑:程序博客网 时间:2024/06/03 13:23
内容提要:随着近年来信息化技术的不断提高,验证码识别逐渐渗透入了网络的各个领域。本文主要讨论验证码识别的思路和方向,识别系统设置中需要考虑的相关重点。

 

一·识别系统的设计:

 

1.图像二值化

 

图像二值化:图像显示的时候只能看到两种颜色(经常是黑色和白色)

 

采用阀值判定法。阀值的选择非常重要,如果选择不好,要么保留了很多噪声信息,要么丢失了很多有用信息。

 

2.图像的腐蚀

 

腐蚀可以消除小且无意义的噪声。

 

这个可以根据自身遇到的验证码的进行多次腐蚀。但过度腐蚀将造成有效信息的大量流失——因为腐蚀号码边缘的同时,内部的空洞也在逐渐的扩大。

 

3.图像膨胀

 

膨胀操作之后,验证码图像会变大,此时可以根据需要再次执行腐蚀的操作。腐蚀和膨胀是相辅相成的,我们可以根据实际的情况选择两者执行顺序的先后和重复次数,这个一定要灵活变通。

 

4.图像中的值滤波

 

中值滤波对验证码的背景孤立噪声的去除具有较好的效果,验证码内部较小的空洞也可以通过滤波实现填充。我们需要根据自身的实际情况进行多次值滤波的操作。

 

5.图像的分割

 

图像分割是根据目标与背景的具体位置,对图像中的目标,背景进行标记,定位,然后持续讲识别的目标与背景分离。有效分割是提取和识别的重中之重。

 

用投影法进行分割:在号码的区域间隔,投影为空白。在读取验证码信息的时候,设置阀值T作为字符与空白区域的边界条件。当读取的信息大于T时,开始读取字符:反之,则进入间隔区域。

 

具体步骤如下:1.全面去噪;2.整体水平去噪;3,划分边界;4垂直去噪;5水平去噪。

 

6.文字特征的提取

 

(一)·字符结构法

 

这种方法是以字符的结构特点和笔画类型,数据以及其位置作为识别特征,而不受验证码的字符图像大小的影响,适应性较强。判断依据:闭环数,闭环位置,笔划类型等等。

 

闭环算法如下:

 

读入二值化的验证码图像→找到一个像素值为0(黑色)的背景像素点B→搜索B的连通区域,并将该连通区域内的像素全部记为背景1(白点)→遍历图像中像素值为0的点→若存在没有标记为背景0的像素点,则为有封闭环:反之内封闭环数为0→重复遍历过程,确定闭环数目

 

(二)穿梭线法

 

在图像中引入贯穿字符区域的直线,根据字符与穿梭线的交点数进行识别。对于存在背景噪点声的字符,或者腐蚀过度造成笔划断裂的字符,穿梭线识别算法表现出先天不足。

 

(三)节点统计法

 

节点统计法以字符本身比笔划间的节点数作为统计特征。M为字符两个笔划相交节点数:N为字符三个笔划相交的节点数,P为大于三个笔划相交节的点数:(M,N,P)即为识别特征。

 

缺点:由于字符笔画较粗,在进行腐蚀处理后,往往造成笔画丢失,应用效果不佳。

 

(四)模版匹配法

 

验证码为英文字母和数字以不同字体,大小混合编排,因此这里我们相应采用了模版匹配的方法,它不必过分顾及它们的格式,在号码倾斜幅度较小的情况下,具有明显优势。以数字8的特征提取为例:

首先,我们把模版网格化。所谓的网格化,即把模版的图像瓜分为若干个区域,每一个区域即为一个小网格。接着,以区域内黑色像素数为特征,对每个区域的数字特征进行提取,即模版的数字化。

 

数字的标准模版均为46x72的格式,将其从左上角开始均分成4x7的网格,每个网格有10x10=100个像素。余下右侧和下方12个较小的网格,包含的信息量较少,予以忽略。数字8以黑色像素个数为特征提取出来的像素矩阵如下面所示:

背景复杂的验证码图片,增强程序的抗干扰性以提高识别率等等,都是有待我们需要攻克的难关,此篇文章主要是针对验证码识别技术做出探讨,完善程序是一条漫漫长路!望各位看官和我一样共同求索。

1 0