首页> 中国专利> 一种字符扭曲粘连的图形验证码识别方法

一种字符扭曲粘连的图形验证码识别方法

摘要

本发明公开了一种针对字符扭曲粘连的图形验证码识别方法,首先获取一定量的验证码图片以准备模板字符集,然后将待识别的验证码图片进行二值化以后用模板字符集中的每张字符图片在待识别的验证码图片上滑动,找出相似度最高的K张模板字符,并记录这K个字符最相似时所对应的位置,然后按照相同的识别方法从所记录的位置开始继续进行验证码图片剩下部分的识别。最后计算匹配的模板字符图片与整个验证码图片的相似度。最终将得到相似度最高的匹配方式作为验证码识别的最终结果。

著录项

  • 公开/公告号CN105426890A

    专利类型发明专利

  • 公开/公告日2016-03-23

    原文格式PDF

  • 申请/专利权人 成都数之联科技有限公司;

    申请/专利号CN201510756878.2

  • 发明设计人 不公告发明人;

    申请日2015-11-09

  • 分类号G06K9/34;G06K9/62;

  • 代理机构成都行之专利代理事务所(普通合伙);

  • 代理人温利平

  • 地址 610041 四川省成都市武侯区一环路西一段菊乐路口1栋4层2号

  • 入库时间 2023-12-18 14:59:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-25

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06K 9/34 专利号:ZL2015107568782 变更事项:专利权人 变更前:成都数之联科技有限公司 变更后:成都数之联科技股份有限公司 变更事项:地址 变更前:610041 四川省成都市武侯区一环路西一段菊乐路口1栋4层2号 变更后:610041 四川省成都市武侯区锦绣街8号2层270号

    专利权人的姓名或者名称、地址的变更

  • 2018-12-18

    授权

    授权

  • 2018-01-16

    著录事项变更 IPC(主分类):G06K9/34 变更前: 变更后: 申请日:20151109

    著录事项变更

  • 2016-04-20

    实质审查的生效 IPC(主分类):G06K9/34 申请日:20151109

    实质审查的生效

  • 2016-03-23

    公开

    公开

说明书

技术领域

本发明属于图像识别技术领域,更为具体地讲,涉及一种字符扭曲粘连的 图形验证码识别方法。

背景技术

验证码(CAPTCHA)是“CompletelyAutomatedPublicTuringtesttotell ComputersandHumansApart”(全自动区分计算机和人类的图灵测试)的缩写, 是一种区分用户是计算机还是人的公共全自动程序。研究验证码识别技术则是 人工智能的范畴,通过对验证码识别技术的研究,使机器能够达到人眼的识别 效果,这对于人工智能的发展具有很大的推动作用。同时从事大数据分析的科 研机构和科研人员需要获取网上大量的数据以进行科学研究,然而验证码的存 在阻碍了数据的顺利获取,验证码识别技术的发展有利于摆脱这种困境,从而 推动大数据分析相关技术的发展。

验证码的种类比较多,主要有基于图像模式,基于文本模式和基于语音模 式三种。而最广泛使用的是基于文本模式的验证码。它通过对验证码中的文本 字符进行扭曲,变形以及增加噪音来阻止验证码中的文本内容被机器人程序通 过模式识别的方式进行识别。基于文本模式的验证码最初只由包含简单的数字 的图片组成。文本中的字符没有扭曲变形等,字符没有背景图片和噪音。但是 这种验证码没有存在多久就被机器人程序自动识别。自从验证码出现,识别技 术和反识别技术就竞相竞赛。一方面,由于识别技术发展,推动验证码越来越 复杂,以至于出现人眼难以识别的验证码。另一方面,出于各方面的需求,验 证码的识别技术也越来越成熟,成为了推动图形学和图像处理技术发展的一股 重要的力量。

