一种基于DenseNet的字符型图像验证码识别方法、系统、设备以及存储介质与流程

文档序号:33016685发布日期:2023-01-20 16:21阅读:32来源:国知局
一种基于DenseNet的字符型图像验证码识别方法、系统、设备以及存储介质与流程
一种基于densenet的字符型图像验证码识别方法、系统、设备以及存储介质
技术领域
1.本发明涉及人工智能技术领域,具体涉及一种基于densenet的字符型图像验证码识别方法、系统、设备以及存储介质。


背景技术:

2.一般的,用户在登录系统时,除了需要输入账户名和密码,还需进行人机认证。系统主要通过人机认证的方式判断访问是来自真实用户还是机器程序,一方面,设置人机认证有利于防止机器程序恶意访问、暴力破解等操作,从而保证数据安全,保障系统稳定运行;另一方面,人机认证的设置也给安全测试人员的工作流程带来了一定的不便。
3.常见的人机认证的方式有识别字符、识别场景、选取文字、拼图、运算等基于图像的方式,以及识别语音内容等基于语音的方式。其中,字符型图像的方式得益于数据量小的优势,被广泛使用。字符型图像验证码的内容一般由若干位大小写字母和数字随机组成,但增加了大量干扰设置,如使字符扭曲变形、叠加粘连、以及添加点线等干扰元素,导致常用的光学字符识别工具不能直接应用于此类图像的识别。已有的字符型图像验证码识别方案,过程一般是首先对图像进行去噪、字符分割等预处理,再通过支持向量机、隐马尔可夫模型、或浅层神经网络识别处理后的图像。预处理过程中,去噪处理一般针对给定的一类或几类图像设计,因此适应性不强,且在去噪的过程中,极易丢失目标字符的部分信息;分割处理则不适用于字符互相叠加的情况。预处理的结果会严重影响后续识别的准确性,此外,支持向量机、隐马尔可夫等模型对于复杂图像的识别能力还存在一定的不足。
4.因此,现有方法对复杂字符型图像验证码识别的准确度还有待提高。


技术实现要素:

