基于改进YOLO9000算法的验证码识别方法及系统技术方案

技术编号:33549665 阅读:7 留言:0更新日期:2022-05-26 22:45
本发明专利技术公开了基于改进YOLO9000算法的验证码识别方法及系统,属于验证码识别技术领域,要解决的技术问题为如何快速且准确的实现验证码识别。包括如下步骤:采集验证码图片,验证码图片中的验证码由汉字、英文和数字组成;对验证码中汉字进行标注,并对验证码图片进行图像变换处理;对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,基于改进后YOLO9000模型构建验证码识别模型;基于DBN模型构建验证码识别模型;基于所述预处理后训练样本分别对所述YOLO模型和DBN模型进行训练;通过采用线性可信度累积的方式对分类结果进行融合。方式对分类结果进行融合。方式对分类结果进行融合。

【技术实现步骤摘要】
基于改进YOLO9000算法的验证码识别方法及系统


[0001]本专利技术涉及验证码识别
,具体地说是基于改进YOLO9000算法的验证码识别方法及系统。

技术介绍

[0002]验证码识别是光学字符识别领域中的热点问题,研究持续了已有半个世纪的历史。因为带有汉字的验证码类别数较大(参考GB2312

80的标准常用汉字有6763个类别)汉字之间相似度较大,目前验证码识别的准确率仍较小。验证码识别中,出现的字符相对词库较为固定,范围相对窄,相对广义汉字识别要简单,圈定汉字类别少。
[0003]由于验证码跨域英文字符、数字及汉语字符,不同字体结构繁多,存在大量相似字符。本申请提案涉及的脱机的验证码识别针对静止的二维图像中的带有汉字的验证码进行识别,通过验证码图片特征提取文字,故而识别更为复杂困难,准确度难以提高。
[0004]目前脱机识别验证码的方案主要有两种:第一种是基于传统机器学习的方法进行的研究,主要应用支持向量机(SVM)、线性判别模型(LDA)与修正二次判别函数(MQDF)等的多特征验证码识别技术,在提取网格特征的基础上再增加对验证码多种主要特征的提取。这类方法在建模前需要对建模数据进行数据预处理和复杂的特征工程建设,由于提取特征复杂,包括汉字质心、笔画特征处理,难以全面的提取出准确的特征。另一种是基于深度学习进行验证码汉字的识别,卷积神经网络建立的模型有多种,目前主流应用的模型有 VGGNet、ResNet等构建较深、构成复杂的神经网络进行验证码的识别,这类做法存在调优参数多、网络收敛缓慢、存储模型空间较大等问题。
[0005]基于上述分析,如何快速且准确的实现验证码识别,是需要解决的技术问题。

技术实现思路

