基于卷积神经网络的字符验证码识别方法技术

技术编号:39583578 阅读:11 留言:0更新日期:2023-12-03 19:32
本发明专利技术属于计算机视觉领域,基于卷积神经网络的字符验证码识别方法

【技术实现步骤摘要】
基于卷积神经网络的字符验证码识别方法、系统及设备


[0001]本专利技术属于计算机视觉领域,特别涉及一种基于卷积神经网络的字符验证码识别方法

系统及设备


技术介绍

[0002]验证码是一种区分用户是计算机还是人的公共全自动程序,是一种广泛用于网络安全和反机器人自动化攻击的技术,验证码可以防止:恶意破解密码

刷票

论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试

随着科技的发展,验证码的验证方式也在不断迭代,从最初的文本验证码到知识型验证码到行为轨迹验证码,验证码的复杂程度不断提升,攻防效果也不断提升

[0003]随着信息化办公的发展和普及,企业信号化建设的完成和推广,多数企业开始进行信息化改革,办公流程需要大量的在网上进行,进入一些特定网站获取文件或信息也几乎完全替代了之前的纸质文件

信息化是办公变得更加规范和统一,但信息化的发展也使办公所需信息的规模增加,频繁进入某些网站进行一些机械化的操作增加

为了提升效率,解放办公人员,企业开始越来越多的使用自动化软件来自动获取这些曾经需要人工机械化频繁查阅的信息

而多数网站在登录过程中设置了字符验证码,这种字符验证码相对简单,对网站安全防护作用较低但却是自动化软件在进行自动登录时的一大阻碍,验证码识别系统的出现便是为了解决这一痛点,保证自动化软件的自动运行
。<br/>
技术实现思路

[0004]为解决上述技术问题,本专利技术提供了一种基于卷积神经网络的字符验证码识别系统,使用户能够基于目标网站的验证码训练一个具有针对性的字符验证码识别模型算法,并可使用这个模型算法对此网站的字符验证码进行智能识别

其技术方案为:一种基于卷积神经网络的字符验证码识别方法,包括以下步骤,
S1.
验证码自动爬取和样本集管理,通过自动化脚本从目标网站抓取所需数量的验证码图像;进行训练样本集和测试样本集的标注及划分,根据需求将验证码样本集划分为训练集和测试集,并标注验证码内容
;S2.
图像处理,使用图像处理技术对输入的图像进行灰度转换

降噪处理和腐蚀处理
;S3.
验证码识别模型训练,将处理后的图像输入修改后的
CNN
模型进行训练
;
修改后的
CNN
模型结构是在现有
CNN
模型的最后一层加入了1层自注意力机制层;且修改后的
CNN
模型的卷积层中使用一个
3*3*1
的矩阵区域作为滤波器
filter

filter
的初始参数由随机数生成,并在训练过程中进行调整;
S4.
验证码推理和系统接口,使用在当前风格训练好的模型进行验证码识别,获取符号验证码内容;系统对外提供验证码识别接口,允许外部系统通过输入一个相同风格的符号验证码图像来获取验证码内容

[0005]优选的,步骤
S1
具体内容如下
:S11.
通过查看分析目标网站元素属性获取其使用验证码的
URL
及其请求参数
;S12.
根据生成验证码的请求,通过脚本代码模拟其验证码生成,并通过循环语句重复调用该脚本以获取指定数量的验证码图片样本
;S13.
将获取的图片样本划分为训练集和测试集,将一个数量规模较大的样本集作为训练集
, 记为,剩下的数量较小的样本集作为测试集,记为;人工对这些目标网站验证码图片进行标注完成初始数据集的制作

[0006]优选的,步骤
S2
中灰度转换步骤如下
:S21.
将输入图像进行
resize
,调节图像大小,将图像统一为分辨率大小的图片,再将图像转换为一个的数组,数组由3个的二维数组组成,分别代表图像每个像素点在
R、G、B
三个颜色上的亮度值,二维数组坐标为图像像素坐标,数组值为对应
RGB
的像素亮度值;
S22.
将输入图像的标签由文本转换为一个长度为标签字符长度
n
的数组
N
,字符按照数字

小写字母

大写字母

特殊字符的顺序进行编号,数组
N
中每个字符的值为其字符编号,以此实现标签文本的向量化
;S23.
对输入图像进行灰度化,转换到
YUV
颜色空间,根据图像
R、G、B
三个颜色分量计算亮度值来表达图像的灰度值,实现图像的灰度转换
,
的计算如公式(1)所示: =(1)。
[0007]优选的,步骤
S2
中降噪处理步骤如下
:S24.
对图像再进行高斯模糊,使用卷积操作来完成高斯模糊,如下公式(2)表示:
ꢀꢀꢀꢀꢀꢀ
(2);其中,表示二维图像像素点的坐标,标识该像素被处理完后的像素值
,
表示卷积核半径
,
表示该像素点原来的像素值
,
表示卷积核的在上的权重值,为像素与卷积核中心在方向的偏移大小
,
函数也称作滤波函数,如式
(3)
所示
,
ꢀꢀꢀ
(3);其中是模糊半径,即当前横竖坐标到卷积核中心的距离,是正态分布的标准偏差

[0008]优选的,步骤
S2
中腐蚀处理步骤如下
:S25.
对图像进行腐蚀处理,对验证码符合的边缘加以腐蚀,表示式如公式(4)所示:
ꢀꢀ
(4)
;表示腐蚀后的图像
, 表示用来进行腐蚀操作的结构元素
, 取图像
X
中坐标为
(x,y)
一点,计算此点局部范围内的各点与结构元素
Â
中对应点的灰度值之差,并选取其中的最小值作为该点的腐蚀结果

[0009]优选的,步骤
S3
模型训练如下:
S31.
将经过了图像处理后的数据集图像分组,每
64
张图像一组,记为
,
分组输入修改后的
CNN

;S32.
将输入的图像组进行
reshape
,转换为维度分别为批次大小

图像高度

图像宽度和通道数的4维向量,然后输入修改后的
CNN
网络中进行训练;修改后的
CNN
网络的隐藏层在训练中都进行
dropout
,防止过拟合;
S3本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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) ;表示腐蚀后的图像
,
表示用来进行腐蚀操作的结构元素
...

【专利技术属性】
技术研发人员:郑艳伟何康泽孙钦平于东晓马嘉林崔方剑张春雨
申请(专利权)人:青岛海信信息科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1