5.本发明解决了现有方法对复杂字符型图像验证码识别的准确度低的问题。
6.本发明所述的一种基于densenet的字符型图像验证码识别方法,包括以下步骤:
7.步骤s1,收集多个待识别的图像验证码,并将已收集的多个待识别的图像验证码构建成图像验证码数据集,已构建成的图像验证码数据集作为测试集;
8.步骤s2,利用神经网络模型,并通过人工模拟图像与数据增强的结合对图像验证码数据集进行扩充;
9.步骤s3,对已扩充的图像验证码数据集进行增强处理,已增强处理的图像验证码数据集作为训练集;
10.步骤s4,构建基于densenet的图像验证码识别模型;
11.步骤s5,将训练集输入至已构建的图像验证码识别模型进行训练;
12.步骤s6,训练完成的图像验证码识别模型对测试集进行识别,得到图像验证码的识别结果;
13.所述图像验证码识别模型是将densenet作为模型主干,图像验证码识别模型依次
由第一卷积层、第一池化层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、第三过渡层、第四密集块、第二池化层、第一全连接层和若干个全连接层分支构成。
14.进一步地,在本发明的一个实施例中,所述收集多个待识别的图像验证码,具体为:
15.通过爬虫程序获取目标网站的待识别的图像验证码,并多次刷新获取多个待识别的图像验证码,并将其保存。
16.进一步地,在本发明的一个实施例中,所述增强处理包括旋转、锐化、调节对比度、调节亮度、添加噪声、模糊处理、亮度均衡、雾化和添加阴影。
17.进一步地,在本发明的一个实施例中,所述将训练集输入至已构建的图像验证码识别模型进行训练,具体为:
18.已构建的图像验证码识别模型进行设定迭代次数,通过交叉熵损失函数度量预测结果相比于标签值的误差,通过adamw优化器进行调节已构建的图像验证码识别模型的参数,当训练达到设定的迭代次数时,则停止训练并保存生成的图像验证码识别模型。
19.本发明所述的一种基于densenet的字符型图像验证码识别系统,所述系统包括以下模块:
20.收集模块,收集多个待识别的图像验证码,并将已收集的多个待识别的图像验证码构建成图像验证码数据集,已构建成的图像验证码数据集作为测试集;
21.扩充模块,利用神经网络模型,并通过人工模拟图像与数据增强的结合对图像验证码数据集进行扩充;
22.增强模块,对已扩充的图像验证码数据集进行增强处理,已增强处理的图像验证码数据集作为训练集;
23.构建模块,构建基于densenet的图像验证码识别模型;
24.训练模块,将训练集输入至已构建的图像验证码识别模型进行训练;
25.识别模块,训练完成的图像验证码识别模型对测试集进行识别,得到图像验证码的识别结果;
26.所述图像验证码识别模型是将densenet作为模型主干,图像验证码识别模型依次由第一卷积层、第一池化层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、第三过渡层、第四密集块、第二池化层、第一全连接层和若干个全连接层分支构成。
27.本发明所述的一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
28.存储器,用于存放计算机程序;
29.处理器,用于执行存储器上所存放的程序时,实现上述方法中任一所述的方法步骤。
30.本发明所述的一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法中任一所述的方法步骤。
31.本发明解决了现有方法对复杂字符型图像验证码识别的准确度低的问题。具体有益效果包括:
32.1、本发明所述的一种基于densenet的字符型图像验证码识别方法,通过端到端的方式对直接图像验证码进行识别,相较于预处理后识别的方式,避免了预处理仅针对几类
风格图像设计,导致适应性不强,从而影响后续识别准确性的问题;
33.2、本发明所述的一种基于densenet的字符型图像验证码识别方法,通过人工模拟验证码图像风格编写程序以批量生成图像,相较于对每一类风格图像构建生成对抗网络的方式,有效节省了时间成本和计算成本,同时批量生成的图像带有匹配的标签,节省了人工标记成本;
34.3、本发明所述的一种基于densenet的字符型图像验证码识别方法,通过构建较深的神经网络,相比于机器学习算法或浅层神经网络,特征提取能力更强,更适用于复杂的图像验证码识别;
35.4、本发明所述的一种基于densenet的字符型图像验证码识别方法,在已有模型基础上,通过设置新的训练集数据进行微调,即可以应用于新风格的图像验证码的识别。
附图说明
36.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
37.图1是具体实施方式所述的一种基于densenet的字符型图像验证码识别方法流程图;
38.图2是具体实施方式所述的模型结构图。
具体实施方式
39.下面结合附图将对本发明的多种实施方式进行清楚、完整地描述。通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
40.本实施方式所述的一种基于densenet的字符型图像验证码识别方法,包括以下步骤:
41.步骤s1,收集多个待识别的图像验证码,并将已收集的多个待识别的图像验证码构建成图像验证码数据集,已构建成的图像验证码数据集作为测试集;
42.步骤s2,利用神经网络模型,并通过人工模拟图像与数据增强的结合对图像验证码数据集进行扩充;
43.步骤s3,对已扩充的图像验证码数据集进行增强处理,已增强处理的图像验证码数据集作为训练集;
44.步骤s4,构建基于densenet的图像验证码识别模型;
45.步骤s5,将训练集输入至已构建的图像验证码识别模型进行训练;
46.步骤s6,训练完成的图像验证码识别模型对测试集进行识别,得到图像验证码的识别结果;
47.所述图像验证码识别模型是将densenet作为模型主干,图像验证码识别模型依次由第一卷积层、第一池化层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、第三过渡层、第四密集块、第二池化层、第一全连接层和若干个全连接层分支构成。
48.本实施方式中,所述收集多个待识别的图像验证码,具体为:
49.通过爬虫程序获取目标网站的待识别的图像验证码,并多次刷新获取多个待识别的图像验证码,并将其保存。
50.本实施方式中,所述增强处理包括旋转、锐化、调节对比度、调节亮度、添加噪声、模糊处理、亮度均衡、雾化和添加阴影。
51.本实施方式中,所述将训练集输入至已构建的图像验证码识别模型进行训练,具体为:
52.已构建的图像验证码识别模型进行设定迭代次数,通过交叉熵损失函数度量预测结果相比于标签值的误差,通过adamw优化器进行调节已构建的图像验证码识别模型的参数,当训练达到设定的迭代次数时,则停止训练并保存生成的图像验证码识别模型。
53.本实施方式基于本发明所述的一种基于densenet的字符型图像验证码识别方法,结合图1能更好的理解本实施方式,提供一种实际的实施方式:
54.包括以下步骤:
55.步骤1,收集待识别的图像构建数据集;
56.步骤2,图像验证码数据集扩充;
57.步骤3,图像验证码数据增强;
58.步骤4,构建基于densenet的图像验证码识别模型;
59.步骤5,训练模型;
60.步骤6,使用训练生成的模型识别图像验证码。
61.所述步骤1中的数据收集方式:首先通过爬虫程序对目标网站进行数据获取,通过多次刷新获取一定数量的图像验证码并保存,然后通过人工识别获取的图像验证码为图像添加标签。
62.所述步骤2中的数据集扩充:因人工标记的成本过高,因此步骤1只获取少量数据进行标记,数据量不满足模型训练的数据规模需求,因此需对数据集进行扩充。扩充方式包括通过人工编写代码进行模拟,或通过已有的数据训练生成对抗网络模型。训练生成对抗网络模型的不足在于,一方面数据量较少,另一方面涉及识别的图像验证码种类过多的话,需训练多个生成对抗网络模型,时间和计算成本较高。而现有神经网络模型都具备一定的泛化能力,通过人工模拟图像风格,结合数据增强等手段生成批量数据,训练的模型在真实数据集合上测试,同样可以达到较好的识别准确率。
63.分析步骤1中获取的图像验证码特征,包括字符构成、噪声类型、干扰点线特征、扭曲叠加效果等,编写代码进行风格模拟,生成大量带标签的模拟数据。
64.所述步骤3中的数据增强用于提升训练集图像风格的多样性、扩大图像数据规模,从而提高模型的泛化能力。实现方式包括旋转、锐化、调节对比度、调节亮度、添加噪声、模糊处理、亮度均衡、雾化、添加阴影等。
65.所述步骤4中构建基于densenet的图像验证码识别模型用于实现对图像验证码中每一个字符的分类识别。因为字符型图像验证码由26位大写字母、26位小写字母以及10位数字随机组合构成,所以分类类别为62。
66.模型结构如图2所示:模型基于densenet构建。模型的输入是步骤3数据增强后的图像,输出是图像验证码的字符分类识别结果。
67.将densenet作为模型主干,由多个密集块和过渡层叠加构成。模型构成依次为第一卷积层、第一池化层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、第三过渡层、第四密集块、第二池化层、第一全连接层,以及若干个用于分类的全连接层分支。
68.其中密集块用于特征提取,包括归一化处理、非线性激活处理以及卷积层;过渡层用于降低特征图的尺寸以及维度,包括归一化处理、非线性激活处理、卷积层以及池化层。
69.具体的,第一卷积层包括32个尺寸为7
×
7的卷积核,卷积操作步长是2,填充数是3;
70.第一池化层为3
×
3最大池化操作,池化操作步长是2,填充数是1;
71.第一密集块由6组32个尺寸为1
×
1和3
×
3的卷积核构成,其中1
×
1卷积操作步长是1,3
×
3卷积操作步长是1,填充数是1。每次卷积运算均设置归一化处理和非线性激活操作。其中,每一卷积层的输入是该密集块中其前置的所有卷积层输出在通道维度上的拼接结果,表示为:
72.x
l
=h
l
([x0,x1,

,x
l-1
]);
[0073]
其中,h
l
(
·
)包括卷积、归一化、非线性激活处理,[
·
]表示在通道维度上拼接,xn表示第n层卷积层的输出。
[0074]
类似的,第二密集块、第三密集块、第四密集块分别包括12组、48组、32组;
[0075]
第一过渡层、第二过渡层、第三过渡层均中的卷积层包括32个尺寸为1
×
1的卷积核,步长是1,以及2
×
2的平均池化操作,步长是2;
[0076]
第二池化层为7
×
7的平均池化操作;
[0077]
第一全连接层用于输出1024维向量;
[0078]
全连接层分支数目等于验证码位数,每个分支分别输出62维向量,其中每个元素表示识别为对应类别的概率,最大元素对应的类别为识别结果。
[0079]
所述步骤5中,训练模型的过程在于:使用步骤3得到的数据,统一全部图像尺寸,通过步骤4构建的网络进行设定次数的迭代训练,通过交叉熵损失函数度量预测结果相比于标签的误差,表示为:
[0080][0081]
其中,yi表示标签值,表示预测结果。
[0082]
通过adamw优化器调节模型中的参数。当达到设定的迭代次数时,停止训练并保存生成的模型。
[0083]
所述步骤6中,将步骤1收集的真实数据作为测试集,通过步骤5训练生成的图像验证码识别模型对测试集数据进行识别,得到图像验证码的识别结果。
[0084]
本实施方式所述的一种基于densenet的字符型图像验证码识别系统,所述系统包括以下模块:
[0085]
收集模块,收集多个待识别的图像验证码,并将已收集的多个待识别的图像验证码构建成图像验证码数据集,已构建成的图像验证码数据集作为测试集;
[0086]
扩充模块,利用神经网络模型,并通过人工模拟图像与数据增强的结合对图像验证码数据集进行扩充;
[0087]
增强模块,对已扩充的图像验证码数据集进行增强处理,已增强处理的图像验证码数据集作为训练集;
[0088]
构建模块,构建基于densenet的图像验证码识别模型;
[0089]
训练模块,将训练集输入至已构建的图像验证码识别模型进行训练;
[0090]
识别模块,训练完成的图像验证码识别模型对测试集进行识别,得到图像验证码的识别结果;
[0091]
所述图像验证码识别模型是将densenet作为模型主干,图像验证码识别模型依次由第一卷积层、第一池化层、第一密集块、第一过渡层、第二密集块、第二过渡层、第三密集块、第三过渡层、第四密集块、第二池化层、第一全连接层和若干个全连接层分支构成。
[0092]
本实施方式所述的一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0093]
存储器,用于存放计算机程序;
[0094]
处理器,用于执行存储器上所存放的程序时,实现上述实施方式中任一所述的方法步骤。
[0095]
本实施方式所述的一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任一所述的方法步骤。
[0096]
本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本发明描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0097]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disc,ssd))等。
[0098]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器
执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0099]
应注意,本技术实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0100]
以上对本发明所提出的一种基于densenet的字符型图像验证码识别方法、系统、设备以及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1