CN117556406A - 识别模型训练方法以及图片验证码识别方法 - Google Patents
识别模型训练方法以及图片验证码识别方法 Download PDFInfo
- Publication number
- CN117556406A CN117556406A CN202311575660.8A CN202311575660A CN117556406A CN 117556406 A CN117556406 A CN 117556406A CN 202311575660 A CN202311575660 A CN 202311575660A CN 117556406 A CN117556406 A CN 117556406A
- Authority
- CN
- China
- Prior art keywords
- character
- picture
- verification code
- module
- phrase
- 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 175
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000012549 training Methods 0.000 title claims abstract description 53
- 238000001514 detection method Methods 0.000 claims abstract description 42
- 230000003321 amplification Effects 0.000 claims abstract description 6
- 238000003199 nucleic acid amplification method Methods 0.000 claims abstract description 6
- 238000013434 data augmentation Methods 0.000 claims description 28
- 230000009466 transformation Effects 0.000 claims description 24
- 238000012163 sequencing technique Methods 0.000 claims description 22
- 238000005520 cutting process Methods 0.000 claims description 12
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003416 augmentation Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 102100032202 Cornulin Human genes 0.000 description 1
- 101000920981 Homo sapiens Cornulin Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/191—Design or setup of recognition systems or techniques; Extraction of features in feature space; Clustering techniques; Blind source separation
- G06V30/19147—Obtaining sets of training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Character Discrimination (AREA)
Abstract
本申请实施例公开了一种识别模型训练方法以及图片验证码识别方法,其中,识别模型训练方法包括:将图片验证码输入至初始识别模型;通过字符检测模块提取图片验证码中的各字符对应的第一字符图片;通过数据增广模块调整各第一字符图片的特征,得到第二字符图片;通过字符识别模块对各第二字符图片进行分组,得到至少一个词组;通过词组排序模块对各词组进行排序,得到图片验证码对应的验证码;将验证码与图片验证码的标识验证码进行比较,得到比较结果,并根据比较结果对初始识别模型的参数进行调整,得到训练完成的识别模型。采用本申请实施例,可以提高识别模型的泛化能力。
Description
技术领域
本申请涉及图片识别领域,具体涉及一种识别模型训练方法以及图片验证码识别方法。
背景技术
随着互联网的快速发展,网站验证机制中验证码技术的应用越来越广泛。验证码是一种区分用户是计算机还是人的公共全自动程序。其中,基于文本的验证码由于容易被识别而逐步淡出历史舞台,取而代之的是图像验证码。图像验证码通常包含字母、数字和图形,并添加杂点、噪声、变形等,使其难以被破解。
图片验证码作为一种图形验证码,其安全性相对较高,因而被广泛使用。目前,图片验证码的识别方法主要基于模板匹配。而基于模板匹配的方法需要收集大量图片作为模板样本,但收集模板样本十分耗时,导致该方法的泛化能力较差。
发明内容
本申请提供了一种识别模型训练方法以及图片验证码识别方法,可以提高识别模型的泛化能力。
在本申请的第一方面,本申请提供了一种识别模型训练方法,包括:
将图片验证码输入至初始识别模型,所述初始识别模型包括字符检测模块、数据增广模块、字符识别模块以及词组排序模块;
通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片;
通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片;
通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
通过所述词组排序模块对各所述词组进行排序,得到所述图片验证码对应的验证码;
将所述验证码与所述图片验证码的标识验证码进行比较,得到比较结果,并根据所述比较结果对所述初始识别模型的参数进行调整,得到训练完成的识别模型。
通过采用上述技术方案,构建一个包含字符检测模块、数据增广模块、字符识别模块和词组排序模块的初始识别模型,通过调整模型参数进行多轮训练,不断优化模型,最终得到一个对复杂变形验证码具有较强适应能力和泛化能力的识别模型。在应用阶段,该识别模型可以直接对输入的图片验证码进行端到端识别,无需人工收集大量样本模板,避免了模板样本收集的复杂工作,降低了应用难度。且识别模型对验证码的字体、变形、背景等变化具有很强的适应性,当验证码样式改变时,该模型可以快速适应新样式的验证码,无需重新收集模板样本进行更新,大大提高了识别效率。
可选的,所述通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片,包括:
通过所述字符检测模块识别所述图片验证码中的各字符,并根据各所述字符在所述图片验证码中的位置,对所述图片验证码进行裁剪,得到各所述第一字符图片。
通过采用上述技术方案,先用字符检测模块识别每个字符在验证码图片中的位置坐标,再进行裁剪,相比直接裁剪字符图片,可以更精确地定位每个字符的区域,确保裁剪得到的第一字符图片包含完整的字符信息。由于定位到了每个字符在原图中的具体坐标,这样裁剪出来的第一字符图片保留了验证码图片中该字符的所有视觉特征信息,包括字形、颜色、背景等,为后续识别模块准确获取字符类别信息奠定了基础。该裁剪方式过滤掉了图像中非字符的背景区域,也减少了识别模块的输入规模,降低了识别难度。通过先识别坐标再裁剪的流程,使输出的第一字符图片质量更高,包含完整单字符信息,有利于提高后续识别模块的效果。
可选的,所述通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片,包括:
通过所述数据增广模块对各所述第一字符图片进行仿射变换、透视变换以及随机颜色变换,得到与各所述第一字符图片特征不同的所述第二字符图片。
通过采用上述技术方案,仿射变换可以改变字符形状,增加各种变形的字符样本,提高模型对字符形状变化的适应力。透视变换可以增加不同视角、缩放的字符样本,提高模型对视角变化的适应力。随机颜色变换可以得到颜色特征不同的字符样本,提高模型对颜色变化的适应力。这三种图像增广技术都能扩展字符样本的视觉特征,不改变字符类别属性,生成了更多特征各异的第二字符图片。数据增广模块生成的第二字符图片覆盖了验证码字符可能出现的各种形状、视角、颜色的变化情况,提高了模型对验证码多样性的适应力。大量增加了字符样本的数量和多样性,缓解了样本不均衡问题,增强了模型的泛化能力。为识别模块提供了更丰富和全面的训练数据,提高了模型的识别准确率。
可选的,所述通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组,包括:
通过所述字符识别模块确定所述各所述第二字符图片位于所述图片验证码的坐标,所述坐标为各所述第二字符图片的边界框的中心点,根据各所述坐标,对各所述第二字符图片进行分组,得到至少一个所述词组。
通过采用上述技术方案,字符识别模块先确定每个第二字符图片在验证码中的坐标,即字符边界框中心点的坐标。根据坐标位置,可以更准确地判断字符之间的逻辑关系,将位置相邻、语义相关的字符划分到同一个词组。相比直接根据顺序分组,该方法充分利用了字符的空间信息,提高了分组的精确性,避免了可能的错误分组。分组结果更加准确可靠,确保后续词组排序的输入质量,从而提高整体验证码识别效果。该方法为词组排序提供了语义和位置双重信息,增强了排序模块的理解能力。
可选的,所述坐标包括横坐标和纵坐标,所述根据各所述坐标,对各所述第二字符图片进行分组,得到至少一个所述词组,包括:
若存在至少两个所述第二字符图片左右相邻,则计算两个左右相邻的第二字符图片的横坐标之差,将所述横坐标之差小于或等于第一阈值的第二字符图片确定为一个词组;
若存在至少两个所述第二字符图片上下相邻,则计算两个上下相邻的第二字符图片的纵坐标之差,将所述纵坐标之差小于或等于第二阈值的第二字符图片确定为一个词组。
通过采用上述技术方案,根据两个字符中心坐标的横坐标差值,可以判断它们是否左右相邻,如果差值小于第一阈值,则确定它们在水平方向上相邻,属于一个词组。根据两个字符中心坐标的纵坐标差值,可以判断它们是否上下相邻,如果差值小于第二阈值,则确定它们在垂直方向上相邻,属于一个词组。利用了验证码图像中字符的空间分布规律,根据坐标关系判断字符的相邻程度,进行词组划分。该技术手段将相邻程度高的字符合理地划分到了同一词组中,提高了分组的精确度。相比直接顺序分组,充分利用了图像平面坐标的信息,使得分组结果更加准确可靠。
可选的,所述通过所述词组排序模块对各所述词组进行排序,得到所述图片验证码对应的验证码,包括:
通过所述词组排序模块确定各所述词组的文本序列,根据所述文本序列确定各所述词组的序号,根据所述词组的序号输出各词组对应的字符,得到所述验证码。
通过采用上述技术方案,词组排序模块先解析出每个词组对应的文本序列。再根据语义流畅度判断词组的最终位置序号。根据为每个词组确定的序号,顺序输出每个词组包含的字符串。相比直接输出排序词组,该方法通过序号的明确对应,使排序结果更具确定性,每个词组的位置清晰可定。序号的引入避免了直接排序可能带来的歧义,提高了排序结果的正确性。
在本申请的第二方面提供了一种图片验证码识别方法,包括:
将待识别的图片验证码输入至识别模型,所述识别模型为通过上述识别模型训练方法训练得到;
通过字符检测提取所述待识别的图片验证码中的各字符对应的第一字符图片;
通过字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
通过词组排序模块对各所述词组进行排序,输出所述待识别的图片验证码对应的验证码。
通过采用上述技术方案,利用了预先通过第一方面训练得到的验证码识别模型实现了对输入验证码图片的自动化端到端识别,无需人工参与,提高了识别效率。通过字符检测、识别、分组和排序模块的协同,将验证码图片转换为可验证的文本信息,完成了从图像到文本的转换,实现了对图片验证码的智能识别。相比单独的字符识别,该方法通过词组分组与排序,充分考虑了多字符词组的语义关系,确保了识别结果的整体语义正确性。借助预训练模型的泛化能力,该方法可适应不同验证码样式,无需针对每个样式人工调整模板,降低了识别难度。该验证码识别方法无需复杂的样本收集和训练,直接利用预训练模型即可实现识别,大大降低了实际应用难度。
在本申请的第三方面提供了一种识别模型训练系统,包括:
图片验证码输入模块,用于将所述图片验证码输入至初始识别模型,所述初始识别模型包括字符检测模块、数据增广模块、字符识别模块以及词组排序模块;
第一字符图片生成模块,用于通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片;
第二字符图片生成模块,用于通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片;
词组划分模块,用于通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
验证码生成模块,用于通过所述词组排序模块对各所述词组进行排序,输出所述图片验证码对应的验证码;
识别模型训练模块,用于将所述验证码与所述图片验证码的标识验证码进行比较,得到比较结果,并根据所述比较结果对所述初始识别模型的参数进行调整,得到训练完成的识别模型。
在本申请的第四方面提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
在本申请的第五方面提供了一种电子设备,包括:处理器、存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
综上所述,本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
通过采用本申请技术方案,构建一个包含字符检测模块、数据增广模块、字符识别模块和词组排序模块的初始识别模型,通过调整模型参数进行多轮训练,不断优化模型,最终得到一个对复杂变形验证码具有较强适应能力和泛化能力的识别模型。在应用阶段,该识别模型可以直接对输入的图片验证码进行端到端识别,无需人工收集大量样本模板,避免了模板样本收集的复杂工作,降低了应用难度。且识别模型对验证码的字体、变形、背景等变化具有很强的适应性,当验证码样式改变时,该模型可以快速适应新样式的验证码,无需重新收集模板样本进行更新,大大提高了识别效率。
附图说明
图1是本申请实施例提供的一种识别模型训练方法的流程示意图;
图2是本申请实施例提供的一种图片验证码识别方法的流程示意图;
图3是本申请实施例提供的一种识别模型训练系统的结构示意图;
图4是本申请实施例提供的一种电子设备的结构示意图。
附图标记说明:400、电子设备;401、处理器;402、通信总线;403、用户接口;404、网络接口;405、存储器。
具体实施方式
为了使本领域的技术人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
在本申请实施例的描述中,“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供了一种识别模型训练方法。在一个实施例中,请参考图1,图1是本申请实施例提供的一种识别模型训练方法的流程示意图,该方法可以依赖于计算机程序实现,可依赖于单片机实现,也可运行于基于冯诺依曼体系的识别模型训练系统上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。具体的,该方法可以包括以下步骤:
步骤101:将图片验证码输入至初始识别模型,初始识别模型包括字符检测模块、数据增广模块、字符识别模块以及词组排序模块。
为了训练一个能够自动识别图片验证码的模型,首先需要构建一个初始识别模型,该初始识别模型包含字符检测模块、数据增广模块、字符识别模块和词组排序模块,以实现对验证码中的字符进行检测、识别和理解排序。
其中,字符检测模块由卷积神经网络等构成,可采用已有的检测模型如Faster R-CNN等。字符检测模块主要用于接收验证码图片作为输入,通过模型预测将每个字符位置检测出来,得到每个字符的图像区域。
数据增广模块包含多种图像增广技术,如仿射变换、透视变换、颜色变化等。数据增广模块主要用于通过增广技术生成更多数量和样式的字符图片,增强模型对字符的泛化能力。
字符识别模块由卷积神经网络等构成,可采用已有的识别模型如CRNN等。字符识别模块主要用于通过模型预测识别每个字符,得到每个字符的类别信息。
词组排序模块包含定位字符位置和自然语言处理两部分。词组排序模块的主要用于接收字符类别和位置信息,将字符组合成词组;利用自然语言处理,理解词组语义,最后输出排序后的验证码文本。
步骤102:通过字符检测模块提取图片验证码中的各字符对应的第一字符图片。
具体地,将验证码图片输入到字符检测模块,字符检测模块使用卷积神经网络等模型对整张验证码图片进行全图扫描,通过对象检测技术,预测出验证码图片中每个字符的位置,得到每个字符所在区域的坐标。然后根据坐标信息,从验证码图片中截取每个字符所在的图像,即裁剪出包括该字符在内的第一字符图片。
经过字符检测模块的处理,验证码图片被切分为多个只包含单个字符的第一字符图片。每个第一字符图片保留了原验证码图片中该字符的所有视觉特征信息,包括字形、颜色、背景等,为后续识别模块准确获取字符类别信息奠定基础。同时,过滤掉了图像中非字符的背景区域,也减少了识别模块的输入规模。
通过字符检测模块的运用,验证码图片被切分为包含单个字符的第一字符图片,这为识别每个验证码字符提供了直接且完整的图像源,也简化了识别难度,提高了识别效率。字符检测模块的使用符合验证码识别的整体流程和模型设计思路,为后续实现验证码识别任务提供了必要的图像输入。
在上述实施例的基础上,作为一种可选的实施例,步骤101中:通过字符检测模块提取图片验证码中的各字符对应的第一字符图片这一步骤具体还可以包括以下步骤:
通过字符检测模块识别图片验证码中的各字符,并根据各字符所在图片验证码中的位置,对图片验证码进行裁剪,得到各第一字符图片。
具体地,字符检测模块内部的实现可以分为两个步骤:字符识别和图片裁剪。首先,字符检测模块使用卷积神经网络等对验证码图片进行预测,识别出图片中的每个字符,得到每个字符在验证码图片中的具体位置坐标。
其次,根据识别出的每个字符的位置坐标,对验证码图片进行裁剪以获取字符图像。具体来说,可以设定每个字符位置坐标为其所在区域的中心点,然后根据中心点坐标及一定的裁剪范围,从验证码图片中截取包含该中心点的图片区域,即得到只包含该字符的第一字符图片。
经过以上两个步骤,验证码图片被切分为多个只包含单个字符的第一字符图片。每个第一字符图片保留了原验证码中该字符的字形、颜色、背景等完整信息。这样,不仅定位了每个字符的位置,也获取了字符的图像特征,为后续识别字符类别提供了完善的图像源。
相比直接裁剪字符图像,该实施例通过识别坐标再裁剪的方式,可以更精确地提取每个字符的视觉信息,提高第一个图像质量,从而有利于后续识别模块的识别效果,使得整个验证码识别流程更加完整。
步骤103:通过数据增广模块调整各第一字符图片的特征,得到第二字符图片。
在获取验证码图片中的各个第一字符图片后,下一步是通过数据增广模块对第一字符图片进行处理,得到更多具有不同特征的第二字符图片。之所以进行数据增广,是因为在实际验证码中,同一字符的字形、颜色、背景等可能变化很大,如果仅依赖有限的第一字符图片,识别模块的泛化能力会较弱。
具体地,数据增广模块中包含多种图像增广技术,可以对各个第一字符图片进行操作。例如,可使用仿射变换来改变字符的形状;使用透视变换来改变视角;使用颜色变换来改变字符的颜色特征等。经过不同程度的图像扰动,可得到多个从视觉上不同于原图的第二字符图片。
通过数据增广,可大量增加字符样本的数量,并丰富样本的多样性。这使得识别模块在训练时见过更多字符特征,对各种复杂场景具备更好的适应性,增强模型的泛化能力。同时也缓解了样本不均衡问题。最后,数据增广模块输出大量增广后的第二字符图片,为识别模块的训练提供更丰富的数据源。
在上述实施例的基础上,作为一种可选的实施例,步骤103中:通过数据增广模块调整各第一字符图片的特征,得到第二字符图片这一步骤,还可以包括以下步骤:
通过数据增广模块对各第一字符图片进行仿射变换、透视变换以及随机颜色变换,得到与各第一字符图片特征不同的第二字符图片。
数据增广模块对第一字符图片进行增广的目的是获取更多具有不同视觉特征的第二字符图片,增强模型的泛化能力。具体来说,可采用以下几种图像变换技术进行增广:
(1)仿射变换:通过调整图像的旋转、缩放、错切参数,使字符出现形状扭曲,增加各种变形的字符样本。
(2)透视变换:改变图像的透视视角,使字符呈现出不同角度、缩放的效果,增加视角变化的字符样本。
(3)颜色变换:随机调整图像的色调、饱和度、对比度等参数,得到色彩特征不同的字符样本。
上述图像增广技术都不会改变字符的类别属性,只是扩展其视觉特征的多样性。具体实施时,可将各种变换技术以一定概率随机应用于第一字符图片,生成更多第二字符图片。
经过数据增广模块的处理,一个第一字符图片可衍生出多种视觉特征不同的第二字符图片。这提供了更丰富、全面的字符样本资源,使识别模块在训练时见过更多复杂场景,对验证码字符的多样性变化具备更强的适应能力。达到提高模型泛化性能的效果。
步骤104:通过字符识别模块对各第二字符图片进行分组,得到至少一个词组。
在得到多个经过数据增广的第二字符图片后,下一步是通过字符识别模块对各个第二字符图片进行识别和分组,以形成完整的词组。之所以进行字符识别和分组,是因为验证码文本通常由多个字符构成,需要识别每个字符具体是什么,才能进行后续的词组排序操作。
具体地,字符识别模块使用卷积神经网络等对输入的每个第二字符图片进行识别,判断该字符属于哪个类别,比如字母a或数字5等。接着,字符识别模块会定位每个识别出来的字符在原始验证码图片中的坐标位置。根据字符之间的相对位置关系,可以判断哪些字符属于一个词组。例如,横向相邻的字符很可能属于同一个词,这些字符就可被分为一个词组。
最终,字符识别模块输出每组词组包含的识别结果,即每个词组由哪些类别的字符组成。通过字符识别模块的运用,验证码图片中的文本信息被提取并重新组织为一个个词组,方便后续对词组排序进行语义理解。
在上述实施例的基础上,作为一种可选的实施例,步骤104中:通过字符识别模块对各第二字符图片进行分组,得到至少一个词组这一步骤,具体还可以包括以下步骤:
通过字符识别模块确定各第二字符图片位于图片验证码的坐标,坐标为各第二字符图片的边界框的中心点,根据各坐标,对各第二字符图片进行分组,得到至少一个词组。
具体地,字符识别模块会预测出每个第二字符图片的边界框,该边界框包含了字符的位置和大小信息。然后可以选择边界框的中心点,作为该字符在验证码图片中的坐标位置。
在得到每个字符的类别标签及坐标位置后,字符识别模块会判断坐标位置相邻的字符可能属于同一个词组。例如,两个字符的中心坐标纵向距离较小,则说明它们上下相邻,属于一个词组;如果中心坐标横向距离小,则说明它们左右相邻,属于一个词组。
经过判断,字符识别模块可以更准确地将坐标位置相邻、逻辑上相关的字符划分到同一个词组中。相比直接根据字符顺序分组,该实施例通过明确字符坐标信息,提高了分组的精确性,避免了可能的错误分组。这对后续的词组排序识别非常重要。同时,坐标信息也为后续的验证码点击提供了依据。
在一种可行的实施方式中,作为一种可选的实施例,若存在至少两个第二字符图片左右相邻,则计算两个左右相邻的第二字符图片的横坐标之差,将横坐标之差小于或等于第一阈值的第二字符图片确定为一个词组。
在实际验证码中,属于同一个词组的字符通常会出现在图像中的左右相邻位置。因此,可以根据字符之间的横向坐标距离,来判断它们是否属于一个词组。
具体地,字符识别模块在得到每个第二字符图片的坐标后,会计算左右相邻两个字符的横坐标差值。如果两个字符的横坐标差小于等于预设的第一阈值,则可以判定这两个左右相邻字符属于同一个词组。这是因为,同一个词组内的字符其中心坐标横向距离不会太大,设置一个阈值可以有效地将左右邻近的字符区分开来。通过计算坐标差值进行判断,可以更精确地将左右相邻、语义上相关的字符划分到同一个词组中。
该可选实施例提供了一个根据字符横坐标关系进行词组划分的确定性规则。它利用了验证码图片中字符水平方向的位置信息,使词组划分更加准确,为后续排序识别提供了支持。此外,该规则也易于编码实现,能够很好地辅助字符识别模块进行词组的提取。
在另一种可行的实施方式中,作为一种可选的实施例,若存在至少两个第二字符图片上下相邻,则计算两个上下相邻的第二字符图片的纵坐标之差,将纵坐标之差小于或等于第二阈值的第二字符图片确定为一个词组。
在实际验证码中,同一个词组的字符也可能出现在图像中的上下相邻位置。因此,还可以根据字符之间的纵向坐标距离,来判断它们是否属于一个词组。
具体地,字符识别模块在得到每个第二字符图片的坐标后,会计算上下相邻两个字符的纵坐标差值。如果两个字符的纵坐标差小于等于预设的第二阈值,则可以判定这两个上下相邻字符属于同一个词组。
同一个词组内的字符其中心坐标纵向距离也不会太大,设置一个阈值可以有效地将上下邻近的字符区分开来。通过计算坐标差值进行判断,同样可以准确地将上下相邻、语义相关的字符划分到同一个词组中。
该可选实施例提供了一个根据字符纵坐标关系进行词组判定的确定性规则。它利用了验证码图片中字符垂直方向的位置信息,使词组划分更全面准确,为后续排序识别提供了支持。此外,该规则易于编码实现,能够很好地辅助字符识别模块进行词组的提取。
步骤105:通过词组排序模块对各词组进行排序,得到图片验证码对应的验证码。
具体地,词组排序模块会首先分析每个词组包含的字符类别,确定词组的文本序列。然后,词组排序模块使用预训练语言模型等自然语言处理技术,分析各个词组的语义信息,判断不同词组组合成句子的流畅度,计算各种组合顺序的概率。系统会选择一个语义通顺、概率最高的词组顺序作为结果。
最终,词组排序模块会输出排序后的词组顺序,即验证码图片所包含的文本信息。相较单个字符识别,词组排序更能确保识别结果的语义正确性,是判断验证码文本信息的关键一步。通过字符检测、识别、分组和排序的协同操作,验证码图像终于被转换成了可供验证的文本信息。
在上述实施例的基础上,作为一种可选的实施例,步骤105中:通过词组排序模块对各词组进行排序,得到图片验证码对应的验证码这一步骤,具体还可以包括以下步骤:
通过词组排序模块确定各词组的文本序列,根据文本序列确定各词组的序号,根据词组的序号输出各词组对应的字符,得到验证码。
具体地,词组排序模块会确定每个词组包含的字符类别,解析出每个词组对应的文本序列,即每个词组代表的字符串信息。其次,词组排序模块会计算各个词组序列组合成句子的概率,Determine每个词组的最终位置序号。例如,根据语义流畅度判断“hello”的序号为1,“world”的序号为2。根据为每个词组确定的序号,词组排序模块会输出排序后的词组。也就是按照序号顺序,输出每个词组包含的字符串。最终拼接成完整的验证码文本信息。
上述确定序号再输出的方式,使排序结果更具确定性,每个词组的位置序号清晰可定。相比直接输出排序词组,这种实施例方法可以更准确地得出验证码文本信息。同时,为后续验证码验证提供了词组点击顺序参考。
步骤106:将验证码与图片验证码的标识验证码进行比较,得到比较结果,并根据比较结果对初始识别模型的参数进行调整,得到训练完成的识别模型。
具体地,将模型识别出的验证码与对应的人工标注验证码进行比对。如果两者完全一致,则说明该样本识别准确。若不一致,则记录识别错误的样本。
统计全部样本的识别准确率,若存在一定误识率,则需要定位错误主要出现在哪个模块,如字符检测失误,识别错误等。然后,针对模型的弱点进行优化。例如增大字符检测模块的训练迭代轮数,改进识别算法,增强语言模型的理解能力等。通过调整相关模块的模型结构、算法和模型参数,进行新一轮的训练。经过多轮训练优化后,模型识别错误率逐步降低,各模块的综合效果不断提升,最终得到准确识别验证码的识别模型。
上述实施例对识别模型训练方法进行了说明,在上述实施例的基础上,请参照图2,图2为本申请实施例提供的一种图片验证码识别方法的流程示意图,该方法的实施原理与上述特征识别模型的训练方法大致相同,具体内容不做过多赘述。具体的,该图片验证码识别方法可以包括步骤201至步骤204,如下:
步骤201:将待识别的图片验证码输入至识别模型,识别模型为通过上述识别模型训练方法进行训练后得到的模型。
步骤202:通过字符检测提取待识别的图片验证码中的各字符对应的第一字符图片。
步骤203:通过字符识别模块对各第二字符图片进行分组,得到至少一个词组。
步骤204:通过词组排序模块对各词组进行排序,输出待识别的图片验证码对应的验证码。
参照图3,图3位本申请实施例提供的一种识别模型训练系统的结构示意图,本申请还提供了一种识别模型训练系统,包括:
图片验证码输入模块,用于将所述图片验证码输入至初始识别模型,所述初始识别模型包括字符检测模块、数据增广模块、字符识别模块以及词组排序模块;
第一字符图片生成模块,用于通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片;
第二字符图片生成模块,用于通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片;
词组划分模块,用于通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
验证码生成模块,用于通过所述词组排序模块对各所述词组进行排序,输出所述图片验证码对应的验证码;
识别模型训练模块,用于将所述验证码与所述图片验证码的标识验证码进行比较,得到比较结果,并根据所述比较结果对所述初始识别模型的参数进行调整,得到训练完成的识别模型。
在上述实施例的基础上,作为一种可选的实施例,第一字符图片生成模块,还用于通过所述字符检测模块识别所述图片验证码中的各字符,并根据各所述字符在所述图片验证码中的位置,对所述图片验证码进行裁剪,得到各所述第一字符图片。
在上述实施例的基础上,作为一种可选的实施例,第二字符图片生成模块,还用于通过所述数据增广模块对各所述第一字符图片进行仿射变换、透视变换以及随机颜色变换,得到与各所述第一字符图片特征不同的所述第二字符图片。
在上述实施例的基础上,作为一种可选的实施例,词组划分模块,还用于通过所述字符识别模块确定所述各所述第二字符图片位于所述图片验证码的坐标,所述坐标为各所述第二字符图片的边界框的中心点,根据各所述坐标,对各所述第二字符图片进行分组,得到至少一个所述词组。
在上述实施例的基础上,作为一种可选的实施例,词组划分模块,还用于若存在至少两个所述第二字符图片左右相邻,则计算两个左右相邻的第二字符图片的横坐标之差,将所述横坐标之差小于或等于第一阈值的第二字符图片确定为一个词组;若存在至少两个所述第二字符图片上下相邻,则计算两个上下相邻的第二字符图片的纵坐标之差,将所述纵坐标之差小于或等于第二阈值的第二字符图片确定为一个词组。
在上述实施例的基础上,作为一种可选的实施例,验证码生成模块,还用于通过所述词组排序模块确定各所述词组的文本序列,根据所述文本序列确定各所述词组的序号,根据所述词组的序号输出各词组对应的字符,得到所述验证码。
需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置和方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种计算机存储介质,计算机存储介质可以存储有多条指令,指令适于由处理器加载并执行如上述实施例的识别模型训练方法以及图片验证码识别方法,具体执行过程可以参照所示实施例的具体说明,在此不进行赘述。
本申请还公开一种电子设备。参照图4,图4是本申请实施例的公开的一种电子设备的结构示意图。该电子设备400可以包括:至少一个处理器401,至少一个网络接口404,用户接口403,存储器405,至少一个通信总线402。
其中,通信总线402用于实现这些组件之间的连接通信。
其中,用户接口403可以包括显示屏(Display)接口、摄像头(Camera)接口,可选用户接口403还可以包括标准的有线接口、无线接口。
其中,网络接口404可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器401可以包括一个或者多个处理核心。处理器401利用各种接口和线路连接整个服务器内的各个部分,通过运行或执行存储在存储器405内的指令、程序、代码集或指令集,以及调用存储在存储器405内的数据,执行服务器的各种功能和处理数据。可选的,处理器401可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器401可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面图和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器401中,单独通过一块芯片进行实现。
其中,存储器405可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器405包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器405可用于存储指令、程序、代码、代码集或指令集。存储器405可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及的数据等。存储器405可选的还可以是至少一个位于远离前述处理器401的存储装置。参照图4,作为一种计算机存储介质的存储器405中可以包括操作系统、网络通信模块、用户接口模块以及一种识别模型训练方法以及图片验证码识别方法的应用程序。
在图4所示的电子设备400中,用户接口403主要用于为用户提供输入的接口,获取用户输入的数据;而处理器401可以用于调用存储器405中存储一种识别模型训练方法以及图片验证码识别方法的应用程序,当由一个或多个处理器401执行时,使得电子设备400执行如上述实施例中一个或多个所述的方法。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必需的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几种实施方式中,应该理解到,所披露的装置,可通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践真理的公开后,将容易想到本公开的其他实施方案。
本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
Claims (10)
1.一种识别模型训练方法,其特征在于,包括:
将图片验证码输入至初始识别模型,所述初始识别模型包括字符检测模块、数据增广模块、字符识别模块以及词组排序模块;
通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片;
通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片;
通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
通过所述词组排序模块对各所述词组进行排序,得到所述图片验证码对应的验证码;
将所述验证码与所述图片验证码的标识验证码进行比较,得到比较结果,并根据所述比较结果对所述初始识别模型的参数进行调整,得到训练完成的识别模型。
2.根据权利要求1所述的识别模型训练方法,其特征在于,所述通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片,包括:
通过所述字符检测模块识别所述图片验证码中的各字符,并根据各所述字符在所述图片验证码中的位置,对所述图片验证码进行裁剪,得到各所述第一字符图片。
3.根据权利要求1所述的识别模型训练方法,其特征在于,所述通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片,包括:
通过所述数据增广模块对各所述第一字符图片进行仿射变换、透视变换以及随机颜色变换,得到与各所述第一字符图片特征不同的所述第二字符图片。
4.根据权利要求1所述的识别模型训练方法,其特征在于,所述通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组,包括:
通过所述字符识别模块确定所述各所述第二字符图片位于所述图片验证码的坐标,所述坐标为各所述第二字符图片的边界框的中心点,根据各所述坐标,对各所述第二字符图片进行分组,得到至少一个所述词组。
5.根据权利要求4所述的识别模型训练方法,其特征在于,所述坐标包括横坐标和纵坐标,所述根据各所述坐标,对各所述第二字符图片进行分组,得到至少一个所述词组,包括:
若存在至少两个所述第二字符图片左右相邻,则计算两个左右相邻的第二字符图片的横坐标之差,将所述横坐标之差小于或等于第一阈值的第二字符图片确定为一个词组;
若存在至少两个所述第二字符图片上下相邻,则计算两个上下相邻的第二字符图片的纵坐标之差,将所述纵坐标之差小于或等于第二阈值的第二字符图片确定为一个词组。
6.根据权利要求1所述的识别模型训练方法,其特征在于,所述通过所述词组排序模块对各所述词组进行排序,得到所述图片验证码对应的验证码,包括:
通过所述词组排序模块确定各所述词组的文本序列,根据所述文本序列确定各所述词组的序号,根据所述词组的序号输出各词组对应的字符,得到所述验证码。
7.一种图片验证码识别方法,其特征在于,包括:
将待识别的图片验证码输入至识别模型,所述识别模型为通过权利要求1-6中任意一项所述的识别模型训练方法训练得到;
通过字符检测提取所述待识别的图片验证码中的各字符对应的第一字符图片;
通过字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
通过词组排序模块对各所述词组进行排序,输出所述待识别的图片验证码对应的验证码。
8.一种识别模型训练系统,其特征在于,所述系统包括:
图片验证码输入模块,用于将所述图片验证码输入至初始识别模型,所述初始识别模型包括字符检测模块、数据增广模块、字符识别模块以及词组排序模块;
第一字符图片生成模块,用于通过所述字符检测模块提取所述图片验证码中的各字符对应的第一字符图片;
第二字符图片生成模块,用于通过所述数据增广模块调整各所述第一字符图片的特征,得到第二字符图片;
词组划分模块,用于通过所述字符识别模块对各所述第二字符图片进行分组,得到至少一个词组;
验证码生成模块,用于通过所述词组排序模块对各所述词组进行排序,输出所述图片验证码对应的验证码;
识别模型训练模块,用于将所述验证码与所述图片验证码的标识验证码进行比较,得到比较结果,并根据所述比较结果对所述初始识别模型的参数进行调整,得到训练完成的识别模型。
9.一种电子设备,其特征在于,包括处理器、存储器、用户接口及网络接口,所述存储器用于存储指令,所述用户接口和网络接口用于给其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如权利要求1-6或7中任意一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令,当所述指令被执行时,执行如权利要求1-6或7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311575660.8A CN117556406A (zh) | 2023-11-23 | 2023-11-23 | 识别模型训练方法以及图片验证码识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311575660.8A CN117556406A (zh) | 2023-11-23 | 2023-11-23 | 识别模型训练方法以及图片验证码识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117556406A true CN117556406A (zh) | 2024-02-13 |
Family
ID=89810654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311575660.8A Pending CN117556406A (zh) | 2023-11-23 | 2023-11-23 | 识别模型训练方法以及图片验证码识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117556406A (zh) |
-
2023
- 2023-11-23 CN CN202311575660.8A patent/CN117556406A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112434721A (zh) | 一种基于小样本学习的图像分类方法、系统、存储介质及终端 | |
CN111582241A (zh) | 视频字幕识别方法、装置、设备及存储介质 | |
CN111858843B (zh) | 一种文本分类方法及装置 | |
CN111860525B (zh) | 一种适用于端子排的自底向上光学字符识别方法 | |
CN112418224B (zh) | 一种基于机器学习的通用ocr的训练数据生成系统及方法 | |
CN113657274B (zh) | 表格生成方法、装置、电子设备及存储介质 | |
CN110751606B (zh) | 一种基于神经网络算法的泡沫图像处理方法及系统 | |
CN112541443B (zh) | 发票信息抽取方法、装置、计算机设备及存储介质 | |
CN109189965A (zh) | 图像文字检索方法及系统 | |
CN114187595A (zh) | 基于视觉特征和语义特征融合的文档布局识别方法及系统 | |
CN113205047A (zh) | 药名识别方法、装置、计算机设备和存储介质 | |
CN113486664A (zh) | 文本数据可视化分析方法、装置、设备及存储介质 | |
CN117437647B (zh) | 基于深度学习和计算机视觉的甲骨文字检测方法 | |
CN113283432A (zh) | 图像识别、文字排序方法及设备 | |
CN111738252B (zh) | 图像中的文本行检测方法、装置及计算机系统 | |
CN113673528B (zh) | 文本处理方法、装置、电子设备和可读存储介质 | |
CN115995092A (zh) | 图纸文字信息提取方法、装置、设备 | |
CN112084103A (zh) | 界面测试方法、装置、设备和介质 | |
CN117556406A (zh) | 识别模型训练方法以及图片验证码识别方法 | |
CN115661904A (zh) | 数据标注和域适应模型训练方法、装置、设备及介质 | |
CN112560849B (zh) | 基于神经网络算法的文理分割方法及系统 | |
CN112395834B (zh) | 基于图片输入的脑图生成方法、装置、设备及存储介质 | |
CN114926842A (zh) | 东巴象形文字识别方法及装置 | |
CN112329389B (zh) | 一种基于语义分割与禁忌搜索的汉字笔画自动提取方法 | |
CN115937843B (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 |