基于DFS和CNN的验证码提取识别方法技术

技术编号:35740444 阅读:8 留言:0更新日期:2022-11-26 18:43
本发明专利技术公开了一种基于DFS和CNN的验证码提取识别方法,包含:收集验证码图片集;对若干验证码图片进行预处理;通过DFS算法从预处理后到的验证码图片中提取出第一字符;将提取出的第一字符输入搭建好的CNN神经网络识别模型中对其进行训练;获取待识别验证码图片;对待识别验证码图片进行预处理;通过DFS算法从预处理后到的待识别验证码图片中提取出第二字符;将提取出的第二字符输入训练好的CNN神经网络识别模型中得到识别结果。本发明专利技术的基于DFS和CNN的验证码提取识别方法中,DFS算法专注于在源节点之前探索相邻节点,对所有节点进行穷举搜索,通过前进和回溯到达同一节点,有助于以更短的时间和更高的精度处理输入的验证码。证码。证码。

【技术实现步骤摘要】
基于DFS和CNN的验证码提取识别方法


[0001]本专利技术涉及一种基于DFS和CNN的验证码提取识别方法。

技术介绍

[0002]验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。验证码破解中最重要的是从验证码方案中提取字符,而当前打破验证码的算法通常是偏静态的例如利用Log Gabor滤波器来从四个方向的验证码图像中提取字符成分等,只适用于一些特定类型的验证码。
[0003]现有算法的主要局限性在于它们在检测验证码方案中的微小变化方面既不是通用的,也不是鲁棒的,此方法只适用于识别相同类型的验证码。当今的验证码已经添加了各种抵抗机制例如噪声电弧、复杂的背景干扰等。

技术实现思路

