研究验证码自动识别技术可以进一步提升人识别验证码的可读性,增强机器识别的难度,从而提高网络安全性。针对目前提出的验证码识别方法基本都是采用光学字符识别(OCR)方法对机器写的标准字符进行识别,本文提出了一种多样变换的手写验证码自动识别算法,对彩色验证码进行识别主要包括彩色验证码的二值化、手写字符的区域分割、同一字符的区域连接、使用卷积神经网络对手写字符进行训练、手写字符识别。本文的实现结果明显优于OCR的识别结果。结果表明通过该网站的测试,基本上能自动识别该网站的验证码。
随着互联网的极度开放, 网络爬虫技术可以肆意获得任意公开的数据, 网络的安全问题也日益突出, 其中设置人类可读容易机器破解难的验证码在一定程度上可以阻止肆意的网络爬虫技术。验证码CAPTCHA 起源于美国卡内基梅隆大学的一个科研项目,原意为全自动区分计算机和人类的图灵测试是一种区分用户是人类还是计算机的公共自动程序。当用户要对网络站点进行用户注册、用户登录或非登录式留言回复时,均需先正确填写网站提供的验证码,并通过网站服务器验证后,才能顺利完成各种操作。验证码技术在增强网络安全方面起到了重要作用。
目前的验证码识别在国内外已成为热门领域, 其理论体系日渐完善。
Per-Olal 对验证码提取特征并用神经网络训练方法对一种简单验证码进行识别。2005 年Edward 等通过将字符旋转至水平并对单个字符应用小波滤波结果作为特征,以接近100%的识别率破解了验证码。同年Kumar 和Patrice 的研究表明, 在验证码识别中,验证码图形字符分割比识别更难,一旦正确将字符逐个分开,运用机器学习算法就可以轻易解决识别问题。
然而至今没有一种通用有效方法解决字符分割难题。
2008 年Jeff Yan 等以高达90%以上的识别率破解了微软2007 年使用的验证码[1], 对于有单个字符的干扰线的字符去除干扰线识别提出了解决的方法,对于这种长的和字符具有相同的像素宽度的、字符颜色一致的干扰线目前没有很好的解决方法。2005 年程治国,刘允才[2]提出一种通用的去除文字图像中干扰线的算法利用图形学的理论,采用改进的最短路径算法和方向偏移算法检测干扰线。非粘连的正常排列有一定空间字符的分割可以通过二值化后的图像像素的竖直投影直方图来分割字符,但是对于一些扭曲变形斜着排列的字符就不适用, 但可以用基于上下连通区域法分割字符,CFS (Color flooding segment)对于彩色填充分割算法适用于具有区域连通性的验证码。粘连字符分割可以采用滴水算法进行字符的分割[3],有效避免了字符的过分割。