验证码识别的瓶颈在于字符的分割,随着手写体识别技术的不断发展,很 多算法对于单字符识别准确度都达到了90%以上,我们知道手写体的扭曲有很 大的随机性,这和验证码如出一辙,所以这些技术可以直接用于验证码单字符 的识别,单字符识别算法中,比较成熟且准确率较高的有BP神经网络,卷积神 经网络,支持向量机等。如果我们能找到一种算法将相互粘连的字符准确的分 开,则验证码识别准确率将得到质的提升。但遗憾的是,至今没能找到一种通 用的算法可以将粘连的字符准确分开,多年来研究人员提出了很多字符分割算 法,比如颜色填充法,投影直方图分割法,基于背景的细化算法,滴水算法。 但效果都不理想。

发明内容

本发明的目的就为了解决字符粘连的验证码识别。由于字符切割的效果不 好,我们提出一种基于滑动窗口的验证码识别算法。

本发明的验证码识别算法,包括以下步骤:

1.获取一定量的验证码图片,人工将这些验证码图片中的单个字符分割出 来(识别的时候不需要分割),并放入文件夹,相同的字符放入相同的文件夹, 文件夹以字符的名字命名。这样便得到了模板字符集。

2.对于待识别的验证码,首先将其转换为灰度图,并除去图片边缘空白的 部分,然后用大津算法提取图片的前景,并将图片像素二值化。

3.假设验证码中有N个字符,我们先从左右向识别前个字符,首先 识别第一个字符,方法是遍历每种字符的模板字符集,让每张模板字符图片在 待识别验证码图片上的一定范围内滑动,每滑动一个位置,计算模板图片与滑 动窗口区域的相似度。找出相似度最高时对应的模板图片,并记录第一个字符 匹配每类字符时相似度的最大值及对应的滑动窗口的位置。将各类字符相似度 的最大值进行排序,取出相似度最高的前K种匹配,并将这K种匹配的匹配状 态记录下来。

4.从左往右匹配时,对于前面字符匹配的K种匹配状态的每种匹配状态, 分别以其为起点匹配验证码的下一个字符,匹配方法与第一个字符相似,同样 保存K种匹配状态,根据乘法原理,可得到前N/2个字符的种匹配方式。

5.然后从右向左匹配,先匹配最后一个字符,方法与匹配第一个字符类似, 得到最相似的K种匹配字符。并将这K种匹配的匹配状态记录下来。

6.从右向左匹配时,对于前面字符匹配的K种匹配状态的每种匹配状态分 别以其为起点匹配验证码的下一个字符。每种起始状态保存K种最优的匹配。 根据乘法原理,可得到后个字符的种匹配方式。

7.为了将匹配误差降到最低,采用左右字符轮流匹配的方式,即从最左边 开始匹配第一个字符,然后从右边开始匹配最后一个字符,再从左边开始匹配 第二个字符,再从右边开始匹配倒数第二个字符,以此类推,直到所有字符匹 配完毕。

8.经过前面的处理,我们可得到待识别验证码图片N个字符对应的相似度 最高的KN种匹配方式。对于每一种匹配方式,计算N个模板字符图片与整个验 证码图片的相似度。最终将得到相似度最高的匹配方式作为验证码识别的最终 结果。

附图说明

图1是本发明所涉及的验证码识别方法的流程图;

图2为验证码原始图像;

图3为灰度化并切除白边后图像;

图4为放大后的第一个字符匹配示意图;

图5为放大后的第二个字符匹配示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员 更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和 设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

1.获取一定量的验证码图片,本实施例中要识别的验证码图片中的字符是 字母或数字,共需识别四个字符。人工将这些验证码图片中的单个字符分割出 来(识别的时候不需要分割),并放入文件夹,相同字符的模板图片放入相同 的文件夹,文件夹以字符的名字命名,比如a,b,c..1,2,3...,由于验证码不 区分大小写,所以同一个字母的大、小写模板放在同一个文件夹中,这样便得 到了36个字符的模板图片集。

2.待识别验证码图片为三通道彩色图像,为了便于处理,采用以下步骤将 验证码图片进行二值化处理。

