一种文字验证码识别通过方法

文档序号:36647872发布日期:2024-01-06 23:31阅读:21来源:国知局
一种文字验证码识别通过方法

本发明涉及图像识别,尤其涉及一种文字验证码识别通过方法。


背景技术:

1、随着人工智能技术的兴起,尤其是机器自主决策行动智能程度的大幅提升,验证码技术作为防止人机泛滥、保护用户权益的重要手段,被广泛应用在工程实践中。典型的验证码为数字与字母的混合排列,在背景图片中加入噪点增强识别难度,而复杂的验证码则会采用中文字符图片识别的方式,将汉字进行染色和扭曲,以提高识别难度。

2、验证码的设计目的是,起到人机验证的功能,保护一般用户的数据安全与隐私;而验证码的破解技术,则是针对验证码形式发现缺陷并通过破解。验证码的设计和验证码的破解是验证码技术的两个研究方向。针对当下复杂的验证码,需设计相应的破解技术;而随着验证码破解技术的进步,需改进验证码的计设。验证码的设计和验证码的破解的研究,虽不同,却交织着相互协作,共同促进人机验证设计技术的进步。

3、典型的数字字母验证码由于字符数量少,结构特征明显,可以采用多种基本的机器学习方法识别并破解。而文字验证码由于中文字符数量众多,经过变形后形状各异,计算机难以甄别不同字符之间的区别。也就是说,现有验证码的破解技术,停留于数字字母验证码的甄别阶段,还不能对文字验证码进行快速破解,针对文字验证码的破解技术需进一步研究提升。


技术实现思路

1、本发明的目的在于提供一种文字验证码识别通过方法。

2、实现本发明目的的技术方案是:一种文字验证码识别通过方法,用于识别文字验证码图像内的文字并通过验证,文字验证码图像包括提示文字图像和待点击验证文字图像两部分,其中,提示文字图像中包含规范排版的提示文字,该提示文字用以提示验证码图像中需点击验证的文字是哪些文字;待点击验证文字图像中包含非规范排版的待点击验证文字,该待点击验证文字包括但不仅包括需点击验证的文字;

3、所述文字验证码识别通过方法包括以下步骤:

4、s1. 获取文字验证码图像,根据文字验证码图像的布局,将文字验证码图像划分为提示文字图像和待点击验证文字图像两部分;

5、s2. 对提示文字图像进行处理;处理步骤包括:

6、s2.1. 步骤s1后,依据提示文字图像中规范排版的提示文字的位置、宽度和间隔,将提示文字图像中的提示文字分割为数个单个提示文字图像,数个单个提示文字图像的数量与提示文字中的文字数量相同;

7、s2.2. 对分割的单个提示文字图像进行降噪处理,得到提示文字清晰图像;

8、s2.3. 得到提示文字清晰图像后,按提示文字图像中提示文字的排版顺序,对得到的提示文字清晰图像依次进行存储;

9、s3. 对待点击验证文字图像进行处理;处理步骤包括:

10、s3.1. 步骤s1后,根据待点击验证文字图像中待点击验证文字的数目,确定聚类数目,采用k均值聚类算法对待点击验证文字图像进行聚类,得到数个簇;

11、s3.2. 在待点击验证文字图像上添加网络,根据各簇所覆盖的网格位置,确定待点击验证文字图像中待点击验证文字的所在区域;

12、s3.3. 根据待点击验证文字图像中待点击验证文字的所在区域,将待点击验证文字图像中待点击验证文字分割出为各数个单个待点击验证文字图像;

13、s4. 对步骤s2.3存储的提示文字清晰图像进行变形,得到各不同形状的提示文字变形图像;

14、s5. 构建卷积神经网络模型;在构建卷积神经网络模型后,将步骤s4中得到的各提示文字变形图像作为该卷积神经网络模型的测试数据集,导入到该卷积神经网络模型内进行训练、测试,得到可以拟合数据分布的卷积神经网络模型;

