CN109101810A - 一种基于ocr技术的文字验证码识别方法 - Google Patents
一种基于ocr技术的文字验证码识别方法 Download PDFInfo
- Publication number
- CN109101810A CN109101810A CN201810920802.2A CN201810920802A CN109101810A CN 109101810 A CN109101810 A CN 109101810A CN 201810920802 A CN201810920802 A CN 201810920802A CN 109101810 A CN109101810 A CN 109101810A
- Authority
- CN
- China
- Prior art keywords
- character
- connected domain
- image
- picture
- sliding window
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
- G06V30/1475—Inclination or skew detection or correction of characters or of image to be recognised
- G06V30/1478—Inclination or skew detection or correction of characters or of image to be recognised of characters or characters lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Character Input (AREA)
- Character Discrimination (AREA)
Abstract
该发明公开了一种基于OCR技术的文字验证码识别方法,涉及一种基于OCR技术的文字验证码识别技术,属于信息检索领域,特别是在网络爬虫领域和搜索引擎领域。针对网站常见的字符图像验证码设计的一种基于光学字符识别技术的验证码识别方法。本发明通过截取网络识别码图像,对图像进行去噪处理,处理后进行识别,可以准确高效的识别网络中常见的字符验证码,识别正确率高达92.3%,可以处理验证码中常见的字符旋转,噪声和干扰线等反爬虫手段,可以达到实时识别的效果。
Description
技术领域
本发明涉及一种基于OCR(Optical Character Recognition)技术的文字验证码识别技术,属于信息检索领域,特别是在网络爬虫领域和搜索引擎领域。
背景技术
网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,网络爬虫技术在很多领域有着广泛的应用,如搜索引擎,大数据分析与挖掘,互联网金融等。网络爬虫可以并行地对网页进行抓取,高并发的爬虫会增大服务器的负载,因此很多网站都采取了各种反爬虫策略来防御恶意的网络机器人程序,例如传播垃圾邮件、论坛自动发帖及自动注册和暴力破解系统登录等。全自动区分计算机和人类的图灵测试(CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart)是最常见的反爬虫手段,验证码的运行是基于一个专门负责产生和评估验证码校验的程序,该程序部署在服务器端或者是客户端的一个JS脚本。目前互联网应用使用最广泛的是文本和图像验证码,即生成一串字符的图像,通过校验用户的输入来判断用户是否为机器人。验证码识别是网络爬虫的一个关键技术,其研究成果具有很高的应用价值。
发明内容
本发明的目的是针对网站常见的字符图像验证码设计的一种基于光学字符识别技术的验证码识别方法。
本发明分析常见验证码的特征,针对验证码中的中英文和数字字符,采取先分割再识别的方法,对字符验证码进行识别。本发明技术方案为一种基于OCR技术的文字验证码识别方法,该方法包括如下步骤:
步骤1:获得验证码图片;
在获得网站响应后,检索网页源代码中是否存在“captchas”关键字,如果有则在关键字周围检索图片链接,获得验证码图像地址,跳转到该地址,得到验证码图片,将图片保存到本地;
步骤2:将图片转为灰度图,去除随机噪声;根据实际情况设定随机噪声判断阈值N1,计算像素点4邻域或者8邻域的像素平均灰度值,与图像底色的平均灰度值进行比较,若差值大于随机噪声判断阈值N1则认为该像素点为随机噪声,将该像素点置为背景;
步骤3:对图片进行二值化操作,二值化的阈值为图片的平均灰度值,进行连通域统计,并将面积小于设定阈值N2的连通域置为背景;
步骤4:去除干扰线,将干扰线的连通域内像素值置为背景;
步骤4.1:去除独立干扰线;
将二值化图像中的各连通域进行纵向和横向投影,若纵向和横向投影长度的比值大于设定的比值上限小于设定的比值下限这认为该连通域为干扰线,比值上限和比值下限根据实际情况确定;
步骤4.2:去除粘连干扰线;
设定滑窗大小,滑窗的高度为图像的高度,滑窗的宽度和步长根据实际情况确定;滑窗从图像左侧开始滑动,计算每次滑窗内连通域的个数和总面积,若连通域个数小于等于2,总面积小于设定面积阈值N3,则认为该滑窗内的连通域为粘连干扰线;
步骤5:对去除干扰的连通域进行膨胀腐蚀后再进行边缘平滑处理;
步骤6:字符分割;
将步骤5得到的二值化图像中各连通域进行单独提取,认定每个连通域为一个字符;
步骤7:对得到的各字符进行偏移校正;
对各字符的旋转,计算字符每次旋转后最左边像素点和最右边像素点的距离,其中距离最小时的字符为偏移校正后的字符;
步骤8:字符识别;
对偏移校正后的字符进行归一化处理,然后采用主成分分析算法提取字符图片的主成分作为特征,然后训练SVM分类器,实现验证码字符的识别。
进一步的,所述步骤2中随机噪声判断阈值的范围为1到5,步骤3中设定的阈值N2的范围为2到10。
进一步的,所述步骤4.1中比值上线的范围为1.3到1.5,比值下线的范围为1到1.2。
进一步的,所述步骤4.2中滑窗的宽度范围为3到5,步长范围为1到3,设定面积阈值N3范围为5到8。
本发明可以准确高效的识别网络中常见的字符验证码,识别正确率高达92.3%,可以处理验证码中常见的字符旋转,噪声和干扰线等反爬虫手段,可以达到实时识别的效果。
附图说明
图1为本发明流程图;
图2是网络上常见的字符图像验证码;
图3为灰度化后的验证码;
图4为二值化后的验证码;
图5为去噪后的验证码图像。
具体实施方式
下面详细说明四个步骤的过程。
本发明分析常见验证码的特征,针对验证码中的中英文和数字字符,采取先分割再识别的方法,对字符验证码进行识别。本发明方法包含如下步骤:
具体实施例1
步骤1:获得验证码图片;
在获得网站响应后,检索网页源代码中是否存在“captchas”关键字,如果有则在关键字周围检索图片链接,获得验证码图像地址,跳转到该地址,得到验证码图片,将图片保存到本地;
步骤2:将图片转为灰度图,去除随机噪声;根据实际情况设定随机噪声判断阈值3,计算像素点4邻域或者8邻域的像素平均灰度值,与图像底色的平均灰度值进行比较,若差值大于随机噪声判断阈值则认为该像素点为噪声,将该像素点置为背景;
步骤3:对图片进行二值化操作,二值化的阈值为图片的平均灰度值,进行连通域统计,并将面积小于设定阈值5的连通域置为背景;
步骤4:去除干扰线,将干扰线的连通域内像素值置为背景;
步骤4.1:去除独立干扰线;
将二值化图像中的各连通域进行纵向和横向投影,若纵向和横向投影长度的比值大于设定的比值上限1.3小于设定的比值下限1则认为该连通域为干扰线;
步骤4.2:去除粘连干扰线;
设定滑窗大小,滑窗的高度为图像的高度,滑窗的宽度为3和步长根据实际情况设定为2;滑窗从图像左侧开始滑动,计算每次滑窗内连通域的个数和面积总和,若连通域个数小于等于2,面积小于设定阈值5,则认为该滑窗内的连通域为粘连干扰线;
步骤5:对去除干扰的连通域进行膨胀腐蚀后再进行边缘平滑处理;
步骤6:字符分割;
将步骤5得到的二值化图像中各连通域进行单独提取,认定每个连通域为一个字符;
步骤7:对得到的各字符进行偏移校正;
对各字符的旋转,计算字符每次旋转后最左边像素点和最右边像素点的距离,其中距离最小时的字符为偏移校正后的字符;
步骤8:字符识别;
对偏移校正后的字符进行归一化处理,然后采用主成分分析算法提取字符图片的主成分作为特征,然后训练SVM分类器,实现验证码字符的识别。
具体实施例2
步骤1:获得验证码图片;
在获得网站响应后,检索网页源代码中是否存在“captchas”关键字,如果有则在关键字周围检索图片链接,获得验证码图像地址,跳转到该地址,得到验证码图片,将图片保存到本地;
步骤2:将图片转为灰度图,去除随机噪声;根据实际情况设定随机噪声判断阈值5,计算像素点4邻域或者8邻域的像素平均灰度值,与图像底色的平均灰度值进行比较,若差值大于随机噪声判断阈值则认为该像素点为噪声,将该像素点置为背景;
步骤3:对图片进行二值化操作,二值化的阈值为图片的平均灰度值,进行连通域统计,并将面积小于设定阈值9的连通域置为背景;
步骤4:去除干扰线,将干扰线的连通域内像素值置为背景;
步骤4.1:去除独立干扰线;
将二值化图像中的各连通域进行纵向和横向投影,若纵向和横向投影长度的比值大于设定的比值上限1.4小于设定的比值下限1.1则认为该连通域为干扰线;
步骤4.2:去除粘连干扰线;
设定滑窗大小,滑窗的高度为图像的高度,滑窗的宽度为5和步长根据实际情况设定为3;滑窗从图像左侧开始滑动,计算每次滑窗内连通域的个数和面积总和,若连通域个数小于等于2,面积小于设定阈值5,则认为该滑窗内的连通域为粘连干扰线;
步骤5:对去除干扰的连通域进行膨胀腐蚀后再进行边缘平滑处理;
步骤6:字符分割;
将步骤5得到的二值化图像中各连通域进行单独提取,认定每个连通域为一个字符;
步骤7:对得到的各字符进行偏移校正;
对各字符的旋转,计算字符每次旋转后最左边像素点和最右边像素点的距离,其中距离最小时的字符为偏移校正后的字符;
步骤8:字符识别;
对偏移校正后的字符进行归一化处理,然后采用主成分分析算法提取字符图片的主成分作为特征,然后训练SVM分类器,实现验证码字符的识别。
Claims (4)
1.一种基于OCR技术的文字验证码识别方法,该方法包括如下步骤:
步骤1:获得验证码图片;
在获得网站响应后,检索网页源代码中是否存在“captchas”关键字,如果有则在关键字周围检索图片链接,获得验证码图像地址,跳转到该地址,得到验证码图片,将图片保存到本地;
步骤2:将图片转为灰度图,去除随机噪声;根据实际情况设定随机噪声判断阈值N1,计算像素点4邻域或者8邻域的像素平均灰度值,与图像底色的平均灰度值进行比较,若差值大于随机噪声判断阈值N1则认为该像素点为随机噪声,将该像素点置为背景;
步骤3:对图片进行二值化操作,二值化的阈值为图片的平均灰度值,进行连通域统计,并将面积小于设定阈值N2的连通域置为背景;
步骤4:去除干扰线,将干扰线的连通域内像素值置为背景;
步骤4.1:去除独立干扰线;
将二值化图像中的各连通域进行纵向和横向投影,若纵向和横向投影长度的比值大于设定的比值上限小于设定的比值下限这认为该连通域为干扰线,比值上限和比值下限根据实际情况确定;
步骤4.2:去除粘连干扰线;
设定滑窗大小,滑窗的高度为图像的高度,滑窗的宽度和步长根据实际情况确定;滑窗从图像左侧开始滑动,计算每次滑窗内连通域的个数和总面积,若连通域个数小于等于2,总面积小于设定面积阈值N3,则认为该滑窗内的连通域为粘连干扰线;
步骤5:对去除干扰的连通域进行膨胀腐蚀后再进行边缘平滑处理;
步骤6:字符分割;
将步骤5得到的二值化图像中各连通域进行单独提取,认定每个连通域为一个字符;
步骤7:对得到的各字符进行偏移校正;
对各字符的旋转,计算字符每次旋转后最左边像素点和最右边像素点的距离,其中距离最小时的字符为偏移校正后的字符;
步骤8:字符识别;
对偏移校正后的字符进行归一化处理,然后采用主成分分析算法提取字符图片的主成分作为特征,然后训练SVM分类器,实现验证码字符的识别。
2.如权利要求1所述的一种基于OCR技术的文字验证码识别方法,其特征在于所述步骤2中随机噪声判断阈值的范围为1到5,步骤3中设定的阈值N2的范围为2到10。
3.如权利要求1所述的一种基于OCR技术的文字验证码识别方法,其特征在于所述步骤4.1中比值上线的范围为1.3到1.5,比值下线的范围为1到1.2。
4.如权利要求1所述的一种基于OCR技术的文字验证码识别方法,其特征在于所述步骤4.2中滑窗的宽度范围为3到5,步长范围为1到3,设定面积阈值N3范围为5到8。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920802.2A CN109101810B (zh) | 2018-08-14 | 2018-08-14 | 一种基于ocr技术的文字验证码识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920802.2A CN109101810B (zh) | 2018-08-14 | 2018-08-14 | 一种基于ocr技术的文字验证码识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101810A true CN109101810A (zh) | 2018-12-28 |
CN109101810B CN109101810B (zh) | 2021-07-06 |
Family
ID=64849508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810920802.2A Active CN109101810B (zh) | 2018-08-14 | 2018-08-14 | 一种基于ocr技术的文字验证码识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101810B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948621A (zh) * | 2019-03-20 | 2019-06-28 | 南京工业大学 | 一种基于图片验证码的图像处理与字符分割方法 |
CN110414592A (zh) * | 2019-07-24 | 2019-11-05 | 西安工业大学 | 一种基于多任务学习的数字验证码识别方法 |
CN110765442A (zh) * | 2019-09-30 | 2020-02-07 | 奇安信科技集团股份有限公司 | 一种识别验证图片中验证码的方法、装置及电子设备 |
CN111986117A (zh) * | 2020-08-31 | 2020-11-24 | 南京大学 | 一种算术作业批改系统及方法 |
CN112686266A (zh) * | 2021-01-11 | 2021-04-20 | 安徽希施玛数据科技有限公司 | 一种验证码识别方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930277A (zh) * | 2012-09-19 | 2013-02-13 | 上海珍岛信息技术有限公司 | 一种基于识别反馈的字符图像验证码识别方法 |
CN104021376A (zh) * | 2014-06-05 | 2014-09-03 | 北京乐动卓越科技有限公司 | 验证码识别方法和装置 |
CN104252620A (zh) * | 2014-09-25 | 2014-12-31 | 同程网络科技股份有限公司 | 字符粘连的图形验证码识别方法 |
US20150347836A1 (en) * | 2014-05-30 | 2015-12-03 | Kofax, Inc. | Machine print, hand print, and signature discrimination |
CN106446897A (zh) * | 2016-09-09 | 2017-02-22 | 浪潮软件股份有限公司 | 一种空心验证码的识别方法 |
CN107122653A (zh) * | 2017-05-11 | 2017-09-01 | 湖南星汉数智科技有限公司 | 一种图片验证码处理方法及装置 |
CN107292311A (zh) * | 2017-08-10 | 2017-10-24 | 河南科技大学 | 一种基于神经网络的字符粘连验证码的识别方法 |
CN107967475A (zh) * | 2017-11-16 | 2018-04-27 | 广州探迹科技有限公司 | 一种基于窗口滑动和卷积神经网络的验证码识别方法 |
CN108171229A (zh) * | 2017-12-27 | 2018-06-15 | 广州多益网络股份有限公司 | 一种空心粘连验证码的识别方法及系统 |
-
2018
- 2018-08-14 CN CN201810920802.2A patent/CN109101810B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930277A (zh) * | 2012-09-19 | 2013-02-13 | 上海珍岛信息技术有限公司 | 一种基于识别反馈的字符图像验证码识别方法 |
US20150347836A1 (en) * | 2014-05-30 | 2015-12-03 | Kofax, Inc. | Machine print, hand print, and signature discrimination |
CN104021376A (zh) * | 2014-06-05 | 2014-09-03 | 北京乐动卓越科技有限公司 | 验证码识别方法和装置 |
CN104252620A (zh) * | 2014-09-25 | 2014-12-31 | 同程网络科技股份有限公司 | 字符粘连的图形验证码识别方法 |
CN106446897A (zh) * | 2016-09-09 | 2017-02-22 | 浪潮软件股份有限公司 | 一种空心验证码的识别方法 |
CN107122653A (zh) * | 2017-05-11 | 2017-09-01 | 湖南星汉数智科技有限公司 | 一种图片验证码处理方法及装置 |
CN107292311A (zh) * | 2017-08-10 | 2017-10-24 | 河南科技大学 | 一种基于神经网络的字符粘连验证码的识别方法 |
CN107967475A (zh) * | 2017-11-16 | 2018-04-27 | 广州探迹科技有限公司 | 一种基于窗口滑动和卷积神经网络的验证码识别方法 |
CN108171229A (zh) * | 2017-12-27 | 2018-06-15 | 广州多益网络股份有限公司 | 一种空心粘连验证码的识别方法及系统 |
Non-Patent Citations (3)
Title |
---|
L. LIZHAO等: ""Design and implementation of verification code identification based on anisotropic heat kernel"", 《SECURITY SCHEMES AND SOLUTIONS》 * |
侯玉锋: ""粘连字符验证码识别的关键技术研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
韩立明等: ""车牌识别中关键技术的研究与实现"", 《计算机工程与设计》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109948621A (zh) * | 2019-03-20 | 2019-06-28 | 南京工业大学 | 一种基于图片验证码的图像处理与字符分割方法 |
CN110414592A (zh) * | 2019-07-24 | 2019-11-05 | 西安工业大学 | 一种基于多任务学习的数字验证码识别方法 |
CN110765442A (zh) * | 2019-09-30 | 2020-02-07 | 奇安信科技集团股份有限公司 | 一种识别验证图片中验证码的方法、装置及电子设备 |
CN111986117A (zh) * | 2020-08-31 | 2020-11-24 | 南京大学 | 一种算术作业批改系统及方法 |
CN112686266A (zh) * | 2021-01-11 | 2021-04-20 | 安徽希施玛数据科技有限公司 | 一种验证码识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109101810B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tang et al. | Research on deep learning techniques in breaking text-based captchas and designing image-based captcha | |
CN109101810A (zh) | 一种基于ocr技术的文字验证码识别方法 | |
Bursztein et al. | Text-based CAPTCHA strengths and weaknesses | |
CN106951832B (zh) | 一种基于手写字符识别的验证方法及装置 | |
Gao et al. | Research on the security of microsoft’s two-layer captcha | |
US10146994B2 (en) | Method and apparatus for generating text line classifier | |
Bursztein et al. | The end is nigh: Generic solving of text-based {CAPTCHAs} | |
Hill et al. | On the (in) effectiveness of mosaicing and blurring as tools for document redaction | |
CN109005145B (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
Baird et al. | Pessimalprint: a reverse turing test | |
Baecher et al. | Breaking reCAPTCHA: a holistic approach via shape recognition | |
US8885931B2 (en) | Mitigating use of machine solvable HIPs | |
Chen et al. | A Survey on Breaking Technique of Text‐Based CAPTCHA | |
Cruz-Perez et al. | Breaking reCAPTCHAs with unpredictable collapse: Heuristic character segmentation and recognition | |
CN110866238B (zh) | 基于对抗样本的验证码图像的生成方法 | |
Gao et al. | Divide and conquer: an efficient attack on Yahoo! CAPTCHA | |
Khan et al. | Cyber security using arabic captcha scheme. | |
Novák et al. | Recognition of damaged letters based on mathematical fuzzy logic analysis | |
Das et al. | Multi‐script versus single‐script scenarios in automatic off‐line signature verification | |
Li et al. | Multilingual text detection with nonlinear neural network | |
Dhanikonda et al. | An efficient deep learning model with interrelated tagging prototype with segmentation for telugu optical character recognition | |
Wang et al. | A self-adaptive algorithm to defeat text-based CAPTCHA | |
Mishra et al. | Oriya Character recognition using neural networks | |
Sakkatos et al. | Analysis of text-based CAPTCHA images using Template Matching Correlation technique | |
Hussain et al. | Recognition of merged characters in text based CAPTCHAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |