一种用于自动识别验证码中空心字符的方法技术

技术编号:18941922 阅读:27 留言:0更新日期:2018-09-15 11:21
本发明专利技术了一种用于自动识别验证码中空心字符的方法,其中的方法主要包括:在图片进行预处理后,对发生断裂的字符轮廓线进行修复;将所有封闭的白色连通区域进行颜色填充;对所述得到的颜色块,依据其形状特性及横纵向特性进行三次检测去干扰处理,提取有效字符块;从分割得到的字符块中提取有效特征信息;利用机器学习方法对字符信息进行检测识别。本发明专利技术提供的技术方案简单实用,能够及时检测出验证码中的空心字符并进行准确识别,且能够较好的应用于背景有其他图像干扰形式的验证码,从而提高了自动识别的性能。

A method for automatically identifying hollow characters in verification code

The invention provides a method for automatically recognizing hollow characters in verification codes, which mainly includes: repairing broken character contour lines after pretreatment of pictures; filling all closed white connected areas with colors; and filling the resulting color blocks according to their shape characteristics and transverse and longitudinal directions. The feature is detected three times to remove the interference, and the effective character block is extracted; the effective feature information is extracted from the segmented character block; and the character information is detected and recognized by machine learning method. The technical scheme provided by the invention is simple and practical, can detect the hollow characters in the verification code in time and accurately recognize them, and can be better applied to the verification code with other image interference forms in the background, thereby improving the performance of automatic recognition.

