图片验证码识别算法的设计与实现文献综述
2020-06-22 23:02:06
1. 研究背景和意义
图片验证码技术是现代网络安全技术的一部分,用于区分访问对象是人还是机器人,以防止使程序进行大流量的有目的的访问。一般的验证码可以阻止一些简单的机械试的访问,在如今机器识别已经成熟的时代,对于简单排列的数字和字母的图片识别已经不是什么难题了。国内外已经有很多学者对验证码的识别进行研究。尝试机器识别验证码的目的不是破解而是发明更有效的,难以机器识别的验证码来保持发明验证码的初衷。验证码的识别包括图片预处理阶段,包括图片灰度化,图片二值化,图片去噪,图片增强等;字符分割阶段,也是识别验证码最难最关键的阶段,字符分割的好与坏会直接影响到下一步分类学习识别阶段;机器学习与预测阶段,这一阶段常用的分类及预测的有KNN和SVM算法。现阶段的研究表明,字符分割是验证码处理的重难点,目前还没有通用的完美的算法去解决复杂粘连字符的分割问题,有些甚至人眼也需要一定时间去区分,这是阻碍机器识别验证码的主要障碍,也成为如今验证码依然可以成为人机区分手段的基础保障。国外学者指出,当一组样本的验证码能够被机器有效识别(完全识别正确)超过10%则该验证码(系统)已经不再安全。
本课题旨在以验证码识别为媒介学习图片处理图片分割以及机器学习的一些算法,尝试开发一套简单的图片验证码识别系统。
2.图片处理算法
在验证码识别系统中,图片的预处理主要有三个阶段,图片灰度化,图片二值化,图片去噪。
图像灰度化:
以RGB位图举例,RGB位图的灰度图像即对应的(R,G,B)向量中R=G=B。将一幅彩色RGB图像转换为灰度图像可以用分量法,平均值法,最大值法进行处理。
灰度处理主要为后续二值化处理铺垫,对于具体样本选择何种处理方法,显然需要具体样本具体分析。
图片二值化:
灰度图像二值化即将一幅(通常是8bit)灰度图像(0-255)的灰度变换为(0or255)或者0-1图像。二值化是为了后续字符分割可以很容易的区分出字符和背景。