CN112214750B - 字符验证码的识别方法、系统、电子设备和存储介质 - Google Patents
字符验证码的识别方法、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112214750B CN112214750B CN202011112355.1A CN202011112355A CN112214750B CN 112214750 B CN112214750 B CN 112214750B CN 202011112355 A CN202011112355 A CN 202011112355A CN 112214750 B CN112214750 B CN 112214750B
- Authority
- CN
- China
- Prior art keywords
- image
- identified
- verification code
- character
- character verification
- 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
Images
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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
- G06V10/235—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种字符验证码的识别方法、系统、电子设备和存储介质,包括对包括待识别的字符验证码的图像进行预处理得到预处理图像;将预处理图像输入到训练中使用CTC损失函数的网络模型以识别出预处理图像中的识别字符;判断识别字符中字符的数量与待识别的字符验证码中字符的数量是否一致;若否,复制识别字符中最后一个字符并增加在最后一个字符后以形成验证码字符。本发明通过判断识别字符中字符的数量与待识别的字符验证码中字符的数量是否一致,并在不一致时复制识别字符中最后一个字符并增加在最后一个字符后以形成验证码字符,克服了使用CTC损失函数的网络模型缺陷,提升了模型识别和字符验证码识别的准确率。
Description
技术领域
本发明涉及人工智能与机器学习领域,尤其涉及一种字符验证码的识别方法、系统、电子设备和存储介质。
背景技术
验证码被广泛应用于网站登录、注册、查询等环节,用来增强身份验证的难度和防止来自计算机程序的自动攻击。验证码作为区分计算机和人类的工具,可以限制网络垃圾信息的滋生,提高网络攻击的防御力,提高网络信息得安全性。同时,验证码的存在也增加了用户访问的复杂性。由于用户的偏好、忍耐度以及身体状况的因素,加之部分验证码识别难度较高,造成了用户的较差的操作体验。
当前验证码种类繁多,最常用的是字符验证码。字符验证码的字体样式、字符颜色、字符分布、字符方向、背景复杂度、噪声类型和噪声强度等方面存在各种变换形式,在进行不同形式的字符验证码识别时需要使用不同的识别模型,造成开发周期长、验证码识别难度大,同时由于训练过程中使用CTC(Connectionist Temporal Classification)损失函数,在进行验证码识别时如果最后生成的一个字符和倒数第二个字符一致,可能会被去除,降低了模型的准确率,进而降低了字符验证码识别的准确率,降低了用户体验。
发明内容
本发明要解决的技术问题是为了克服现有技术中由于使用CTC损失函数训练的模型导致字符验证码识别的准确率低和用户体验差的缺陷,提供一种字符验证码的识别方法、系统、电子设备和存储介质。
本发明是通过下述技术方案来解决上述技术问题:
一种字符验证码的识别方法,包括
对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像;
将所述预处理图像输入到训练中使用CTC损失函数的网络模型以识别出所述预处理图像中的字符作为识别结果;
判断所述识别结果中字符验证码的字符的数量与所述待识别的字符验证码中字符的数量是否一致;
若否,复制所述识别结果中最后一个字符并增加在所述最后一个字符后以更新所述识别结果。
较佳地,所述对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像的步骤具体包括:
获取包括待识别的字符验证码的待识别图像;
滤除所述待识别图像的背景颜色以得到所述预处理图像;
和/或,
获取所述待识别图像中的连通域并剔除长宽比大于预设值的连通域以得到所述预处理图像;
和/或,
滤除所述待识别图像中的椒盐噪声以得到所述预处理图像。
较佳地,所述网络模型包括依次连接的卷积层、批归一化层、激活层、最大池化层、BiLSTM(bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成)层和全连接层;
所述卷积层作为所述网络模型的输入,所述全连接层作为所述网络模型的输出。
较佳地,所述待识别图像包括至少两行待识别的字符验证码;
所述对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像的步骤具体包括
对所述待识别图像进行切割以形成若干子待识别图像,每个所述子待识别图像包含一行待识别的字符验证码;
对所述子待识别图像进行预处理得到所述预处理图像。
一种字符验证码的识别系统,包括预处理模块、识别模块、判断模块和后处理模块;
所述预处理模块,用于对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像;
所述识别模块,用于将所述预处理图像输入到训练中使用CTC损失函数的网络模型以识别出所述预处理图像中的字符作为识别结果;
所述判断模块,用于判断所述识别结果中字符验证码的字符的数量与所述待识别的字符验证码中字符的数量是否一致,并在否的情况下调用所述后处理模块;
所述后处理模块用于复制所述识别结果中最后一个字符并增加在所述最后一个字符后以更新所述识别结果。
较佳地,所述预处理模块具体包括:
图像获取单元,用于获取包括待识别的字符验证码的待识别图像;
颜色滤除单元,用于滤除所述待识别图像的背景颜色以得到所述预处理图像;
和/或,
连通域剔除单元,用于获取所述待识别图像中的连通域并剔除长宽比大于预设值的连通域以得到所述预处理图像;
和/或,
噪声滤除单元,用于滤除所述待识别图像中的椒盐噪声以得到所述预处理图像。
较佳地,所述网络模型包括依次连接的卷积层、批归一化层、激活层、最大池化层、BiLSTM层和全连接层;
所述卷积层作为所述网络模型的输入,所述全连接层作为所述网络模型的输出。
较佳地,所述待识别图像包括至少两行待识别的字符验证码;
所述预处理模块具体包括:
切割单元,用于对所述待识别图像进行切割以形成若干子待识别图像,每个所述子待识别图像包含一行待识别的字符验证码;
预处理单元,用于对所述子待识别图像进行预处理得到所述预处理图像。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述一种字符验证码的识别方法。
一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述一种字符验证码的识别方法的步骤。
本发明的积极进步效果在于:本发明使用CTC损失函数的网络模型识别字符验证码时通过判断识别字符中字符的数量与待识别的字符验证码中字符的数量是否一致,并在不一致时复制识别字符中最后一个字符并增加在最后一个字符后以形成验证码字符,克服了使用CTC损失函数的网络模型缺陷,提升了模型识别和字符验证码识别的准确率,提升了用户体验;进一步,通过颜色过滤、剔除不满足条件的连通域和滤除椒盐噪声来去除待识别的字符验证码图像的背景噪声,进一步提升了字符验证码识别的准确率;进一步通过使用包含多层卷积层、批归一化和激活层、最大池化层、BiLSTM层和全连接层的网络模型,进一步提升了模型的识别准确率,并降低了标注成本。
附图说明
图1为本发明实施例1的字符验证码的识别方法的流程图。
图2为本发明实施例1的待识别图像。
图3为与图2的待识别图像相对应的识别结果示意图。
图4为本发明实施例1的网络模型的结构示意图。
图5为本发明实施例1的字符验证码的识别方法的应用图。
图6为根据图5的应用图进行字符验证码的识别过程图。
图7为本发明实施例2的字符验证码的识别系统的结构示意图。
图8为本发明实施例2的字符验证码的识别系统的应用图。
图9为本发明实施例3的字符验证码的识别方法的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本发明提供一种字符验证码的识别方法,如图1所示,包括以下步骤:
步骤S101、对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像。
在可选的一种实施方式中,步骤S101具体包括:
获取包括待识别的字符验证码的待识别图像;
滤除待识别图像的背景颜色以得到预处理图像;
在本实施方式中,通过HSV((Hue,Saturation,Value),六角锥体模型)阈值滤波以滤除待识别图像的背景颜色以得到预处理图像。
本实施例中也可通过其他颜色过滤方法滤除待识别图像的背景颜色以得到预处理图像。通过滤除待识别图像的背景颜色,提高了字符验证码识别结果的准确性。
在可选的另一实施方式中,步骤S101具体还包括:
获取待识别图像中的连通域并剔除长宽比大于预设值的连通域以得到预处理图像;
在本实施例中,使用SWT(Stroke Width Transform,笔画宽度变换)算法,获取SWT连通域,并剔除长宽比大于10的连通域以得到预处理图像。通过SWT算法去除待识别图像背景中的不同粗细的长线条,提高了字符验证码识别结果的准确性。
在可选的另一实施方式中,步骤S101具体还包括:
滤除待识别图像中的椒盐噪声以得到预处理图像。
在本实施例中,使用中值滤波来去除待识别图像中的椒盐噪声以得到预处理图像。通过滤除识别图像中的椒盐噪声提高了字符验证码识别结果的准确性。
在可选的另一实施方式中,如图2所示,待识别图像包括不同粗细和颜色的长线条和分布于全图的椒盐噪声,为了尽可能地降低背景噪声对前景字符的影响,首先可以通过颜色过滤来去除背景的颜色;再使用SWT算法获取SWT连通域,并剔除长宽比大于10的连通域;最后,通过中值滤波来去除分布于全图的椒盐噪声,提升了字符验证码识别结果的准确率。
在可选的另一实施方式中,待识别图像包括至少两行待识别的字符验证码;
步骤S101具体包括:
对待识别图像进行切割以形成若干子待识别图像,每个子待识别图像包含一行待识别的字符验证码;
对子待识别图像进行预处理得到预处理图像。
在本实施例中,通过切割操作可适用于包含多行字符验证码的情景,提高了字符验证码的应用范围。
步骤S102、将预处理图像输入到训练中使用CTC损失函数的网络模型以识别出预处理图像中的字符作为识别结果。
在本实施例中,图2中的待识别图像为包含噪声的ADDL、UJHV、LGWS、8RJG图像,经过识别后得到图3中的识别结果,该识别结果包括与待识别图像相对应的识别字符ADDL、UJHV、LGWS、8RJG。
在本实施例中,如图4所示,网络模型包括依次连接的卷积层、批归一化层、激活层、最大池化层、BiLSTM层和全连接层;卷积层作为网络模型的输入,全连接层作为网络模型的输出,所示网络模型训练时使用CTC损失函数。将去除了背景噪声的预处理图像,通过10次堆叠的卷积层、批归一化层、激活层、最大池化层、BiLSTM层和全连接层的网络模型之后获得输出,再根据输出位置对应的字符获得识别结果。
步骤S103、判断识别结果中字符验证码的字符的数量与待识别的字符验证码中字符的数量是否一致;
若是,执行步骤S104,若否,执行步骤S105;
步骤S104、直接输出识别结果。
步骤S105、复制识别结果中最后一个字符并增加在最后一个字符后以更新识别结果。
需要说明的是,由于网络模型训练过程中使用了CTC损失函数,CTC编码时两个相同字符之间必须要插入空白字符,如果池化多了,输入CTC的timestep(步长)的长度太短,可能没有足够timestep来插入空白字符,两个相同的末尾字符就会合并,导致在最后生成的一个字符如果和倒数第二个字符一致时,可能会被去除,所以,需要判断识别结果中字符验证码的字符的数量与待识别的字符验证码中字符的数量是否一致,一致时可直接输出识别结果,不一致时,则需要复制识别结果中最后一个字符并增加在最后一个字符后以更新识别结果。比如,要识别的字符验证为固定的四个字符,由于最后两个字符是重复的,最后识别的结果是三个字符,因此,需要复制识别结果中的第三个字符为作为第四个字符以形成新的识别结果。
本实施例的网络模型在训练时需要分析待识别的验证码字符的字体,并根据该字体生成验证集以形成训练样本,并在训练样本中加上背景噪声。并使用尽量多的训练样本来训练网络模型,以提高网络模型的使用范围。同时训练期间会按计划地降低学习率。
本实施例的字符验证码的识别方法的具体应用,如图5所示,待识别图像中包括待识别字符验证码ALDD和不同粗细和颜色的长线条以及分布于全图的椒盐噪声。待识别图像经HSV阈值滤波、SWT过滤和中值滤波后输出预处理图像作为预处理结果,预处理图像为滤除待识别图像中不同粗细和颜色的长线条以及分布于全图的椒盐噪声后仅包括待识别字符验证码ALD的图像。预处理图像输入到训练中使用CTC损失函数的网路模型进行识别,得到预处理图像中的字符ALD作为识别结果,判断出识别结果中字符验证码ALD的字符的数量与待识别的字符验证码ALDD中字符的数量不一致,复制识别结果ALD中最后一个字符D并增加在最后一个字符D后以更新识别结果,输出识别结果:ALDD。
如果待识别的图中包含的待识别字符验证码是ADDL,则网络模型输出的识别结果是ADDL,由于判断出识别结果中字符验证码ADDL的字符的数量与待识别的字符验证码ADDL中字符的数量一致,则直接输出识别结果ADDL。
图5中的字符验证码的识别流程图如图6所示,包括以下步骤:
步骤S100、获取待识别图像;
待识别图像依次经过以下步骤:
步骤S110、HSV阈值滤波;
步骤S120、SWT过滤;
步骤S130、中值滤波;
步骤S140、网络模型识别得到识别结果;
步骤S150、判断识别结果中字符长度是否为4;
若是,执行步骤S160,若否,执行步骤S170;
步骤S160、输出识别结果;
步骤S170、复制识别结果中最后一个字符并增加在识别结果后直到字符长度为4。
本发明通过使用HSV阈值滤波、颜色过滤和中值滤波来去除背景噪声,提升了准确率上限。使用多层卷积和批归一化、BiLSTM和CTC损失函数等策略,提升了模型的准确率,并降低标注成本。判断识别结果中字符验证码的字符的数量与待识别的字符验证码中字符的数量是否一致,并在不一致时,复制识别结果中最后一个字符并增加在最后一个字符后以更新识别结果,弥补了CTC的缺陷小幅提升准确率。最终在网站上5000张验证码的识别准确率为96.89%。
本发明使用人工智能的方法解决字符验证码识别问题,解决用户登录网站、使用网站中需要用户自填写字符验证码的问题,用于代替用户、自动填写验证码,提高用户体验,节约成本。
本实施例的字符验证码的识别方法使用CTC损失函数的网络模型识别字符验证码时通过判断识别字符中字符的数量与待识别的字符验证码中字符的数量是否一致,并在不一致时复制识别字符中最后一个字符并增加在最后一个字符后以形成验证码字符,克服了使用CTC损失函数的网络模型缺陷,提升了模型识别和字符验证码识别的准确率,提升了用户体验。
实施例2
本发明提供一种字符验证码的识别系统,如图7所示,包括以下模块:预处理模块4、识别模块5、判断模块6、输出模块7和后处理模块8;
预处理模块4,用于对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像。
在可选的一种实施方式中,预处理模块4具体包括:
图像获取单元41,用于获取包括待识别的字符验证码的待识别图像;
颜色滤除单元42,用于滤除待识别图像的背景颜色以得到预处理图像;
在本实施方式中,通过HSV((Hue,Saturation,Value),六角锥体模型)阈值滤波以滤除待识别图像的背景颜色以得到预处理图像。
本实施例中也可通过其他颜色过滤方法滤除待识别图像的背景颜色以得到预处理图像。通过滤除待识别图像的背景颜色,提高了字符验证码识别结果的准确性。
在可选的另一实施方式中,预处理模块4还包括:
连通域剔除单元43,用于获取待识别图像中的连通域并剔除长宽比大于预设值的连通域以得到预处理图像;
在本实施例中,使用SWT(Stroke Width Transform,笔画宽度变换)算法,获取SWT连通域,并剔除长宽比大于10的连通域以得到预处理图像。通过SWT算法去除待识别图像背景中的不同粗细的长线条,提高了字符验证码识别结果的准确性。
在可选的另一实施方式中,预处理模块4具体还包括:
噪声滤除单元44,用于滤除待识别图像中的椒盐噪声以得到预处理图像。
在本实施例中,使用中值滤波来去除待识别图像中的椒盐噪声以得到预处理图像。通过滤除识别图像中的椒盐噪声提高了字符验证码识别结果的准确性。
在可选的另一实施方式中,预处理模块4用于包括:上述三种方式中的任意两种。
在可选的另一实施方式中,如图2所示,待识别图像包括不同粗细和颜色的长线条和分布于全图的椒盐噪声,为了尽可能地降低背景噪声对前景字符的影响,首先可以通过颜色过滤来去除背景的颜色;再使用SWT算法获取SWT连通域,并剔除长宽比大于10的连通域;最后,通过中值滤波来去除分布于全图的椒盐噪声,提升了字符验证码识别结果的准确率。
在可选的另一实施方式中,待识别图像包括至少两行待识别的字符验证码;
预处理模块4具体包括:
切割单元,用于对待识别图像进行切割以形成若干子待识别图像,每个子待识别图像包含一行待识别的字符验证码;
预处理单元,用于对子待识别图像进行预处理得到预处理图像。
在本实施例中,通过切割操作可适用于包含多行字符验证码的情景,提高了字符验证码的应用范围。
识别模块5,用于将预处理图像输入到训练中使用CTC损失函数的网络模型以识别出预处理图像中的字符作为识别结果。
在本实施例中,图2中的待识别图像包括包含噪声的ADDL、UJHV、LGWS、8RJG图像,经过识别后得到图3中的识别结果,该识别结果包括与待识别图像相对应的识别字符ADDL、UJHV、LGWS、8RJG。
在本实施例中,如图4所示,网络模型包括依次连接的卷积层、批归一化层、激活层、最大池化层、BiLSTM(bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成)层和全连接层;卷积层作为网络模型的输入,全连接层作为网络模型的输出,所示网络模型训练时使用CTC损失函数。将去除了背景噪声的预处理图像,通过10次堆叠的卷积层、批归一化层、激活层、最大池化层、BiLSTM层和全连接层的网络模型之后获得输出,再根据输出位置对应的字符获得识别结果。
判断模块6,用于判断识别结果中字符验证码的字符的数量与待识别的字符验证码中字符的数量是否一致,并在是的情况下调用输出模块7,在否的情况下调用后处理模块8;
输出模块7,用于直接输出识别结果。
后处理模块8,用于复制识别结果中最后一个字符并增加在最后一个字符后以更新识别结果。
需要说明的是,由于网络模型训练过程中使用了CTC损失函数,在最后生成的一个字符如果和倒数第二个字符一致时,可能会被去除,所以,需要判断识别结果中字符验证码的字符的数量与待识别的字符验证码中字符的数量是否一致,一致时可直接输出识别结果,不一致时,则需要复制识别结果中最后一个字符并增加在最后一个字符后以更新识别结果。比如,要识别的字符验证为固定的四个字符,由于最后两个字符是重复的,最后识别的结果是三个字符,因此,需要复制识别结果中的第三个字符为作为第四个字符以形成新的识别结果。
本实施例的网络模块在训练时需要分析待识别的验证码字符的字体,并根据该字体生成验证集以形成训练样本,在训练样本中加上背景噪声。并使用尽量多的训练样本来训练网络模型,以提高网络模型的使用范围。训练期间按计划地降低学习率。
本实施例的字符验证码的识别方法的具体应用,如图8所示,待识别图像中包括待识别字符验证码ALDD和不同粗细和颜色的长线条以及分布于全图的椒盐噪声。待识别图像输入到预处理模块,经HSV阈值过滤、SWT过滤和中值滤波后输出预处理图像作为预处理结果,预处理图像为滤除待识别图像中不同粗细和颜色的长线条以及分布于全图的椒盐噪声后仅包括待识别字符验证码ALDD的图像。预处理图像输入到网路模型进行识别,得到预处理图像中的字符作为识别结果,并将识别结果输入到后处理模块,判断出识别结果中字符验证码ALD的字符的数量与待识别的字符验证码ALDD中字符的数量不一致,复制识别结果ALD中最后一个字符D并增加在最后一个字符D后以更新识别结果,输出识别结果:ALDD。
如果待识别的图像中包含的待识别字符验证码是ADDL,则网络模型输出的识别结果是ADDL,将ADDL输入到后处理模块后,由于判断识别结果中字符验证码的字符的数量与待识别的字符验证码中字符的数量一致,直接输出识别结果ADDL。
本发明通过使用HSV阈值滤波、颜色过滤和中值滤波来去除背景噪声,提升了准确率上限。使用多层卷积和批归一化、BiLSTM和CTC损失函数等策略,提升了模型的准确率,并降低标注成本。使用后处理模块,弥补了CTC的缺陷小幅提升准确率。最终在网站上5000张验证码的识别准确率为96.89%。
本发明使用人工智能的方法解决字符验证码识别问题,解决用户登录网站、使用网站中需要用户自填写字符验证码的问题,用于代替用户、自动填写验证码,提高用户体验,节约成本。
本实施例的字符验证码的识别系统使用CTC损失函数的网络模型识别字符验证码时通过判断识别字符中字符的数量与待识别的字符验证码中字符的数量是否一致,并在不一致时复制识别字符中最后一个字符并增加在最后一个字符后以形成验证码字符,克服了使用CTC损失函数的网络模型缺陷,提升了模型识别和字符验证码识别的准确率,提升了用户体验。
实施例3
图9为本发明实施例3提供的一种实现字符验证码的识别方法的电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1的字符验证码的识别方法。图9显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的字符验证码的识别方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图9所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1所提供的字符验证码的识别方法步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1的字符验证码的识别方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种字符验证码的识别方法,其特征在于,包括
对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像;
将所述预处理图像输入到训练中使用CTC损失函数的网络模型以识别出所述预处理图像中的字符作为识别结果;
判断所述识别结果中字符验证码的字符的数量是否比所述待识别的字符验证码中字符的数量少一个;
若是,复制所述识别结果中最后一个字符并增加在所述最后一个字符后以更新所述识别结果。
2.如权利要求1所述的字符验证码的识别方法,其特征在于,所述对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像的步骤具体包括:
获取包括待识别的字符验证码的待识别图像;
滤除所述待识别图像的背景颜色以得到所述预处理图像;
和/或,
获取所述待识别图像中的连通域并剔除长宽比大于预设值的连通域以得到所述预处理图像;
和/或,
滤除所述待识别图像中的椒盐噪声以得到所述预处理图像。
3.如权利要求1所述的字符验证码的识别方法,其特征在于,所述网络模型包括依次连接的卷积层、批归一化层、激活层、最大池化层、BiLSTM层和全连接层;
所述卷积层作为所述网络模型的输入,所述全连接层作为所述网络模型的输出。
4.如权利要求1所述的字符验证码的识别方法,其特征在于,
所述待识别图像包括至少两行待识别的字符验证码;
所述对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像的步骤具体包括
对所述待识别图像进行切割以形成若干子待识别图像,每个所述子待识别图像包含一行待识别的字符验证码;
对所述子待识别图像进行预处理得到所述预处理图像。
5.一种字符验证码的识别系统,其特征在于,包括预处理模块、识别模块、判断模块和后处理模块;
所述预处理模块,用于对包括待识别的字符验证码的待识别图像进行预处理得到预处理图像;
所述识别模块,用于将所述预处理图像输入到训练中使用CTC损失函数的网络模型以识别出所述预处理图像中的字符作为识别结果;
所述判断模块,用于判断所述识别结果中字符验证码的字符的数量是否比所述待识别的字符验证码中字符的数量少一个,并在是的情况下调用所述后处理模块;
所述后处理模块用于复制所述识别结果中最后一个字符并增加在所述最后一个字符后以更新所述识别结果。
6.如权利要求5所述的字符验证码的识别系统,其特征在于,所述预处理模块具体包括:
图像获取单元,用于获取包括待识别的字符验证码的待识别图像;
颜色滤除单元,用于滤除所述待识别图像的背景颜色以得到所述预处理图像;
和/或,
连通域剔除单元,用于获取所述待识别图像中的连通域并剔除长宽比大于预设值的连通域以得到所述预处理图像;
和/或,
噪声滤除单元,用于滤除所述待识别图像中的椒盐噪声以得到所述预处理图像。
7.如权利要求5所述的字符验证码的识别系统,其特征在于,所述网络模型包括依次连接的卷积层、批归一化层、激活层、最大池化层、BiLSTM层和全连接层;
所述卷积层作为所述网络模型的输入,所述全连接层作为所述网络模型的输出。
8.如权利要求5所述的字符验证码的识别系统,其特征在于,
所述待识别图像包括至少两行待识别的字符验证码;
所述预处理模块具体包括:
切割单元,用于对所述待识别图像进行切割以形成若干子待识别图像,每个所述子待识别图像包含一行待识别的字符验证码;
预处理单元,用于对所述子待识别图像进行预处理得到所述预处理图像。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4中任一种字符验证码的识别方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至4中任一种字符验证码的识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011112355.1A CN112214750B (zh) | 2020-10-16 | 2020-10-16 | 字符验证码的识别方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011112355.1A CN112214750B (zh) | 2020-10-16 | 2020-10-16 | 字符验证码的识别方法、系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214750A CN112214750A (zh) | 2021-01-12 |
CN112214750B true CN112214750B (zh) | 2023-04-25 |
Family
ID=74055597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011112355.1A Active CN112214750B (zh) | 2020-10-16 | 2020-10-16 | 字符验证码的识别方法、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214750B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299717A (zh) * | 2018-09-13 | 2019-02-01 | 网易(杭州)网络有限公司 | 文字识别模型建立及文字识别方法、装置、介质及设备 |
WO2019136960A1 (zh) * | 2018-01-12 | 2019-07-18 | 深圳壹账通智能科技有限公司 | 一种爬取网站数据的方法、存储介质、服务器及装置 |
CN110188761A (zh) * | 2019-04-22 | 2019-08-30 | 平安科技(深圳)有限公司 | 验证码的识别方法、装置、计算机设备和存储介质 |
CN110321883A (zh) * | 2019-06-14 | 2019-10-11 | 上海上湖信息技术有限公司 | 验证码识别方法及装置、可读存储介质 |
CN110555462A (zh) * | 2019-08-02 | 2019-12-10 | 深圳索信达数据技术有限公司 | 基于卷积神经网络的无固定多字符验证码识别方法 |
CN111477212A (zh) * | 2019-01-04 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 内容识别、模型训练、数据处理方法、系统及设备 |
-
2020
- 2020-10-16 CN CN202011112355.1A patent/CN112214750B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019136960A1 (zh) * | 2018-01-12 | 2019-07-18 | 深圳壹账通智能科技有限公司 | 一种爬取网站数据的方法、存储介质、服务器及装置 |
CN109299717A (zh) * | 2018-09-13 | 2019-02-01 | 网易(杭州)网络有限公司 | 文字识别模型建立及文字识别方法、装置、介质及设备 |
CN111477212A (zh) * | 2019-01-04 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 内容识别、模型训练、数据处理方法、系统及设备 |
CN110188761A (zh) * | 2019-04-22 | 2019-08-30 | 平安科技(深圳)有限公司 | 验证码的识别方法、装置、计算机设备和存储介质 |
CN110321883A (zh) * | 2019-06-14 | 2019-10-11 | 上海上湖信息技术有限公司 | 验证码识别方法及装置、可读存储介质 |
CN110555462A (zh) * | 2019-08-02 | 2019-12-10 | 深圳索信达数据技术有限公司 | 基于卷积神经网络的无固定多字符验证码识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112214750A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110598686B (zh) | 发票的识别方法、系统、电子设备和介质 | |
CN108446621A (zh) | 票据识别方法、服务器及计算机可读存储介质 | |
DE102018115440A1 (de) | Techniken zum Trainieren tiefer neuronaler Netzwerke | |
CN111275107A (zh) | 一种基于迁移学习的多标签场景图像分类方法及装置 | |
CN110147878B (zh) | 数据处理方法、装置及设备 | |
CN108985297A (zh) | 手写模型训练、手写图像识别方法、装置、设备及介质 | |
US20220075994A1 (en) | Real-time facial landmark detection | |
CN109740553B (zh) | 一种基于识别的图像语义分割数据筛选方法及系统 | |
KR20200130759A (ko) | 데이터 세트에 정의되지 않은 특성 정보를 자동으로 생성하는 제로샷 인식 장치 및 방법 | |
CN114677646A (zh) | 一种基于Vision Transformer的跨域行人重识别方法 | |
CN108985442B (zh) | 手写模型训练方法、手写字识别方法、装置、设备及介质 | |
CN114742224A (zh) | 行人重识别方法、装置、计算机设备及存储介质 | |
CN112214750B (zh) | 字符验证码的识别方法、系统、电子设备和存储介质 | |
CN111079823B (zh) | 验证码图像生成方法及系统 | |
CN112329735A (zh) | 人脸识别模型的训练方法及在线教育系统 | |
CN115358952B (zh) | 一种基于元学习的图像增强方法、系统、设备和存储介质 | |
CN110321883A (zh) | 验证码识别方法及装置、可读存储介质 | |
CN113610080B (zh) | 基于跨模态感知的敏感图像识别方法、装置、设备及介质 | |
CN115170414A (zh) | 一种基于知识蒸馏的单幅图像去雨方法及系统 | |
CN111815658B (zh) | 一种图像识别方法及装置 | |
CN112926585A (zh) | 一种基于再生核希尔伯特空间的跨域语义分割方法 | |
CN112085671A (zh) | 一种背景重建方法、装置、计算设备及存储介质 | |
CN112633285A (zh) | 领域适应方法、装置、电子设备及存储介质 | |
CN112232338A (zh) | 核保理赔过程的资料录入方法、装置、设备及存储介质 | |
Ma et al. | Population Codes: theoretic aspects |
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 |