[0006]本专利技术的技术任务是针对以上不足,提供基于改进YOLO9000算法的验证码识别方法及系统,来解决如何快速且准确的实现验证码识别的技术问题。
[0007]第一方面,本专利技术的基于改进YOLO9000算法的验证码识别方法,包括如下步骤:
[0008]采集验证码图片构建训练样本,所述验证码图片中的验证码由汉字、英文和数字组成;
[0009]对于训练样本,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后训练样本;
[0010]对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,所述改进后YOLO9000模型保留有预训练和多分类功能,基于所述改进后YOLO9000模型构建验证码识别模型,并记为YOLO 模型;
[0011]基于DBN模型构建验证码识别模型,并记为DBN模型;
[0012]基于所述预处理后训练样本分别对所述YOLO模型和DBN模型进行训练,得到训练
后YOLO模型和训练后DBN模型;
[0013]对于待识别的验证码图片,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;
[0014]通过训练后YOLO模型对所述预处理后验证码图片进行识别分类,得到第一分类结果,并通过所述训练后DBN模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,得到最终分类结果。
[0015]作为优选,对验证码图片进行图像变换处理,包括对验证码图片进行旋转变换、平移变换、阴影处理以及图片增强处理。
[0016]作为优选,对于训练样本以及待识别的验证码图片,进行数据清洗,去除无效和不完整的汉字、英文以及数字。
[0017]作为优选,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,删除两层1
×
1卷积,将检测头从九个卷积层减少到六个,在每个最大池化层后接入dropout层,以防止过拟合,所述改进后YOLO9000模型具有十五个卷积层。
[0018]作为优选,所述DBN模型包括受限玻尔兹曼机RBM和顶层的反向传播网络BP组成,RBM层共有三层,分别为可视层、隐藏层和全连接层,可视层用于输入数据,隐藏层用于进行特征检测,可视层与隐藏层之间通过全连接,通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出,通过BP神经网络对输出结果进行训练,并将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层 DBN模型。
[0019]作为优选,通过下式定义p
i
为验证码识别模型对第i个字的识别能力,c
i
表示第i种字符被识别正确的此申诉,n
i
代表第i种字符在样本集中出现的总次数, N为字符种类总数;
[0020][0021]第一验证码识别模型对N种字符的识别能力向量表示如下:
[0022][0023]其中表示YOLO模型对第N钟字符的识别能力;
[0024]第二验证码识别模型对N种字符的识别能力向量表示如下:
[0025][0026]其中表示YOLO模型对第N钟字符的识别能力。
[0027]作为优选,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:
[0028]通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分 X
YOLO
表示为:
[0029][0030]将YOLO模型的识别得分与YOLO模型的能力向量进行点乘的结果作为模型最
后的识别得分O
YOLO
表示为:
[0031][0032]通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分X
DBN
表示为:
[0033][0034]将DBN模型的识别分数与DBN模型的能力向量p
DBN
进行点乘的结果作为模型最后的识别得分O
DBN
表示为:
[0035][0036]将训练后YOLO模型得分的分量从大到小排序,选取最的大两个分量并记录,
[0037]将DBN模型得分的分量从大到小排序,选取最的大两个分量并记录,
[0038]融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN 模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
[0039]O=αX
YOLO
+βX
DBN
=(o1o2,

,o
N
)
[0040]最后得到O中概率最大的分量,记为class并输出:
[0041]class=argmax(o1o2,

,o
N
) 。
[0042]第二方面,本专利技术的基于改进Y本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于改进YOLO9000算法的验证码识别方法,其特征在于包括如下步骤:采集验证码图片构建训练样本,所述验证码图片中的验证码由汉字、英文和数字组成;对于训练样本,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后训练样本;对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,所述改进后YOLO9000模型保留有预训练和多分类功能,基于所述改进后YOLO9000模型构建验证码识别模型,并记为YOLO模型;基于DBN模型构建验证码识别模型,并记为DBN模型;基于所述预处理后训练样本分别对所述YOLO模型和DBN模型进行训练,得到训练后YOLO模型和训练后DBN模型;对于待识别的验证码图片,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;通过训练后YOLO模型对所述预处理后验证码图片进行识别分类,得到第一分类结果,并通过所述训练后DBN模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,得到最终分类结果。2.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于对验证码图片进行图像变换处理,包括对验证码图片进行旋转变换、平移变换、阴影处理以及图片增强处理。3.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于对于训练样本以及待识别的验证码图片,进行数据清洗,去除无效和不完整的汉字、英文以及数字。4.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于通过减少瓶颈结构的卷积的构造,对卷积层进行改进,删除两层1
×
1卷积,将检测头从九个卷积层减少到六个,在每个最大池化层后接入dropout层,以防止过拟合,所述改进后YOLO9000模型具有十五个卷积层。5.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于所述DBN模型包括受限玻尔兹曼机RBM和顶层的反向传播网络BP组成,RBM层共有三层,分别为可视层、隐藏层和全连接层,可视层用于输入数据,隐藏层用于进行特征检测,可视层与隐藏层之间通过全连接,通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出,通过BP神经网络对输出结果进行训练,并将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层DBN模型。6.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于通过下式定义p
i
为验证码识别模型对第i个字的识别能力,c
i
表示第i种字符被识别正确的此申诉,n
i
代表第i种字符在样本集中出现的总次数,N为字符种类总数;第一验证码识别模型对N种字符的识别能力向量表示如下:
其中表示YOLO模型对第N钟字符的识别能力;第二验证码识别模型对N种字符的识别能力向量表示如下:其中表示YOLO模型对第N钟字符的识别能力。7.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分X
YOLO
表示为:将YOLO模型的识别得分与YOLO模型的能力向量p
YOLO
进行点乘的结果作为模型最后的识别得分O
YOLO
表示为:通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分X
DBN
表示为:将DBN模型的识别分数与DBN模型的能力向量p
DBN
进行点乘的结果作为模型最后的识别得分O
DBN
表示为:将训练后YOLO模型得分的分量从大到小排序,选取最的大两个分量并记录,将DBN模型得分的分量从大到小排序,选取最的大两个分量并记录,融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,O=aX
YOLo
+βX
DBN
=(o
1 o2,...,o
N
)最后得到O中概率最大的分量,记为class并输出:class=argmax(o
i o2,...,o
N
)。8.基于改进YOLO9000算法的验证码识别系统,其特...

【专利技术属性】
技术研发人员:李尚锴王凯袁明明
申请(专利权)人:浪潮通信信息系统有限公司
类型:发明
国别省市:

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

1