【技术实现步骤摘要】
一种用于自动识别验证码中空心字符的方法
本专利技术涉及互联网安全
,具体涉及一种用于自动识别验证码中空心字符的方法。
技术介绍
验证码(CAPTCHA)是一种区分计算机和人类的全自动图灵测试技术。在一个验证码测试中,系统会自动生成一个问题并评判用户的答案,这个测试只有人类很容易给出答案,而计算机程序则很难成功。因此被广泛用于邮箱注册、网上银行登录、在线交易、订票系统等验证环节,系统要求用户必须输入验证码上所显示的字符信息才可完成相关操作,这样可以有效防止机器通过暴力破解方式不断的进行登陆以对用户密码进行破解盗取相关信息,还可以保证在线投票的真实性,防止垃圾邮件,网站广告泛滥等,提高网站运行的稳定性和安全性。验证码技术因便捷高效而被很多网站采用。相应的,在网站上线运行之前,测试工程师通常会采用一些验证码自动识别方法对网站中的验证码进行破解,以检测网站的安全性。若其中大部分验证码能被机器自动识别,则表明该网站所使用的验证码安全性较低,需要相关技术人员增大验证码图像的复杂度等,以保证网站上线运行后不被恶意用户攻击。早期的验证码中有效信息均以实心字符形式呈现,虽在背景中加入了一些干扰但仍易被机器自动识别。空心验证码作为一种新型的复杂验证码,是近几年刚刚出现的一种基于文本类型的验证码,它是实心字符验证码的优化变形。因为其只由简单的轮廓线组成、图像中包含的信息少,字符的有效特征信息会被大幅度弱化。若当图像背景中再有干扰线加入时,在预处理过程中部分字符轮廓还会被误当作噪声去除,这些都极大地提高了机器自动识别的难度。因此,空心验证码受到了许多大型网站的青睐,但其是否能真正有效地抵制自动识别程序,是否真正安全还亟需得到验证。
技术实现思路
鉴于上述问题,提出了本专利技术,以便提供一种克服上述问题或者至少部分地解决上述问题的用于自动识别验证码中空心字符的方法。进一步技术方案如下:本专利技术提供了一种在识别空心字符验证码过程中通过填充技术将空心字符填充为实心字符并去除背景干扰后进行字符识别的方法。该方法主要包括:在图片进行预处理转换为黑白图后,对发生断裂的字符轮廓线进行修复;将得到的所有白色封闭区域进行颜色填充;对填充后得到的所有不同颜色块,依据其形状特性及横纵向特性进行三次检测去干扰处理,提取有效字符块;提取字符块中有效特征信息并进行检测识别。所述对预处理得到的黑白图中发生断裂的字符轮廓线进行修复部分,是从原点开始,按照一定顺序依次查找黑色轮廓线像素点,若以该点为中心的相应邻域范围内存在黑色点,则将此黑色点进行标记并沿此路径继续探索,未形成闭环的路径终点即为轮廓线断点。在找到的所有轮廓线断点中筛选得到真正断点后,依据点间距离最近原则匹配得出属于同一条轮廓线的断点,进行连接。所述对所有白色封闭区域进行颜色填充部分,是在对轮廓线修复后形成的每个封闭连通区域按照一定顺序依次查找,每找到一个连通区域便将其颜色转变为一个新的灰度值。最终保证所有白色封闭区域被填充为不同灰度值,且按照封闭区域在图像中的位置其灰度值也呈现一定关系所述依据颜色块形状特性及横纵向特性进行三次检测去干扰处理部分,首先在每个颜色块的边界坐标点中找出横坐标相同、纵坐标不连续的点数量,每个横坐标中此点数量大于一定值则计入横向特性值;找出纵坐标相同、横坐标不连续的点数量,每个纵坐标中此点数量大于一定值则计入纵向特性值。当某颜色块的横纵向特性值满足预定条件时则认为该色块为有效字符块。对所有颜色块进行第一次横纵向特性检测,找出部分有效字符块后依据边界点颜色信息确定发生粘连的颜色块并进行修复、连接处理。随后进行第二次横纵向特性检测,找出第一次检测修复得到的字符块,并依据其余颜色块所占矩形区域长宽比确定字符发生断裂的色块,同时与相应字符进行匹配连接。最后进行第三次横纵向特性检测,找出所有字符块。所述提取字符块中有效特征信息并进行检测识别部分,首先对所有检测得到的字符块,依据其颜色信息依次分割得到单个字符。随后进行细化,提取每个字符的骨架图像,去除冗余,归一化后逐行提取像素点,按一定规则将图像信息转换为数值特征向量。最后利用机器学习方法对已正确识别的字符所建立的特征训练集进行自学习后得出有效识别模型进行其他字符的识别。本专利技术能够达到的有益效果如下:(1)在对所有空心区域进行颜色填充后,可以使空心字符转换为实心字符,使有效字符信息得到强化,以便在后续处理中不易受到干扰。同时,将背景干扰线转换为干扰噪块,使得去噪处理过程更加简单,效果更加理想。(2)在查找轮廓线断裂点过程中,依次将黑色点设置为搜索起始点并对其邻域内所有路径进行搜索,这样可以保证能找出图像中所有轮廓线断点。在修复前对断点进行选择、匹配还可以有效避免背景图像与字符轮廓产生误连。(3)在字符识别阶段,可依据每个字符的颜色信息将其按顺序依次分割出来,降低因分割而引入的误差,提高识别正确率。提取字符骨架信息后建立特征向量,可有效减少冗余信息,节省所占空间。附图说明图1为本专利技术的用于自动识别验证码中空心字符的方法的流程图;图2为本专利技术的进行三次检测确定有效字符的一个具体例子的流程图;具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本专利技术公开的示例性实施例,然而应当理解,可以以各种形式实现本专利技术公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术的技术方案,并且能够将本专利技术公开的范围完整的传达给本领域的技术人员。在一个具体实施例中,本专利技术提供了一种用于自动识别验证码中空心字符的方法。该方法的流程如图1所示,图1中的方法主要包括:步骤S10、步骤S11、步骤S12、步骤S13以及步骤S14。下面对本实施例的方法所包括的各步骤分别进行详细说明。S10、对发生断裂的字符轮廓线进行修复。作为示例,本实施例在对图像进行二值化等预处理得到黑白图后首先查找轮廓线断点。将整个轮廓线看作一个迷宫,从原点开始,按照从左至右的顺序依次查找未被标记的黑色轮廓线像素点,并以此为起点进行搜索,若以该点为中心的八邻域范围内存在黑色轮廓线点,则将该点进行标记,接着探索其八邻域范围内的下一个轮廓线点,若最终没有回到起始点位置且没有新的未曾探索过的像素点时,该终点则为轮廓线终点。继续查找下一个未被标记的黑色轮廓线点作为起点进行探索,直至所有轮廓线全部探索完毕。在得出所有终点后,有些点并非真正断点,本实施例依据所有终点的八邻域范围内点分布情况找出真正轮廓线断点。随后对轮廓线断点按一定匹配原则进行匹配、连接处理,完成断裂线的修复。作为示例,本实施例中的匹配原则可以具体为两点间欧氏距离最小原则,当然,本实施例也不排除匹配原则为其他形式的可能性。S11、对所有封闭的白色连通区域进行颜色填充。作为示例,本实施例在修复轮廓线后,从原点开始按照从左至右、从上至下的顺序依次遍历图像中的每一个像素点,寻找白色像素点。将该白色点作为种子点向四周迭代搜索找出其所在的白色连通域,将该连通域填充为其它颜色后,继续寻找下一个白色像素点所在的连通域并进行颜色填充,直至所有白色区域全部填充为不同颜色。为保证颜色填充后每个连通域中颜色信息能有效反映该连通域在图像中所处的位置,本实施例在填充过程中将不同封闭区域填充为不同灰度值的颜色,本文档来自技高网
...

