2014,50(1)ComputerEngineeringandApplications计算机工程与应用1引言验证码(CompletelyAutomatedPublicTuringtesttotellComputersandHumansApart,CAPTCHA),即全自动区分计算机和人类的图灵测试,是一种区分用户是计算机还是人类的公共全自动程序[1]
当前,为了保障网络应用的安全,防止计算机自动恶意程序对网络的攻击以及对网络资源的恶意占用等,验证码技术得到了广泛的应用
目前最常见的一种形式是让用户输入一幅图片上的字符,以证明用户的人类身份
本文以下所说的皆是指这种类型的字符验证码
国内外已经有越来越多的学者和机构对验证码的识别进行研究
一方面,对验证码识别的研究可以使人们发现当前所使用的验证码的缺陷和不足之处,从而设计出更好、更安全可靠的验证码,以保障网络应用的安全;另一方面,当某种验证码被破解时,也是人工智能领域的一大进步[2]
验证码的识别一般分为验证码图片的预处理阶段和识别阶段
首先将图片二值化、去除噪点,然后将单个的字符分割出来,最后进行识别
目前绝大多数的识别算法都需要验证码字符的分割这一步骤
文献[3]的研究表明,只要能将验证码上的字符分割出来,用现有的机器学习算法一般都可以取得比较好的识别效果
机器学习算法可以有效地解决字符识别问题,故字符的有效分割对验证码的识别至关重要,然而当前还没有一种通用、有效的字符分割算法[4]
非粘连字符的分割可以很容易地通过二值化后的图片的竖直投影直方图来作者简介:李兴国(1963—),男,教授,硕士生导师,研究方向为信息资源管理,信息系统,电子商务和电子政务
E-mail:lxglzz@sina
com收稿日期:2012-08-27修回日期:2012-12-25文章编号:1002-8331(2014)01-0163-04CNK