15、s6. 在步骤s5得到可以拟合数据分布的卷积神经网络模型后,将步骤s3.3分割出的各单个待点击验证文字图像导入到该可以拟合数据分布的卷积神经网络模型内,识别出目标验证文字图像,而后在文字验证码图像的待点击验证文字图像中相应位置自动点击目标验证文字图像;目标验证文字图像为文字验证码图像的待点击验证文字图像中与提示文字图像中的提示文字相同的文字。

16、进一步地,步骤s2.2中,对分割的单个提示文字图像进行降噪处理的过程包括以下步骤:

17、s2.2.1. 对单个提示文字图像进行二值化处理,使单个提示文字图像变为黑底白字的图像;

18、s2.2.2. 对单个提示文字图像进行二值化处理后,再对黑底白字的单个提示文字图像进行腐蚀膨胀,平滑图像边缘,得到提示文字清晰图像。本发明文字验证码识别通过方法,二值化处理主要用于减少背景颜色对单个提示文字图像中提示文字清晰度的影响;腐蚀膨胀操作则用于减少单个提示文字图像中提示文字边缘的噪点,使单个提示文字图像中提示文字边缘的轮廓可更清楚,提示文字的体形更清晰,更利于识别。本发明文字验证码识别通过方法,步骤s2.2.2中,对黑底白字的单个提示文字图像进行腐蚀膨胀时,结构元素大小可以为3×3,也可以为4×4,或是其它,相比其它,结构元素大小为3×3时,即可满足清晰度要求,腐蚀膨胀时的计算量也不会太大。

19、进一步地,步骤s2.2.2中,对黑底白字的单个提示文字图像进行腐蚀膨胀时,结构元素大小为3×3。本发明文字验证码识别通过方法,步骤s2.2.2中,对黑底白字的单个提示文字图像进行腐蚀膨胀时,结构元素大小可以为3×3,也可以为4×4,或是其它,相比其它,结构元素大小为3×3时,即可满足清晰度要求,腐蚀膨胀时的计算量也不会太大。

20、进一步地,步骤s3.1中,颜色聚类数目比待点击验证文字图像中待点击验证文字的数目多一个。

21、进一步地,步骤s3.2中划分待点击验证文字图像中待点击验证文字的所在区域的过程包括以下步骤:

22、s3.2.1. 将待点击验证文字图像划分为网络,设定待点击验证文字宽度的最大值为kmax和宽度的值小值为kmin、高度的最大值为dmax和高度的值小值为dmin,将宽度小于kmin或高度小于dmin的簇当作噪声舍弃;将宽度大于kmax或高度大于dmax的簇进一步分割,分割步骤为,从簇的左边缘向右边缘、上边缘向下边缘算起,宽度达到kmax、高度达到dmax作为一个簇,余下的另作为一个簇;

23、s3.2.2. 根据簇内处于边缘的网格的位置,圈定各簇在像素坐标上的边缘,沿着每个簇的边缘,划分出每个簇的长方形的边缘区域,该长方形的边缘区域为待点击验证文字的所在区域。本发明文字验证码识别通过方法,如上所述,可通过宽度和高度的大小来划分簇;也可在确定各簇中聚类中心颜色数值的位置后,以其为圆心,径向向外扩展一定范围来划分划分簇;由于字体为长方形结构,故相比确定圆心,径向向外画圆的划分,通过宽度和高度的大小的划分更接近长方,划分也更为准确。

24、进一步地,还包括步骤s7. 建立ocr模型;建立ocr模型后,步骤s4为,通过步骤s7建立的ocr模型对步骤s2.3存储的提示文字清晰图像进行识别,如若识别成功,则直接加载ocr模型内样本数据集中与该提示文字相对应的文字图像的各字体,对各字体进行变形,得到各不同形状的提示文字变形图像;如若识别不成功,则直接使用步骤s2.3存储的提示文字清晰图像,对步骤s2.3存储的提示文字清晰图像进行变形,得到各不同形状的提示文字变形图像;

25、建立ocr模型的过程包括以下步骤:

26、s7.1. 对步骤s2.2.2存储的提示文字清晰图像进行累积,并人工对累积的提示文字清晰图像进行标记;

