CN108171229A - 一种空心粘连验证码的识别方法及*** - Google Patents
一种空心粘连验证码的识别方法及*** Download PDFInfo
- Publication number
- CN108171229A CN108171229A CN201711443181.5A CN201711443181A CN108171229A CN 108171229 A CN108171229 A CN 108171229A CN 201711443181 A CN201711443181 A CN 201711443181A CN 108171229 A CN108171229 A CN 108171229A
- Authority
- CN
- China
- Prior art keywords
- gray level
- image
- level image
- identifying code
- character
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
- G06V10/225—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on a marking or identifier characterising the area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- 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/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Character Input (AREA)
Abstract
本发明涉及一种空心粘连验证码的识别方法及***,通过对空心粘连验证码的原始图像进行图像预处理——转换为灰度图像、去除干扰部分、去除空白区域,位置纠正处理、单字符切割处理、降维处理和利用数据模型实现识别,使得本发明不仅能够适用于只具有字符空心和字符将存在粘连的特点的简约型空心粘连验证码的识别,还能够适用于具有字符大小不一致、存在干扰线、字符具有多种颜色、字符出现旋转等特点的复杂型空心粘连验证码的识别。故本发明不仅能够应用于简约型空心粘连验证码的识别,还能应用于复杂型空心粘连验证码的识别,并提高对空心粘连验证码的识别准确性和识别效率,从而提高了用户通行效率和体验。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种空心粘连验证码的识别方法及***。
背景技术
验证码是一种区分用户是计算机还是人的公共全自动程序,可以防止恶意破解密码、刷票、论坛灌水等,有效防止某个黑客对某个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。而随着互联网技术的发展,利用验证码实现验证通行已被很多网站应用,故验证码的识别已广泛出现在大众视野。其中,空心粘连验证码的识别比传统的实心验证码的识别具有更大的难度,因为,空心验证码的一个重要特点是使用轮廓连接成空心字符,对于粘连的字符,粘连的实心字符会对人眼识别产生干扰,而空心字符的识别则减少了对人眼识别的干扰。故利用空心粘连字符实现验证识别,更有利于人眼的准确识别,但是,由于空心粘连字符目前还未被广泛应用于验证码的识别中,机器对空心粘连字符的识别体系还未成熟,也即机器还未能准确识别空心粘连字符,经常在用户输入的字符与空心粘连字符一致时,机器会产生误判,导致用户需要重新输入验证字符,影响用户的通行效率和体验。
发明内容
为解决上述现有技术的缺点和不足,本发明提供了一种空心粘连验证码的识别方法及***,提高对空心粘连验证码的识别准确性和识别效率,从而提高用户通行效率和体验。
首先,本发明提供了一种空心粘连验证码的识别方法,适于在计算设备中执行,且其包括以下步骤:
获取空心粘连验证码的原始图像;
将所述原始图像转换为第一灰度图像;
去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像;
根据第二灰度图像获取空心粘连验证码外的空白区域,并根据空白区域对第二灰度图像切割,形成由第二灰度图像切割空白区域后的第三灰度图像;
判断第三灰度图像是否需要位置纠正,是则对第三灰度图像进行位置纠正,接着继续执行下记步骤,否则直接执行下记步骤;
对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,并记录所有单字符图像的排列顺序;
对各个单字符图像进行降维处理,得到各个字符的字符标签;
调用预存的数据模型,分别将各个字符标签输入到数据模型中,得到各个字符标签所对应的字符;
根据所有单字符图像的排列顺序依次排列所有字符,得到与空心粘连验证码一致的字符串,实现对空心粘连验证码的识别。
由此,本发明通过上述方法对空心粘连验证码的原始图像进行图像预处理——转换为灰度图像、去除干扰部分、去除空白区域,位置纠正处理、单字符切割处理、降维处理和利用数据模型实现识别,使得本发明不仅能够适用于只具有字符空心和字符将存在粘连的特点的简约型空心粘连验证码的识别,还能够适用于具有字符大小不一致、存在干扰线、字符具有多种颜色、字符出现旋转等特点的复杂型空心粘连验证码的识别。故本发明不仅能够应用于简约型空心粘连验证码的识别,还能应用于复杂型空心粘连验证码的识别,并提高对空心粘连验证码的识别准确性和识别效率,从而提高了用户通行效率和体验。
进一步,在所述步骤对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,和所述步骤对各个单字符图像进行降维处理,得到各个字符的字符标签之间,还包括步骤:将各个单字符图像中的字符居中,得到各个字符的单字符居中图像;以及,所述步骤对各个单字符图像进行降维处理,得到各个字符的字符标签中,是对各个单字符居中图像进行降维处理,得到各个字符的字符标签。通过此处限定,有利于进一步提高对验证码识别的准确率。
进一步,所述步骤获取空心粘连验证码的原始图像,是通过根据预存的验证页面数据中验证码的位置区域数据而实现对验证码的原始图像的获取,或者,是通过外部输入设备输入验证码原始图像而实现对图像的获取。通过此处限定,有利于提高原始图像的获取效率。
进一步,所述步骤将原始图像转换为第一灰度图像中,将原始图像转换为相同像素值范围的第一灰度图像,第一灰度图像中组成空心粘连验证码的所有字符及干扰线的像素值都相同或都属于预设的一像素值范围内。由于不同的验证码中可能出现颜色不同的情况,故通过对此步骤的限定,将原始图像都转换为相同像素值范围内的第一灰度图像,能够避免颜色对字符识别造成的影响,从而有利于进一步提高对空心粘连验证码的识别效率和识别准确性。
进一步,所述步骤去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像,具体包括以下步骤:
设定一正方形窗口;
获取第一灰度图像中空心粘连验证码所在的像素区域;
将像素区域以所述正方形窗口为单位划分形成多个窗口图像,且任意两窗口图像中没有重叠区域;
计算各个窗口图像中黑色像素点总数与所述正方形窗口内像素总数的比值,得到各个窗口图像的像素比值;
分别比较各个窗口图像的像素比值与预设的像素阈值的大小,获取像素值比所述像素阈值小的窗口图像;
将像素比值比所述像素阈值小的所有窗口图像中位于窗口中心点上的一黑色像素点删除,实现去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像。
通过上述步骤,能够保证有效去除干扰线的同时,还能保证非干扰线部分的像素完整保留,有利于进一步提高空心粘连验证码的识别效率和识别准确度。
进一步,所述步骤根据第二灰度图像获取空心粘连验证码外的空白区域,并根据空白区域对第二灰度图像切割,形成由第二灰度图像切割空白区域后的第三灰度图像,具体包括以下步骤:
检测第二灰度图像内左右两侧最先出现的黑色像素点,得到最左黑色像素点位置和最右黑色像素点位置;
分别裁剪掉第二灰度图像中位于最左黑色像素点位置左侧的图像部分和位于最右黑色像素点位置右侧的图像部分,得到由第二灰度图像切割空白区域后的第三灰度图像;
且/或,得到第三灰度图像后,还对第三灰度图像进行二值化处理。
通过在第一灰度图像去除干扰线后,在得到的第二灰度图像的基础上寻找最左黑色像素点位置和最右黑色像素点位置,使得寻找位置的过程中不会收到干扰线的影响而导致寻找结果不准确,也不需要对干扰线和字符像素进行区别分析才能准确找出所需位置,也即,通过去除干扰线后再寻找最左黑色像素点位置和最右黑色像素点位置,大大降低了位置的寻找难度和提高了位置寻找结果的准确度。
进一步,第三灰度图像是否需要进行位置纠正的判断步骤包括:
检测第三灰度图像内的上下两侧最先出现的黑色像素点,得到最高黑色像素点位置和最低黑色像素点位置;
计算得到最高黑色像素点位置与最低黑色像素点位置的原始高度差值,并保存;
以第三灰度图像的中心为旋转中心,将所有黑色像素点一同向左旋转0~k度、及向右旋转0~k度,同时实时获取旋转过程中每一瞬间第三灰度图像的最高黑色像素点位置和最低黑色像素点位置,并计算得到旋转过程中每一瞬间的最高黑色像素点位置与最低黑色像素点位置的旋转高度差值,并保存;
从所有旋转高度差值中获取得到一数值最小的最小旋转高度差值,并判断最小旋转高度差值是否小于所述原始高度差值,是则判定第三灰度图像需要进行位置纠正,否则判定第三灰度图像不需要进行位置纠正;
以及,在第三灰度图像需要进行位置纠正时,对第三灰度图像进行位置纠正的具体步骤包括:
根据最小旋转高度差值获取与其对应的旋转角度和旋转方向;
以第三灰度图像的中心为旋转中心,并根据旋转角度和旋转方向对所述第三灰度图像进行旋转,得到位置纠正后的第三灰度图像。
通过上述步骤,有利于降低了位置纠正判断和位置纠正处理的算法复杂度,使得位置纠正判断和位置纠正处理更加容易实现,并具有更高的准确度,不仅避免了因验证码处于倾斜状态而对识别造成的影响,而且还降低了对验证码是否处于倾斜状态的判断的难度,更优利于后续的识别处理。
进一步,所述步骤对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,具体包括以下步骤:
S61:检测第三灰度图像内左右两侧最先出现的黑色像素点,得到最左位置和最右位置;同时检测第三灰度图像中每相邻两字符之间存在重叠的黑色像素点,得到每相邻两字符之间重叠黑色像素点的重叠位置;
S62:判断图像中最左位置对应的字符与其相邻的字符之间是否仅存在一个重叠位置,是则将该仅存的一重叠位置作为第一切割位置,否则选取其中一与最左位置之间的距离最大的重叠位置作为第一切割位置;同时判断图像中最右位置对应的字符与其相邻的字符之间是否仅存在一个重叠位置,是则将该仅存的一重叠位置作为第二切割位置,否则选取其中一与最右位置之间的距离最大的重叠位置作为第二切割位置;
S63:根据最左位置和第一切割位置对第三灰度图像进行切割得到与第三灰度图像分离后的最左字符图像;同时根据最右位置和第二切割位置对第三灰度图像进行切割得到与第三灰度图像分离后的最右字符图像;
S64:获取经过步骤S63切割处理后的第三灰度图像,并检测经切割处理后的第三灰度图像中是否还存在黑色像素点,是则返回步骤S61,否则表示已完成对第三灰度图像的字符切割处理并执行步骤S65:
S65:得到组成空心粘连验证码的所有单字符图像,并记录所有单字符图像的排列顺序。
通过以上步骤,在每次切割的时候,都是对处于图像最左右两边的字符进行切割,也即以从两边往中间进行切割的方式,更能够保证每次切割出来的字符都是趋于完整的,而且通过利用重叠位置而限定切割位置,更进一步保证了切割出来的字符的完整性,从而避免因字符局部缺失而导致后续处理中误识别的现象发生,并通过将字符一个一个切割出来进行一一识别,也避免了字符间的干扰,有利于进一步提高对空心粘连验证码的识别准确性和识别效率。
进一步,所述步骤S63中,进行切割时,以第一切割位置右移N个像素点后的位置为切割位置切割图像,及以第二切割位置左移N个像素点后的位置为切割位置切割图像;
且/或,所述步骤对各个单字符图像进行降维处理,得到各个字符的字符标签,具体是通过神经网络自编码算法对各个单字符图像进行降维处理;
且/或,所述步骤调用预存的数据模型,分别将各个字符标签输入到数据模型中,得到各个字符标签所对应的字符,是通过预存且已经训练好的卷积神经网络算法模型对输入的各个字符标签分别识别,而输出相应的字符,实现各个字符标签所对应的字符的获取;
且/或,所述k的取值范围为(0,15°]。
通过上述第一处限定,也即对步骤S63的限定,有利于进一步保证了切割出来的字符的完整性,进一步提高对验证码的识别效率和识别准确性;通过上述第二处限定,利用神经网络自编码算法对各个单字符图像进行降维处理,能够有效地提取高层次的特征,同时也能降低图像维度,有效提高识别速度;通过上述第三处限定,利用训练好的卷积神经网络算法模型实现对各个字符标签的识别,能够在快速获得识别结果的同时,也能够对卷积神经网络算法模型进行训练,从而能够进一步提高后续识别的准确度。
另外,本发明还提供了一种能够实现上述空心粘连验证码的识别方法的空心粘连验证码的识别***,该***包括处理器,适于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行上述任一项所述的空心粘连验证码的识别方法。由于本发明的空心粘连验证码的识别***能够实现本发明的空心粘连验证码的识别方法,故本***也具有本发明的空心粘连验证码的识别方法上述任一项所产生的技术效果。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为本发明空心粘连验证码的识别方法的方法流程图;
图2为本发明示例的一个心粘连验证码的原始图像的示意图;
图3为图2中的图像经过步骤S2处理得到后的图像示意图;
图4为图3中的图像经过步骤S3处理得到后的图像示意图;
图5为图4中的图像经过步骤S4进行空白区域去除处理得到后的图像示意图;
图6为图5中的图像经过步骤S4进行二值化处理后得到的图像示意图;
图7为图6中的图像经过步骤S5进行旋转处理后得到的图像示意图;
图8~图12为图7中的图像经过步骤S6处理后得到的单字符图像示意图;
图13~图17分别为图8~图12中的图像经过步骤S7处理后得到的单字符居中图像示意图;
图18为将图6中所示的图像粘贴在一面积更大的空白画布上后的图像示意图。
具体实施方式
为解决现有技术中无法准确空心粘连验证码,影响用户的通行效率和体验的问题,本发明提供了一种空心粘连验证码的识别方法,通过对空心粘连验证码的原始图像进行图像预处理——转换为灰度图像、去除干扰部分、去除空白区域,位置纠正处理、单字符切割处理、降维处理和利用数据模型实现识别,不仅能够适用于只具有字符空心和字符将存在粘连的特点的简约型空心粘连验证码的识别,还能够适用于具有字符大小不一致、存在干扰线、字符具有多种颜色、字符出现旋转等特点的复杂型空心粘连验证码的识别。以下,具体说明本发明空心粘连验证码的识别方法的具体技术方案。
请参阅图1,本发明空心粘连验证码的识别方法,适于在计算设备中执行,其包括以下步骤:
S1:获取空心粘连验证码的原始图像;
S2:将所述原始图像转换为第一灰度图像;
S3:去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像;
S4:根据第二灰度图像获取空心粘连验证码外的空白区域,并根据空白区域对第二灰度图像切割,形成由第二灰度图像切割空白区域后的第三灰度图像;而为进一步提高识别效率和识别准确度,在该步骤S4中,得到第三灰度图像后,还对第三灰度图像进行二值化处理;
S5:判断第三灰度图像是否需要位置纠正,是则对第三灰度图像进行位置纠正,接着继续执行步骤S6,否则直接执行步骤S6;
S6:对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,并记录所有单字符图像的排列顺序;
S7:将各个单字符图像中的字符居中,得到各个字符的单字符居中图像;也即,将各个单字符图像中的字符像素平移到图像的中心区域,以提高识别准确率;
S8:对各个单字符居中图像进行降维处理,得到各个字符的字符标签;
S9:调用预存的数据模型,分别将各个字符标签输入到数据模型中,得到各个字符标签所对应的字符;
S10:根据所有单字符图像的排列顺序依次排列所有字符,得到与空心粘连验证码一致的字符串,实现对空心粘连验证码的识别。
以下,以图2中所示的图像为空心粘连验证码的原始图像为例说明本发明空心粘连验证码的识别方法:
通过步骤S1,获取得到的原始图像如图2所示,其中,图2中所示的图像是有色彩的,而因为专利申请对说明书附图的相关规定,不允许附上有色的图片,故图示只能看出是有灰度的图像;图2中的图像经过步骤S2处理后,由有色彩的图像转成仅有灰度的图像,也即第一灰度图像如图3所示;图3所示的图像经过步骤S3处理后,得到去除干扰线后的第二灰度图像,也即第二灰度图像如图4所示;图4所示的图像经过步骤S4处理后,先得到仅去除左右空白区域后的第三灰度图像,如图5所示;而图5所示的图像经过步骤S4进一步增加的二值化处理后,得到图6所示的图像,很明显各字符的轮廓清晰了很多;以下基于需要旋转的状态下进行说明,通过步骤S5,发现图6所示的图像中的字符串不是处于图像中的水平位置时,经过旋转处理后的图像如图7所示;图7中的图像经过所述步骤S6处理后,被分割成一个一个的单字符图像,所有单字符图像如图8~12所示;图8~图12中的各个单字符图像经过所述步骤S7处理后,得到的所有字符的单字符居中图像如图13~图17所示;最后经图13~图17中的图像分别依次经过步骤S8~S10处理后,便可识别出ZZkUV这一字符串。
为使得本发明空心粘连验证码的识别方法具有更高的识别准确度和识别效率,作为一种更优的技术方案,以下对所述步骤S1~S10进行了进一步完善:
所述步骤S1中,是通过根据预存的验证页面数据中验证码的位置区域数据而实现对验证码的原始图像的获取,或者,是通过外部输入设备输入验证码原始图像而实现对图像的获取。
所述步骤S2中,将原始图像转换为相同像素值范围的第一灰度图像,第一灰度图像中组成空心粘连验证码的所有字符及干扰线的像素值都相同或都属于预设的一像素值范围内。具体是在映射时,将原始图像的像素值映射到同一像素范围内,进行类归一化映射。
所述步骤S3具体包括以下步骤:
S31:设定一正方形窗口;本实施例中,优选地,所述步骤S31中的正方形窗口的大小为3×3,也即为3个像素点×3个像素点;
S32:获取第一灰度图像中空心粘连验证码所在的像素区域;
S33:将像素区域以所述正方形窗口为单位划分形成多个窗口图像,且任意两窗口图像中没有重叠区域;
S34:计算各个窗口图像中黑色像素点总数与所述正方形窗口内像素总数的比值,得到各个窗口图像的像素比值;
S35:分别比较各个窗口图像的像素比值与预设的像素阈值的大小,获取像素值比所述像素阈值小的窗口图像;在本实施例中,如果当前窗口图像的像素比值比预设像素阈值小,则说明该窗口图像的中心点上的像素点属于干扰线部分;其中,所述预设像素阈值优选为0.4;而在其它变形实施例中,可以根据实际而适当地改变像素阈值;
S36:将像素比值比所述像素阈值小的所有窗口图像中位于窗口中心点上的一黑色像素点删除,实现去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像。
进一步,所述步骤S4具体包括以下步骤:
S41:检测第二灰度图像内左右两侧最先出现的黑色像素点,得到最左黑色像素点位置和最右黑色像素点位置;
S42:分别裁剪掉第二灰度图像中位于最左黑色像素点位置左侧的图像部分和位于最右黑色像素点位置右侧的图像部分,得到由第二灰度图像切割空白区域后的第三灰度图像;
S43:对第三灰度图像进行二值化处理,得到二值化处理后的第三灰度图像。
所述步骤S5中,在基于处于水平状态的字符串的纵向投影长度也可以理解为高度是最短下,第三灰度图像是否需要进行位置纠正的判断步骤包括:
S51:检测第三灰度图像内的上下两侧最先出现的黑色像素点,得到最高黑色像素点位置和最低黑色像素点位置;
S52:计算得到最高黑色像素点位置与最低黑色像素点位置的原始高度差值,并保存;
S53:以第三灰度图像的中心为旋转中心,将所有黑色像素点一同向左旋转0~k度、及向右旋转0~k度,同时实时获取旋转过程中每一瞬间第三灰度图像的最高黑色像素点位置和最低黑色像素点位置,并计算得到旋转过程中每一瞬间的最高黑色像素点位置与最低黑色像素点位置的旋转高度差值,并保存;
S54:从所有旋转高度差值中获取得到一数值最小的最小旋转高度差值,并判断最小旋转高度差值是否小于所述原始高度差值,是则判定第三灰度图像需要进行位置纠正,否则判定第三灰度图像不需要进行位置纠正;
以及,所述步骤S5中,在第三灰度图像需要进行位置纠正时,对第三灰度图像进行位置纠正的具体步骤包括:将图6中所示的图像粘贴于一空白画布上,以使具有足够的旋转空间。
S55:根据最小旋转高度差值获取与其对应的旋转角度和旋转方向;
S56:以第三灰度图像的中心为旋转中心,并根据旋转角度和旋转方向对所述第三灰度图像进行旋转,得到位置纠正后的第三灰度图像。
在本实施例中,为避免旋转过度而导致图像中的黑色像素点超出图像边框,优选地,通过实验测试得到k的取值范围优选为(0,15°],并通过实验得到,在k=5°时,对识别的准确度具有最佳的提升作用,故更优选地,k=5°。
为进一步避免旋转过度而导致图像中的黑色像素点超出图像边框,更优选地,在所述步骤S56中,在对第三灰度图像进行旋转前,先将第三灰度图像粘贴于一空白的画布上,以扩大旋转空间,如图18所示,为将图6中所示的图像粘贴在一面积更大的空白画布上后的图像示意图。
所述步骤S6具体包括以下步骤:
S61:检测第三灰度图像内左右两侧最先出现的黑色像素点,得到最左位置和最右位置;同时检测第三灰度图像中每相邻两字符之间存在重叠的黑色像素点,得到每相邻两字符之间重叠黑色像素点的重叠位置;
S62:判断图像中最左位置对应的字符与其相邻的字符之间是否仅存在一个重叠位置,是则将该仅存的一重叠位置作为第一切割位置,否则选取其中一与最左位置之间的距离最大的重叠位置作为第一切割位置;同时判断图像中最右位置对应的字符与其相邻的字符之间是否仅存在一个重叠位置,是则将该仅存的一重叠位置作为第二切割位置,否则选取其中一与最右位置之间的距离最大的重叠位置作为第二切割位置;
S63:根据最左位置和第一切割位置对第三灰度图像进行切割得到与第三灰度图像分离后的最左字符图像;同时根据最右位置和第二切割位置对第三灰度图像进行切割得到与第三灰度图像分离后的最右字符图像;
S64:获取经过步骤S63切割处理后的第三灰度图像,并检测经切割处理后的第三灰度图像中是否还存在黑色像素点,是则返回步骤S61,否则表示已完成对第三灰度图像的字符切割处理,并执行步骤S65:
S65:得到组成空心粘连验证码的所有单字符图像,并记录所有单字符图像的排列顺序。
为保证切割出来的字符的完整性,进一步提高对验证码的识别效率和识别准确性,作为一种更优的技术方案,所述步骤S63中,进行切割时,以第一切割位置右移N个像素点后的位置为切割位置切割图像,及以第二切割位置左移N个像素点后的位置为切割位置切割图像。在本实施例中,N的取值范围为1~5,优选为3。也即,此时,切割出来的图像的宽度比所需切割出来的字符的宽度要大。
所述步骤S8中,具体是通过神经网络自编码算法对各个单字符图像进行降维处理;由此利用神经网络自编码算法对各个单字符图像进行降维处理,能够有效地提取高层次的特征,同时也能降低图像维度,有效提高识别速度。
所述步骤S9中,是通过预存且已经训练好的卷积神经网络算法模型对输入的各个字符标签分别识别,而输出相应的字符,实现各个字符标签所对应的字符的获取。由此利用训练好的卷积神经网络算法模型实现对各个字符标签的识别,能够在快速获得识别结果的同时,也能够对卷积神经网络算法模型进行训练,从而能够进一步提高后续识别的准确度。
另外,本发明空心粘连验证码的识别方法还具有其它变形实施例,例如:将所述步骤S7删除,此时,步骤S8中直接对各个单字符图像进行降维处理,得到各个字符的字符标签。
相应地,本发明还提供了一种能够实现上述空心粘连验证码的识别方法的空心粘连验证码的识别***,该***包括处理器和存储设备。所述处理器适于实现各指令;所述存储设备适于存储多条指令。所述指令适于由处理器加载并执行本发明的空心粘连验证码的识别方法。
相对于现有技术,本发明空心粘连验证码的识别方法及***不仅能够应用于简约型空心粘连验证码的识别,还能应用于复杂型空心粘连验证码的识别,并提高对空心粘连验证码的识别准确性和识别效率,从而提高了用户通行效率和体验。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种空心粘连验证码的识别方法,适于在计算设备中执行,其特征在于:包括以下步骤:
获取空心粘连验证码的原始图像;
将所述原始图像转换为第一灰度图像;
去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像;
根据第二灰度图像获取空心粘连验证码外的空白区域,并根据空白区域对第二灰度图像切割,形成由第二灰度图像切割空白区域后的第三灰度图像;
判断第三灰度图像是否需要位置纠正,是则对第三灰度图像进行位置纠正,接着继续执行下记步骤,否则直接执行下记步骤;
对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,并记录所有单字符图像的排列顺序;
对各个单字符图像进行降维处理,得到各个字符的字符标签;
调用预存的数据模型,分别将各个字符标签输入到数据模型中,得到各个字符标签所对应的字符;
根据所有单字符图像的排列顺序依次排列所有字符,得到与空心粘连验证码一致的字符串,实现对空心粘连验证码的识别。
2.根据权利要求1所述的空心粘连验证码的识别方法,其特征在于:在所述步骤对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,和所述步骤对各个单字符图像进行降维处理,得到各个字符的字符标签之间,还包括步骤:将各个单字符图像中的字符居中,得到各个字符的单字符居中图像;以及,
所述步骤对各个单字符图像进行降维处理,得到各个字符的字符标签中,是对各个单字符居中图像进行降维处理,得到各个字符的字符标签。
3.根据权利要求1所述的空心粘连验证码的识别方法,其特征在于:所述步骤获取空心粘连验证码的原始图像,是通过根据预存的验证页面数据中验证码的位置区域数据而实现对验证码的原始图像的获取,或者,是通过外部输入设备输入验证码原始图像而实现对图像的获取。
4.根据权利要求1~3任一项所述的空心粘连验证码的识别方法,其特征在于:所述步骤将原始图像转换为第一灰度图像中,将原始图像转换为相同像素值范围的第一灰度图像,第一灰度图像中组成空心粘连验证码的所有字符及干扰线的像素值都相同或都属于预设的一像素值范围内。
5.根据权利要求4所述的空心粘连验证码的识别方法,其特征在于:所述步骤去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像,具体包括以下步骤:
设定一正方形窗口;
获取第一灰度图像中空心粘连验证码所在的像素区域;
将像素区域以所述正方形窗口为单位划分形成多个窗口图像,且任意两窗口图像中没有重叠区域;
计算各个窗口图像中黑色像素点总数与所述正方形窗口内像素总数的比值,得到各个窗口图像的像素比值;
分别比较各个窗口图像的像素比值与预设的像素阈值的大小,获取像素值比所述像素阈值小的窗口图像;
将像素比值比所述像素阈值小的所有窗口图像中位于窗口中心点上的一黑色像素点删除,实现去除第一灰度图像中除空心粘连验证码外的干扰线,得到第二灰度图像。
6.根据权利要求5所述的空心粘连验证码的识别方法,其特征在于:所述步骤根据第二灰度图像获取空心粘连验证码外的空白区域,并根据空白区域对第二灰度图像切割,形成由第二灰度图像切割空白区域后的第三灰度图像,具体包括以下步骤:
检测第二灰度图像内左右两侧最先出现的黑色像素点,得到最左黑色像素点位置和最右黑色像素点位置;
分别裁剪掉第二灰度图像中位于最左黑色像素点位置左侧的图像部分和位于最右黑色像素点位置右侧的图像部分,得到由第二灰度图像切割空白区域后的第三灰度图像;
且/或,得到第三灰度图像后,还对第三灰度图像进行二值化处理。
7.根据权利要求6所述的空心粘连验证码的识别方法,其特征在于:第三灰度图像是否需要进行位置纠正的判断步骤包括:
检测第三灰度图像内的上下两侧最先出现的黑色像素点,得到最高黑色像素点位置和最低黑色像素点位置;
计算得到最高黑色像素点位置与最低黑色像素点位置的原始高度差值,并保存;
以第三灰度图像的中心为旋转中心,将所有黑色像素点一同向左旋转0~k度、及向右旋转0~k度,同时实时获取旋转过程中每一瞬间第三灰度图像的最高黑色像素点位置和最低黑色像素点位置,并计算得到旋转过程中每一瞬间的最高黑色像素点位置与最低黑色像素点位置的旋转高度差值,并保存;
从所有旋转高度差值中获取得到一数值最小的最小旋转高度差值,并判断最小旋转高度差值是否小于所述原始高度差值,是则判定第三灰度图像需要进行位置纠正,否则判定第三灰度图像不需要进行位置纠正;
以及,在第三灰度图像需要进行位置纠正时,对第三灰度图像进行位置纠正的具体步骤包括:
根据最小旋转高度差值获取与其对应的旋转角度和旋转方向;
以第三灰度图像的中心为旋转中心,并根据旋转角度和旋转方向对所述第三灰度图像进行旋转,得到位置纠正后的第三灰度图像。
8.根据权利要求7所述的空心粘连验证码的识别方法,其特征在于:所述步骤对第三灰度图像进行字符切割处理,分别得到组成空心粘连验证码的各个字符的单字符图像,具体包括以下步骤:
S61:检测第三灰度图像内左右两侧最先出现的黑色像素点,得到最左位置和最右位置;同时检测第三灰度图像中每相邻两字符之间存在重叠的黑色像素点,得到每相邻两字符之间重叠黑色像素点的重叠位置;
S62:判断图像中最左位置对应的字符与其相邻的字符之间是否仅存在一个重叠位置,是则将该仅存的一重叠位置作为第一切割位置,否则选取其中一与最左位置之间的距离最大的重叠位置作为第一切割位置;同时判断图像中最右位置对应的字符与其相邻的字符之间是否仅存在一个重叠位置,是则将该仅存的一重叠位置作为第二切割位置,否则选取其中一与最右位置之间的距离最大的重叠位置作为第二切割位置;
S63:根据最左位置和第一切割位置对第三灰度图像进行切割得到与第三灰度图像分离后的最左字符图像;同时根据最右位置和第二切割位置对第三灰度图像进行切割得到与第三灰度图像分离后的最右字符图像;
S64:获取经过步骤S63切割处理后的第三灰度图像,并检测经切割处理后的第三灰度图像中是否还存在黑色像素点,是则返回步骤S61,否则表示已完成对第三灰度图像的字符切割处理并执行步骤S65:
S65:得到组成空心粘连验证码的所有单字符图像,并记录所有单字符图像的排列顺序。
9.根据权利要求8所述的空心粘连验证码的识别方法,其特征在于:所述步骤S63中,进行切割时,以第一切割位置右移N个像素点后的位置为切割位置切割图像,及以第二切割位置左移N个像素点后的位置为切割位置切割图像;
且/或,所述步骤对各个单字符图像进行降维处理,得到各个字符的字符标签,具体是通过神经网络自编码算法对各个单字符图像进行降维处理;
且/或,所述步骤调用预存的数据模型,分别将各个字符标签输入到数据模型中,得到各个字符标签所对应的字符,是通过预存且已经训练好的卷积神经网络算法模型对输入的各个字符标签分别识别,而输出相应的字符,实现各个字符标签所对应的字符的获取;
且/或,所述k的取值范围为(0,15°]。
10.一种空心粘连验证码的识别***,其特征在于:包括处理器,适于实现各指令;以及存储设备,适于存储多条指令,所述指令适于由处理器加载并执行权利要求1~9任一项所述的空心粘连验证码的识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711443181.5A CN108171229B (zh) | 2017-12-27 | 2017-12-27 | 一种空心粘连验证码的识别方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711443181.5A CN108171229B (zh) | 2017-12-27 | 2017-12-27 | 一种空心粘连验证码的识别方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108171229A true CN108171229A (zh) | 2018-06-15 |
CN108171229B CN108171229B (zh) | 2021-11-16 |
Family
ID=62521898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711443181.5A Active CN108171229B (zh) | 2017-12-27 | 2017-12-27 | 一种空心粘连验证码的识别方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108171229B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101810A (zh) * | 2018-08-14 | 2018-12-28 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
CN113537182A (zh) * | 2021-09-17 | 2021-10-22 | 北京慧荣和科技有限公司 | 染色体中期***相显微图像的自动识别方法与*** |
CN113591887A (zh) * | 2020-04-30 | 2021-11-02 | ***通信集团广东有限公司 | 验证码识别模型训练方法、验证码自动识别方法及服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100077210A1 (en) * | 2008-09-24 | 2010-03-25 | Yahoo! Inc | Captcha image generation |
US7929805B2 (en) * | 2006-01-31 | 2011-04-19 | The Penn State Research Foundation | Image-based CAPTCHA generation system |
CN104021376A (zh) * | 2014-06-05 | 2014-09-03 | 北京乐动卓越科技有限公司 | 验证码识别方法和装置 |
CN104252620A (zh) * | 2014-09-25 | 2014-12-31 | 同程网络科技股份有限公司 | 字符粘连的图形验证码识别方法 |
CN104318233A (zh) * | 2014-10-19 | 2015-01-28 | 温州大学 | 车牌图像水平倾斜校正方法 |
CN106446897A (zh) * | 2016-09-09 | 2017-02-22 | 浪潮软件股份有限公司 | 一种空心验证码的识别方法 |
-
2017
- 2017-12-27 CN CN201711443181.5A patent/CN108171229B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7929805B2 (en) * | 2006-01-31 | 2011-04-19 | The Penn State Research Foundation | Image-based CAPTCHA generation system |
US20100077210A1 (en) * | 2008-09-24 | 2010-03-25 | Yahoo! Inc | Captcha image generation |
CN104021376A (zh) * | 2014-06-05 | 2014-09-03 | 北京乐动卓越科技有限公司 | 验证码识别方法和装置 |
CN104252620A (zh) * | 2014-09-25 | 2014-12-31 | 同程网络科技股份有限公司 | 字符粘连的图形验证码识别方法 |
CN104318233A (zh) * | 2014-10-19 | 2015-01-28 | 温州大学 | 车牌图像水平倾斜校正方法 |
CN106446897A (zh) * | 2016-09-09 | 2017-02-22 | 浪潮软件股份有限公司 | 一种空心验证码的识别方法 |
Non-Patent Citations (2)
Title |
---|
尹龙: "扭曲粘连字符验证码识别研究", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
柳红刚: "字符扭曲粘连验证码识别技术研究", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101810A (zh) * | 2018-08-14 | 2018-12-28 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN109101810B (zh) * | 2018-08-14 | 2021-07-06 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
CN113591887A (zh) * | 2020-04-30 | 2021-11-02 | ***通信集团广东有限公司 | 验证码识别模型训练方法、验证码自动识别方法及服务器 |
CN113537182A (zh) * | 2021-09-17 | 2021-10-22 | 北京慧荣和科技有限公司 | 染色体中期***相显微图像的自动识别方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN108171229B (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414333B (zh) | 一种图像边界的检测方法及装置 | |
CN110009057B (zh) | 一种基于深度学习的图形验证码识别方法 | |
CN104809481B (zh) | 一种基于自适应色彩聚类的自然场景文本检测方法 | |
CN108171229A (zh) | 一种空心粘连验证码的识别方法及*** | |
CN103971102B (zh) | 基于手指轮廓和决策树的静态手势识别方法 | |
CN104867137B (zh) | 一种基于改进ransac算法的图像配准方法 | |
CN108182383B (zh) | 一种车窗检测的方法及设备 | |
CN110619333B (zh) | 一种文本行分割方法、文本行分割装置及电子设备 | |
CN111191570B (zh) | 图像识别方法和装置 | |
CN107341523A (zh) | 基于深度学习的快递单信息识别方法和*** | |
CN107292311A (zh) | 一种基于神经网络的字符粘连验证码的识别方法 | |
CN106484837A (zh) | 相似视频文件的检测方法和装置 | |
CN109389033B (zh) | 一种新型的瞳孔快速定位方法 | |
CN106934455B (zh) | 基于cnn的遥感影像光学适配结构选取方法及*** | |
CN107958255A (zh) | 一种基于图像的目标检测方法及装置 | |
CN112966685B (zh) | 用于场景文本识别的攻击网络训练方法、装置及相关设备 | |
CN110598581B (zh) | 基于卷积神经网络的光学乐谱识别方法 | |
CN106373128B (zh) | 一种嘴唇精确定位的方法和*** | |
CN109697353A (zh) | 一种点击验证码的验证方法和装置 | |
CN109460767A (zh) | 基于规则的凸印银行卡***分割与识别方法 | |
CN109977941A (zh) | 车牌识别方法及装置 | |
US7072496B2 (en) | Slap print segmentation system and method | |
CN110135407A (zh) | 样本标注方法及计算机存储介质 | |
CN112200789B (zh) | 一种图像识别的方法及装置、电子设备和存储介质 | |
CN110188661A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |