CN114529911A - 基于改进yolo9000算法的验证码识别方法及系统 - Google Patents
基于改进yolo9000算法的验证码识别方法及系统 Download PDFInfo
- Publication number
- CN114529911A CN114529911A CN202111634916.9A CN202111634916A CN114529911A CN 114529911 A CN114529911 A CN 114529911A CN 202111634916 A CN202111634916 A CN 202111634916A CN 114529911 A CN114529911 A CN 114529911A
- Authority
- CN
- China
- Prior art keywords
- model
- verification code
- dbn
- yolo
- recognition
- 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 181
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012549 training Methods 0.000 claims abstract description 59
- 230000006870 function Effects 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000009466 transformation Effects 0.000 claims abstract description 22
- 238000009825 accumulation Methods 0.000 claims abstract description 19
- 238000001514 detection method Methods 0.000 claims description 14
- 238000007781 pre-processing Methods 0.000 claims description 14
- 238000010801 machine learning Methods 0.000 claims description 11
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 8
- 238000004140 cleaning Methods 0.000 claims description 6
- 238000011176 pooling Methods 0.000 claims description 6
- 238000005303 weighing Methods 0.000 claims description 6
- 238000002372 labelling Methods 0.000 claims description 5
- 230000000644 propagated effect Effects 0.000 claims description 4
- 238000013519 translation Methods 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims 3
- 230000008569 process Effects 0.000 description 6
- 230000004927 fusion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000686 essence Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- 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/044—Recurrent networks, e.g. Hopfield 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/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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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
- G06N3/088—Non-supervised learning, e.g. competitive learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了基于改进YOLO9000算法的验证码识别方法及系统,属于验证码识别技术领域,要解决的技术问题为如何快速且准确的实现验证码识别。包括如下步骤:采集验证码图片,验证码图片中的验证码由汉字、英文和数字组成;对验证码中汉字进行标注,并对验证码图片进行图像变换处理;对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,基于改进后YOLO9000模型构建验证码识别模型;基于DBN模型构建验证码识别模型;基于所述预处理后训练样本分别对所述YOLO模型和DBN模型进行训练;通过采用线性可信度累积的方式对分类结果进行融合。
Description
技术领域
本发明涉及验证码识别技术领域,具体地说是基于改进YOLO9000算法的验证码识别方法及系统。
背景技术
验证码识别是光学字符识别领域中的热点问题,研究持续了已有半个世纪的历史。因为带有汉字的验证码类别数较大(参考GB2312-80的标准常用汉字有6763个类别)汉字之间相似度较大,目前验证码识别的准确率仍较小。验证码识别中,出现的字符相对词库较为固定,范围相对窄,相对广义汉字识别要简单,圈定汉字类别少。
由于验证码跨域英文字符、数字及汉语字符,不同字体结构繁多,存在大量相似字符。本申请提案涉及的脱机的验证码识别针对静止的二维图像中的带有汉字的验证码进行识别,通过验证码图片特征提取文字,故而识别更为复杂困难,准确度难以提高。
目前脱机识别验证码的方案主要有两种:第一种是基于传统机器学习的方法进行的研究,主要应用支持向量机(SVM)、线性判别模型(LDA)与修正二次判别函数(MQDF)等的多特征验证码识别技术,在提取网格特征的基础上再增加对验证码多种主要特征的提取。这类方法在建模前需要对建模数据进行数据预处理和复杂的特征工程建设,由于提取特征复杂,包括汉字质心、笔画特征处理,难以全面的提取出准确的特征。另一种是基于深度学习进行验证码汉字的识别,卷积神经网络建立的模型有多种,目前主流应用的模型有VGGNet、ResNet等构建较深、构成复杂的神经网络进行验证码的识别,这类做法存在调优参数多、网络收敛缓慢、存储模型空间较大等问题。
基于上述分析,如何快速且准确的实现验证码识别,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供基于改进YOLO9000算法的验证码识别方法及系统,来解决如何快速且准确的实现验证码识别的技术问题。
第一方面,本发明的基于改进YOLO9000算法的验证码识别方法,包括如下步骤:
采集验证码图片构建训练样本,所述验证码图片中的验证码由汉字、英文和数字组成;
对于训练样本,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后训练样本;
对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,所述改进后YOLO9000模型保留有预训练和多分类功能,基于所述改进后YOLO9000模型构建验证码识别模型,并记为YOLO 模型;
基于DBN模型构建验证码识别模型,并记为DBN模型;
基于所述预处理后训练样本分别对所述YOLO模型和DBN模型进行训练,得到训练后YOLO模型和训练后DBN模型;
对于待识别的验证码图片,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;
通过训练后YOLO模型对所述预处理后验证码图片进行识别分类,得到第一分类结果,并通过所述训练后DBN模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,得到最终分类结果。
作为优选,对验证码图片进行图像变换处理,包括对验证码图片进行旋转变换、平移变换、阴影处理以及图片增强处理。
作为优选,对于训练样本以及待识别的验证码图片,进行数据清洗,去除无效和不完整的汉字、英文以及数字。
作为优选,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,删除两层1×1卷积,将检测头从九个卷积层减少到六个,在每个最大池化层后接入dropout层,以防止过拟合,所述改进后YOLO9000模型具有十五个卷积层。
作为优选,所述DBN模型包括受限玻尔兹曼机RBM和顶层的反向传播网络BP组成,RBM层共有三层,分别为可视层、隐藏层和全连接层,可视层用于输入数据,隐藏层用于进行特征检测,可视层与隐藏层之间通过全连接,通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出,通过BP神经网络对输出结果进行训练,并将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层 DBN模型。
作为优选,通过下式定义pi为验证码识别模型对第i个字的识别能力,ci表示第i种字符被识别正确的此申诉,ni代表第i种字符在样本集中出现的总次数, N为字符种类总数;
第一验证码识别模型对N种字符的识别能力向量表示如下:
第二验证码识别模型对N种字符的识别能力向量表示如下:
作为优选,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:
通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分 XYOLO表示为:
通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分XDBN表示为:
将DBN模型的识别分数与DBN模型的能力向量pDBN进行点乘的结果作为模型最后的识别得分ODBN表示为:
融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN 模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
O=αXYOLO+βXDBN=(o1o2,…,oN)
最后得到O中概率最大的分量,记为class并输出:
class=argmax(o1o2,…,oN) 。
第二方面,本发明的基于改进YOLO9000算法的验证码识别系统,通过如第一方面任一项所述的基于改进YOLO9000算法的验证码识别方法进行验证码识别,所述系统包括:
数据采集模块,所述数据采集模块用于采集验证码图片构建训练样本,所述验证码图片中的验证码由汉字、英文和数字组成;
数据预处理模块,所述数据预处理模块用于对验证码中汉字进行标注,对验证码图片进行数据清洗,去除无效和不完整的汉字、英文以及数字,并对验证码图片进行图像变换处理,得到预处理后训练样本;
YOLO模型构建模块,所述YOLO模型构建模块模块用于对于YOLO9000 模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,所述改进后YOLO9000模型保留有预训练和多分类功能,基于所述改进后 YOLO9000模型构建验证码识别模型,并记为YOLO模型;并用于基于所述预处理后训练样本对所述YOLO模型进行训练,得到训练后YOLO模型;
DBN模型构建模块,所述DBN模型构建模块用于基于DBN模型构建验证码识别模型,并记为DBN模型;并用于基于所述预处理后训练样本对所述DBN 模型进行训练,得到训练后DBN模型;
识别预处理模块,所述识别模块用于调用数据预处理模块,对于待识别的验证码图片,通过数据预处理模块对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;
识别分类模块,所述识别分类模块用于通过训练后YOLO模型对所述预处理后验证码图片进行识别分类,得到第一分类结果,并通过所述训练后DBN 模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,得到最终分类结果。
作为优选,所述YOLO模型构建模块用于通过减少瓶颈结构的卷积的构造,对卷积层进行改进,删除两层1×1卷积,将检测头从九个卷积层减少到六个,在每个最大池化层后接入dropout层,以防止过拟合,所述改进后YOLO9000 模型具有十五个卷积层;
所述DBN模型包括受限玻尔兹曼机RBM和顶层的反向传播网络BP组成, RBM层共有三层,分别为可视层、隐藏层和全连接层,可视层用于输入数据,隐藏层用于进行特征检测,可视层与隐藏层之间通过全连接,通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出,通过BP神经网络对输出结果进行训练,并将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层DBN模型。
作为优选,所述识别分类模块通过下式定义pi为验证码识别模型对第i个字的识别能力,ci表示第i种字符被识别正确的此申诉,ni代表第i种字符在样本集中出现的总次数,N为字符种类总数;
第一验证码识别模型对N种字符的识别能力向量表示如下:
第二验证码识别模型对N种字符的识别能力向量表示如下:
所述识别分类模块用于通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:
通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分 XYOLO表示为:
将YOLO模型的识别得分与YOLO模型的能力向量pYOLO进行点乘的结果作为模型最后的识别得分OYOLO表示为:
通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分XDBN表示为:
将DBN模型的识别分数与DBN模型的能力向量pDBN进行点乘的结果作为模型最后的识别得分ODBN表示为:
融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN 模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
O=αXYOLO+βXDBN=(o1o2,…,oN)
最后得到O中概率最大的分量,记为class并输出:
class=argmax(o1o2,…,oN)
本发明的基于改进YOLO9000算法的验证码识别方法及系统具有以下优点:
1、对比现有、验证码识别使用传统的机器学习模型的做法,改进的 YOLO-9000通过改进损失函数,重构主干网络的做法融合DBN模型,使得模型在保证识别时长的情况下,提升了识别率;
2、对比深度学习模型,融合模型通过调节加权因子,使得识别率强于单一模型,且融合了传统机器学习算法,使得模型泛化性能比单一的深度学习模型好防止过拟合。由于对YOLO-9000主干网络的卷积层修改,使得运算识别速度强于一般深度学习模型。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1基于改进YOLO9000算法的验证码识别方法的流程框图;
图2为实施例1基于改进YOLO9000算法的验证码识别方法中改进的 YOLO-9000的结构示意图;
图3为实施例1基于改进YOLO9000算法的验证码识别方法中DBN模型的结构示意图;
图4为实施例1基于改进YOLO9000算法的验证码识别方法中改进的 YOLO-9000和DBN的融合模型结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供基于改进YOLO9000算法的验证码识别方法及系统,用于解决如何快速且准确的实现验证码识别的技术问题。
实施例1:
本发明基于改进YOLO9000算法的验证码识别方法,包括如下步骤:
S100、采集验证码图片构建训练样本,验证码图片中的验证码由汉字、英文和数字组成;
S200、对于训练样本,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后训练样本;
S300、对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,改进后YOLO9000模型保留有预训练和多分类功能,基于改进后YOLO9000模型构建验证码识别模型,并记为YOLO 模型;
S400、基于DBN模型构建验证码识别模型,并记为DBN模型;
S500、基于预处理后训练样本分别对YOLO模型和DBN模型进行训练,得到训练后YOLO模型和训练后DBN模型;
S600、对于待识别的验证码图片,对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;
S700、通过训练后YOLO模型对预处理后验证码图片进行识别分类,得到第一分类结果,并通过训练后DBN模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对第一分类结果和第二分类结果进行融合,得到最终分类结果。
本实施例中采集带有汉字、英文和数字的验证码,并将采集的验证码图片汇集为数据集作为训练样本集。
步骤S200对数据加工与图像增强过程。针对验证码汉字进行单独标注,并将采集的图片进行图像增强处理,由于验证码某些验证码字符出现频率多,用词要对数据集进行数据扩增,防止拟合模型时发生过拟合。对验证码图片进行图像变换处理,包括对验证码图片进行旋转变换、平移变换、阴影处理以及图片增强处理等。同时,进行数据清洗,去除无效和不完整的汉字、英文以及数字。
YOLO-9000是指可以对9000类物体进行识别。在常见的验证码中,每一个字符均可以认为是一个物体,而验证码识别中的常用的汉字约为 500-1000个,因此改进的YOLO-9000模型可以将分类减少到1000类。本申请提案中的卷积神经网络具有15层卷积层,以YOLOv2为基础,结合 GoogleNet的构建思想。改进的YOLO9000保留了通过预训练和进行多分类的能力,通过步骤S100的数据采集与步骤S200的数据标注,利用带标注的分类数据集量比较大的特点进行预训练。改进卷积层,通过减少瓶颈结构的卷积的构造,删除了两层1×1卷积,原本的检测头从9个卷积层减少到6 个,使得体量更加轻便适合验证码汉字识别的需求。在损失函数的选择上,本申请提案对以往的YOLO模型改造,使用交叉熵损失函数加平均差相似度函数作为损失函数,这种做法可以增加类间变异,减少类内变异,从而获得更好的分类性能。
改进的YOLO模型使用了最大熵正则化项加平均方差相似度函数作为损失函数,这种做法可以增加类间变异,减少类内变异,从而获得更好的分类性能。将两种损失函数结合使用,比单纯基于交叉熵作为损失函数的特征分类效果要好得多。
一般来说,验证码识别中预测的类内方差同样很大,即熵很大,我们希望将输出的熵进行正则化,使模型更加一般化,减轻过拟合,表达式如下, pi为模型对第i个字的识别能力,H(p)为模型输出的熵,
熵是一个热向量时达到最小值,在p时均匀分布时达到最大值。前者是通过普通的交叉熵损失自动实现的,而后者则有望促进正则化。因此,我们将负熵作为最大熵正则化项,它直接作用于一般的交叉熵损失函数上,如下所示,回归的损失函数表示为LREG,是由负熵即熵的相反数λLMER,与LCE累加组成
LMER=-H(P)
LREG=LCE+λLMER
其中λ是决定MER影响的超参数。从直观上看,MER降低了交叉熵损失造成的极端置信值。考虑正则化损失对输出分数的导数,它与模型直接相关,对概率分布的导数为,此时由于模型概率的分布只与LMER有关,那么导数就变成了:
求导后根据链式法则可得,其中梯度并不总是正的或负的,所以在更多分布的分数下,概率不会下降到0或增加到1。至此就完成了损失函数的构建。
以YOLOv2为基础,结合GoogleNet的构建思想建设改进的YOLO-9000 模型。改进的YOLO9000保留了通过预训练和进行多分类的能力,通过步骤1的数据采集与步骤2的数据标注,利用带标注的分类数据集量比较大的特点进行预训练。改进模型共又15层卷积层,通过减少瓶颈结构的卷积的构造,删除了两层1×1卷积及瓶颈卷积,原本的检测头从9个卷积层减少到6个,同时在每个最大池化层后接入dropout层,以防止过拟合,使得体量更加轻便适合验证码识别的需求。
DBN是一个具有层次特征的概率生成模型,通过训练神经元之间的权重。本申请提案中的DBN模型是由一系列的受限玻尔兹曼机(RBM)和顶层的反向传播网络(BP)组成。RBM层共有三层,由可视层输入数据,隐藏层做特征检测,两层之间全连接。通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出。再对输出结果使用BP神经网络进行训练,将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层DBN模型。在有标签样本的训练模型阶段,细分类会调整BP网络的权值,将实际输出与预期数据的误差逐层反向传播。通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出。再对输出结果使用BP神经网络进行训练,将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到DBN模型。
上述两个模型YOLO模型和DBN模型都可以验证码识别,并应用各自的网络进行特征提取。由于YOLO和DBN模型建模本质有区别,其提取特征的手段各有优势,融合的YOLO和DBN的融合模型,在效果上会超过单一模型的识别能力。YOLO-DBN整体过程分为训练过程和应用过程两部分。即分别单独进行训练,与应用进行融合的过程。应用过程采用线性可信度累计,引入加权因子α和β,通过调节加权因子得到最终分类结果。
本实施例中在对验证码进行识别时,通过改进的YOLO9000与DBN模型构成的融合模型进行识别,所示首先单独训练YOLO模型和DBN模型,并得到训练好的识别模型;然后在样本集上统计两个模型对不同字符的识别能力,通过下式定义pi为模型对第i个字的识别能力;ci表示第i种字符被识别正确的此申诉,ni代表第i种字符在样本集中出现的总次数。N为字符种类总数。
其中涉及的融合模型算法的主要步骤如下:
1)将字符图片经过YOLO模型计算得到分类的得分为XYOLO:
将YOLO模型的识别分数与模型的能力向量pYOLO进行点乘的结果作为模型最后的识别得分OYOLO:
2)将字符图片经过DBN模型计算得到分类的得分为XDBN
将DBN模型的识别分数与模型的能力向量pDBN进行点乘的结果作为模型最后的识别得分ODBN:
5)融合YOLO和DBN两模型的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合两模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
O=αXYOLO+βXDBN=(o1o2,…,oN)
最后得到O中概率最大的分量,记为class并输出:
class=argmax(o1o2,…,oN)
本实施例的验证码识别,在YOLO模型中,应用最大熵正则化来正则化训练过程应给予保护,最大熵正则化在交叉熵损失中添加一个负熵项,使用最大熵正则化与平均方差相似度函数联合作为损失函数这种做法可以增加类间变异,减少类内变异,从而获得更好的分类性能;同时,YOLO模型中,卷积神经网络具有15层卷积层,通过改进卷积层,减少瓶颈结构的卷积的构造减轻了网络的量级,删除了两层1×1卷积,原本的检测头从9个卷积层减少到6个,每个最大池层之后都应用dropout层以防止过拟合;通过增加加权因子调整每个模型结果占比,最后给出样本的最大概率分类class。融合机器学习的做法提高了模型的泛化能力,融合模型的方案也进一步解决了识别效率低的问题与重量级网络泛化难的问题。
实施例2:
本发明基于改进YOLO9000算法的验证码识别系统,包括数据采集模块、数据预处理模块、YOLO模型构建模块、DBN模型构建模块、识别预处理模块、识别分类模块,数据采集模块用于采集验证码图片构建训练样本,所述验证码图片中的验证码由汉字、英文和数字组成;数据预处理模块用于对验证码中汉字进行标注,对验证码图片进行数据清洗,去除无效和不完整的汉字、英文以及数字,并对验证码图片进行图像变换处理,得到预处理后训练样本;YOLO模型构建模块模块用于对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,所述改进后 YOLO9000模型保留有预训练和多分类功能,基于所述改进后YOLO9000 模型构建验证码识别模型,并记为YOLO模型;并用于基于所述预处理后训练样本对所述YOLO模型进行训练,得到训练后YOLO模型;DBN模型构建模块用于基于DBN模型构建验证码识别模型,并记为DBN模型;并用于基于所述预处理后训练样本对所述DBN模型进行训练,得到训练后 DBN模型;识别模块用于调用数据预处理模块,对于待识别的验证码图片,通过数据预处理模块对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;识别分类模块用于通过训练后YOLO 模型对所述预处理后验证码图片进行识别分类,得到第一分类结果,并通过所述训练后DBN模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,得到最终分类结果。
本实施例系统中,YOLO模型构建模块用于通过减少瓶颈结构的卷积的构造,对卷积层进行改进,删除两层1×1卷积,将检测头从9个卷积层减少到6个,在每个最大池化层后接入dropout层,以防止过拟合,所述改进后YOLO9000模型具有十五个卷积层。
一般来说,验证码识别中预测的类内方差同样很大,即熵很大,我们希望将输出的熵进行正则化,使模型更加一般化,减轻过拟合,表达式如下, pi为模型对第i个字的识别能力,H(p)为模型输出的熵,
熵是一个热向量时达到最小值,在p时均匀分布时达到最大值。前者是通过普通的交叉熵损失自动实现的,而后者则有望促进正则化。因此,我们将负熵作为最大熵正则化项,它直接作用于一般的交叉熵损失函数上,如下所示,回归的损失函数表示为LREG,是由负熵即熵的相反数λLMER,与LCE累加组成
LMER=-H(P)
LREG=LCE+λLMER
其中λ是决定MER影响的超参数。从直观上看,MER降低了交叉熵损失造成的极端置信值。考虑正则化损失对输出分数的导数,它与模型直接相关,对概率分布的导数为,此时由于模型概率的分布只与LMER有关,那么导数就变成了:
求导后根据链式法则可得,其中梯度并不总是正的或负的,所以在更多分布的分数下,概率不会下降到0或增加到1。至此就完成了损失函数的构建。
DBN模型包括受限玻尔兹曼机RBM和顶层的反向传播网络BP组成, RBM层共有三层,分别为可视层、隐藏层和全连接层,可视层用于输入数据,隐藏层用于进行特征检测,可视层与隐藏层之间通过全连接,通过RBM 层进行无监督的机器学习训练,将下层RBM作为上一层的输出,通过BP 神经网络对输出结果进行训练,并将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层DBN模型。
识别分类模块通过下式定义pi为验证码识别模型对第i个字的识别能力,ci表示第i种字符被识别正确的此申诉,ni代表第i种字符在样本集中出现的总次数, N为字符种类总数;
第一验证码识别模型对N种字符的识别能力向量表示如下:
第二验证码识别模型对N种字符的识别能力向量表示如下:
所述识别分类模块用于通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:
通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分 XYOLO表示为:
将YOLO模型的识别得分与YOLO模型的能力向量pYOLO进行点乘的结果作为模型最后的识别得分OYOLO表示为:
通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分XDBN表示为:
将DBN模型的识别分数与DBN模型的能力向量pDBN进行点乘的结果作为模型最后的识别得分ODBN表示为:
融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN 模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
O=αXYOLO+βXDBN=(o1o2,…,oN)
最后得到O中概率最大的分量,记为class并输出:
class=argmax(o1o2,…,oN) 。
本实施例的系统可执行实施例1公开的基于改进YOLO9000算法的验证码识别方法及系统。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
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模型。
7.根据权利要求1所述的基于改进YOLO9000算法的验证码识别方法,其特征在于通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:
通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分XYOLO表示为:
将YOLO模型的识别得分与YOLO模型的能力向量pYOLO进行点乘的结果作为模型最后的识别得分OYOLO表示为:
通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分XDBN表示为:
将DBN模型的识别分数与DBN模型的能力向量pDBN进行点乘的结果作为模型最后的识别得分ODBN表示为:
融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
O=aXYOLo+βXDBN=(o1 o2,...,oN)
最后得到O中概率最大的分量,记为class并输出:
class=argmax(oi o2,...,oN)。
8.基于改进YOLO9000算法的验证码识别系统,其特征在于通过如权利要求1-7任一项所述的基于改进YOLO9000算法的验证码识别方法进行验证码识别,所述系统包括:
数据采集模块,所述数据采集模块用于采集验证码图片构建训练样本,所述验证码图片中的验证码由汉字、英文和数字组成;
数据预处理模块,所述数据预处理模块用于对验证码中汉字进行标注,对验证码图片进行数据清洗,去除无效和不完整的汉字、英文以及数字,并对验证码图片进行图像变换处理,得到预处理后训练样本;
YOLO模型构建模块,所述YOLO模型构建模块用于对于YOLO9000模型,通过减少瓶颈结构的卷积的构造,对卷积层进行改进,并使用交叉熵损失函数加平均差相似度函数作为损失函数,得到改进后YOLO9000模型,所述改进后YOLO9000模型保留有预训练和多分类功能,基于所述改进后YOLO9000模型构建验证码识别模型,并记为YOLO模型;并用于基于所述预处理后训练样本对所述YOLO模型进行训练,得到训练后YOLO模型;
DBN模型构建模块,所述DBN模型构建模块用于基于DBN模型构建验证码识别模型,并记为DBN模型;并用于基于所述预处理后训练样本对所述DBN模型进行训练,得到训练后DBN模型;
识别预处理模块,所述识别模块用于调用数据预处理模块,对于待识别的验证码图片,通过数据预处理模块对验证码中汉字进行标注,并对验证码图片进行图像变换处理,得到预处理后验证码图片;
识别分类模块,所述识别分类模块用于通过训练后YOLO模型对所述预处理后验证码图片进行识别分类,得到第一分类结果,并通过所述训练后DBN模型对所述预处理后验证码识别图片进行识别分类的,得到第二分类结果,通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,得到最终分类结果。
9.根据权利要求8所述的基于改进YOLO9000算法的验证码识别系统,其特征在于所述YOLO模型构建模块用于通过减少瓶颈结构的卷积的构造,对卷积层进行改进,删除两层1×1卷积,将检测头从九个卷积层减少到六个,在每个最大池化层后接入dropout层,以防止过拟合,所述改进后YOLO9000模型具有十五个卷积层;
所述DBN模型包括受限玻尔兹曼机RBM和顶层的反向传播网络BP组成,RBM层共有三层,分别为可视层、隐藏层和全连接层,可视层用于输入数据,隐藏层用于进行特征检测,可视层与隐藏层之间通过全连接,通过RBM层进行无监督的机器学习训练,将下层RBM作为上一层的输出,通过BP神经网络对输出结果进行训练,并将实际输出与预期输出的误差逐层反向传播,调增网络的权重,最终得到适用验证码识别的三层DBN模型。
10.根据权利要求8或9所述的基于改进YOLO9000算法的验证码识别系统,其特征在于所述识别分类模块通过下式定义pi为验证码识别模型对第i个字的识别能力,ci表示第i种字符被识别正确的此申诉,ni代表第i种字符在样本集中出现的总次数,N为字符种类总数;
第一验证码识别模型对N种字符的识别能力向量表示如下:
第二验证码识别模型对N种字符的识别能力向量表示如下:
所述识别分类模块用于通过采用线性可信度累积的方式对所述第一分类结果和第二分类结果进行融合,包括如下步骤:
通过训练后YOLO模型对待识别验证码图片进行分类识别,得到的得分XYOLO表示为:
将YOLO模型的识别得分与YOLO模型的能力向量pYOLO进行点乘的结果作为模型最后的识别得分OYOLO表示为:
通过训练后DBN模型对待识别验证码图片进行分类识别,得到的得分XDBN表示为:
将DBN模型的识别分数与DBN模型的能力向量pDBN进行点乘的结果作为模型最后的识别得分ODBN表示为:
融合YOLO模型和DBN模型得到的结果,输出最后分类识别结果class,采用线性可信度累积(LCA),引入α,β作为加权因子,融合YOLO模型和DBN模型的识别得分,其中α,β的相加和等于1,通过调节α,β的值权衡两个模型之间的比重,识别得分的计算公式如下,
O=αXYOLO+βXDBN=(o1 o2,…,oN)
最后得到O中概率最大的分量,记为class并输出:
class=argmax(o1 o2,...,oN)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111634916.9A CN114529911A (zh) | 2021-12-29 | 2021-12-29 | 基于改进yolo9000算法的验证码识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111634916.9A CN114529911A (zh) | 2021-12-29 | 2021-12-29 | 基于改进yolo9000算法的验证码识别方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114529911A true CN114529911A (zh) | 2022-05-24 |
Family
ID=81620229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111634916.9A Pending CN114529911A (zh) | 2021-12-29 | 2021-12-29 | 基于改进yolo9000算法的验证码识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114529911A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116452878A (zh) * | 2023-04-20 | 2023-07-18 | 广东工业大学 | 一种基于深度学习算法与双目视觉的考勤方法及系统 |
-
2021
- 2021-12-29 CN CN202111634916.9A patent/CN114529911A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116452878A (zh) * | 2023-04-20 | 2023-07-18 | 广东工业大学 | 一种基于深度学习算法与双目视觉的考勤方法及系统 |
CN116452878B (zh) * | 2023-04-20 | 2024-02-02 | 广东工业大学 | 一种基于深度学习算法与双目视觉的考勤方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112308158B (zh) | 一种基于部分特征对齐的多源领域自适应模型及方法 | |
CN108615010B (zh) | 基于平行卷积神经网络特征图融合的人脸表情识别方法 | |
CN111126386B (zh) | 场景文本识别中基于对抗学习的序列领域适应方法 | |
CN110084266B (zh) | 一种基于视听特征深度融合的动态情感识别方法 | |
CN109993236A (zh) | 基于one-shot Siamese卷积神经网络的少样本满文匹配方法 | |
CN110751038A (zh) | 一种基于图注意力机制的pdf表格结构识别方法 | |
CN111652332A (zh) | 基于二分类的深度学习手写中文字符识别方法及系统 | |
CN114038037B (zh) | 基于可分离残差注意力网络的表情标签修正和识别方法 | |
Zhang et al. | Quantifying the knowledge in a DNN to explain knowledge distillation for classification | |
CN112070139A (zh) | 基于bert与改进lstm的文本分类方法 | |
CN110991554B (zh) | 一种基于改进pca的深度网络图像分类方法 | |
Inunganbi et al. | Handwritten Meitei Mayek recognition using three‐channel convolution neural network of gradients and gray | |
CN110136113B (zh) | 一种基于卷积神经网络的阴道病理图像分类方法 | |
Zhuang et al. | A handwritten Chinese character recognition based on convolutional neural network and median filtering | |
Zahoor et al. | Deep optical character recognition: a case of Pashto language | |
CN111460146A (zh) | 一种基于多特征融合的短文本分类方法及系统 | |
CN114529911A (zh) | 基于改进yolo9000算法的验证码识别方法及系统 | |
Zhang et al. | A novel deep LeNet-5 convolutional neural network model for image recognition | |
Xu et al. | A novel image feature extraction algorithm based on the fusion AutoEncoder and CNN | |
CN111353032B (zh) | 面向社区问答的问题分类方法及系统 | |
Montalbo et al. | Classification of stenography using convolutional neural networks and canny edge detection algorithm | |
Li et al. | SwordNet: Chinese character font style recognition network | |
CN113408418A (zh) | 一种书法字体与文字内容同步识别方法及系统 | |
CN115640401B (zh) | 文本内容提取方法及装置 | |
CN111858939A (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 |