不变矩特征在数字验证码识别中的应用研究-含Matlab代码

一、引言

验证码具有技术简单、易实施和传输数据小的优点,故而被很多网站尤其是论坛性质的网站大面积使用来防止自动化程序(如论坛自动灌水机)进行大批量的恶意行为。验证码技术也常用于辅助预防和阻止垃圾邮件群发等行为。常用的验证码识别方法主要有模板匹配、字符结构、字符形状等方面。这类方法缺点是对倾斜和字符的大小比较敏感,经过特殊处理后这些缺点可得到一定改进。基于外部轮廓的方法,将图像分割成相应若干单个数字图像,然后对分隔出来的单个数字图像外部轮廓的上、下、左、右4个方向进行特征计算,最后依据所计算得到的外部轮廓方向是否具有突变、左斜、右斜、圆弧等特征来对它们进行识别。基于机器学习的方法近年来研究较多,如利用神经网络、基于支持向量机等来进行识别验证码,此类方法较传统方法在识别率上有所提高,但较为复杂,有时会出现“过学习”现象。此外,还有基于粗糙集的彩色验证码图像识别方法,根据字符颜色、大小和位置关系,使用粗糙集方法将验证码字符分割出来,再利用 Adaboost进行训练、识别。无需太多样本,识别率较高,但对有一定几何形变的字符识别率不高。

不变矩是指物体(目标)在进行平移、缩放、旋转等几何变换后基本保持不变的矩统计量。目前,不变矩已成功应用于目标识别、数字水印等很多领域,但在验证码识别应用很少。

二、几何不变矩的基本原理

区域f(x, y)的(p+q)阶矩定义为

在这里插入图片描述
其相应的中心距定义为

在这里插入图片描述
其中, 在这里插入图片描述为重心坐标,在这里插入图片描述 是目标区域灰度质心。f(x, y)的归一化(p+q)阶中心矩定义为

在这里插入图片描述
其中, 在这里插入图片描述

由此,可以得到下列七种不变矩,它们对平移、旋转、以及尺度变换都具有几何不变性:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

三、图像预处理

在识别之前需对验证码图像进行一系列预处理操作,整体流程如图1所示。

一般数字验证码图像中的数字个数保持常量,较易分割,为进行后续数字分割,首先对图像进行初步去噪。然后对图像进行二值化,对数字进行定位、分割,在实际处理中,为了保证分割效果,可在分割之前再次对噪点进行滤除。数字定位好后,可提取验证码图像中各数字的不变矩特征进行识别。
在这里插入图片描述

图1 图像预处理操作

四、实验验证

实验仿真通过Matlab完成,为便于直观观察结果,构建 GUI界面。载入验证码图像后;对验证码图像进行初步去噪、数字定位、归一化操作,结果分别如图2、图3、图4所示。

在这里插入图片描述

图2 图像去噪结果

在这里插入图片描述

图3 数字定位结果

在这里插入图片描述

图4 数字归一化与识别结果

五、总结

利用图像的几何不变矩特征对数字验证码进行识别,以 Matlab 软件作为测试平台,并搭建GUI 界面进行测试。实验结果表明了不变矩在识别数字验证码方面的可行性。而且该方法可以很容易地扩展到英文字母或字母数字混合验证码的识别中。

六、参考文献

[1]吕霁. 浅谈验证码的识别[J]. 河北能源职业技术学院学报,2015,15(1):72-74.
[2]王虎,冯林,孙宇哲. 数字验证码识别算法的研究和设计[J]. 大连理工大学学报,2007,43(32):86-87.
[3]Kang C Y,Zhang W,Zhang T. Research and design of digital validation image recognition algorithm based on contour features[C]// International Conference on Machine Learning and Cybernetics. IEEE, 2008:3022-3025.
[4]朱绍文,陈光喜. 一种简单的基于字符形状的验证码识别技术[J]. 桂林电子科技大学学报,2010,30(1):59-62.

七、Matlab(GUI用户界面)代码获取

上述Matlab代码(GUI用户界面),下载地址:

https://download.csdn.net/download/m0_70745318/87762261


博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值