MATLB不变矩特征数字验证码识别
摘 要
网络给人们提供丰富资源和极大便利,同时,互联网的安全性问题也随之而来。验证码正是加强网络系统安全性的常用手段。不变矩方法在目标识别领域的应用较为广泛,但在验证码识别方面的应用却不多。论文以数字验证码为 例,先对验证图像进行去噪、定位、归一化等预处理,然后计算待识别数字的不变矩,再进行特征匹配,得到识别结果。以Matlab 软件为开发平台来进行设计实现及仿真,并构建相应的GUI 界面。实验结果表明利用不变矩在识别数字验证码方面具有可行性。在教学过程中应用该成果,可以使学生强化基本理论,培养学生的创新能力和理论联系实际的能力。
引言
验证码具有技术简单、易实施和传输数据小的优点,故而被很多网站尤其是论坛性质的网站大面积使用来防止自动化程序(如论坛自动灌水机)进行大批量的恶意行为。验证码技术也常用于辅助预防和阻止垃圾邮件群发等行为[1]。常用的验证码识别方法主要有模板匹配、字符结构、字符形状方面。这类方法缺点是对倾斜和字符的大小比较敏感,经过特殊处理后这些缺点可得到一定改进。文献[5]提出基于外部轮廓的方法,将图像分割成相应若干单个数字图像,然后对分隔出来的单个数字图像外部轮廓的上、下、左、右4 个方向进行特征计算,最后依据所计算得到的外部轮廓方向是否具有突变、左斜、右斜、圆弧等特征来对它们进行识别。基于机器学习的方法近年来研究较多,如神经网络、基于支持向量机等来进行识别验证。有基于粗糙集的彩色验证码图像识别方法[9],根据字符颜色、大小和位置关系,使用粗糙集方法将验证码字符分割出来,再利用 Adaboost 进行训练、识别。无需太多样本,识别率较高,但对有一定几何形变的字符识别率不高。不变矩是指物体(目标) 在进行平移、缩放、旋转等几何变换后基本保持不变的矩统计量。目前,不变矩已成功应用于目标识别、数字水印等很多领域[10~11],但在验证码识别应用很少。本文利用矩不变量来进行数字验证码识别,以常用的几何不变矩(Hu 矩)为例给出相关仿真结果,最后对算法进行总结讨论。
- 几何不变矩的基本原理
![v2-c159e2a8c47cc5f43b4ab784f569a64a_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/6c61e84987aea75387cfb6cf3b3d5aa1.jpeg)
![v2-b0e5c8264b17c5c105a99e4f92b6124d_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/0c1f40926c6a2017f9bd63f2c88c4593.png)
基本过程
在识别之前需对验证码图像进行一系列预处理操作,整体流程如图1 所示。
一般数字验证码图像中的数字个数保持常量,较易分割,为进行后续数字分割,首先对图像进行初步去噪。然后对图像进行二值化,对数字进行定位、分割, 在实际处理中,为了保证分割效果,可在分割之前再次对噪点进行滤除。数字定位好后,可提取验证码图像中各数字的不变矩特征进行识别。
![v2-0a2f93d234bd8bd9bb1d4da8b491f0ba_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/bfa8115d44386f74eeb83125d23ee73a.png)
- 仿真
验仿真通过Matlab完成,为便于直观观察结果,构建GUI界面。载入验证码图像后界面如图2
所示;对验证码图像进行初步去噪、数字定位、归一化操作,结果分别如图3、图4、图5所示。
![v2-3b55cfed3a38766bf1f91f2d028977b9_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/e39da9f6ed670c27dea5b5bf6dcf50cf.jpeg)
![v2-b46fc4a2cb84ccd90f4576879bd888f9_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/8ec9e7d4b9f9baaa69c6727d9f8d8168.jpeg)