[0004]本专利技术提供了一种基于DFS和CNN的验证码提取识别方法解决上述提到的技术问题,具体采用如下的技术方案:
[0005]一种基于DFS和CNN的验证码提取识别方法,包含:
[0006]收集验证码图片集,验证码图片集包含若干验证码图片;
[0007]对若干验证码图片进行预处理;
[0008]通过DFS算法从预处理后到的验证码图片中提取出第一字符;
[0009]将提取出的第一字符输入搭建好的CNN神经网络识别模型中对其进行训练;
[0010]获取待识别验证码图片;
[0011]对待识别验证码图片进行预处理;
[0012]通过DFS算法从预处理后到的待识别验证码图片中提取出第二字符;
[0013]将提取出的第二字符输入训练好的CNN神经网络识别模型中得到识别结果。
[0014]进一步地,对若干验证码图片进行预处理的具体方法为:
[0015]删除验证码图片集中的异常数据;
[0016]将PNG格式的验证码图片转换为JPEG格式;
[0017]将验证码图片转换为灰度图;
[0018]对验证码图片按照字符进行分割。
[0019]进一步地,删除验证码图片集中的异常数据的具体方法为:
[0020]将包含高度扭曲字符的验证码图片从验证码图片集中删除;
[0021]将包含英文字母和数字以外的字符的验证码图片从验证码图片集中删除。
[0022]进一步地,对若干验证码图片进行预处理的具体方法还包含:
[0023]减少验证码图片的像素值将验证码图片中的字符进行暗化。
[0024]进一步地,对若干验证码图片进行预处理的具体方法还包含:
[0025]将验证码图片的尺寸调整为预设尺寸。
[0026]进一步地,将提取出的第一字符输入搭建好的CNN神经网络识别模型中对其进行训练之前,对输入数据进行标记。
[0027]进一步地,对输入数据进行标记的具体方法为:
[0028]在对验证码图片进行预处理之后,再根据验证码图片的内容对其进行重命名。
[0029]进一步地,对输入数据进行标记的具体方法为:
[0030]对从预处理后到的验证码图片中提取出的第一字符进行单独标记。
[0031]进一步地,CNN神经网络识别模型包含卷积层、ReLu层、池化层和全连接层。
[0032]进一步地,收集验证码图片集的具体方法为:
[0033]通过Python Selenium库创建了一个网络抓取器,通过网络抓取器下载不同类型的验证码图片。
[0034]本专利技术的有益之处在于所提供的基于DFS和CNN的验证码提取识别方法,基于DFS和基于CNN的模型来识别验证码方案中提取的字符。DFS算法是一种递归算法,它专注于在源节点之前探索相邻节点,它包括对所有节点进行穷举搜索,通过前进和回溯到达同一节点,有助于以更短的时间和更高的精度处理输入的验证码。
附图说明
[0035]图1是本专利技术的一种基于DFS和CNN的验证码提取识别方法的示意图。
具体实施方式
[0036]以下结合附图和具体实施例对本专利技术作具体的介绍。
[0037]如图1所示为本申请的一种基于DFS和CNN的验证码提取识别方法,包含以下步骤:S1:收集验证码图片集,验证码图片集包含若干验证码图片。S2:对若干验证码图片进行预处理。S3:通过DFS算法从预处理后到的验证码图片中提取出第一字符。S4:将提取出的第一字符输入搭建好的CNN神经网络识别模型中对其进行训练。S5:获取待识别验证码图片。S6:对待识别验证码图片进行预处理。S7:通过DFS算法从预处理后到的待识别验证码图片中提取出第二字符。S8:将提取出的第二字符输入训练好的CNN神经网络识别模型中得到识别结果。本申请的基于DFS和CNN的验证码提取识别方法,基于DFS和基于CNN的模型来识别验证码方案中提取的字符。DFS算法是一种递归算法,它专注于在源节点之前探索相邻节点,它包括对所有节点进行穷举搜索,通过前进和回溯到达同一节点,有助于以更短的时间和更高的精度处理输入的验证码。以下具体介绍上述步骤。
[0038]对于步骤S1:收集验证码图片集,验证码图片集包含若干验证码图片。
[0039]首先,使用Python Selenium库创建了一个网络抓取工具,用于下载不同类型的验证码。
[0040]对于步骤S2:对若干验证码图片进行预处理。
[0041]在本申请中,对若干验证码图片进行预处理的具体方法为:
[0042]删除验证码图片集中的异常数据。删除验证码图片集中的异常数据的具体方法为:将包含高度扭曲字符的验证码图片从验证码图片集中删除,将包含英文字母和数字以外的字符的验证码图片从验证码图片集中删除。
[0043]将PNG格式的验证码图片转换为JPEG格式。为了处理噪声,首先将各种便携式网络图形(PNG)转换为联合图像专家组(JPEG),JPEG图像的尺寸较小。
[0044]将验证码图片转换为灰度图。相对于处理彩色图像,灰度图图像处理能够提高模型的识别速度。
[0045]对验证码图片按照字符进行分割,使得每个字母和数字都是可以训练神经网络的单独图像。
[0046]作为一种优选的实施方式,对若干验证码图片进行预处理的具体方法还包含:
[0047]减少验证码图片的像素值将验证码图片中的字符进行暗化,使字符更明显更暗。从而便于后续的进一步处理。
[0048]进一步地,对若干验证码图片进行预处理的具体方法还包含:
[0049]将验证码图片的尺寸调整为预设尺寸。
[0050]神经网络模型具有预定的输入大小,在本申请中,将验证码图片的尺寸调整为(20*20*1)的统一大小,稍后将由神经模型使用。
[0051]对于步骤S3:通过DFS算法从预处理后到的验证码图片中提取出第一字符。
[0052]DFS算法即深度优先本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DFS和CNN的验证码提取识别方法,其特征在于,包含:收集验证码图片集,所述验证码图片集包含若干验证码图片;对若干所述验证码图片进行预处理;通过DFS算法从预处理后到的所述验证码图片中提取出第一字符;将提取出的第一字符输入搭建好的CNN神经网络识别模型中对其进行训练;获取待识别验证码图片;对所述待识别验证码图片进行预处理;通过DFS算法从预处理后到的所述待识别验证码图片中提取出第二字符;将提取出的第二字符输入训练好的CNN神经网络识别模型中得到识别结果。2.根据权利要求1所述的基于DFS和CNN的验证码提取识别方法,其特征在于,所述对若干所述验证码图片进行预处理的具体方法为:删除所述验证码图片集中的异常数据;将PNG格式的所述验证码图片转换为JPEG格式;将所述验证码图片转换为灰度图;对所述验证码图片按照字符进行分割。3.根据权利要求2所述的基于DFS和CNN的验证码提取识别方法,其特征在于,所述删除所述验证码图片集中的异常数据的具体方法为:将包含高度扭曲字符的所述验证码图片从所述验证码图片集中删除;将包含英文字母和数字以外的字符的所述验证码图片从所述验证码图片集中删除。4.根据权利要求2所述的基于DFS和CNN的验证码提取识别方法,其特征在于,所述对若干所述验证码图片进行预处理的具体方法还包含:减少...

【专利技术属性】
技术研发人员:蒋晓宁戚迦南刘伟
申请(专利权)人:浙江工商大学
类型:发明
国别省市:

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

1