CN117132989A - 基于卷积神经网络的字符验证码识别方法、系统及设备 - Google Patents
基于卷积神经网络的字符验证码识别方法、系统及设备 Download PDFInfo
- Publication number
- CN117132989A CN117132989A CN202311368002.1A CN202311368002A CN117132989A CN 117132989 A CN117132989 A CN 117132989A CN 202311368002 A CN202311368002 A CN 202311368002A CN 117132989 A CN117132989 A CN 117132989A
- Authority
- CN
- China
- Prior art keywords
- verification code
- image
- training
- model
- character
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 42
- 238000012549 training Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012360 testing method Methods 0.000 claims abstract description 16
- 230000009193 crawling Effects 0.000 claims abstract description 11
- 230000009467 reduction Effects 0.000 claims abstract description 10
- 238000005516 engineering process Methods 0.000 claims abstract description 8
- 238000005260 corrosion Methods 0.000 claims description 19
- 230000007797 corrosion Effects 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 239000003086 colorant Substances 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000005530 etching Methods 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 238000003384 imaging method Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- 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/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/16—Image preprocessing
- G06V30/164—Noise filtering
-
- 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/16—Image preprocessing
- G06V30/168—Smoothing or thinning of the pattern; Skeletonisation
-
- 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/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明属于计算机视觉领域,基于卷积神经网络的字符验证码识别方法、系统及设备,包括验证码自动爬取和样本集管理、图像处理、验证码识别模型训练、验证码推理和系统接口等模块;验证码自动爬取和样本集管理模块从目标网站抓取验证码图像,划分为训练集和测试集并进行标注;图像处理模块对输入的图像进行降噪等处理;处理后输入验证码识别模型训练模块进行模型训练;验证码推理和系统接口模块使用训练后的模型对输入的验证码图片进行推理和识别并通过系统接口返回验证码识别内容。本发明实现了对目标网站符号验证码的准确识别;训练过程中使用了一系列图像处理技术减少了验证码风格差异,提高了类似风格符号验证码识别的泛用性。
Description
技术领域
本发明属于计算机视觉领域,特别涉及一种基于卷积神经网络的字符验证码识别方法、系统及设备。
背景技术
验证码是一种区分用户是计算机还是人的公共全自动程序,是一种广泛用于网络安全和反机器人自动化攻击的技术,验证码可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。随着科技的发展,验证码的验证方式也在不断迭代,从最初的文本验证码到知识型验证码到行为轨迹验证码,验证码的复杂程度不断提升,攻防效果也不断提升。
随着信息化办公的发展和普及,企业信号化建设的完成和推广,多数企业开始进行信息化改革,办公流程需要大量的在网上进行,进入一些特定网站获取文件或信息也几乎完全替代了之前的纸质文件。信息化是办公变得更加规范和统一,但信息化的发展也使办公所需信息的规模增加,频繁进入某些网站进行一些机械化的操作增加。为了提升效率,解放办公人员,企业开始越来越多的使用自动化软件来自动获取这些曾经需要人工机械化频繁查阅的信息。而多数网站在登录过程中设置了字符验证码,这种字符验证码相对简单,对网站安全防护作用较低但却是自动化软件在进行自动登录时的一大阻碍,验证码识别系统的出现便是为了解决这一痛点,保证自动化软件的自动运行。
发明内容
为解决上述技术问题,本发明提供了一种基于卷积神经网络的字符验证码识别系统,使用户能够基于目标网站的验证码训练一个具有针对性的字符验证码识别模型算法,并可使用这个模型算法对此网站的字符验证码进行智能识别。其技术方案为:
一种基于卷积神经网络的字符验证码识别方法,包括以下步骤,
S1.验证码自动爬取和样本集管理,通过自动化脚本从目标网站抓取所需数量的验证码图像;进行训练样本集和测试样本集的标注及划分,根据需求将验证码样本集划分为训练集和测试集,并标注验证码内容;
S2.图像处理,使用图像处理技术对输入的图像进行灰度转换、降噪处理和腐蚀处理;
S3.验证码识别模型训练,将处理后的图像输入修改后的CNN模型进行训练;
修改后的CNN模型结构是在现有CNN模型的最后一层加入了1层自注意力机制层;且修改后的CNN模型的卷积层中使用一个3*3*1的矩阵区域作为滤波器filter,filter的初始参数由随机数生成,并在训练过程中进行调整;
S4.验证码推理和系统接口,使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;系统对外提供验证码识别接口,允许外部系统通过输入一个相同风格的符号验证码图像来获取验证码内容。
优选的,步骤S1具体内容如下:
S11.通过查看分析目标网站元素属性获取其使用验证码的URL及其请求参数;
S12.根据生成验证码的请求,通过脚本代码模拟其验证码生成,并通过循环语句重复调用该脚本以获取指定数量的验证码图片样本;
S13.将获取的图片样本划分为训练集和测试集,将一个数量规模较大的样本集作为训练集, 记为,剩下的数量较小的样本集作为测试集,记为/>;人工对这些目标网站验证码图片进行标注完成初始数据集的制作。
优选的,步骤S2中灰度转换步骤如下:
S21.将输入图像进行resize,调节图像大小,将图像统一为/>分辨率大小的图片,再将图像/>转换为一个/>的数组,数组由3个/>的二维数组组成,分别代表图像/>每个像素点在R、G、B三个颜色上的亮度值,二维数组坐标/>为图像像素坐标,数组值为对应RGB的像素亮度值;
S22.将输入图像的标签由文本转换为一个长度为标签字符长度n的数组N,字符按照数字、小写字母、大写字母、特殊字符的顺序进行编号,数组N中每个字符的值为其字符编号,以此实现标签文本的向量化;
S23.对输入图像进行灰度化,转换到YUV颜色空间,根据图像R、G、B三个颜色分量计算亮度值/>来表达图像的灰度值,实现图像的灰度转换,/>的计算如公式(1)所示:
=/>(1)。
优选的,步骤S2中降噪处理步骤如下:
S24.对图像再进行高斯模糊,使用卷积操作来完成高斯模糊,如下公式(2)表示:
(2);
其中,表示二维图像像素点的坐标,/>标识该像素被处理完后的像素值,/>表示卷积核半径,/>表示该像素点原来的像素值,/>表示卷积核的在上的权重值,/>为像素与卷积核中心在/>方向的偏移大小,/>函数也称作滤波函数,如式(3)所示,
(3);
其中是模糊半径,即当前横竖坐标到卷积核中心的距离,/>是正态分布的标准偏差。
优选的,步骤S2中腐蚀处理步骤如下:
S25.对图像进行腐蚀处理,对验证码符合的边缘加以腐蚀,表示式如公式(4)所示:
(4);
表示腐蚀后的图像,/>表示用来进行腐蚀操作的结构元素, 取图像X中坐标为(x,y)一点,计算此点局部范围内的各点与结构元素Â中对应点的灰度值之差,并选取其中的最小值作为该点的腐蚀结果/>。
优选的,步骤S3模型训练如下:
S31.将经过了图像处理后的数据集图像分组,每64张图像一组,记为,分组输入修改后的CNN中;
S32.将输入的图像组进行reshape,转换为维度分别为批次大小、图像高度/>、图像宽度/>和通道数/>的4维向量,然后输入修改后的CNN网络中进行训练;修改后的CNN网络的隐藏层在训练中都进行dropout,防止过拟合;
S33.设置模型准确度阈值为85%,超过阈值后保存模型文件,之后每r次迭代保存一次,直至准确度平稳,训练结束,选取准确度最高的模型文件/>作为最终的检测识别模型。
优选的,步骤S32中,
经过激活函数sigmoid生成的特征与自注意力层提取的特征/>进行乘法运算得到/>;
对卷积层中的滤波器filter使用了一个3*3*1的矩阵区域作为滤波器filter,filter的初始参数由随机数生成,训练过程中进行调整,训练中输出32个特征,即使用32个filter;filter的参数会被记录,在dropout后对几次结果的准确度进行比较,记录准确度数值最高的filter参数来替换初始的随机参数,并使用参数为/>的filter与新生成的随机参数filter进行交替训练,当/>的filter准确度不高于随机参数时,再进行新一轮替换,此过程循环至训练结束。
优选的,步骤S4具体内容如下:
S41.输入需要预测的符号验证码图像路径path至验证码推理模块,对验证码图像/>进行灰度化、高斯模糊和腐蚀处理;
S42.根据验证码风格使用对应的模型文件对图像/>进行内容推理,对验证码内容进行识别;
S43.将预测结果转换为json格式;
S44.提供封装的外部接口,接口入参为需识别的验证码图像和验证码风格对应的模型枚举值;接口首先将图像/>重命名并保存至服务器本地路path,然后将保存路径path传入验证码推理模块,返回值为推理出的识别结果,经接口封装为/>的形式后返回给调用接口用户。
一种基于卷积神经网络的字符验证码识别系统,包括验证码自动爬取和样本集管理、图像处理模块、验证码识别模型训练模块、验证码推理模块和系统接口;
验证码自动爬取和样本集管理:验证码自动爬取,进行训练样本集和测试样本集的标注及划分;
图像处理模块:对输入的图像进行灰度转换、降噪处理和腐蚀处理;
验证码识别模型训练模块:将处理后的图像输入卷积神经网络进行模型训练;
验证码推理模块:使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;
系统接口:系统对外提供验证码识别接口,允许外部系统通过输入一个相同风格的符号验证码图像来获取验证码内容。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现字符验证码识别方法的步骤。
与现有技术相比,本申请有益效果如下:
本发明将深度学习技术进行改进,并与图像处理技术相结合,通过一定量的符号验证码图片作为模型训练的训练样本集,图像通过计算机图像处理技术,将图像进行灰度转换,高斯模糊以及腐蚀处理,去除因颜色、干扰噪点、线条对验证码字符的影响,使模型能够更好的提取验证码符号特征,提高识别准确率,已达到可供企业自动化软件实现自动登录的需求。通过验证码识别以使企业自动化软件可以去除因验证码而堵塞的自动化登录业务流程,是软件自动化过程更加广泛,更加流畅,以实现替代人工操作,降低人力成本,提高企业整体工作效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将技术描述中所需要使用的附图作简单地介绍。
图1为本发明的系统结构图。
图2为本发明的系统结构流程图。
具体实施方式
下面将结合本发明实施中的附图,对本发明实施中的技术方案进行清楚、完整地描述。
一种基于卷积神经网络的字符验证码识别方法,包括以下步骤,
S1.验证码自动爬取和样本集管理,通过自动化脚本从目标网站抓取所需数量的验证码图像;进行训练样本集和测试样本集的标注及划分,根据需求将验证码样本集划分为训练集和测试集,并标注验证码内容;
S11.通过查看分析目标网站元素属性获取其使用验证码的URL及其请求参数;
S12.根据生成验证码的请求,通过脚本代码模拟其验证码生成,并通过循环语句重复调用该脚本以获取指定数量的验证码图片样本;
S13.将获取的图片样本划分为训练集和测试集,将一个数量规模较大的样本集作为训练集, 记为,剩下的数量较小的样本集作为测试集,记为/>;人工对这些目标网站验证码图片进行标注完成初始数据集的制作。
S2.图像处理,使用图像处理技术对输入的图像进行灰度转换、降噪处理和腐蚀处理;
步骤S2中灰度转换步骤如下:
S21.将输入图像进行resize,调节图像大小,将图像统一为/>分辨率大小的图片,再将图像/>转换为一个/>的数组,数组由3个/>的二维数组组成,分别代表图像/>每个像素点在R、G、B三个颜色上的亮度值,二维数组坐标/>为图像像素坐标,数组值为对应RGB的像素亮度值;
S22.将输入图像的标签由文本转换为一个长度为标签字符长度n的数组N,字符按照数字、小写字母、大写字母、特殊字符的顺序进行编号,数组N中每个字符的值为其字符编号,以此实现标签文本的向量化;
S23.对输入图像进行灰度化,转换到YUV颜色空间,根据图像R、G、B三个颜色分量计算亮度值/>来表达图像的灰度值,实现图像的灰度转换,/>的计算如公式(1)所示:
=/>(1)。
步骤S2中降噪处理步骤如下:
S24.对图像再进行高斯模糊,降低图像的噪声和减少图像的细节,去除验证码中的部分噪点和干扰线条,减少对验证码识别的干扰。使用卷积操作来完成高斯模糊,如下公式(2)表示:
(2);
其中,表示二维图像像素点的坐标,/>标识该像素被处理完后的像素值,/>表示卷积核半径,/>表示该像素点原来的像素值,/>表示卷积核的在上的权重值,/>为像素与卷积核中心在/>方向的偏移大小,/>函数通常也称作滤波函数,如式(3)所示,
(3);
其中是模糊半径,即当前横竖坐标到卷积核中心的距离,/>是正态分布的标准偏差。
步骤S2中腐蚀处理步骤如下:
对验证码符合的边缘加以腐蚀,消除上一步高斯模糊未能处理的与符号轮廓重合的干扰物的影响,并使符号轮廓边缘更加清晰,提高辨识度。
S25.对图像进行腐蚀处理,对验证码符合的边缘加以腐蚀,表示式如公式(4)所示:
(4);
表示腐蚀后的图像,/>表示用来进行腐蚀操作的结构元素, 取图像X中坐标为(x,y)一点,计算此点局部范围内的各点与结构元素Â中对应点的灰度值之差,并选取其中的最小值作为该点的腐蚀结果/>。
S3.验证码识别模型训练,将处理后的图像输入修改后的CNN模型进行训练;
修改后的CNN模型结构为在现有CNN模型的最后一层加入了1层自注意力机制层;且CNN模型的卷积层中使用一个3*3*1的矩阵区域作为滤波器filter,filter的初始参数由随机数生成,并在训练过程中进行调整。
步骤S3模型训练如下:
S31.将经过了图像处理后的数据集图像分组,每64张图像一组,记为,分组输入修改后的CNN中;
S32.将输入的图像组进行reshape,转换为维度分别为批次大小、图像高度/>、图像宽度/>和通道数/>的4维向量,然后输入修改后的CNN网络中进行训练;修改后的CNN网络的隐藏层在训练中都进行dropout,防止过拟合;
经过激活函数sigmoid生成的特征与自注意力层提取的特征/>进行乘法运算得到/>;
对卷积层中的滤波器filter使用了一个3*3*1的矩阵区域作为滤波器filter,filter的初始参数由随机数生成,训练过程中进行调整,训练中输出32个特征,即使用32个filter;filter的参数会被记录,在dropout后对几次结果的准确度进行比较,记录准确度数值最高的filter参数来替换初始的随机参数,并使用参数为/>的filter与新生成的随机参数filter进行交替训练,当/>的filter准确度不高于随机参数时,再进行新一轮替换,此过程循环至训练结束。
S33.设置模型准确度阈值为85%,超过阈值后保存模型文件,之后每r次迭代保存一次,直至准确度平稳,训练结束,选取准确度最高的模型文件/>作为最终的检测识别模型。
S4.验证码推理和系统接口,使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;系统对外提供验证码识别接口,允许外部系统通过输入一个类似风格的符号验证码图像来获取验证码内容。
S41.输入需要预测的符号验证码图像路径path至验证码推理模块,对验证码图像/>进行灰度化、高斯模糊和腐蚀处理;
S42.根据验证码风格使用对应的模型文件对图像/>进行内容推理,对验证码内容进行识别;
S43.将预测结果转换为json格式;
S44.提供封装的外部接口,接口入参为需识别的验证码图像和验证码风格对应的模型枚举值;接口首先将图像/>重命名并保存至服务器本地路path,然后将保存路径path传入验证码推理模块,返回值为推理出的识别结果,经接口封装为/>的形式后返回给调用接口用户。
一种基于卷积神经网络的字符验证码识别系统,包括验证码自动爬取和样本集管理、图像处理模块、验证码识别模型训练模块、验证码推理模块和系统接口;
验证码自动爬取和样本集管理:验证码自动爬取,进行训练样本集和测试样本集的标注及划分;
图像处理模块:对输入的图像进行灰度转换、降噪处理和腐蚀处理;
验证码识别模型训练模块:将处理后的图像输入卷积神经网络进行模型训练;
验证码推理模块:使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;
系统接口:系统对外提供验证码识别接口,允许外部系统通过输入一个类似风格的符号验证码图像来获取验证码内容。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现字符验证码识别方法的步骤。
Claims (10)
1.一种基于卷积神经网络的字符验证码识别方法,其特征在于,包括以下步骤,
S1.验证码自动爬取和样本集管理,通过自动化脚本从目标网站抓取所需数量的验证码图像;进行训练样本集和测试样本集的标注及划分,根据需求将验证码样本集划分为训练集和测试集,并标注验证码内容;
S2.图像处理,使用图像处理技术对输入的图像进行灰度转换、降噪处理和腐蚀处理;
S3.验证码识别模型训练,将处理后的图像输入修改后的CNN模型进行训练;
修改后的CNN模型结构是在现有CNN模型的最后一层加入了1层自注意力机制层;且修改后的CNN模型的卷积层中使用一个3*3*1的矩阵区域作为滤波器filter,filter的初始参数由随机数生成,并在训练过程中进行调整;
S4.验证码推理和系统接口,使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;系统对外提供验证码识别接口,允许外部系统通过输入一个相同风格的符号验证码图像来获取验证码内容。
2.根据权利要求1所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S1具体内容如下:
S11.通过查看分析目标网站元素属性获取其使用验证码的URL及其请求参数;
S12.根据生成验证码的请求,通过脚本代码模拟其验证码生成,并通过循环语句重复调用该脚本以获取指定数量的验证码图片样本;
S13.将获取的图片样本划分为训练集和测试集,将一个数量规模较大的样本集作为训练集, 记为,剩下的数量较小的样本集作为测试集,记为/>;人工对这些目标网站验证码图片进行标注完成初始数据集的制作。
3.根据权利要求1所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S2中灰度转换步骤如下:
S21.将输入图像进行resize,调节图像大小,将图像统一为/>分辨率大小的图片,再将图像/>转换为一个/>的数组,数组由3个/>的二维数组组成,分别代表图像/>每个像素点在R、G、B三个颜色上的亮度值,二维数组坐标/>为图像像素坐标,数组值为对应RGB的像素亮度值;
S22.将输入图像的标签由文本转换为一个长度为标签字符长度n的数组N,字符按照数字、小写字母、大写字母、特殊字符的顺序进行编号,数组N中每个字符的值为其字符编号,以此实现标签文本的向量化;
S23.对输入图像进行灰度化,转换到YUV颜色空间,根据图像R、G、B三个颜色分量计算亮度值/>来表达图像的灰度值,实现图像的灰度转换,/>的计算如公式(1)所示:
=/>(1)。
4.根据权利要求1所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S2中降噪处理步骤如下:
S24.对图像再进行高斯模糊,使用卷积操作来完成高斯模糊,如下公式(2)表示:
(2);
其中,表示二维图像像素点的坐标,/>标识该像素被处理完后的像素值,/>表示卷积核半径,/>表示该像素点原来的像素值,/>表示卷积核的在/>上的权重值,/>为像素与卷积核中心在/>方向的偏移大小,/>函数也称作滤波函数,如式(3)所示,
(3);
其中是模糊半径,即当前横竖坐标到卷积核中心的距离,/>是正态分布的标准偏差。
5.根据权利要求1所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S2中腐蚀处理步骤如下:
S25.对图像进行腐蚀处理,对验证码符合的边缘加以腐蚀,表示式如公式(4)所示:
(4) ;
表示腐蚀后的图像,/>表示用来进行腐蚀操作的结构元素, 取图像X中坐标为(x,y)一点,计算此点局部范围内的各点与结构元素Â中对应点的灰度值之差,并选取其中的最小值作为该点的腐蚀结果/>。
6.根据权利要求1所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S3模型训练如下:
S31.将经过了图像处理后的数据集图像分组,每64张图像一组,记为,分组输入修改后的CNN中;
S32.将输入的图像组进行reshape,转换为维度分别为批次大小、图像高度/>、图像宽度/>和通道数/>的4维向量,然后输入修改后的CNN网络中进行训练;修改后的CNN网络的隐藏层在训练中都进行dropout,防止过拟合;
S33.设置模型准确度阈值为85%,超过阈值后保存模型文件,之后每r次迭代保存一次,直至准确度平稳,训练结束,选取准确度最高的模型文件/>作为最终的检测识别模型。
7.根据权利要求6所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S32中,
经过激活函数sigmoid生成的特征与自注意力层提取的特征/>进行乘法运算得到;
对卷积层中的滤波器filter使用了一个3*3*1的矩阵区域作为滤波器filter,filter的初始参数由随机数生成,训练过程中进行调整,训练中输出32个特征,即使用32个filter;filter的参数会被记录,在dropout后对几次结果的准确度进行比较,记录准确度数值最高的filter参数来替换初始的随机参数,并使用参数为/>的filter与新生成的随机参数filter进行交替训练,当/>的filter准确度不高于随机参数时,再进行新一轮替换,此过程循环至训练结束。
8.根据权利要求1所述的一种基于卷积神经网络的字符验证码识别方法,其特征在于,步骤S4具体内容如下:
S41.输入需要预测的符号验证码图像路径path至验证码推理模块,对验证码图像/>进行灰度化、高斯模糊和腐蚀处理;
S42.根据验证码风格使用对应的模型文件对图像/>进行内容推理,对验证码内容进行识别;
S43.将预测结果转换为json格式;
S44.提供封装的外部接口,接口入参为需识别的验证码图像和验证码风格对应的模型枚举值;接口首先将图像/>重命名并保存至服务器本地路path,然后将保存路径path传入验证码推理模块,返回值为推理出的识别结果,经接口封装为/>的形式后返回给调用接口用户。
9.一种基于卷积神经网络的字符验证码识别系统,其特征在于,包括验证码自动爬取和样本集管理、图像处理模块、验证码识别模型训练模块、验证码推理模块和系统接口;
验证码自动爬取和样本集管理:验证码自动爬取,进行训练样本集和测试样本集的标注及划分;
图像处理模块:对输入的图像进行灰度转换、降噪处理和腐蚀处理;
验证码识别模型训练模块:将处理后的图像输入卷积神经网络进行模型训练;
验证码推理模块:使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;
系统接口:系统对外提供验证码识别接口,允许外部系统通过输入一个相同风格的符号验证码图像来获取验证码内容。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的字符验证码识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311368002.1A CN117132989B (zh) | 2023-10-23 | 2023-10-23 | 基于卷积神经网络的字符验证码识别方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311368002.1A CN117132989B (zh) | 2023-10-23 | 2023-10-23 | 基于卷积神经网络的字符验证码识别方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117132989A true CN117132989A (zh) | 2023-11-28 |
CN117132989B CN117132989B (zh) | 2024-01-26 |
Family
ID=88854801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311368002.1A Active CN117132989B (zh) | 2023-10-23 | 2023-10-23 | 基于卷积神经网络的字符验证码识别方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117132989B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292311A (zh) * | 2017-08-10 | 2017-10-24 | 河南科技大学 | 一种基于神经网络的字符粘连验证码的识别方法 |
CN109933975A (zh) * | 2019-03-20 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的验证码识别方法及系统 |
CN109977980A (zh) * | 2017-12-28 | 2019-07-05 | 航天信息股份有限公司 | 一种验证码识别方法及装置 |
CN109993169A (zh) * | 2019-04-11 | 2019-07-09 | 山东浪潮云信息技术有限公司 | 一种基于端到端的字符型验证码识别方法 |
CN110276357A (zh) * | 2019-07-01 | 2019-09-24 | 浪潮卓数大数据产业发展有限公司 | 一种基于卷积神经网络的验证码识别方法 |
US20200143191A1 (en) * | 2018-11-02 | 2020-05-07 | Iflytek Co., Ltd. | Method, apparatus and storage medium for recognizing character |
WO2020215573A1 (zh) * | 2019-04-22 | 2020-10-29 | 平安科技(深圳)有限公司 | 验证码的识别方法、装置、计算机设备和存储介质 |
CN113159045A (zh) * | 2021-04-14 | 2021-07-23 | 西安工业大学 | 一种结合图像预处理与卷积神经网络的验证码识别方法 |
KR20220050758A (ko) * | 2020-10-16 | 2022-04-25 | 현대자동차주식회사 | 다차원 어텐션 메커니즘에 기반한 다방향 장면 텍스트 인식 방법 및 시스템 |
CN115410201A (zh) * | 2021-05-25 | 2022-11-29 | 腾讯云计算(北京)有限责任公司 | 一种验证码字符处理方法、装置和相关设备 |
CN116665214A (zh) * | 2023-04-11 | 2023-08-29 | 四川大学 | 一种基于对抗样本的大字符集验证码攻击防御方法 |
-
2023
- 2023-10-23 CN CN202311368002.1A patent/CN117132989B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107292311A (zh) * | 2017-08-10 | 2017-10-24 | 河南科技大学 | 一种基于神经网络的字符粘连验证码的识别方法 |
CN109977980A (zh) * | 2017-12-28 | 2019-07-05 | 航天信息股份有限公司 | 一种验证码识别方法及装置 |
US20200143191A1 (en) * | 2018-11-02 | 2020-05-07 | Iflytek Co., Ltd. | Method, apparatus and storage medium for recognizing character |
CN109933975A (zh) * | 2019-03-20 | 2019-06-25 | 山东浪潮云信息技术有限公司 | 一种基于深度学习的验证码识别方法及系统 |
CN109993169A (zh) * | 2019-04-11 | 2019-07-09 | 山东浪潮云信息技术有限公司 | 一种基于端到端的字符型验证码识别方法 |
WO2020215573A1 (zh) * | 2019-04-22 | 2020-10-29 | 平安科技(深圳)有限公司 | 验证码的识别方法、装置、计算机设备和存储介质 |
CN110276357A (zh) * | 2019-07-01 | 2019-09-24 | 浪潮卓数大数据产业发展有限公司 | 一种基于卷积神经网络的验证码识别方法 |
KR20220050758A (ko) * | 2020-10-16 | 2022-04-25 | 현대자동차주식회사 | 다차원 어텐션 메커니즘에 기반한 다방향 장면 텍스트 인식 방법 및 시스템 |
CN113159045A (zh) * | 2021-04-14 | 2021-07-23 | 西安工业大学 | 一种结合图像预处理与卷积神经网络的验证码识别方法 |
CN115410201A (zh) * | 2021-05-25 | 2022-11-29 | 腾讯云计算(北京)有限责任公司 | 一种验证码字符处理方法、装置和相关设备 |
CN116665214A (zh) * | 2023-04-11 | 2023-08-29 | 四川大学 | 一种基于对抗样本的大字符集验证码攻击防御方法 |
Non-Patent Citations (3)
Title |
---|
CHEN, SHI 等: "Malicious Code Family Classification Method Based on Vision Transformer", 《 2022 IEEE 10TH INTERNATIONAL CONFERENCE ON INFORMATION, COMMUNICATION AND NETWORKS (ICICN 2022)》, pages 704 - 709 * |
李世成;东野长磊;: "基于卷积神经网络的验证码识别", 软件, no. 04, pages 181 - 185 * |
杨佳;宋晓茹;高嵩;吴雪;: "一种混合验证码的识别算法研究", 自动化与仪表, no. 09, pages 62 - 65 * |
Also Published As
Publication number | Publication date |
---|---|
CN117132989B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163080B (zh) | 人脸关键点检测方法及装置、存储介质和电子设备 | |
CN108764226B (zh) | 图像文本识别方法、装置、设备及其存储介质 | |
Gu et al. | Learning a no-reference quality assessment model of enhanced images with big data | |
CN108427927B (zh) | 目标再识别方法和装置、电子设备、程序和存储介质 | |
CN112052781A (zh) | 特征提取模型训练方法、人脸识别方法、装置、设备及介质 | |
CN108229301B (zh) | 眼睑线检测方法、装置和电子设备 | |
CN111475797A (zh) | 一种对抗图像生成方法、装置、设备以及可读存储介质 | |
CN109800821A (zh) | 训练神经网络的方法、图像处理方法、装置、设备和介质 | |
CN111027628B (zh) | 一种模型确定方法和系统 | |
WO2023160312A1 (zh) | 基于自监督学习的行人重识别方法、装置、设备及存储介质 | |
CN113066002A (zh) | 对抗样本的生成方法、神经网络的训练方法、装置及设备 | |
CN114444565B (zh) | 一种图像篡改检测方法、终端设备及存储介质 | |
CN111931783A (zh) | 一种训练样本生成方法、机读码识别方法及装置 | |
CN113919497A (zh) | 针对连续学习能力系统的基于特征操纵的攻击和防御方法 | |
CN113222921A (zh) | 一种图像处理方法及系统 | |
CN110210505A (zh) | 样本数据的生成方法、装置及电子设备 | |
CN111445058A (zh) | 数据分析方法、装置、设备及计算机可读存储介质 | |
CN115240203A (zh) | 业务数据处理方法、装置、设备及存储介质 | |
CN115358952A (zh) | 一种基于元学习的图像增强方法、系统、设备和存储介质 | |
CN116311214A (zh) | 车牌识别方法和装置 | |
CN114282258A (zh) | 截屏数据脱敏方法、装置、计算机设备及存储介质 | |
CN116912604B (zh) | 模型训练方法、图像识别方法、装置以及计算机存储介质 | |
US10657369B1 (en) | Unsupervised removal of text from images using linear programming for optimal filter design | |
CN115439850B (zh) | 基于审单的图文字符识别方法、装置、设备及存储介质 | |
CN110147785A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |