发明名称 一种基于识别反馈的字符图像验证码识别方法
摘要 一种基于识别反馈的图像验证码识别方法。其特征该方法主要包括步骤:先将原始彩色图像转换成灰度图像,并进行二值化处理,得到二值化图像数据;接着对所述二值化图像进行修补,去除图像边缘毛刺,填补中心空白,并完成断裂笔画的连接,得到修补图像;再对所述修补图像去除背景以及干扰点或线,得到无噪图像;并对无噪图像进行细化,得到单一像素的细化图像;然后对细化图像进行切分,得到仅含单个字符的单字符图像;最后对单字符图像进行归一化并识别其中的字符。本发明可对含有各种类型的噪音、字符存在粘连、倾斜、旋转及变形等现象的字符图像验证码设计相应的算法进行处理,完成高效率和高精度的识别。本发明可应用于自动化程序中验证码识别。
申请公布号 CN102930277A 申请公布日期 2013.02.13
申请号 CN201210349375.X 申请日期 2012.09.19
申请人 上海珍岛信息技术有限公司 发明人 董启文
分类号 G06K9/54(2006.01)I;G06K9/62(2006.01)I 主分类号 G06K9/54(2006.01)I
代理机构 上海智力专利商标事务所 31105 代理人 瞿承达
主权项 1.一种基于识别反馈的字符图像验证码识别方法,其特征在于该方法的操作步骤如下:(1)将字符图片加载到内存中,获取每个像素的颜色,颜色采用RGB形式表示,分别代表该颜色的红色、绿色、蓝色分量;(2)二值化将彩色图像转换成灰度图像,且采用如下的灰度变换公式,Y=0.299R+0.587G+0.114B采用阈值将灰度图像转换成二值图像,阈值的选取采用大津法且为OSTU,即选择使得两类样本间方差最大的灰度值作为阈值,二值化中阈值的选取方法为:设<i>w</i><sub><i>0</i></sub>为前景像素所占图像总像素的比例,令<i>u</i><sub><i>0</i></sub>为所有前景像素的平均灰度,设<i>w</i><sub><i>1</i></sub>为背景点数所占图像总像素的比例,令<i>u</i><sub><i>1</i></sub>为所有背景像素的平均灰度,则图像的所有像素的平均灰度为<i>u</i>=<i>w</i><sub><i>0</i></sub><i>u</i><sub><i>0</i></sub>+<i>w</i><sub><i>1</i></sub><i>u</i><sub><i>1</i></sub>.在进行程序运算时,<i>t</i>的取值可从图像的最小灰度值到图像的最大灰度值依次遍历,当<i>t</i>取某值时,类间方差公式<i>b</i>=<i>w</i><sub><i>0</i></sub>(<i>u</i><sub><i>0</i></sub>-<i>u</i>)<sup><i>2</i></sup>+<i>w</i><sub><i>1</i></sub>(<i>u</i><sub><i>1</i></sub>-<i>u</i>)<sup><i>2</i></sup>能取得最大,此时<i>t</i>即为二值化的阈值;(3)修补采用如下的模板对图像进行修复,以去除边缘毛刺并填补空白0000000011010011011101101000001001001模板T1模板T2模板T3模板T4模板T5其中0代表背景像素点,1代表前景像素点,?可为背景或前景象素点,模板T1-T3将中心前景像素点变为背景像素点,模板T4和T5将中心背景像素点变为前景像素点,且每个模板依次顺时针旋转90度、180度和270度,形成新的模板,并依次作用于原始图像;(4)去噪音针对不同的噪音类型采用相应的去噪音方法,包括:连通域滤波:对相邻的前景像素点进行扩张,获得连通域,去除连通域面积小于一定临界值的区域,高斯滤波:设<i>f(i,j)</i>表示图像(i,j)处像素点的灰度,经过如下变换获得滤波后的图像:<img file="917337DEST_PATH_IMAGE001.GIF" wi="283" he="33" /><img file="19286DEST_PATH_IMAGE002.GIF" wi="184" he="53" /><img file="634812DEST_PATH_IMAGE003.GIF" wi="177" he="21" /><img file="582040DEST_PATH_IMAGE004.GIF" wi="296" he="33" />超级曲线滤波:检测图像中存在的连续光滑长曲线并进行过滤,采用Dijkstra算法且为迪杰斯特拉算法寻找图中任意两个顶点间的最短路径,从而确定曲线,选择长度大于图像宽度80%的曲线作为超级曲线,并去掉曲线上垂直像素游程长度小于平均笔画宽度的像素点,从而去除超级曲线;(5)细化对图像中的线条从边缘到中心层层剥离,得到仅含单像素宽线条的图像,算法过程为:1)考虑以边界点为中心的8邻域,记中心点为p1,其邻域的8个点顺时针绕中心点分别记为p2,p3,...,p9,首先标记同时满足下列条件的边界点:a)1&lt;N(p1)&lt;7b)S(p1)=1c)p2*p4!*p6=0d)p4*p6*p8=0其中N(p1)是p1的非零邻点的个数,S(p1)是以p2,p3,...,p9为序时这些点的值从0到1变化的次数,当对所有边界点都检验完毕后,将所有标记了的点除去;2)同步骤1),仅将前面条件c)改为p2*!p4*p8=0;条件d)改为条件p2*p6*p8=0,同样当对所有边界点都检验完毕后,将所有标记了的点除去,以上两步操作构成一次迭代,直至没有点再满足标记条件,则算法终止;(6)字符分割对细化后的图像进行切分,使得每个子图仅含有单个字符,首先确定细化后图像中的候选切分点,然后采用动态规划算法寻找从起点到终点的一条最优路径,优化的准则为所有子图中字符识别的概率之和;(7)识别对分割后的字符,采用识别模块进行字符识别,识别模块采用支持向量机作为分类器;(8)分类器选择一些字符图片作为训练样本,通过特征提取进行向量化,采用支持向量机构建分类器,其中提取的特征包括图像的:粗网格特征:将图片均分成4*4网格,统计每个网格内黑像素占整个子网格的百分比,得到16维特征;交截特征:在水平和垂直方向选择10像素、20像素、30像素三条线,统计图片前景与这些线的交点个数,得到6维特征;骨架特征:统计图片前景点中端点、三叉点、四叉点的数量,得到3维特征;投影特征:将图片分成4个区域,这4个区域由十二条边组成,统计图片前景点在这些边上的投影个数,得到12维特征;首个前景点位置:沿水平、垂直、左右倾斜八个方向由外向内,统计首个前景点位置的坐标,得到8维特征;外围特征:将图片按照行列4等分,依次沿四个方向由外向内扫描,记录每行第一次遇到前景点像素时形成的非字符部分的面积,得到4维特征,沿四个方向扫描,共得到16维特征;Zernike矩特征:计算图片的重复率为m的n阶Zernike矩:<img file="897615DEST_PATH_IMAGE005.GIF" wi="386" he="47" />取Z00-Z33,共16维作为特征。<!-- SIPO <DP n="1"> -->
地址 200434 上海市虹口区凉城路465弄60号1876室