CN112686266A - 一种验证码识别方法及装置 - Google Patents
一种验证码识别方法及装置 Download PDFInfo
- Publication number
- CN112686266A CN112686266A CN202110030220.9A CN202110030220A CN112686266A CN 112686266 A CN112686266 A CN 112686266A CN 202110030220 A CN202110030220 A CN 202110030220A CN 112686266 A CN112686266 A CN 112686266A
- Authority
- CN
- China
- Prior art keywords
- character
- picture
- verification code
- detected
- preset
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 153
- 238000000034 method Methods 0.000 title claims abstract description 57
- 239000013598 vector Substances 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims description 60
- 238000001914 filtration Methods 0.000 claims description 27
- 230000007547 defect Effects 0.000 claims description 26
- 230000011218 segmentation Effects 0.000 claims description 22
- 238000012549 training Methods 0.000 claims description 19
- 238000010606 normalization Methods 0.000 claims description 14
- 238000000605 extraction Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000004590 computer program Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000012706 support-vector machine Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 108010074864 Factor XI Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Landscapes
- Image Analysis (AREA)
Abstract
本申请适用于字符识别技术领域,提供了一种验证码识别方法及装置。本申请实施例中获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片;确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,得到各个字符图片的识别结果;对各个字符图片的识别结果进行拼接处理,得到待测验证码图片的识别结果,从而提高了验证码识别的准确性。
Description
技术领域
本申请属于字符识别技术领域,尤其涉及一种验证码识别方法及装置。
背景技术
随着社会的发展,自动化技术的出现给人们的生活和工作带来了很多方便,但是在网络爬虫等自动化项目中,往往其中的自动化程序在进行网络注册或登录时,因需在当前网站输入验证码,而只能终止当前的自动化工作。而且目前由人们肉眼识别的验证码图片中存在很多干扰信息,导致对于验证码图片中的某些字符识别错误,进而致使验证码识别的准确性较低。因此,如何准确识别出验证码信息,以便于网站的自动化注册或登录,成为当下的重中之重。
发明内容
本申请实施例提供了一种验证码识别方法及装置,可以解决验证码识别的准确性较低的问题。
第一方面,本申请实施例提供了一种验证码识别方法,包括:
获取待测验证码图片,根据所述待测验证码图片中的第一连通域对所述待测验证码图片中的各个字符进行分割处理,得到各个字符图片;
确定所述各个字符图片的特征向量,将所述各个字符图片的特征向量输入至少两个预设的字符分类器中,得到所述各个字符图片的识别结果;
对所述各个字符图片的识别结果进行拼接处理,得到所述待测验证码图片的识别结果。
第二方面,本申请实施例提供了一种验证码识别装置,包括:
分割处理模块,用于获取待测验证码图片,根据所述待测验证码图片中的第一连通域对所述待测验证码图片中的各个字符进行分割处理,得到各个字符图片;
输入向量模块,用于确定所述各个字符图片的特征向量,将所述各个字符图片的特征向量输入至少两个预设的字符分类器中,得到所述各个字符图片的识别结果;
拼接处理模块,用于对所述各个字符图片的识别结果进行拼接处理,得到所述待测验证码图片的识别结果。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述任一种验证码识别方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述的计算机程序被处理器执行时实现上述任一种验证码识别方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一种验证码识别方法。
本申请实施例中获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片,以便于将验证码中的各个字符单独进行识别处理,从而提高验证码识别的准确性;确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,以根据上述至少两个字符分类器对字符图片的特征向量多次识别处理,从而更为准确的得到各个字符图片的识别结果,最后对各个字符图片的识别结果进行拼接处理,以得到待测验证码图片的识别结果,从而整体提高了验证码识别的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的验证码识别方法的第一种流程示意图;
图2是本申请实施例提供的验证码识别方法的第二种流程示意图;
图3是本申请实施例提供的超平面示意图;
图4是本申请实施例提供的验证码识别方法的第三种流程示意图;
图5是本申请实施例提供的验证码识别装置的结构示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1所示为本申请实施例中一种验证码识别方法的流程示意图,该方法的执行主体可以是终端设备,如图1所示,上述验证码识别方法可以包括如下步骤:
步骤S101、获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片。
在本实施例中,终端设备通过获取自动化进程中出现的验证码图片,也就是上述待测验证码图片,再根据该待测验证码图片中的连通域,也就是上述第一连通域,将待测验证码图片中的各个字符进行分割处理,以得到当前待测验证码图片中的各个字符所对应的字符图片,便于对所得到的各个字符图片分别进行识别,以提高待测验证码图片的验证码识别的准确性。其中,上述连通域是指图像中具有相同像素值,且由位置相邻的像素点组成的图像区域,本实施例中的第一连通域为彼此连通的黑色像素点组成的区域,也就是待测验证码图片中的前景区域,也就是待测验证码图片中的各个字符所处的区域,相应地,待测验证码图片中的彼此连通的白色像素点组成的区域为待测验证码图片中的背景区域。
具体的,在终端设备通过连通域对待测测验证码图片中的各个字符进行字符切割时,可根据连通域的像素沿各个字符的书写轨迹进行切割,对于不存在字符黏连的验证码,能切割到完整且准确的字符。
在一个实施例中,如图2所示,在步骤S101中,包括:
步骤S201、根据预设的分割阈值对待测验证码图片进行二值化处理。
步骤S202、对二值化处理后的待测验证码图片进行滤除干扰缺陷处理。
在本实施例中,终端设备可根据预先设置的分割阈值对待测验证码图片进行二值化处理,以达到准确区分待测验证码图片中的背景和前景的目的。因待测验证码图片中存在些不稳定的噪声点、干扰线、无效字符等干扰字符识别的缺陷,故在对待测验证码图片进行二值化处理之后,需进行对待测验证码图片的滤除干扰缺陷处理,以达到滤除待测验证码图片中的缺陷,仅保留需识别的字符的目的,从而提高了待测验证码图片中的验证码识别的准确性。
在一个实施例中,步骤S201包括:对待测验证码图片进行灰度化处理;根据预设的算法确定灰度化处理后的待测验证码图片的分割阈值;根据待测验证码图片的分割阈值对待测验证码图片进行二值化处理。
在本实施例中,终端设备需对待测验证码图片进行灰度化处理,以便于更为准确的确定出待测验证码图片的分割阈值,以及后续对待测验证码图片进行相关的图像处理。再根据预设的算法确定出灰度化处理后的待测验证码图片的分割阈值,最后再根据所确定出的分割阈值对待测验证码图片进行二值化处理,以便于更好的将待测验证码图片中的前景区域和背景区域进行区分。
具体的,终端设备可调用python中的图像处理工具包(Python Image Library,PIL)的convert方法对图像进行灰度化处理,并利用最大类间方差法(Maximum interclass variance method,OSTU)算法确定上述待测验证码图片的自适应的全局阈值,也就是上述分割阈值,避免了固定阈值对不同图片的处理误差。再根据所确定的分割阈值对待测验证码图片进行二值化处理,致使该待测验证码图片中仅呈现黑白两种像素,将背景区域的各个像素点设定为白色像素点,将前景区域的各个像素点设定为黑色像素点。其中,上述OSTU算法,又称为大律法,是进行图像二值化处理的一种方法,该方法按照图像的灰度特性,将图像进行区分,在本实施例中,前景和背景之间的类间方差越大,说明构成图像的两部分差别越大,而相应地,背景区域和前景区域的错分概率就会越小。
在一个实施例中,不同类型的验证码图片可根据其类型选择对应的分割阈值确定方法,这里不做限定;在本申请实施例中还可直接根据用户需求预设固定的分割阈值,用于对待测验证码图片进行二值化处理。
在一个实施例中,步骤S202包括:获取预设类型的关键点,确定关键点在预设方向上的连通点的数量;当连通点的数量小于预设的连通点阈值时,对关键点和连通点进行滤除干扰缺陷处理。
在本实施例中,终端设备可通过获取预设类型的关键点,以及通过预设的方法确定所获取的预设类型的关键点在预设方向上的连通点个数,进而判断当前预设类型的关键点及其连通点是否为噪声点。当上述所确定的连通点的数量小于预设的连通点阈值时,认为上述关键点和其连通点为噪声点,将其进行滤除干扰缺陷处理,以便于提高验证码识别的准确性。在本实施例中上述预设类型的关键点为黑色像素的点,而其连通点为与关键点相连的同类型的像素点,故将关键点和连通点进行滤除干扰缺陷处理,也就是将当前呈现黑色的关键点和连通点修改为白色,其中,上述连通点阈值可根据用户需求进行设定,本实施例中设定为3。
具体的,终端设备若通过采用8向联通方法来确定上述预设类型的关键点的连通点个数,则需确定出关键点的上、下、左、右、左上、左下、右上、右下,一共8个位置的同类型的相邻点数,也就是上述连通点的数量。
在一个实施例中,步骤S202包括:获取预设类型的关键点,确定关键点的像素宽度;当像素宽度小于预设的宽度阈值时,对关键点进行滤除干扰缺陷处理。
在本实施例中,因待测验证码图片中可能存在一些干扰线,故终端设备可通过获取预设类型的关键点,以及确定当前所获取的预设类型的关键点的像素,进而判断该关键点的像素宽度是否为干扰缺陷。当上述所确定的关键点的像素宽度小于预设的宽度阈值时,认为上述所获取的关键点为干扰线中的点,将其进行滤除干扰缺陷处理,以便于提高验证码识别的准确性。在本实施例中上述预设类型的关键点为黑色像素的点,故将关键点进行滤除干扰缺陷处理,也就是将当前呈现黑色的关键点修改为白色,其中,上述宽度阈值可根据用户需求进行设定,本实施例中设定为2。
在一个实施例中,步骤S202包括:获取预设类型的关键点,确定存在关键点的第二连通域上的预设类型的关键点数;当关键点数小于预设的关键点阈值时,对第二连通域上的各个预设类型的关键点进行滤除干扰缺陷处理。
在本实施例中,终端设备可通过获取预设类型的关键点,以及确定出存在该预设类型关键点的第二连通域上的各个同类型的关键点数,进而判断当前第二连通域上的各个同类型的关键点所组成的区域是否为无效字符。当上述所确定的关键点数小于预设的关键点阈值时,认为上述第二连通域上的各个同类型的关键点所组成的区域为无效字符,将该连通域上的各个同类型的关键点进行滤除干扰缺陷处理,以便于提高验证码识别的准确性。在本实施例中上述预设类型的关键点为黑色像素的点,而包括该关键点在内的第二连通域上的各个同类型的关键点均为黑色像素的点,故将第二连通域上的各个同类型的关键点进行滤除干扰缺陷处理,也就是将第二连通域上的呈现黑色的各个关键点修改为白色,其中,上述关键点阈值可根据用户需求进行设定,本实施例中设定为15。
步骤S102、确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,得到各个字符图片的识别结果。
在本实施例中,终端设备通过将所确定的分割后的字符图片的特征向量输入至少两个预设的字符分类器中,来提高该字符图片的识别结果的准确性。其中,上述预设的字符分类器可利用支持向量机(Support Vector Machine,SVM)来对数据进行训练来得到,该SVM是是一类按监督学习方式对数据进行二元分类的广义线性分类器,它的基本模型是定义在特征空间上的间隔最大的线性分类器,即在特征空间中找到一个能正确分离两种不同种类样本的超平面,且使正负样本距离此超平面的距离最大。
具体的,上述SVM所找到的超平面,如图3所示,假设给定n个线性可分的训练样本:(x1,y1),(x2,y2),…,(xn,yn),上述xi∈Rd,yi∈{-1,+1},i=1,2,…,n。若xi属于正类,则yi=+1;若xi属于负类,则yi=-1,则存在某个超平面w*x+b=0,而从图中可以看出最优分类超平面所确定的分类间隔为2/||w||。为了使最优分类超平面所确定的分类间隔最大,可建立如下的最优化问题:
s.t.yi(w*xi+b)≥1,i=1,2,…,n
通过上式可将分类问题转化为求解具有约束条件的二次规划问题。其中,上述w∈Rd为分类超平面的法向量;上述b∈R为偏置项;终端设备可根据最终求得的分类超平面的法向量w和偏置项b找到与样本点距离最大的分离超平面,从而可对测试点进行预测。
在一个实施例中,可以利用深度学习技术对字符图片的特征向量进行处理,来得到字符图片的识别结果;还可利用pytesseract包对字符图片进行识别,来得到字符图片的识别结果。
在一个实施例中,步骤S102中的确定各个字符图片的特征向量,包括:对各个字符图片进行归一化处理,将归一化处理后的各个字符图片以预设的算法进行特征提取,得到各个字符图片的特征向量。
在本实施例中,终端设备对分割后的字符图片的大小进行归一化处理,均转换成大小一致的图片。再利用预设的算法对归一化处理后的各个字符图片进行特征提取,从而得到各个字符图片的特征向量。其中,上述归一化处理是通过一系列变换,将待处理的原始图像转换成相应的唯一标准形式,如位置归一化、大小归一化等,故上述归一化处理可根据预设规格进行处理,而上述预设规格可根据用户需求进行设定,本实施例中可将各个字符图片的规格设定为长为10像素,宽为18像素;上述预设的算法可根据用户需求进行设定,本实施例中可采用二维直方图投影法来对各个字符图片进行特征提取,得到各个字符图片的特征向量,上述二维直方图投影法是基于几何分布的特征提取方法之一,利用该方法可获取图片中水平以及垂直方向上各行和各列黑色像素累积分布的结果。
在一个实施例中,在得到字符图片的特征向量后,可将该特征向量保存为与训练数据相同的格式。
在一个实施例中,步骤S102中将各个字符图片的特征向量输入至少两个预设的字符分类器中之前,包括:获取字符图片样本集,将字符图片样本集中不同类别的字符图片样本随机组合进行训练,得到至少两个字符分类器。
在本实施例中,终端设备通过获取包含一定数量的字符图片样本的字符图片样本集,并对字符图片样本集中的各个字符图片样本进行归一化处理,得到大小一致的图片,并同时对各个字符图片进行人工类别标记,例如将不同类别的字符分别放入对应字符名称类别的文件夹内。再利用预设的算法对各个字符图片样本进行特征提取,得到各个字符图片样本的特征向量,进而再将字符图片样本集中不同类别的字符图片样本的特征向量随机组合进行训练,从而得到至少两个字符分类器。
具体的,终端设备可按照SVM模式识别与回归的软件包(A Library for supportvector machines,LIBSVM)所要求的数据格式对该特征向量进行保存。再使用svmutil包中的svm_read_problem读取特征向量,并使用svmtrain对特征向量和对应的类别进行建模,获得SVM模型,一般对于较为简单的验证码图片来说,包含2000张图片左右的字符图片样本集即可使识别正确率达到90%以上。其中,上述LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,并提供了交互检验(Cross Validation)的功能。
示例性的,上述对分割并标记后的字符图片样本集中的各个字符图片样本进行特征提取,而特征提取后的呈现方式如下所示:
Label1:value1,value2,…,valueN;
Label2:value1,value2,…,valueN;
…
LabelJ:value1,value2,…,valueN。
其中,上述Label1至上述LabelJ为类别标记,上述value1至上述valueN为某一类别下的各个字符图片样本的特征向量,按照LIBSVM所要求的数据格式对上述所提取的特征向量进行保存,并保存至相应的文件夹中,以便于模型训练时进行使用。
当提取相应的特征向量输入模型中进行训练时,可从上述所保存的文件夹中提取相应的特征向量进行训练。在训练时,应采用默认的参数值,每种参数的具体取值如下:
对于相关的分类问题,因可能存在少数样本点偏离自己所在的半空间,而导致分离超平面无法确定,故在上述SVM进行训练时,可允许数据点在一定程度上偏离超平面。因此,在进行训练时,可引入了松弛因子ξi,该松弛因子对应于数据点所允许偏移的量。但松弛因子的值并不能任意大,因此进一步加入了惩罚因子C,从而导致上述最优化问题变成了:
s.t.yi(w*xi+b)≥1-ξi
ξi≥0,i=1,2,…,n
其中,上述乘法因子C可取值为1。
对于训练样本中所出现的线性不可分的情况,上述SVM进行训练时,可加入核函数,从而将原始特征映射到高维空间中,致使其线性可分。其中,上述核函数类型可选择径向基核函数(RadialBasisFunction,RBF),该RBF也称为高斯核函数,为空间中任一点u到某一中心v之间欧式距离的单调函数,上述径向基核函数的公式为:
K(u,v)=exp(-r|u-v|^2)
其中,上述r可取值为1/(特征向量的个数)。
在对字符图片样本集进行训练后,将模型文件保存至对应的文件夹中,并输出训练结果信息。其中,上述模型文件中包含各个分析器判决函数中偏置项b的值及各个类别的权系数及相应的支持向量,从而确定各个字符分类器的超平面及支持向量。
在一个实施例中,上述获取字符图片样本集,包括:终端设备通过爬虫技术批量下载各个网站的验证码图片样本作为训练数据集。将上述训练数据集中的各个验证码图片样本进行预处理,该预处理包括对验证码图片样本进行二值化处理和对验证码图片样本进行滤除干扰缺陷处理。再根据连通域分割预处理后的各个验证码图片样本的各个字符,得到各个字符图片样本,该各个字符图片样本组成字符图片样本集。
在一个实施例中,因不同网站下的验证码类型不同而导致对应的处理识别图片的手段不同,故在进行自动化进程时,面对需要输入验证码的网站,致使自动程序无法进行注册或登陆时,通过验证码识别接口的调用,将对应的验证码图片及网站名称进行输入,即可实现对应于当前验证码类型的处理,致使当前验证码图片所对应的证码文本信息的自动返回。
在一个实施例中,如图4所示,步骤S102包括:
步骤S401、将字符图片的特征向量输入至少两个预设的字符分类器中,得到至少两个字符分类器结果。
步骤S402、将至少两个字符分类器结果中同一类别最多的结果作为字符图片的识别结果。
在本实施例中,终端设备可将字符图片的特征向量输入上述至少两个预设的字符分类器中,来得到至少两个字符分类器结果,并根据所得到的至少两个字符分类器结果确定其中同一类别最多的结果作为该字符图片的识别结果。其中,上述字符分类器根据字符图片的特征向量进行类别标识时可直接赋上对应的数值数据,例如,数值0或其它数值型的数据,并将识别结果保存至对应文件夹中。
可以理解的,上述包含多个字符的验证码识别属于多分类问题,终端设备中的LIBSVM采用一对一的方法对训练集中的所有字符种类分别进行两两组合,而形态不一样的大小写字母以及数字总共组成53个字符,若上述53个字符均包含在验证码图片样本中,则可训练出53×(53-1)/2个字符分类器,也就是1378个字符分类器,其中,每一个字符分类器均可针对当前进行检测的字符图片进行处理,从而得到一个字符结果。若当前进行字符识别的字符分类器中并没有当前进行检测的字符的识别方式,则可输出结果无或该字符分类器所对应的两个字符结果中的随机一个,这里不做限定。当对一个未知字符样本进行分类识别时,经过上述所有的分类器进行预测,即可得到1378个结果,最后同一类别最多的结果即为该未知样本的识别结果,该类别就是上述未知样本的类别。
步骤S103、对各个字符图片的识别结果进行拼接处理,得到待测验证码图片的识别结果。
在本实施例中,当得到各个字符图片的识别结果后,对各个字符图片的识别结果进行拼接处理,从而得到当前待测验证码图片的识别结果。从而在面对需要输入验证码的网站,致使自动程序无法进行注册或登陆时,通过验证码识别接口的调用,程序可以自动获取到包含字母数字的验证码信息,从而实现上述网站的自动化注册或登陆。
本申请实施例中获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片,以便于将验证码中的各个字符单独进行识别处理,从而提高验证码识别的准确性;确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,以根据上述至少两个字符分类器对字符图片的特征向量多次识别处理,从而更为准确的得到各个字符图片的识别结果,最后对各个字符图片的识别结果进行拼接处理,以得到待测验证码图片的识别结果,从而整体提高了验证码识别的准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文所述的一种验证码识别方法,图5所示为本申请实施例中一种验证码识别装置的结构示意图,如图5所示,上述验证码识别装置可以包括:
分割处理模块501,用于获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片。
输入向量模块502,用于确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,得到各个字符图片的识别结果。
拼接处理模块503,用于对各个字符图片的识别结果进行拼接处理,得到待测验证码图片的识别结果。
在一个实施例中,上述验证码识别装置还可以包括:
二值化处理模块,用于根据预设的分割阈值对待测验证码图片进行二值化处理。
滤除模块,用于对二值化处理后的待测验证码图片进行滤除干扰缺陷处理。
在一个实施例中,上述二值化处理模块可以包括:
灰度化处理单元,用于对待测验证码图片进行灰度化处理。
确定分割阈值单元,用于根据预设的算法确定灰度化处理后的待测验证码图片的分割阈值。
二值化处理单元,用于根据待测验证码图片的分割阈值对待测验证码图片进行二值化处理。
在一个实施例中,上述滤除模块可以包括:
第一获取单元,用于获取预设类型的关键点,确定关键点在预设方向上的连通点的数量。
第一滤除单元,用于当连通点的数量小于预设的连通点阈值时,对关键点和连通点进行滤除干扰缺陷处理。
在一个实施例中,上述滤除模块可以包括:
第二获取单元,用于获取预设类型的关键点,确定关键点的像素宽度。
第二滤除单元,用于当像素宽度小于预设的宽度阈值时,对关键点进行滤除干扰缺陷处理。
在一个实施例中,上述滤除模块可以包括:
第三获取单元,用于获取预设类型的关键点,确定存在关键点的第二连通域上的预设类型的关键点数。
第三滤除单元,用于当关键点数小于预设的关键点阈值时,对第二连通域上的各个预设类型的关键点进行滤除干扰缺陷处理。
在一个实施例中,上述输入向量模块502可以包括:
归一化处理单元,用于对各个字符图片进行归一化处理,将归一化处理后的各个字符图片以预设的算法进行特征提取,得到各个字符图片的特征向量。
在一个实施例中,上述验证码识别装置还可以包括:
训练模块,用于获取字符图片样本集,将字符图片样本集中不同类别的字符图片样本随机组合进行训练,得到至少两个字符分类器。
在一个实施例中,上述输入向量模块502可以包括:
输入向量单元,用于将字符图片的特征向量输入至少两个预设的字符分类器中,得到至少两个字符分类器结果。
作为结果单元,用于将至少两个字符分类器结果中同一类别最多的结果作为字符图片的识别结果。
本申请实施例中获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片,以便于将验证码中的各个字符单独进行识别处理,从而提高验证码识别的准确性;确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,以根据上述至少两个字符分类器对字符图片的特征向量多次识别处理,从而更为准确的得到各个字符图片的识别结果,最后对各个字符图片的识别结果进行拼接处理,以得到待测验证码图片的识别结果,从而整体提高了验证码识别的准确性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述系统实施例以及方法实施例中的对应过程,在此不再赘述。
图6为本申请实施例提供的终端设备的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分。
如图6所示,该实施例的终端设备6包括:至少一个处理器600(图6中仅示出一个),与上述处理器600连接的存储器601,以及存储在上述存储器601中并可在上述至少一个处理器600上运行的计算机程序602,例如验证码识别程序。上述处理器600执行上述计算机程序602时实现上述各个验证码识别方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,上述处理器600执行上述计算机程序602时实现上述各装置实施例中各模块的功能,例如图5所示模块501至503的功能。
示例性的,上述计算机程序602可以被分割成一个或多个模块,上述一个或者多个模块被存储在上述存储器601中,并由上述处理器600执行,以完成本申请。上述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序602在上述终端设备6中的执行过程。例如,上述计算机程序602可以被分割成分割处理模块501、输入向量模块502、拼接处理模块503,各模块具体功能如下:
分割处理模块501,用于获取待测验证码图片,根据待测验证码图片中的第一连通域对待测验证码图片中的各个字符进行分割处理,得到各个字符图片;
输入向量模块502,用于确定各个字符图片的特征向量,将各个字符图片的特征向量输入至少两个预设的字符分类器中,得到各个字符图片的识别结果;
拼接处理模块503,用于对各个字符图片的识别结果进行拼接处理,得到待测验证码图片的识别结果。
上述终端设备6可包括,但不仅限于,处理器600、存储器601。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。
所称处理器600可以是中央处理单元(Central Processing Unit,CPU),该处理器600还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器601在一些实施例中可以是上述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。上述存储器601在另一些实施例中也可以是上述终端设备6的外部存储设备,例如上述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器601还可以既包括上述终端设备6的内部存储单元也包括外部存储设备。上述存储器601用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器601还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种验证码识别方法,其特征在于,包括:
获取待测验证码图片,根据所述待测验证码图片中的第一连通域对所述待测验证码图片中的各个字符进行分割处理,得到各个字符图片;
确定所述各个字符图片的特征向量,将所述各个字符图片的特征向量输入至少两个预设的字符分类器中,得到所述各个字符图片的识别结果;
对所述各个字符图片的识别结果进行拼接处理,得到所述待测验证码图片的识别结果。
2.如权利要求1所述的验证码识别方法,其特征在于,在根据所述待测验证码图片中的第一连通域对所述待测验证码图片中的各个字符进行分割处理之前,包括:
根据预设的分割阈值对所述待测验证码图片进行二值化处理;
对所述二值化处理后的待测验证码图片进行滤除干扰缺陷处理。
3.如权利要求2所述的验证码识别方法,其特征在于,所述根据预设的分割阈值对所述待测验证码图片进行二值化处理,包括:
对所述待测验证码图片进行灰度化处理;
根据预设的算法确定所述灰度化处理后的待测验证码图片的分割阈值;
根据所述待测验证码图片的分割阈值对所述待测验证码图片进行二值化处理。
4.如权利要求2所述的验证码识别方法,其特征在于,所述对所述二值化处理后的待测验证码图片进行滤除干扰缺陷处理,包括:
获取预设类型的关键点,确定所述关键点在预设方向上的连通点的数量;
当所述连通点的数量小于预设的连通点阈值时,对所述关键点和所述连通点进行滤除干扰缺陷处理。
5.如权利要求2所述的验证码识别方法,其特征在于,所述对所述二值化处理后的待测验证码图片进行滤除干扰缺陷处理,包括:
获取预设类型的关键点,确定所述关键点的像素宽度;
当所述像素宽度小于预设的宽度阈值时,对所述关键点进行滤除干扰缺陷处理。
6.如权利要求2所述的验证码识别方法,其特征在于,所述对所述二值化处理后的待测验证码图片进行滤除干扰缺陷处理,包括:
获取预设类型的关键点,确定存在所述关键点的第二连通域上的预设类型的关键点数;
当所述关键点数小于预设的关键点阈值时,对所述第二连通域上的各个预设类型的关键点进行滤除干扰缺陷处理。
7.如权利要求1所述的验证码识别方法,其特征在于,所述确定所述各个字符图片的特征向量,包括:
对所述各个字符图片进行归一化处理,将所述归一化处理后的各个字符图片以预设的算法进行特征提取,得到所述各个字符图片的特征向量。
8.如权利要求1所述的验证码识别方法,其特征在于,在将所述各个字符图片的特征向量输入至少两个预设的字符分类器中之前,包括:
获取字符图片样本集,将所述字符图片样本集中不同类别的字符图片样本随机组合进行训练,得到至少两个字符分类器。
9.如权利要求1至8任一项所述的验证码识别方法,其特征在于,所述将所述各个字符图片的特征向量输入至少两个预设的字符分类器中,得到所述各个字符图片的识别结果,包括:
将所述字符图片的特征向量输入所述至少两个预设的字符分类器中,得到至少两个字符分类器结果;
将所述至少两个字符分类器结果中同一类别最多的结果作为所述字符图片的识别结果。
10.一种验证码识别装置,其特征在于,包括:
分割处理模块,用于获取待测验证码图片,根据所述待测验证码图片中的第一连通域对所述待测验证码图片中的各个字符进行分割处理,得到各个字符图片;
输入向量模块,用于确定所述各个字符图片的特征向量,将所述各个字符图片的特征向量输入至少两个预设的字符分类器中,得到所述各个字符图片的识别结果;
拼接处理模块,用于对所述各个字符图片的识别结果进行拼接处理,得到所述待测验证码图片的识别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110030220.9A CN112686266A (zh) | 2021-01-11 | 2021-01-11 | 一种验证码识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110030220.9A CN112686266A (zh) | 2021-01-11 | 2021-01-11 | 一种验证码识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112686266A true CN112686266A (zh) | 2021-04-20 |
Family
ID=75457233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110030220.9A Pending CN112686266A (zh) | 2021-01-11 | 2021-01-11 | 一种验证码识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112686266A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163287A (zh) * | 2011-03-28 | 2011-08-24 | 北京邮电大学 | 一种基于类Haar特征和支持向量机的车牌字符识别方法 |
CN103390156A (zh) * | 2012-11-05 | 2013-11-13 | 深圳市捷顺科技实业股份有限公司 | 一种车牌识别方法及装置 |
CN107967475A (zh) * | 2017-11-16 | 2018-04-27 | 广州探迹科技有限公司 | 一种基于窗口滑动和卷积神经网络的验证码识别方法 |
CN109101810A (zh) * | 2018-08-14 | 2018-12-28 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN109933975A (zh) * | 2019-03-20 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的验证码识别方法及系统 |
CN110276357A (zh) * | 2019-07-01 | 2019-09-24 | 浪潮卓数大数据产业发展有限公司 | 一种基于卷积神经网络的验证码识别方法 |
WO2019237549A1 (zh) * | 2018-06-11 | 2019-12-19 | 平安科技(深圳)有限公司 | 验证码识别方法、装置、计算机设备及存储介质 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
-
2021
- 2021-01-11 CN CN202110030220.9A patent/CN112686266A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163287A (zh) * | 2011-03-28 | 2011-08-24 | 北京邮电大学 | 一种基于类Haar特征和支持向量机的车牌字符识别方法 |
CN103390156A (zh) * | 2012-11-05 | 2013-11-13 | 深圳市捷顺科技实业股份有限公司 | 一种车牌识别方法及装置 |
CN107967475A (zh) * | 2017-11-16 | 2018-04-27 | 广州探迹科技有限公司 | 一种基于窗口滑动和卷积神经网络的验证码识别方法 |
WO2019237549A1 (zh) * | 2018-06-11 | 2019-12-19 | 平安科技(深圳)有限公司 | 验证码识别方法、装置、计算机设备及存储介质 |
CN109101810A (zh) * | 2018-08-14 | 2018-12-28 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN109933975A (zh) * | 2019-03-20 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的验证码识别方法及系统 |
CN110276357A (zh) * | 2019-07-01 | 2019-09-24 | 浪潮卓数大数据产业发展有限公司 | 一种基于卷积神经网络的验证码识别方法 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
Non-Patent Citations (6)
Title |
---|
刘树春 等, 北京:机械工业出版社 * |
刘树春 等: "二维直方图投影法", 《深度实践OCR 基于深度学习的文字识别》 * |
张乐乐: "基于深度学习的图片验证码识别算法研究", 《中国优秀硕士论文全文数据库 信息科技辑》 * |
柳红刚: "字符扭曲粘连验证码识别技术研究", 《中国优秀硕士论文全文数据库 信息科技辑》 * |
殷光: "基于SVM的验证码识别算法研究", 《中国优秀硕士论文全文数据库 信息科技辑》 * |
郭卡 等: "《Python数据爬取技术与实战手册》", 31 August 2018, 北京:中国铁道出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135411B (zh) | 名片识别方法和装置 | |
Lelore et al. | FAIR: a fast algorithm for document image restoration | |
CN106503703B (zh) | 使用终端设备来识别信用卡号码和到期日期的系统和方法 | |
US20170287252A1 (en) | Counterfeit Document Detection System and Method | |
CN112561080B (zh) | 样本筛选方法、样本筛选装置及终端设备 | |
US10318803B1 (en) | Text line segmentation method | |
JP2012500428A (ja) | 印刷媒体ページの記事へのセグメント化 | |
CN112597940B (zh) | 证件图像识别方法、装置及存储介质 | |
CN114387591A (zh) | 车牌识别方法、系统、设备及存储介质 | |
CN110796210A (zh) | 一种标签信息的识别方法及装置 | |
CN108520263B (zh) | 一种全景图像的识别方法、系统及计算机存储介质 | |
CN117612179A (zh) | 图像中字符识别方法、装置、电子设备及存储介质 | |
CN115984859A (zh) | 一种图像文字识别的方法、装置及存储介质 | |
CN112508000B (zh) | 一种用于ocr图像识别模型训练数据生成的方法及设备 | |
CN112686266A (zh) | 一种验证码识别方法及装置 | |
US12118808B2 (en) | Image generation method, computing device, and storage medium | |
Chen et al. | An intelligent character recognition method to filter spam images on cloud | |
CN112686129B (zh) | 一种人脸识别系统及方法 | |
CN115359302A (zh) | 硬币识别方法、系统及存储介质 | |
Kumar et al. | Line based robust script identification for indianlanguages | |
CN115512181A (zh) | 一种区域生成网络训练方法、装置及可读存储介质 | |
CN112508062B (zh) | 一种开集数据的分类方法、装置、设备及存储介质 | |
CN114365202B (zh) | 经由上下文无关的递归文档分解来学习的可扩展结构 | |
KR20140112869A (ko) | 문자 인식 장치 및 방법 | |
CN115546811A (zh) | 一种识别印章的方法、装置、设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210420 |