27、s7.2. 对标记好的提示文字清晰图像进行仿射变换;

28、s7.3. 将标记好的提示文字清晰图像及其仿射变换的文字图像制作成样本数据集,形成ocr模型。本发明文字验证码识别通过方法,通过建立ocr模型,用以识别提示文字清晰图像,使通过ocr模型的识别判断后,识别成功的提示文字清晰图像可加各种字体,即可得到更多的变形,生成的测试数据集可更为丰富。本发明文字验证码识别通过方法,一方面,在每次的识别过程中,通过对步骤s2.2.2存储的提示文字清晰图像进行累积标记,来建立并不断扩大ocr模型;另一方面,通过对标记好的提示文字清晰图像进行仿射变换,来对ocr模型进行优化,使ocr模型更为完善。本发明文字验证码识别通过方法,一次标记下,经过仿射变换,可得到若干文字图像,扩充样本数据集,其构建ocr模型的效率高。

29、进一步地,步骤s7.3中的样本数据集包括正样本数据集和负样本数据集,其中,正样本数据集内的文字图像为被人工注标为可知的文字;负样本数据集内的文字图像为被人工注标为未知的文字。设置下,通过步骤s7建立的ocr模型对步骤s2.3存储的提示文字清晰图像进行识别时,既判断是否为正样本数据集内的文字,还判断否为正样本数据集内的文字。相比仅判断是否为正样本数据集内的文字,其通过两重判断,可大大减小提示文字清晰图像的识别错差。

30、进一步地,步骤s4中的变形操作包括放射变换和随机裁剪。

31、进一步地,步骤s4中的放射变换包括放缩、扭曲倾斜、旋转、平移。

32、进一步地,步骤s5中构建的卷积神经网络模型具有叠置的数层,每层为卷积层、池化层、稠密层和dropout层中的任一种。

33、进一步地,步骤s5中构建的卷积神经网络模型具有叠置的九层,其中,第一层为卷积核大小是4×4、数目为128个的卷积层;第二层为池化核大小是3×3的池化层;第三层为卷积核大小是3×3、数目为128个的卷积层;第四层为池化核大小是3×3的池化层;第五层为卷积核大小是2×2、数目为128个的卷积层;第六层为池化核大小是2×2的池化层;第七层为具有256个神经元的稠密层;第八层为具有64个神经元的稠密层;第九层为丢失概率为0.2的dropout层。

34、本发明文字验证码识别通过方法,通过将文字验证码图像划分为提示文字图像和待点击验证文字图像后,分别对提示文字图像和待点击验证文字图像进行处理,使得由提示文字图像可获得提示文字清晰图像,由待点击验证文字图像可获得单个待点击验证文字图像;在此基础上,构建的卷积神经网络模型;构建的卷积神经网络模型后,将提示文字清晰图像变形后得到的各提示文字变形图像作为该卷积神经网络模型的测试数据集,导入到该卷积神经网络模型内进行训练、测试,得到可以拟合数据分布的卷积神经网络模型;之后,将单个待点击验证文字图像导入到该可以拟合数据分布的卷积神经网络模型内,即可识别出目标验证文字图像。

35、本发明文字验证码识别通过方法,不仅可识别出验证码,通过验证,且其识别过程中,采用卷积神经网络模型进行识别,卷积神经网络模型的形成方法成熟,操作简单,使用门槛等;另,其每识别一次,即构建一次卷积神经网络模型,也就是说,每次识别均重新构建卷积神经网络模型,每次构建的卷积神经网络模型的测试数据集为单次别时数个提示文字清晰图像变形后的提示文字变形图像,测试数据集的数量少,训练、测试时计算量少的同时,将单个待点击验证文字图像导入到可以拟合数据分布的卷积神经网络模型内进行识别时,由提示文字变形图像作为测试数据集的识别过程目标明确,识别的计算量也小,而这大大提高了文字验证码识别通过的速度,使得文字验证码可被快速识别出;同时,每次识别后,当次构建的卷积神经网络模型后面均不再使用,无需保存,识别程序所占的内存空间小。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1