CN104252620B - 字符粘连的图形验证码识别方法 - Google Patents
字符粘连的图形验证码识别方法 Download PDFInfo
- Publication number
- CN104252620B CN104252620B CN201410496368.1A CN201410496368A CN104252620B CN 104252620 B CN104252620 B CN 104252620B CN 201410496368 A CN201410496368 A CN 201410496368A CN 104252620 B CN104252620 B CN 104252620B
- Authority
- CN
- China
- Prior art keywords
- image
- character
- recognition methods
- verification code
- degree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012795 verification Methods 0.000 title claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims abstract description 22
- 230000011218 segmentation Effects 0.000 claims abstract description 7
- 238000006243 chemical reaction Methods 0.000 claims abstract description 4
- 238000001914 filtration Methods 0.000 claims abstract description 3
- 238000012549 training Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000003909 pattern recognition Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000003707 image sharpening Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006641 stabilisation Effects 0.000 description 2
- 238000011105 stabilization Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- VQLYBLABXAHUDN-UHFFFAOYSA-N bis(4-fluorophenyl)-methyl-(1,2,4-triazol-1-ylmethyl)silane;methyl n-(1h-benzimidazol-2-yl)carbamate Chemical compound C1=CC=C2NC(NC(=O)OC)=NC2=C1.C=1C=C(F)C=CC=1[Si](C=1C=CC(F)=CC=1)(C)CN1C=NC=N1 VQLYBLABXAHUDN-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Character Discrimination (AREA)
- Character Input (AREA)
Abstract
本发明涉及一种字符粘连的图形验证码识别方法,其特点是:使用中值滤波去除图像中的噪点,并使用门限算法,将图像进行二值化处理。同时,通过分析图像的二值化矩阵,算出验证码的平均宽度,将未粘连的验证码字符提取出来。并且,粘连字符进行均分,将分割完的字符图像进行锐化。最终,使用模式识别软件,对分割后的字符进行识别,最后根据概率,以识别最多或概率最高的字符为识别结果。在抓取需要输入验证码的网络资源时,能够自动识别验证码,进行准确的抓取,且能够针对不同验证码的处理调节,提高了应用范围。
Description
技术领域
本发明涉及一种验证码识别方法,尤其涉及一种字符粘连的图形验证码识别方法。
背景技术
验证码的出现是为了防止某些恶意程序对网站的破坏,如批量注册、批量发帖、同时也防止那些爬虫程序无视规则进行资源抓取。所谓验证码就是将一组随机数字或符号生成一幅图片,并在图片中加入一些干扰元素,用户在提交表单的时候,需要识别并填写验证码,只有在后台核对验证码成功后才能成功提交表单,而这个过程正是机器程序不容易模拟的,那些粘连字符更是让机器程序难以识别,从而在一定程度上起到了保护网站免受恶意程序攻击目的。
因此。验证码给网站带来安全的同时,也给某些从事网络抓取工作的人们带来了一定的不便,验证码识别算法正是为解决此问题。
关于ImageMagick描述,ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、PNG、PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存,对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。同时ImageMagick提供了一个高质量的2D工具包,部分支持SVG。ImageMagic的主要精力集中在性能,减少bug以及提供稳定的API和ABI上。
并且,ImageMagick 是一个用来创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。支持大多数的操作系统。
关于Tesseract-ocr,Tesseract 是一款开源的光学字符串识别(OCR)项目,能够识别图像验证码。比如存在一个格式为TIF的文字图,Tesseract能够识别出该图片中的文字,将识别到的文字写入到一个文本文件中,识别效果很不错。如果想要识别不同语言的文字图像,需要下载响应的支持包,才能让Tesseract识别更多格式的图像。Tesseract项目地址可以通过下载开源发行包,或者到该项目网站了解更多信息。
关于图像二值化,一般图片都是彩色的,按照逼真程度,可能很多级别。为了降低计算复杂度,方便后续的处理,如果在不损失关键信息的情况下,能将图片处理成黑白两种颜色,那就最好不过了。
关于模式识别,对事物或者现象的某种表示方式(数值,文字,我们这里主要想说的是数值),通过一些处理和分析,来描述,归类,理解,解释这些事物,现象及其某种抽象。
关于图像锐化(image sharpening),其为补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,亦分空域处理和频域处理两类。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种字符粘连的图形验证码识别方法。
本发明的目的通过以下技术方案来实现:
字符粘连的图形验证码识别方法,其特征在于包括以下步骤:步骤①,使用中值滤波去除图像中的噪点。步骤②,使用门限算法,选择适当的阀值,将图像进行二值化处理。步骤③,分析图像的二值化矩阵,根据图像的垂直投影,获取验证码内容的宽度,并根据验证码个数,算出验证码的平均宽度。 步骤④,分析图像的二值化矩阵,通过图像的垂直投影或是边缘检测,将未粘连的验证码字符提取出来。步骤⑤,分析图像的二值化矩阵,根据图像的水平投影,计算出图像的水平中轴线、字符的高度,按字符的平均宽度,将水平中轴线进行等分,对粘连字符进行均分,分割线分别与水平中轴线的等分点相交,分割出若干角度,保存分割完的字符。步骤⑥,将分割完的字符图像进行锐化。步骤⑦,根据切割字符的特征,训练模式识别软件。步骤⑧,使用模式识别软件,对分割后的字符进行识别,最后根据概率,以识别最多或概率最高的字符为识别结果。
上述的字符粘连的图形验证码识别方法,其中:所述步骤②的计算过程为,将图像二值化之后,会生成一个二值化矩阵,二值化矩阵为图像的像素点,每个像素点映射成矩阵里面的一个值,将矩阵垂直像素信息进行累加,既像素点不为空白+1,像素点为空白+0,最终求出图像的垂直投影,通过垂直投影,判断图片文字内容的宽度与文字之间的间隙。
进一步地,上述的字符粘连的图形验证码识别方法,其中:所述的步骤④中,对于未粘连验证码,若属于普通字符,通过图像的垂直投影获取图像的边缘后提取,所述图像的边缘为投影值大小为0或小于设定值的地方,若属于特殊的倾斜字符,根据图像矩阵的排列,找寻像素连续为0的分界线进行图像提取。
更进一步地,上述的字符粘连的图形验证码识别方法,其中:步骤⑤所述的分割角为-30度,和/或是-20度,和/或是-10度和/或是,和/或是0度,和/或是10度,和/或是20度,和/或是30度。
更进一步地,上述的字符粘连的图形验证码识别方法,其中:步骤⑦所述的训练为,通过Tesseract-OCR训练工具进行。
再进一步地,上述的字符粘连的图形验证码识别方法,其中:步骤⑧所述的识别过程由模式识别软件来完成,模式识别软件将返回识别概率最高的字符作为识别结果,或是采用模式识别接口来返回相应字符的识别概率。
本发明技术方案的优点主要体现在:在网络抓取应用抓取需要输入验证码的网络资源时,能够自动识别验证码,进行准确的抓取,不会因验证码的存在而受阻,出现抓取错误。由此,保证了网络抓取的准确性。同时,本方法能够有效利用Tesseract-OCR训练工具,实现针对不同验证码的处理调节,提高了应用范围。
附图说明
图1是字符粘连的图形验证码识别方法的处理流程示意图。
具体实施方式
如图1所示的字符粘连的图形验证码识别方法,其包括以下步骤:首先,使用中值滤波去除图像中的噪点。
之后,使用门限算法,选择适当的阀值,将图像进行二值化处理。本发明涉及到的阀值,二值化算法中的一个临界值,大于这个值像素都将置为255,而小于等于这个值的都将置为0。通过阀值的存在,也能一定程度的去噪,便于后续处理。具体来说,将图像二值化之后,会生成一个二值化矩阵。同时,二值化矩阵为图像的像素点,每个像素点映射成矩阵里面的一个值,将矩阵垂直像素信息进行累加,既像素点不为空白+1,像素点为空白+0。最终,求出图像的垂直投影,并通过垂直投影,判断图片文字内容的宽度与文字之间的间隙。
接着,分析图像的二值化矩阵,根据图像的垂直投影,获取验证码内容的宽度。根据验证码个数,算出验证码的平均宽度。同时,分析图像的二值化矩阵,通过图像的垂直投影或是边缘检测,将未粘连的验证码字符提取出来。在此期间,对于未粘连验证码,若属于普通字符,贼通过图像的垂直投影获取图像的边缘后提取。该图像的边缘为投影值大小为0或小于设定值的地方。考虑到图形验证码的多样性,若属于特殊的倾斜字符,则根据图像矩阵的排列,找寻像素连续为0的分界线进行图像提取。
之后,继续依据图像的二值化矩阵,根据图像的水平投影,计算出图像的水平中轴线、字符的高度。同时,按字符的平均宽度,将水平中轴线进行等分,对粘连字符进行均分。通过分割线分别与水平中轴线的等分点相交,分割出若干角度,保存分割完的字符。并且,考虑到图形验证码的间距、大小、倾斜程度、位置分布的不同,分割角为-30度,和/或是-20度,和/或是-10度和/或是,和/或是0度,和/或是10度,和/或是20度,和/或是30度。
然后,将分割完的字符图像进行锐化。为了便于实施,该锐化方式与现有技术是一样的,这样,通过锐化,能够提高图像边缘的清晰度,方便模式识别软件辨识。
随后,根据切割字符的特征,有针对性的训练模式识别软件。考虑到实施的便利性,通过Tesseract-OCR训练工具进行。由于该软件有较好的扩展性与便捷性,具体的训练方式可以参考,http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3。
最终,使用模式识别软件,对分割后的字符进行识别。根据概率,以识别最多或概率最高的字符为识别结果。比如,字符“9”字符经过多角度分割,可能产生10个图片,假设识别结果为:空、0、空、9、1、空、9、1、9,空,那么识别最终结果为9。具体来说,识别过程由模式识别软件来完成,模式识别软件将返回识别概率最高的字符作为识别结果。同时,亦可以通过模式识别接口来返回相应字符的识别概率。上述两种方式可以通过模式识别软件来权衡,减少人工参与。
通过上述的文字表述可以看出,采用本发明后,在网络抓取应用抓取需要输入验证码的网络资源时,能够自动识别验证码,进行准确的抓取,不会因验证码的存在而受阻,出现抓取错误。由此,保证了网络抓取的准确性。同时,本方法能够有效利用Tesseract-OCR训练工具,实现针对不同验证码的处理调节,提高了应用范围。
这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
Claims (6)
1.字符粘连的图形验证码识别方法,其特征在于包括以下步骤:步骤①,使用中值滤波去除图像中的噪点;步骤②,使用门限算法,选择适当的阀值,将图像进行二值化处理;步骤③,分析图像的二值化矩阵,根据图像的垂直投影,获取验证码内容的宽度,并根据验证码个数,算出验证码的平均宽度;步骤④,分析图像的二值化矩阵,通过图像的垂直投影或是边缘检测,将未粘连的验证码字符提取出来;步骤⑤,分析图像的二值化矩阵,根据图像的水平投影,计算出图像的水平中轴线、字符的高度,按字符的平均宽度,将水平中轴线进行等分,对粘连字符进行均分,分割线分别与水平中轴线的等分点相交,分割出若干角度,保存分割完的字符;步骤⑥,将分割完的字符图像进行锐化;步骤⑦,根据切割字符的特征,训练模式识别软件;步骤⑧,使用模式识别软件,对分割后的字符进行识别,最后根据概率,以识别最多或概率最高的字符为识别结果。
2.根据权利要求1所述的字符粘连的图形验证码识别方法,其特征在于:所述步骤②的计算过程为,将图像二值化之后,会生成一个二值化矩阵,二值化矩阵为图像的像素点,每个像素点映射成矩阵里面的一个值,将矩阵垂直像素信息进行累加,即像素点不为空白+1,像素点为空白+0,最终求出图像的垂直投影,通过垂直投影,判断图片文字内容的宽度与文字之间的间隙。
3.根据权利要求1所述的字符粘连的图形验证码识别方法,其特征在于:所述的步骤④中,对于未粘连验证码,若属于普通字符,通过图像的垂直投影获取图像的边缘后提取,所述图像的边缘为投影值大小为0或小于设定值的地方,若属于特殊的倾斜字符,根据图像矩阵的排列,找寻像素连续为0的分界线进行图像提取。
4.根据权利要求1所述的字符粘连的图形验证码识别方法,其特征在于:步骤⑤所述的分割角为-30度,和/或是-20度,和/或是-10度,和/或是10度,和/或是20度,和/或是30度。
5.根据权利要求1所述的字符粘连的图形验证码识别方法,其特征在于:步骤⑦所述的训练为,通过Tesseract-OCR训练工具进行。
6.根据权利要求1所述的字符粘连的图形验证码识别方法,其特征在于:步骤⑧所述的识别过程由模式识别软件来完成,模式识别软件将返回识别概率最高的字符作为识别结果,或是采用模式识别接口来返回相应字符的识别概率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410496368.1A CN104252620B (zh) | 2014-09-25 | 2014-09-25 | 字符粘连的图形验证码识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410496368.1A CN104252620B (zh) | 2014-09-25 | 2014-09-25 | 字符粘连的图形验证码识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104252620A CN104252620A (zh) | 2014-12-31 |
CN104252620B true CN104252620B (zh) | 2017-06-06 |
Family
ID=52187500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410496368.1A Active CN104252620B (zh) | 2014-09-25 | 2014-09-25 | 字符粘连的图形验证码识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104252620B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104732226A (zh) * | 2015-03-31 | 2015-06-24 | 浪潮集团有限公司 | 一种字符识别方法和装置 |
CN105046140A (zh) * | 2015-06-09 | 2015-11-11 | 苏州德锐朗智能科技有限公司 | 一种用于字符验证码的自动输入方法 |
CN105187443B (zh) * | 2015-09-28 | 2018-03-06 | 上海斐讯数据通信技术有限公司 | 一种测试web验证码的系统及方法 |
CN107067006B (zh) * | 2017-04-20 | 2022-03-18 | 金电联行(北京)信息技术有限公司 | 一种服务于数据采集的验证码识别方法及系统 |
CN107273890A (zh) * | 2017-05-26 | 2017-10-20 | 亿海蓝(北京)数据技术股份公司 | 针对字符组合的图形验证码识别方法及装置 |
CN107292311A (zh) * | 2017-08-10 | 2017-10-24 | 河南科技大学 | 一种基于神经网络的字符粘连验证码的识别方法 |
CN107688809B (zh) * | 2017-08-28 | 2019-08-27 | 深圳壹账通智能科技有限公司 | 验证码识别方法、装置、计算机设备及计算机存储介质 |
CN107871128B (zh) * | 2017-12-11 | 2023-06-06 | 广州市标准化研究院(广州市组织机构代码管理中心) | 一种基于svg动态图表的高鲁棒性图像识别方法 |
CN108171229B (zh) * | 2017-12-27 | 2021-11-16 | 广州多益网络股份有限公司 | 一种空心粘连验证码的识别方法及系统 |
CN108460387A (zh) * | 2018-03-26 | 2018-08-28 | 国网安徽省电力有限公司检修分公司 | 智能电力表计抄录计算系统及方法 |
CN108564089B (zh) * | 2018-04-24 | 2020-10-23 | 大连民族大学 | 满文部件集的构建方法 |
CN109101810B (zh) * | 2018-08-14 | 2021-07-06 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN110033004B (zh) * | 2019-03-25 | 2021-01-05 | 广东奥普特科技股份有限公司 | 一种粘连字符的识别方法 |
CN111079762B (zh) * | 2019-11-26 | 2022-02-08 | 合肥联宝信息技术有限公司 | 一种粘连字符的切割方法及电子设备 |
CN111259366B (zh) * | 2020-01-22 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于自监督学习的验证码识别器的训练方法和装置 |
CN111859354B (zh) * | 2020-07-21 | 2023-09-01 | 百度在线网络技术(北京)有限公司 | 图片验证方法、装置、电子设备、存储介质和程序产品 |
CN115168826A (zh) * | 2022-07-27 | 2022-10-11 | 中国电信股份有限公司 | 投影验证方法、装置、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236791A (zh) * | 2011-07-14 | 2011-11-09 | 青岛海信网络科技股份有限公司 | 一种倾斜车牌的字符分割方法 |
CN102496013A (zh) * | 2011-11-11 | 2012-06-13 | 苏州大学 | 用于脱机手写汉字识别的汉字字符切分方法 |
DE102011051934A1 (de) * | 2011-07-19 | 2013-01-24 | Wincor Nixdorf International Gmbh | Verfahren und Vorrichtung zur OCR-Erfassung von Wertdokumenten mittels einer Matrixkamera |
CN102930277A (zh) * | 2012-09-19 | 2013-02-13 | 上海珍岛信息技术有限公司 | 一种基于识别反馈的字符图像验证码识别方法 |
-
2014
- 2014-09-25 CN CN201410496368.1A patent/CN104252620B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236791A (zh) * | 2011-07-14 | 2011-11-09 | 青岛海信网络科技股份有限公司 | 一种倾斜车牌的字符分割方法 |
DE102011051934A1 (de) * | 2011-07-19 | 2013-01-24 | Wincor Nixdorf International Gmbh | Verfahren und Vorrichtung zur OCR-Erfassung von Wertdokumenten mittels einer Matrixkamera |
CN102496013A (zh) * | 2011-11-11 | 2012-06-13 | 苏州大学 | 用于脱机手写汉字识别的汉字字符切分方法 |
CN102930277A (zh) * | 2012-09-19 | 2013-02-13 | 上海珍岛信息技术有限公司 | 一种基于识别反馈的字符图像验证码识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104252620A (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104252620B (zh) | 字符粘连的图形验证码识别方法 | |
CN109919160B (zh) | 验证码识别方法、装置、终端及存储介质 | |
CN108171104B (zh) | 一种文字检测方法及装置 | |
CN105574513B (zh) | 文字检测方法和装置 | |
US9239948B2 (en) | Feature descriptor for robust facial expression recognition | |
US9292759B2 (en) | Methods and systems for optimized parameter selection in automated license plate recognition | |
CN107832767A (zh) | 集装箱箱号识别方法、装置及电子设备 | |
CN107292311A (zh) | 一种基于神经网络的字符粘连验证码的识别方法 | |
CN105631449B (zh) | 一种图片分割方法、装置及设备 | |
US9785850B2 (en) | Real time object measurement | |
CN109325492B (zh) | 字符切割方法、装置、计算机设备及存储介质 | |
CN106407980A (zh) | 一种基于图像处理的银行卡号码识别方法 | |
JP2016072958A (ja) | 文書画像における縦線および横線の検出および削除 | |
CN108108731A (zh) | 基于合成数据的文本检测方法及装置 | |
CN103489254B (zh) | 彩票的识别方法及系统 | |
CN105447508A (zh) | 一种字符图像验证码识别的方法及系统 | |
CN108171229B (zh) | 一种空心粘连验证码的识别方法及系统 | |
CN111860027A (zh) | 二维码的识别方法及装置 | |
CN105404868A (zh) | 一种基于交互平台的复杂背景中文本的快速检测方法 | |
CN113159045A (zh) | 一种结合图像预处理与卷积神经网络的验证码识别方法 | |
CN109409227A (zh) | 一种基于多通道cnn的手指静脉图质量评估方法及其装置 | |
CN115909353A (zh) | 一种图像二值化处理方法和装置 | |
CN108564072A (zh) | 基于多重处理的虹膜图像增强方法、装置、设备及介质 | |
US9684984B2 (en) | Nearsighted camera object detection | |
CN110070103A (zh) | 身份证识别的方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |