第20卷第1期北华大学学报(自然科学版)Vol.20No.12019年1月JOURNAL OF BEIHUA UNIVERSITY(Natural Science)Jan.2019文章编号:1009-4822(2019)01-0137-04DOI :10.11713/j.issn.1009-4822.2019.01.028
两种文本类型验证码字符分割提取方法
杨玉东1,2,李㊀莉1,高云富1,曲晓威2,林㊀琳3,杨㊀茜2,白鹏辉1,王㊀瑜1
(1.长春理工大学计算机科学技术学院,吉林长春㊀130022;
2.长春市万易科技有限公司工程研究中心,吉林长春㊀130012;
3.吉林省通联信用服务有限公司,吉林长春㊀130012)
摘要:作为区分人机操作的一种有效方法,验证码图片被广泛使用.通过对验证码图片识别技术的研究,可以及时发现和改善验证码漏洞.识别混合字符型文本类型验证码的关键是提取验证码图像中的单个字符.介绍验证码识别的一般过程,给出基于颜提取单个字符和基于支持向量机分割为单个字符的两种单个字符提取方法,通过实例给出了详细步骤.
关键词:文本验证码;字符分割;字符提取;字符识别;支持向量机
中图分类号:TP311.1文献标志码:A 收稿日期:2018-11-14
基金项目:长春市科技局科技计划项目(18YJ073);长春市工业发展专项资金战略性新兴产业发展项目(大数据类).
作者简介:杨玉东(1981-),男,硕士研究生,主要从事软件系统设计㊁开发与大数据技术研究,E-mail:27495267@qq;通信作者:
李㊀莉(1963-),女,博士,教授,博士生导师,主要从事软件可靠性研究,E-mail:ll@cust.edu.
Character Segmentation and Extraction Methods of Verification Code with Two Text Types
Yang Yudong 1,2,Li Li 1,Gao Yunfu 1,Qu Xiaowei 2,Lin Lin 3,Yang Qian 2,Bai Penghui 1,Wang Yu 1(1.School of Computer Science and Technology ,Changchun University of Science and Technology ,Changchun 130022,China ;2.Engineering Research Center of Changchun WHY-E Science and Technology Co.Ltd.,Changchun 130012,China ;3.Tonglian Credit Information Serves Co.Ltd.,Changchun 130012,China )
字符串截取公式Abstract :Verification codes image are widely used as an effective method to distinguish human-computer operations.Through the research of verification codes image recognition technology,people c
an find and improve the vulnerabilities of verification codes in time.This paper mainly studies how to recognize mixed character text verification codes image.The key of recognizing such verification is that extract individual characters from the verification codes image.The general process of verification code recognition is introduced.Two methods of single character extraction based on color extraction and support vector machine segmentation are introduced.The steps in detail are given through examples.Key words :text authentication code;character segmentation;character withdraws;character recognition;Support Vector Machine(SVM)
验证码源于图灵测试,是区分人和机器的一种有效方法[1].由于技术简单,产生的验证码图片随机性强,且能在一定程度上阻止网络上的恶意行为,已被广泛应用于互联网.由于种类增多㊁图像分辨率增加㊁图像干扰(噪声)增强都给验证码识别增加了难度.文本类型验证码的文本内容通常是数字和英文字母的随机组合,而单个字符很容易利用机器学习方法识别,所以分割并提取图像中的单个字符成为识别此类验证码的关键[2].许多学者提出了一些字符切割方法,但这些方法大多是针对一种类型或特定类型的验证码,在处理不同种类验证码图像时有一定的局限性.本文提出两种文本字符验证码字符分割方法,并通过
实例给出详细步骤.1㊀验证码识别过程
可分割验证码的识别过程主要分为图像预处理㊁字符分割与规范化以及训练模型与识别.验证码识别流程见图
1.
图1验证码识别流程Fig.1Recognition process of verification code
本文在字符识别过程中使用支持向量机(SVM)方法,它是监督学习的一种有力计算工具[3].这种方法需要对一些已分类的字符样本进行训练来获得一个模型,然后用模型对未分类的字符样本进行预测或分类.通过调整训练样本量及模型参数,单个字符的识别率可以达到90%以上.图像预处理与字符处理过程中的每个步骤都会产生一定的误差,这些误差会影响字符分割的成功率,进而导致整体识别率降低.因此,有效处理验证码图像并从中提取或分割字符,是文本类型验证码识别的关键,本文给出两种字符分割方法.
2㊀基于颜提取字符的方法
这种方法适用于验证码图片中的单个字符颜随机,而在同一字符中的像素彩又有差异的情况.以某网
站的验证码图像为例,介绍这种分割方法.图2为jpg 格式的验证码图像,分辨率为200ˑ60,RGB 模式.字符颜㊁位置是随机的,字符有旋转并且部分字符粘连严重甚至交错㊁重叠.传统的切割方法(如竖直投影方法㊁CFS 分割算法[4]㊁滴水算法[5]㊁基于字符宽度的分割算法[6]以及改进的投影分割算法[7])都不能达到很好的字符分割效果
.
图2原始验证码图像Fig.2Images of primitive verification codes
1)图像去背景.字符颜的随机性在给识别过程带来一定难度的同时,也提供了一定量的信息.考虑适当改变图像预处理和字符切割顺序,利用字符颜的区别来提取字符.首先在RGB 模式下去除背景㊁噪点和干扰线,保留图像的RGB 彩,得到的图像见图
3.
图3去除背景及干扰线的图像Fig.3Removal of background color and line interference images
2)图像滤波.虽然图像中每个字符的颜在视觉上是相似的,但实际像素值是有差别的.通过迭代的方法,可以区别不同字符间的颜并减小同一字符中像素的彩差异.定义一种5ˑ5的滤波模板,其当前像素(x ,y )的输出值为
RGB output (x ,y )=ðx +2i =x -2㊀ðy +2j =y -2w ij RGB (i ,j )
ðx +2i =x -2㊀ðy +2j =y -2w ij ,
831北华大学学报(自然科学版)第20卷
其中:RGB(i,j)为当前像素(x,y)周围5ˑ5范围内的像素(i,j)的像素值;w ij是一个二值变量,如果满足以下任意一条:ⅰ)像素(i,j)位置超出图像范围;ⅱ)(i,j)=(x,y);ⅲ)RGB(i,j)与RGB(x,y)欧氏距离大于某个值(包括(i,j)的像素值为白)都有w ij=0,否则w ij=1.
表1㊀部分验证码图像的分割结果及识别结果
Tab.1㊀Segmentation and recognition results of partial
verification codes image
去噪后的图像字符分割结果调整后的字符
识别结果利用上述模板不断对图片进行过滤,直到前后两
次过滤得到完全相同的图像或者同一字符中像素值
的 差值 小于期望值.
3)图像切割.通过寻彩相近像素的方法,
出在一定范围内属于同一字符所有的像素点,重新生
成一张空白图片.将这些像素点写入空白图片,完成
1次 切割 .
4)字符识别.字符分割结束后对字符图像进行二
值化㊁规范化,得到最终的字符样本.部分分割结果以
及识别结果见表1.
5)实验结果分析.对2000个验证码图像进行预
处理㊁分割㊁规范化,抽取有效字符样本进行训练,然后对1000个未用于训练的验证码图像进行预测.结果显示:字符分割成功率为89.8%,单个字符识别率为88.8%,整体识别率为62.7%,每个验证码图像识别平均用时1.21s.
3㊀基于支持向量机(SVM)的分割方法
验证码中字符的竖直切割可以理解为在给定某字符左侧(或右侧)边界的条件下确定右侧(或左侧)边界,等价于在给定某字符左侧(或右侧)边界的条件下确定字符宽度.根据这一想法,可以将字符宽度分为有限个类,在给定某一条切割线条件下,通过SVM方法识别字符宽度,从而确定下一条切割线.
图4中的验证码图片为jpg格式,分辨率为223ˑ50,RGB模式.图片颜单一,干扰线粗细程度不一,字符粘连且图片中间部分字符比较模糊
.
图4原始验证码图像
Fig.4Image of primitive verification code
1)图像锐化.对图像进行预处理,通过图像锐化的方法使图像变得更模糊,见图5.
图5经过锐化的验证码图像
Fig.5Image of sharpened verification codes
2)图像二值化.将锐化后的图像转变为灰度图,选择合理的二值化阈值对图像进行二值化,使图像中间模糊区域变清晰.二值化阈值选取120时,很容易去除干扰线和噪点,但字符不够清晰;选取80时,字符更为清晰,但在去除干扰线的过程中会去掉部分字符.一种合理的做法是在阈值为120的二值化图像中到干扰线和噪点所对应的像素,在阈值为80的二值化图像中去掉这些像素.去噪后的图像见图6,虽然图像左侧的部分干扰线没有清理干净,但这不影响后续工作
.
图6去噪后的二值化图像
Fig.6Denoising binary image
931第1期杨玉东,等:两种文本类型验证码字符分割提取方法
3)字符切割.此验证码的字符宽度在15个像素到37个像素之间,且字符的横向位置不固定.如果采用传统的切割方法,字符切割成功率不超过70%,这将影响最终的识别率;而基于SVM 的切割方法,可以显著提高字符切割的成功率.
由于图像右侧的干扰线清理得很干净,因此从图像右侧开始切割.首先通过图像的竖直积分投影到图像右侧的第1条切割线,见图7,然后需要一些有标签样本来训练切割模型
.图7第1条切割线的选取Fig.7Selection of the first cutting
line
将字符宽度(15~37)分为23个类.在当前切
割线左端的40个像素距离内选取特征向量.特征向
量的构成为每一列黑像素之和以及每一列黑
像素的纵坐标最小值.在给定当前切割线的条件
下,通过模型识别字符宽度可以到下一条切割线
的横向位置.4)实验结果分析.用1500个图片作为样本集训练切割模型,4000个样本训练字符识别模型,将1000个未训练图片作为测试集进行验证码图像识别.结果显示:字符切割成功率为92.3%,单个字符
识别率为95.9%,整体识别率为84.5%,识别每个
验证码图像平均用时62ms.部分分割结果及识别
结果见表2.
4㊀小㊀㊀结
本文介绍了可分割文本类型验证码识别的基本流程.针对不同图像,提出两种字符分割方法,通过实例给出了具体步骤.基于颜提取字符的方法是通过改变图像预处理和字符切割的顺序,利用字符颜的区别来提取字符;基于支持向量机的字符分割方法是在不同阈值下去除噪点和干扰线,达到更好的去噪效果.两种方法都实现了对特定类混合型文本字符验证码的分割与识别,与传统切割方法相比,具有较高的分割成功率(传统切割方法成功率为70.0%),识别结果可用.但是,基于颜提取字符的方法在计算过程中涉及迭代算法,识别的平均用时过长;基于SVM 的切割方法需要训练模型,在构造训练样本时,需要花费一定的时间.另外,分割过程中产生的部分残损字符图像和非字符图像会降低字符识别率.这些问题有待于进一步研究.
参考文献:
[1]Von Ahn L,Blum M,Langford J.Telling humans and computers apart automatically[J].Communications of the ACM,2004,
47(2):56-60.[2]Chellapilla K,Larson K,Simard P Y,et al.Building segmentation based human-friendly human interaction proofs (HIPs)[J].
HIP,2005,3517:1-26.[3]Haykin S.神经网络与机器学习[M].北京:机械工业出版社,2011.
[4]Yan J,El Ahmad A S.Alow-cost attack on a Microsoft CAPTCHA[C]//Proceedings of the 15th ACM conference on computer
and communications security,ACM,2008:543-554.[5]李兴国,高炜.基于滴水算法的验证码中粘连字符分割方法[J].计算机工程与应用,2014,50(1):163-166.[6]柳红刚.字符扭曲粘连验证码识别技术研究[D].西安:西安电子科技大学,2012.[7]唐海涛.自组织增量神经网络的验证码识别模型与算法[D].广州:广东工业大学,2016.ʌ责任编辑:郭㊀伟ɔ0
41北华大学学报(自然科学版)第20卷
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论