2.1首先将其按公式Gray=R*0.299+G*0.587+B*0.114转换为灰度图,然 后在待识别验证码图片上通过横向扫描和竖向扫描得到验证码图片的最小外接 矩形后去除矩形外图片边缘空白部分。原始图像及灰度化并切除白边后的图像 见说明书附图图2、图3.

2.2再采用大津法提取图片的前景,并将图片像素二值化。对于图像I(x, y),前景(即目标)和背景的分割阈值记作T。由于验证码图片背景为白色,灰度 值较大,故灰度小于T的为前景,灰度大于T的为背景。属于前景的像素点数 占整幅图像的比例记为ω0,其平均灰度μ0,背景像素点数占整幅图像的比例为 ω1,其平均灰度为μ1。图像的总平均灰度记为μ,类间方差记为g。验证码图片 大小为200×70,其中中像素的灰度值小于阈值T的像素个数记作N0,像素灰度 大于阈值T的像素个数记作N1,则有:

ω0=N0/14000(1)

ω1=N1/14000(2)

我们的目标是最大化g,即

g=ω0ω101)^2(3)

从0到255遍历阈值T,计算相应的类间方差g,得到类间方差g达到最大 时对应的阈值T,该阈值则为最佳分割阈值。利用得到的阈值将图像转换为二值 图像。

3.针对上一步处理得到的二值化后的待识别验证码图片,从左往右,先识 别第一个字符,方法是遍历每种字符的模板字符集,让每张模板字符图片从待 识别验证码图片左上角开始向右及向下滑动,其中最多向右滑动2个像素,向 下滑动至验证码底部。每滑动一下,应用类海明距离计算模板图片与验证码当 前滑动窗口区域相似度(距离越小相似度越高),可得到36种字符匹配验证码 各自对应的最大相似度及其与验证码图片匹配的位置,记录相似度最高的前5 个字符匹配对应的模板图片及其与验证码图片匹配的位置。距离计算公式为公 式(4)

d=n1+n2+2n3+2n4s---(4)

其中n1为滑动窗口上方遗留的黑色点数,n2为滑动窗口上方遗留的黑色点 数,n3为滑动窗口左边遗留的黑色点数,n4为滑动窗口区域与模板图片不同的像 素点数,s为模板图片的大小即行数乘列数,将n3、n4的权重设为2,作为这两 个区域不匹配的惩罚因子。放大后的具体匹配示意图如图4所示。

4.对于前面匹配第一个字符的5种匹配状态的每种匹配状态,分别以其为 起点匹配验证码的第二个字符,匹配前将第一个字符正确匹配的像素点擦除。 滑动起点为匹配第一个字符的滑动窗口右边界左移5个像素,此时向右最大滑 动距离为8个像素。距离公式与匹配第一个字符相同,但左边黑点的统计从匹 配起点开始。同样保存5种匹配状态,根据乘法原理,可得到待识别验证码图 片中前两个字符的25种匹配方式。放大后的具体匹配示意图如图5所示,虚线 为匹配起始列。

5.匹配待识别验证码图片第四个字符,方法与匹配第一个字符类似,只是 滑动方向由从左往右变成从右往左,得到最相似的5种匹配方式。

6.分别以第四个字符的5种匹配方式为起点匹配第三个字符,方法与匹配 第二个字符类似,每种起始状态保存5种最优的匹配,可得到后两个字符的25 种匹配方式,。

7.经过前面的处理,我们可得到匹配待识别验证码图片四个字符共5*5*5*5 种匹配方式。对于每一种匹配方式,计算四个模板字符图片与整个验证码图片 的相似度。方法为用模板四个模板字符依次匹配验证码,并擦除匹配上的前景 像素点即颜色为黑色的点,最后统计剩下的前景点数,最终得到剩下前景点数 最少的匹配字符串即相似度最高的匹配字符串,将其作为识别的最终结果。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域 的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对 本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定 的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发 明创造均在保护之列。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号