CN118072324A - 一种基于语义点选字元的验证码识别方法 - Google Patents
一种基于语义点选字元的验证码识别方法 Download PDFInfo
- Publication number
- CN118072324A CN118072324A CN202410493815.1A CN202410493815A CN118072324A CN 118072324 A CN118072324 A CN 118072324A CN 202410493815 A CN202410493815 A CN 202410493815A CN 118072324 A CN118072324 A CN 118072324A
- Authority
- CN
- China
- Prior art keywords
- character
- model
- recognition
- crnn
- characters
- 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.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 51
- 238000013507 mapping Methods 0.000 claims abstract description 31
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 23
- 239000013598 vector Substances 0.000 claims description 28
- 238000009877 rendering Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 14
- 125000006850 spacer group Chemical group 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 10
- 239000013589 supplement Substances 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000003930 cognitive ability Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
Landscapes
- Character Discrimination (AREA)
Abstract
本申请公开了一种基于语义点选字元的验证码识别方法,包括:构建通用检测模型;利用OCR识别数据以及字元‑图片映射集合构建crnn识别模型;对crnn识别模型输出结果进行裁剪得到字元特征重构bert基础语言模型;以锁定crnn识别模型的所有参数和解锁crnn识别模型最后一层的参数对bert语言模型进行二次训练;利用通用检测模型和目标crnn识别模型输出候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。本申请的有益效果:识别时能够适应各种格式背景的图片识别,提高模型之间关联参数的准确性,同时实现识别效率的提高,达到兼顾识别效率与识别准确性的效果。
Description
技术领域
本申请涉及验证码识别技术领域,尤其涉及一种基于语义点选字元的验证码识别方法。
背景技术
当今互联网时代,随着科技的不断进步,人工智能技术的广泛应用已经成为现实。在网络安全领域,为了防范恶意机器人和自动化程序的攻击,许多网站采用了点选验证码作为一种有效的安全措施。点选验证码通过要求用户在一组图像中选择特定的目标,以确认其为真实用户,成为保护网站免受自动化攻击的关键工具之一。点选验证码的背后是对人类智能的挑战,因为这项任务在图像识别和模式识别方面要求高度的认知能力。通过要求用户识别、定位并点击特定图像,点选验证码旨在检测用户的人类特征,因为相对于自动化程序,人类更容易理解图像中的内容并作出相应的反应。随着技术的不断发展,恶意自动化程序也在不断进化,试图规遍各种验证码的识别机制。因此,点选验证码的设计者们必须不断改进其算法,以确保其在防范自动化攻击方面的有效性。然而,点选验证码并非完美无缺,它也存在一些潜在的问题。有时,图像的质量或者排列方式可能使得用户难以正确完成验证,从而导致误判。
目前针对如图1所示点选元素的手段主要是检测到图中元素,然后再识别这个元素,最后根据语义模型来判断其顺序后再进行依次点选。此种方法存在的主要问题在于识别域非常大并且验证码的汉字干扰较大,很多时候模型无法识别覆盖场景的全部元素或者准确的识别元素。造成语义模型几乎不可用,从而点选识别率低下。同时模型迁移能力较弱,一环扣一环,如果验证码图片格式或者文本格式变化,需要重新迭代,造成资源极大浪费。
中国专利《一种点选验证码识别方法与系统》,公开号:CN 116049801 A,公开日:2023年05月02日,具体公开方法为:1)获取验证页面中的图片数据流;所述图片数据流中的信息包括目标图标图和待点击图标图;2)从图片数据流中提取目标图标图,然后对所述目标图标图进行图标分割,得到所述目标图标图所包含的各个目标图标及其对应的点选顺序;3)从所述图片数据流中提取待点击图标图,然后从所述待点击图标图中识别出各待点击图标;4)获取每一所述目标图标与每一所述待点击图标的相似度,然后基于相似度结果与匹配策略确定每一所述目标图标最佳匹配的待点击图标;5)根据所述目标图标的点选顺序和最佳匹配的待点击图标,依次对相应的待点击图标进行模拟点击,完整验证。该方案中通过识别待点击图标匹配相似度获得点选顺序和最佳匹配的待点击图标,然而并不适用于语义点选的验证码中,同时,相似度匹配过多依赖于目标图标与待点击图标的相似度,当提示词为汉字时而图片字体与提示词字体不符而难以识别的问题。
中国专利《一种点选验证码识别方法、装置和用户终端》,公开号:CN 108182437A,公开日:2020年07月03日,具体公开了:在验证码图片中,获取所有可选字符的定位信息,并获取验证码图片中包含可选字符的最小截图;对每个最小截图进行字符识别,得到字符概率矩阵;根据所述字符概率矩阵和定位信息确定可选字符中的目标字符对应的坐标位置。该方案通过字符概率矩阵和定位信息确定可选字符中的目标字符对应的坐标位置同样依赖于字符与汉字的识别结果,当字体或图片格式改变时需要重新进行迭代训练,适用范围低。
发明内容
本申请针对现有技术中验证码语义识别存在无法兼顾识别效率与识别准确性的问题,提供一种基于语义点选字元的验证码识别方法,通过回避直接识别汉字字符,直接利用OCR识别数据进行识别,在渲染过程中加入各种格式、背景的影响,使得识别时能够适应各种格式背景的图片识别,同时利用二次训练,在避免影响渲染训练结果的基础上,利用crnn识别模型最后一层参数与bert语言模型协同训练,提高模型之间关联参数的准确性,进一步提高识别准确性,利用字元特征重构bert基础语言模型以及第二次训练减少参数计算,实现识别效率的提高,达到兼顾识别效率与识别准确性的效果。
为实现上述技术目的,本申请提供的一种技术方案是,一种基于语义点选字元的验证码识别方法,包括如下步骤:S1:获取点选验证码集合,标注点选验证码集合中的元素位置,以元素位置以及目标检测算法构建通用检测模型;S2:根据每个元素位置对应的元素图片、字元构建字元-图片映射集合;S3:以常规字元预料生成OCR识别数据,利用OCR识别数据以及字元-图片映射集合构建crnn识别模型;S4:对crnn识别模型输出结果进行裁剪得到字元特征;S5:构建bert基础语言模型,基于字元特征重构bert基础语言模型;S6:锁定crnn识别模型的所有参数,对重构后的bert基础语言模型进行训练直至模型收敛得到bert语言优化模型;S7:解锁crnn识别模型最后一层的参数,协同训练crnn识别模型以及bert语言优化模型得到目标crnn识别模型以及目标bert语言模型;S8:获取当前待识别的验证码图片,利用通用检测模型和目标crnn识别模型输出候选点选数量以及候选字元,以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。通过前期对常规字元预料的渲染以及现有验证码canvos图的映射构建能够识别多种格式下图片以及字元的crnn识别模型,并以字元特征重构bert基础语言模型,执行二次训练,使得crnn识别模型与bert语言模型参数互相影响,协同输出结果更为准确,减少参数计算量,实现提高输出结果准确性的同时提高输出效率,既适用于语义验证码识别的复杂情况又适用于需要高效识别的环境,适用范围更广。
进一步的,所述以常规字元预料生成OCR识别数据包括:利用图形处理手段将常规字元预料渲染成图像;利用OCR工具识别对图像进行识别获得OCR识别结果;将图像和OCR识别结果作为OCR识别数据输出。
进一步的,所述以常规字元预料生成OCR识别数据还包括:
将常规字元预料划分为训练集和验证集;利用图形处理手段将常规字元预料渲染成图像,利用OCR工具识别对训练集图像进行识别;比较训练集图像与训练集,调整OCR工具参数,以调整后的OCR工具识别对验证集图像进行识别;比较验证集图像与验证集,调整渲染参数,以调整后的图形处理手段重新对常规字元预料进行渲染;利用调整后的OCR工具识别对渲染图像进行识别,将渲染图像和OCR识别结果作为OCR识别数据输出。
进一步的,所述对crnn识别模型输出结果进行裁剪得到字元特征包括:crnn识别模型根据截取的元素图片输出crnn识别模型输出结果;对crnn识别模型输出结果进行截取,去除间隔符以及重复字元,得到字元特征。
进一步的,所述对crnn识别模型输出结果进行截取包括:提取crnn识别模型输出结果中每个时间步长的预测向量;选择间隔符预测概率最低的时间步长进行截取。
进一步的,所述S8还包括:获取当前待识别的验证码图片,以通用检测模型对待识别的验证码图片进行截取输出切片;将切片输入至目标crnn识别模型输出候选点选数量以及候选字元;以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。
进一步的,所述以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果还包括:利用顺序算法输出符合候选点选数量的排列集合;以候选字元输入至目标bert语言模型进行语义匹配,输出字元特征向量;以字元特征向量按照排列集合计算相乘概率,以最大相乘概率的排列输出对应字元以及字元顺序作为语义匹配结果。
进一步的,所述S4还包括:获取存在缺省情况的字元,以存在缺省情况的字元与空白图片进行映射并赋予标记更新字元-图片映射集合。
进一步的,所述S8还包括:获取当前待识别的验证码图片,以通用检测模型对待识别的验证码图片进行截取输出切片;将切片输入至目标crnn识别模型输出候选点选数量以及候选字元;当候选字元中存在标记时,目标bert语言模型执行缺省概率计算,输出缺省字元特征向量补充至字元特征向量。
进一步的,所述S3中,还包括:若OCR识别数据中存在与字元-图片映射集合相匹配的字元,将该字元对应的渲染图片替换为字元-图片映射集合中的真实图片。
本申请的有益效果:通过crnn识别模型对点选验证码图片进行识别并裁剪得到仅有字元的特征即字元特征,进而构建bert基础语言模型,以字元特征替换bert基础语言模型的embedding层,简化bert基础语言模型,减少参数数量的同时以明确的特征进行特征反映提高模型的准确性,并利用锁定crnn识别模型所有参数和放开crnn识别模型最后一层的参数进行两阶段的训练,在第一阶段训练过程中,锁定了crnn识别模型所有参数使得在训练bert语言优化模型过程中不会干扰到crnn识别模型,实现bert语言模型学习到有效语言表示,而在第二阶段训练过程中,通过仅放开最后一层参数进行微调,可以减少过拟合的风险,同时最后一层更接近于输出结果,在微调模型参数以提高输出准确性的同时降低计算量以提高输出效率,以crnn识别模型与bert语言模型协同配合输出符合语义的语序以及字元,适配于性需要按照语义进行点选的验证码,且在验证码图片格式改变或文字改变时由于已在训练时提前进行渲染图片以及文字的各种形式,无需重新迭代即可识别,适用范围更广。
附图说明
图1为现有技术中语义点选验证码的示意图。
图2为本申请一种基于语义点选字元的验证码识别方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案以及优点更加清楚明白,下面结合附图和实施例对本申请作进一步详细说明,应当理解的是,此处所描述的具体实施方式仅是本申请的一种最佳实施例,仅用以解释本申请,并不限定本申请的保护范围,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图2所示,作为本申请的实施例一,一种基于语义点选字元的验证码识别方法,包括如下步骤:
S1:获取点选验证码集合,标注点选验证码集合中的元素位置,以元素位置以及目标检测算法构建通用检测模型;
S2:根据每个元素位置对应的元素图片、字元构建字元-图片映射集合;
S3:以常规字元预料生成OCR识别数据,利用OCR识别数据以及字元-图片映射集合构建crnn识别模型;
S4:对crnn识别模型输出结果进行裁剪得到字元特征;
S5:构建bert基础语言模型,基于字元特征重构bert基础语言模型;
S6:锁定crnn识别模型的所有参数,对重构后的bert基础语言模型进行训练直至模型收敛得到bert语言优化模型;
S7:解锁crnn识别模型最后一层的参数,协同训练crnn识别模型以及bert语言优化模型,得到目标crnn识别模型以及目标bert语言模型;
S8:获取当前待识别的验证码图片,利用通用检测模型和目标crnn识别模型输出候选点选数量以及候选字元,以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。
在本实施例中,根据每个元素位置截取对应的元素图片,并在元素图片上标注对应的字元,构建字元-图片映射集合。通过crnn识别模型对点选验证码图片进行识别并裁剪得到仅有字元的特征即字元特征,进而构建bert基础语言模型,以字元特征重构bert基础语言模型,简化bert基础语言模型,减少参数数量的同时以明确的特征进行特征反映提高模型的准确性,并利用固定crnn识别模型所有参数和放开crnn识别模型最后一层的参数进行两阶段的训练,在第一阶段训练过程中,固定了crnn识别模型所有参数使得在训练bert基础语言模型过程中不会干扰到crnn识别模型,实现bert基础语言模型学习到有效语言表示,而在第二阶段训练过程中,通过仅放开最后一层参数进行微调,可以减少过拟合的风险,同时最后一层更接近于输出结果,在微调模型参数以提高输出准确性的同时降低计算量以提高输出效率,以目标crnn识别模型与目标bert语言模型协同配合输出符合语义的语序以及字元,适配于性需要按照语义进行点选的验证码,且在验证码图片格式改变或文字改变时由于已在训练时提前进行渲染图片以及文字的各种形式,无需重新迭代即可识别,适用范围更广。
具体的,步骤S1还包括:
获取点选验证码集合,对点选验证码集合进行数据预处理;
以目标检测算法定义通用检测模型架构;
配置通用检测模型的训练参数,利用预处理后的点选验证码集合对通用检测架构权重进行训练,输出训练完成的通用检测模型。
其中,目标检测算法为yolov7算法。在另一些情况下,目标检测算法也可以是SSD、RetinaNet等算法。
在标注得到元素位置后,可以根据元素位置框选元素,即利用元素位置截取验证码图片中的元素,每个元素图片对应一个标注的字元,在本实施例中,字元为汉字,即标注截取的元素图片中的汉字,得到汉字-图片映射集合MAP_D,表示每个汉字对应于相对应图片的映射集合。
此时,常规字元预料为常规文字预料,以常规字元预料生成OCR识别数据包括:
利用图形处理手段将常规字元预料渲染成图像;
利用OCR工具识别对图像进行识别获得OCR识别结果;
将图像和OCR识别结果作为OCR识别数据输出。
通过公开数据集、新闻文章、电子书、网站等来源收集常规文本数据,对常规文本数据进行清洗和预处理,去除无关字符、标准化格式等,得到常规字元预料。图像处理手段可以是图形处理库如Pillow、OpenCV或渲染引擎如HTML/CSS渲染引擎、TeX渲染引擎等,也可以采用开源项目如有text_render。OCR工具可以是Tesseract、EasyOCR等。在本实施例中为了确保OCR识别数据的准确性,以常规字元预料生成OCR识别数据还包括:
将常规字元预料划分为训练集和验证集;
利用图形处理手段将常规字元预料渲染成图像,利用OCR工具识别对训练集图像进行识别获得第一识别结果;
比较第一识别结果与训练集,调整OCR工具参数,以调整后的OCR工具识别对验证集图像进行识别获得第二识别结果;
比较第二识别结果与验证集,调整渲染参数,以调整后的图形处理手段重新对常规字元预料进行渲染;
利用调整后的OCR工具识别对渲染图像进行识别获得OCR识别结果,将渲染图像和OCR识别结果作为OCR识别数据输出。
利用识别结果调整OCR工具参数以及渲染参数,避免因为参数误差造成的影响,提高后续模型构建的准确性。
进而,利用OCR识别数据以及字元-图片映射集合构建crnn识别模型还包括:
利用OCR识别数据以及字元-图片映射集合进行自适应采样训练构建crnn识别模型。
搭建一个包含卷积层、循环层和转录层的crnn模型,卷积层用于提取图像特征,循环层用于处理序列信息,转录层用于将循环层的输出转换为最终的文本序列。利用自适应采样策略根据字元在文本中的出现频率和识别难度调整下一个迭代中使用的样本大小或采样率,在训练迭代过程中调整模型参数输出crnn识别模型。
在本实施例中,字元为汉字,字元特征为汉字切片,此时,对crnn识别模型输出结果进行裁剪得到汉字切片包括:
crnn识别模型根据截取的元素图片输出crnn识别模型输出结果;
对crnn识别模型输出结果进行截取,去除间隔符以及重复文字,得到汉字切片。
以截取的元素图片为Img,crnn识别模型输出结果为crnn(Img),此时crnn(Img)为一个[N,M]的矩阵,N为最后输出的step个数,M为OCR识别字典大小。最后输出的step个数为对应于图片中字符的数量加上可能的额外位置(如空白、分隔符等),每个step对应于模型在图片上的一次“观察”或“识别”,可能是图片中的一个字符、字符的一部分,或者是字符之间的间隔。OCR识别字典大小为预先定义的字符集合的大小,包括所有可能的字符(字母、数字、符号等),即为本实施例中OCR识别数据以及字元-图片映射集合的大小。记字典为D_M,其中D_M[j]表示字典中第j个字。以间隔符的标号id为P,找出[N,M]这个矩阵中对应[N,P]数值最小的标号S,这时候记X=crnn(Img)[S]为单个元素图片的特征,X为一个M长度的向量。此时对X去除间隔符号位置维度处理,得到X’为实际最终的特征作为字元特征输出,其为一个M-1维向量。
以一张[48,48]像素的图片为例,crnn识别模型会把这个图映射成(48/8,N)的矩阵,48/8为每一步的step,N为字典个数。具体来说就是crnn模型会把图片以8像素“切分”,每一步预测字典中每个字以及间隔符的概率,这间隔符用表示。概率最高的就是该step的文字,以“文”和“文文”为例,“文”经过crnn最后预测后会变成“/>文文文/> ”将连接一起相同的汉字去重并且去掉间隔符后得到“文”,同理“文文”经过crnn最后预测会变成“文/>文/> ”,去重以及去掉间隔符变成“文文”。
由此,对crnn识别模型输出结果进行截取包括:
提取crnn识别模型输出结果中每个时间步长的预测向量;
选择间隔符预测概率最低的时间步长进行截取。
寻找[N,P]列中数值最小的行索引S,得到间隔符概率最小的位置,即汉字概率最大的位置,截取该向量进行去重以及间隔符去除,得到只包含字元即汉字的内容作为字元特征输出。
进而基于字元特征重构bert基础语言模型还包括:
以字元特征替换bert基础语言模型的embedding层,重构bert基础语言模型。
bert基础语言模型是通过对输入的文本进行双向的上下文编码,使得模型可以更好地理解文本的含义。Embedding层是深度学习中常用于处理文本或类别型数据的一层神经网络层。它可以将正整数(下标)转化为固定大小的向量,如词嵌入(Word Embedding)。在自然语言处理(NLP)任务中,Embedding层通常用于将单词或短语从词汇表映射到向量空间,其中语义上相似的单词在向量空间中的位置更接近。Embedding层通常需要大量的参数来学习将离散型数据映射到连续向量空间。本实施例中利用字元特征替换Embedding层,能够避免离散型数据映射到连续向量空间的学习,从而减少模型的总参数量。同时使用字元特征能使模型更容易理解,与Embedding层相比,字元特征更直接地反映了输入数据的某些方面,从而提高了模型的解释性,增加模型准确性的同时减少模型计算量。
对重构后的bert基础语言模型进行二次训练:
第一次训练时,锁定crnn识别模型的所有参数,对重构后的bert基础语言模型进行训练直至模型收敛得到bert语言优化模型;
第二次训练时,解锁crnn识别模型最后一层的参数,协同训练crnn识别模型最后一层的参数以及bert语言优化模型得到目标crnn识别模型以及目标bert语言模型。
第一次训练收敛后执行第二次训练。在第一次训练中,只更新bert基础语言模型的参数,而crnn识别模型的参数保持不变,避免在bert基础语言模型参数更新过程中干扰到crnn识别模型。待第一次训练收敛后,bert基础语言模型参数基本更新完成,此时,放开crnn识别模型最后一层的参数,协同训练crnn识别模型最后一层的参数以及bert语言优化模型,让crnn识别模型的最后一层能够更好地适应bert语言模型的输出,从而提高整个模型的性能。深度学习模型通常包含大量参数,如果一开始就尝试优化所有参数,特别是在数据有限的情况下,很容易发生过拟合。通过仅放开最后一层参数进行微调,可以减少过拟合的风险,由于不需要计算和存储这些固定参数的梯度,减少计算量和内存需求,同时crnn识别模型的其他层在预训练过程中可能已经学习到了有用的特征表示,在训练初期固定这些层的参数可以防止在优化过程中破坏这些已学习到的特征,仅在bert语言模型基础参数训练完成时,进行最后一层参数的微调以适应协同处理,提高输出结果的准确性。
在本实施例中,步骤S8还包括:
获取当前待识别的验证码图片,以通用检测模型对待识别的验证码图片进行截取输出切片;
将切片输入至目标crnn识别模型输出候选点选数量以及候选字元;
以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。
利用通用检测模型对待识别的验证码图片进行截取输出切片包括:
利用通用检测模型检测待识别的验证码图片中每个元素对应的元素位置;
根据每个元素位置进行截取输出切片。
通用检测模型检测待识别的验证码图片中每个元素对应的元素位置,得到元素位置集合[box1,box2,box3...],其中boxi=[x1,y1,x2,y2],x1为i元素相对于图片左上角的x坐标,y1为i元素相对于图片左上角的y坐标,x2为i元素相对于图片右下角的x坐标,y2为i元素相对于图片右下角的y坐标。根据坐标利用检测框大量截取验证码图片中的元素,作为多个切片输出,每个元素对应一个切片。
将切片输入至目标crnn识别模型后,目标crnn识别模型输出一个形状为[N,M]的矩阵,即每个元素表示在特定位置识别出特定字符的概率,选取间隔符概率最小的步长输出特征,并删除这个特征里的间隔符位置维度,得到切片对应的字元表达。进而利用顺序算法以及bert语言模型输出字元之间的关系和语义连贯性,得到最终满足需求语序的点选顺序以及字元。基于crnn识别模型与bert语言模型两阶段训练减少真实数据与渲染数据的分步差,以弥补训练时需要对数据进行渲染所带来的误差,同时利用字元特征替换bert语言模型的Embedding层减少参数计算量的同时以最能代表字符特征的子特征解释模型,提高输出效率的同时提高输出准确性。且在本实施例中利用ocr识别渲染后的图片,在渲染过程中能以不同字体、大小、颜色、背景、布局和图像质量增加数据的多样性,同时可以模拟不同条件下如噪声、模糊、扭曲等时字元的变化情况,回避直接识别汉字字符,在验证码图片格式变化或者文本格式变化的情况下依旧能够进行字元的识别,适用范围更广泛。
在本实施例中,顺序算法为枚举法,传入一张验证码图片P,利用通用检测模型得到切片cut_img_k,k为候选点选数量,将切片输入至crnn识别模型后得到x_k,假设需要点选的汉字个数为3个,利用枚举法得到有A(k,3)种情况,A(k,3)表示k个元素取3的全排列。按顺序依次传入bert语言模型。设k=a1,a2,a3,得到x_a1,x_a2,x_a3,记x_a1向量中数值最大的数值为x_a1_max,则最终每一种排列的概率为。找出所有排列中相乘概率最大的排列,按该排列作为语义匹配结果输出。在枚举法中,相乘概率最大的排列即为最优解,以相乘概率最大的排列作为语义匹配结果输出即为最符合语义情况的排列顺序。此时以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果还包括:
利用枚举法输出符合候选点选数量的排列集合;
以候选字元输入至目标bert语言模型进行语义匹配,输出字元特征向量;
以字元特征向量按照排列集合计算相乘概率,以最大相乘概率的排列输出对应字元以及字元顺序作为语义匹配结果。
字元特征向量即为语义匹配值最优解,在其余实施例中,顺序算法也可以是指派问题,可根据后候选点选数量进行选择。
作为本申请的实施例二,步骤S4还包括:
获取存在缺省情况的字元,以存在缺省情况的字元与空白图片进行映射并赋予标记更新字元-图片映射集合。
步骤S8还包括:
获取当前待识别的验证码图片,以通用检测模型对待识别的验证码图片进行截取输出切片;
将切片输入至目标crnn识别模型输出候选点选数量以及候选字元;
当候选字元中存在标记时,目标bert语言模型执行缺省概率计算,输出缺省字元特征向量补充至字元特征向量。
在本实施例中,考虑到某些字元在输入时会存在缺失或者屏蔽产生字元缺省的问题,将可能存在缺省问题的字元与空白图片进行映射,并赋予特殊标记,此时当获得提示词或者识别验证码图片时获得空白图片,目标crnn识别模型输出标记至目标bert语言模型,目标bert语言模型根据前后输入的字元进行语义匹配时,进行缺省概率计算,以上下语义进行缺省字元特征向量输出,如输入“中国人”,“国”字被屏蔽输入时,输入空白图,目标bert语言模型根据“中”“人”进行判断中间字的概率,以概率最大输出缺省字元特征向量,从而填充缺失字元。
但可能存在目标bert语言模型根据语义补偿的缺省字元并不属于需要点选的字元,出现匹配结果不准确的问题,此时步骤S8还包括:
将目标bert语言模型输出的语义匹配结果与字元-图片映射集合进行匹配;
若匹配存在空白图片,则以语义匹配结果输出点选字元以及对应点选顺序;
若匹配不存在空白图片,则以删除填充字元后的语义匹配结果输出点选字元以及对应点选顺序。
如“你好吗”和“你还好吗”均符合语义,若目标bert语言模型以“还”作为填充字元,就会出现点选不匹配的问题,通过与字元-图片映射集合进行匹配,当语义匹配结果中存在缺省字元,能输出空白图片,认为目标bert语言模型填充的字元确实为实际缺省的字元,但若未能输出空白图片,则认为目标bert语言模型填充的字元不为实际缺省的字元,进行删除。可以理解的是,通常出现这种情况,删除填充字元并不影响整个语句仍旧符合常规语义。当然也可以在匹配不存在空白图片后,重新进行语义匹配,此时并不计算缺省字元的特征向量。
在本实施例中,步骤S3中,还包括:
若OCR识别数据中存在与字元-图片映射集合相匹配的字元,将该字元对应的渲染图片替换为字元-图片映射集合中的真实图片。
以真实图片替换渲染图片,增加模型的泛化性,而在另一种实施例情况下,也可以将渲染图片与真实图片均作为该字元所映射的图片,使得模型能够适应各种格式下的字元。
在本实施例中,字元为汉字,但在其余实施例中,字元也可以是其余语言,如英文单词等。
在本申请中,通过前期对常规字元预料的渲染以及现有验证码canvos图的映射构建能够识别多种格式下图片以及字元的crnn识别模型,并以crnn识别模型的输出结果替换bert语言模型embedding层,执行二次训练,使得目标crnn识别模型与目标bert语言模型参数互相影响,协同输出结果更为准确,减少参数计算量,实现提高输出结果准确性的同时提高输出效率,既适用于语义验证码识别的复杂情况又适用于需要高效识别的环境,适用范围更广。
以上所述之具体实施方式为本申请一种基于语义点选字元的验证码识别方法的较佳实施方式,并非以此限定本申请的具体实施范围,本申请的范围包括并不限于本具体实施方式,凡依照本申请之形状、结构所作的等效变化均在本申请的保护范围内。
Claims (10)
1.一种基于语义点选字元的验证码识别方法,其特征在于:包括如下步骤:
S1:获取点选验证码集合,标注点选验证码集合中的元素位置,以元素位置以及目标检测算法构建通用检测模型;
S2:根据每个元素位置对应的元素图片、字元构建字元-图片映射集合;
S3:以常规字元预料生成OCR识别数据,利用OCR识别数据以及字元-图片映射集合构建crnn识别模型;
S4:对crnn识别模型输出结果进行裁剪得到字元特征;
S5:构建bert基础语言模型,基于字元特征重构bert基础语言模型;
S6:锁定crnn识别模型的所有参数,对重构后的bert基础语言模型进行训练直至模型收敛得到bert语言优化模型;
S7:解锁crnn识别模型最后一层的参数协同训练crnn识别模型以及bert语言优化模型得到目标crnn识别模型以及目标bert语言模型;
S8:获取当前待识别的验证码图片,利用通用检测模型和目标crnn识别模型输出候选点选数量以及候选字元,以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。
2.如权利要求1所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述以常规字元预料生成OCR识别数据包括:
利用图形处理手段将常规字元预料渲染成图像;
利用OCR工具识别对图像进行识别获得OCR识别结果;
将图像和OCR识别结果作为OCR识别数据输出。
3.如权利要求1所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述以常规字元预料生成OCR识别数据还包括:
将常规字元预料划分为训练集和验证集;
利用图形处理手段将常规字元预料渲染成图像,利用OCR工具识别对训练集图像进行识别获得第一识别结果;
比较第一识别结果与训练集,调整OCR工具参数,以调整后的OCR工具识别对验证集图像进行识别获得第二识别结果;
比较第二识别结果与验证集,调整渲染参数,以调整后的图形处理手段重新对常规字元预料进行渲染;
利用调整后的OCR工具识别对渲染图像进行识别获得OCR识别结果,将渲染图像和OCR识别结果作为OCR识别数据输出。
4.如权利要求1所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述对crnn识别模型输出结果进行裁剪得到字元特征包括:
crnn识别模型根据截取的元素图片输出crnn识别模型输出结果;
对crnn识别模型输出结果进行截取,去除间隔符以及重复字元,得到字元特征。
5.如权利要求4所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述对crnn识别模型输出结果进行截取包括:
提取crnn识别模型输出结果中每个时间步长的预测向量;
选择间隔符预测概率最低的时间步长进行截取。
6.如权利要求1所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述S8还包括:
获取当前待识别的验证码图片,以通用检测模型对待识别的验证码图片进行截取输出切片;
将切片输入至目标crnn识别模型输出候选点选数量以及候选字元;
利用顺序算法以及目标bert语言模型输出语义匹配结果,以语义匹配结果输出点选字元以及对应点选顺序。
7.如权利要求6所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述以候选点选数量以及候选字元作为目标bert语言模型的输入结合顺序算法输出语义匹配结果还包括:
利用顺序算法输出符合候选点选数量的排列集合;
以候选字元输入至目标bert语言模型进行语义匹配,输出字元特征向量;
以字元特征向量按照排列集合计算相乘概率,以最大相乘概率的排列输出对应字元以及字元顺序作为语义匹配结果。
8.如权利要求7所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述S4还包括:
获取存在缺省情况的字元,以存在缺省情况的字元与空白图片进行映射并赋予标记更新字元-图片映射集合。
9.如权利要求8所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述S8还包括:
获取当前待识别的验证码图片,以通用检测模型对待识别的验证码图片进行截取输出切片;
将切片输入至目标crnn识别模型输出候选点选数量以及候选字元;
当候选字元中存在标记时,目标bert语言模型执行缺省概率计算,输出缺省字元特征向量补充至字元特征向量。
10.如权利要求1所述的一种基于语义点选字元的验证码识别方法,其特征在于:
所述S3中,还包括:
若OCR识别数据中存在与字元-图片映射集合相匹配的字元,将该字元对应的渲染图片替换为字元-图片映射集合中的真实图片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410493815.1A CN118072324B (zh) | 2024-04-23 | 一种基于语义点选字元的验证码识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410493815.1A CN118072324B (zh) | 2024-04-23 | 一种基于语义点选字元的验证码识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118072324A true CN118072324A (zh) | 2024-05-24 |
CN118072324B CN118072324B (zh) | 2024-07-02 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090263019A1 (en) * | 2008-04-16 | 2009-10-22 | Asaf Tzadok | OCR of books by word recognition |
KR101377601B1 (ko) * | 2012-09-20 | 2014-03-25 | 주식회사 인지소프트 | 모바일 카메라를 이용한 자연 영상 다국어 문자 인식과 번역 시스템 및 방법 |
CN109033798A (zh) * | 2018-09-14 | 2018-12-18 | 北京金堤科技有限公司 | 一种基于语义的点选验证码识别方法及其装置 |
CN111062376A (zh) * | 2019-12-18 | 2020-04-24 | 厦门商集网络科技有限责任公司 | 基于光学字符识别与纠错紧耦合处理的文本识别方法 |
CN111737548A (zh) * | 2020-05-06 | 2020-10-02 | 苏宁金融科技(南京)有限公司 | 点选验证码识别方法、装置、计算机设备和存储介质 |
CN111783062A (zh) * | 2020-05-28 | 2020-10-16 | 苏宁金融科技(南京)有限公司 | 验证码识别方法、装置、计算机设备和存储介质 |
CN113297892A (zh) * | 2020-11-27 | 2021-08-24 | 上海交通大学 | 针对形近汉字的图像优化识别系统 |
CN114639106A (zh) * | 2022-01-26 | 2022-06-17 | 杭州摸象大数据科技有限公司 | 图文识别方法、装置、计算机设备及存储介质 |
CN115497097A (zh) * | 2022-08-30 | 2022-12-20 | 浙江工业大学 | 一种倾斜汉字点选验证码识别方法 |
CN117475034A (zh) * | 2023-10-31 | 2024-01-30 | 中国建设银行股份有限公司 | 海报生成方法、装置、电子设备及存储介质 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090263019A1 (en) * | 2008-04-16 | 2009-10-22 | Asaf Tzadok | OCR of books by word recognition |
KR101377601B1 (ko) * | 2012-09-20 | 2014-03-25 | 주식회사 인지소프트 | 모바일 카메라를 이용한 자연 영상 다국어 문자 인식과 번역 시스템 및 방법 |
CN109033798A (zh) * | 2018-09-14 | 2018-12-18 | 北京金堤科技有限公司 | 一种基于语义的点选验证码识别方法及其装置 |
CN111062376A (zh) * | 2019-12-18 | 2020-04-24 | 厦门商集网络科技有限责任公司 | 基于光学字符识别与纠错紧耦合处理的文本识别方法 |
CN111737548A (zh) * | 2020-05-06 | 2020-10-02 | 苏宁金融科技(南京)有限公司 | 点选验证码识别方法、装置、计算机设备和存储介质 |
CN111783062A (zh) * | 2020-05-28 | 2020-10-16 | 苏宁金融科技(南京)有限公司 | 验证码识别方法、装置、计算机设备和存储介质 |
CN113297892A (zh) * | 2020-11-27 | 2021-08-24 | 上海交通大学 | 针对形近汉字的图像优化识别系统 |
CN114639106A (zh) * | 2022-01-26 | 2022-06-17 | 杭州摸象大数据科技有限公司 | 图文识别方法、装置、计算机设备及存储介质 |
CN115497097A (zh) * | 2022-08-30 | 2022-12-20 | 浙江工业大学 | 一种倾斜汉字点选验证码识别方法 |
CN117475034A (zh) * | 2023-10-31 | 2024-01-30 | 中国建设银行股份有限公司 | 海报生成方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
张铮;王顺帆;董雷;: "基于深度学习的验证码识别", 湖北工业大学学报, no. 02, 15 April 2018 (2018-04-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Deng et al. | Image-to-markup generation with coarse-to-fine attention | |
CN112036167B (zh) | 数据处理方法、装置、服务器及存储介质 | |
US11782928B2 (en) | Computerized information extraction from tables | |
CN110490081B (zh) | 一种基于聚焦权重矩阵与变尺度语义分割神经网络的遥感对象解译方法 | |
WO2022051838A1 (en) | Method and system for identifying citations within regulatory content | |
CN111291195A (zh) | 一种数据处理方法、装置、终端及可读存储介质 | |
CN112905795A (zh) | 文本意图分类的方法、装置和可读介质 | |
CN114596566B (zh) | 文本识别方法及相关装置 | |
CN113762269B (zh) | 基于神经网络的中文字符ocr识别方法、系统及介质 | |
CN111507330A (zh) | 习题识别方法、装置、电子设备及存储介质 | |
CN114612921B (zh) | 表单识别方法、装置、电子设备和计算机可读介质 | |
CN110674642B (zh) | 一种用于含噪稀疏文本的语义关系抽取方法 | |
Sharma et al. | [Retracted] Optimized CNN‐Based Recognition of District Names of Punjab State in Gurmukhi Script | |
CN118072324B (zh) | 一种基于语义点选字元的验证码识别方法 | |
CN112307749A (zh) | 文本检错方法、装置、计算机设备和存储介质 | |
CN117152768A (zh) | 用于扫读笔的离线识别方法及系统 | |
CN118072324A (zh) | 一种基于语义点选字元的验证码识别方法 | |
CN113268740B (zh) | 一种网站系统的输入约束完备性检测方法 | |
CN112287072A (zh) | 一种多维互联网文本风险数据识别方法 | |
CN117494688B (zh) | 表单信息抽取方法、装置、设备及存储介质 | |
KR102628553B1 (ko) | 설비제원 인식 장치 및 방법 | |
Krutko et al. | Automatic Recovery of Corrupted Font Encoding in PDF Documents Using CNN-based Symbol Recognition with Language Model | |
CN117932596A (zh) | 消息还原方法、装置、电子设备和存储介质 | |
CN117951389A (zh) | 一种基于深度学习的非法网站识别方法 | |
Gelbukh et al. | Combining sources of evidence to resolve ambiguities in toponym recognition in cartographic maps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |