浅谈对强干扰下图形验证码识别.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈对强干扰下图形验证码识别

浅谈对强干扰下图形验证码识别   【摘 要】随着互联网的飞速发展,一部分不道德的人便利用自动程序在公众BBS上批量注册帐号并散发海量广告,妨碍网站正常用户的浏览并给服务器加重了负担。为了区分开自然人与机器,人类发明了图形验证码。本文主要讨论了对图形验证码进行机器光学字符识别的技术及难点,从而给出图形验证码的发展方向。   【关键词】图形校验码;像素;点阵;中文输入法    1.图形验证码的校验方式   图形验证码(Completely Automated Public Turing test to tell Computers and Humans Apart, CAPTCHA)是区分用户端就是是机器操作还是人工访问的一种有效工具。在有图形验证码的环境下,机器如需模拟人工访问,则需利用光学字符识别(Optical Character Recognition, OCR)技术实现的暴力破解。因为人眼可以看到的图片对于计算机来说是必可见的,所以这种方法并没有绝对禁止的途径,只有利用人脑的模糊识别能力远比计算机强的特点对验证码图片添加一系列干扰要素,从而让人眼能识别的同时机器识别程序厄不能。    2.图形验证码的主要干扰技术   2.1 添加噪声干扰:在图形验证码的图片上随意添加与字符同一颜色或不同颜色的干扰点或干扰线。   2.2 字符位移,图形验证码的字符不处于同一水平线上,或字符之间的空隙不相同。   2.3 字符自身的调整,如拉伸、扭曲、旋转。   2.4 使用不同的字库,如使用汉字作为验证码的字符。   2.5 使用问答的形式,图形验证码中显示的是问题,而需使用者回答的是问题的正确答案。    3.图形验证码的降噪   为图形验证码添加噪点以抗识别已经是通用的做法。网络上几乎所有噪点都符合一个特征:噪点与底色的对比度必然比字符与背景的对比度低。该特征产生的原因是当字符与背景色对比最强烈时才容易被人眼所捕捉。同时还有一类杂色的干扰线。   对于这类干扰要素,我们所使用的方法是根据亮度直接转成黑白二值位图。这不单止是所有OCR的必经步骤,还能通过设置正确的阀值清楚掉大量的噪点和几乎所有杂色干扰线。经过以上操作,能明显去除图形验证码上的大部分干扰但也很明显并不是所有的噪点都能如此简单的清理掉。这时我们必须对图片上每一个黑点进行扫描,以期去除剩下的噪点。我们对噪点的辨别方式如下:如果一个黑点(左边x,y)附近的8个点(分别为(x-1,y-1),(x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1),)里,只有两个或少于两个点是黑点,那么该点(x,y)为噪点。通过这一系列的处理,可基本消除。    4.图形验证码的字符抽取   我们所设计的切割算法是从左边第一列开始向右扫描,遇到有黑点时记录下该列号,接着从下一列开始继续向右扫描,当发现一列全为白点时再次记录该列号。假设去噪步骤的结果是完美的,那么理想的整个列切割程序将如下:   (a)进入左边第一列。   (b)自顶向下扫描本列:如发现有黑点存在则记录列号同时向右移动一列并转入步骤(c),如未发现则向右移动一列重新执行本步骤。   (c)自顶向下扫描本列:如发现全列都没黑点则记录列号同时向右移动一列并转入步骤(d),如发现黑点则向右移动一列重新执行本步骤。   (d)检查是否已记录够10个列号:如已足够则退出循环,如未足够则向右移动一列并重新执行步骤(b)。   当列切割程序执行完毕则进入行切割。行切割则是指定的列号范围内逐行扫描,当遇到黑点时记录行号并进入下行继续扫描,当遇到一行全为白点的行时记录行号并进入下一个列片段重新从第一行开始扫描。假设去噪以及行切割步骤的结果是完美的,那么理想的整个行切割程序将如下:   (a)进入第一个列片段(如列号1、2为一个片段,3、4为下一个片段)。   (b)进入上面第一行。   (c)自左向右扫描本行:如发现黑点则记录行号同时向下移动一行并转入步骤(d),如未发现则向下移动一行并重新执行本步骤。   (d)自左向右扫描本行:如发现全行无黑点则记录行号同时向下移动一行并转入步骤(e),如发现黑点则向下移动一行并重新执行本步骤。   (e)检查是否已记录够10个行号:如已足够则退出循环,如未足够则进入下一个列片段并重新执行步骤(b)。   经过上述步骤可得出10个行号与10个列号,用第1、2行号与第1、2列号则可得出第一个字符的具体位置,而第3、4行号与第3、4列号则可得出第一个字符的具体位置,依次类推,我们可以得出在降噪步骤完美实现的前提下5个字符的具体位置。    5.图形验证码的字符抽取   实际操作中因为降噪有可能

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档