【技术保护点】
1.一种用于自动识别验证码中空心字符的方法,其特征在于,所述方法包括:A.对发生断裂的字符轮廓线进行修复;B.将所述所有封闭的白色连通区域进行颜色填充;C.对所述得到的颜色块,依据其形状特性及横纵向特性进行三次检测去干扰处理,提取有效字符块;D.从分割得到的字符块中提取有效特征信息;E.利用机器学习方法对所述字符信息进行检测识别。

【技术特征摘要】
1.一种用于自动识别验证码中空心字符的方法,其特征在于,所述方法包括:A.对发生断裂的字符轮廓线进行修复;B.将所述所有封闭的白色连通区域进行颜色填充;C.对所述得到的颜色块,依据其形状特性及横纵向特性进行三次检测去干扰处理,提取有效字符块;D.从分割得到的字符块中提取有效特征信息;E.利用机器学习方法对所述字符信息进行检测识别。2.根据权利要求1所述的方法,其特征在于,所述对发生断裂的字符轮廓线进行修复的步骤包括:将所述图片进行预处理转换为黑白图后,从图像原点开始,按照一定顺序依次查找黑色轮廓线像素点,若以该点为中心的相应域范围内存在黑色点,则沿此黑色点路径继续探索,未形成闭环的路径终点即为轮廓线断点;依据字符断点特性筛选找出真正断点后,对属于同一条轮廓线的断点进行匹配、连接。3.根据权利要求1所述的方法,其特征在于,所述将所有封闭的白色连通区域进行颜色填充的步骤包括:按一定顺序依次查找图像中白色封闭连通区域,每找到一个白色区域便将其填充为新的颜色,最终保证所有白色封闭区域均被填充上新的颜色,且能通过颜色信息反映出该区域在图像中的位置信息。4.根据权利要求1所述的方法,其特征在于,所述查找横纵向特性的步骤包括:依次遍历不同颜色的连通区域,找出该区域所有边界点坐标;在所述边界点坐标中找出横坐标相同但纵坐标不连续的点,若在同一横坐标中纵坐标不连续点个数大于一定值则所述横向特性值改变;在所述边界点坐标中找出纵坐标相同但横坐标不连续的...

【专利技术属性】
技术研发人员:朴昌浩孟凯张艳黄天彭
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

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

1