CN104021376A - 验证码识别方法和装置 - Google Patents
验证码识别方法和装置 Download PDFInfo
- Publication number
- CN104021376A CN104021376A CN201410246783.1A CN201410246783A CN104021376A CN 104021376 A CN104021376 A CN 104021376A CN 201410246783 A CN201410246783 A CN 201410246783A CN 104021376 A CN104021376 A CN 104021376A
- Authority
- CN
- China
- Prior art keywords
- identified
- identifying code
- code character
- character
- image
- 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
Abstract
本发明公开了一种验证码识别方法和装置,所述方法包括:获取网站网页中的待识别验证码图像,根据其边缘像素点的灰度值的平均值对待识别验证码图像进行二值表示;对二值表示后的待识别验证码图像进行降噪处理,并从中切割出每个待识别验证码字符的图像;对于切割出的每个待识别验证码字符的图像,构建该待识别验证码字符的二值矩阵,进而确定该待识别验证码字符的特征向量;计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,并将与该待识别验证码字符的距离最小的标准特征向量所对应的字符作为识别出的验证码字符。应用本发明可以实现网站网页中的验证码识别,以对网站网页进行安全性检测或者进行自动化测试。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种验证码识别方法和装置。
背景技术
验证码(CAPTCHA)技术通常应用在WEB系统涉及登录和输入的网站页面上。验证码技术实现的一般方法是:在网站页面上显示一幅验证码图像,由用户肉眼识别其中的验证码,并将该验证码输入表单提交网站验证。验证码具有随机性和不易被自动工具识别的特点,当用户访问某个使用验证码技术的网站页面时,每次对该网站页面的访问都会得到一个随机产生的不同的验证码。这些验证码可以被人工识别,但很难被自动识别工具(机器人)识别,从而达到保护网站不被恶意使用的目的。
其中,使用验证码来保护网站的原理如下:首先服务器端生成随机数字或随机字母,并将其保存在session中;利用图形库生成验证码图像,并在验证码图像中增加一些干扰或背景噪音,例如随机画数条直线或画一些点;之后,将验证码图像展现给客户端的用户辨认;用户将从验证码图像中识别出的验证码输入表单,并发送给服务器端;服务器端将session中保存的随机数和用户输入的验证码进行对比,若相同,则验证通过,否则验证失败。
目前,很多网站为了防止恶意用户利用自动识别工具破解密码、自动注册、登录、灌水等,都采用了验证码技术。而且,在网站上线运行之前,测试工程师通常会采用一些验证码识别方法对网站网页中的验证码进行识别,以检测网站的安全性。例如,对于一个网站网页中的验证码,若其不能被采用的验证码识别方法(或自动识别工具)识别,则表明该网站网页所使用的验证码不易被识别,网站安全性较高;若该网站网页中的大部分验证码能被采用的验证码识别方法识别,则表明该网站网页所使用的验证码易被识别,网站的安全性较低,需要相关技术人员增大验证码图像的复杂度等,以保证网站上线运行后不被恶意用户攻击。而且,采用验证码识别方法对网站网页中的验证码进行识别,还可使得网站网页的自动化测试得以实现。
因此,有必要提供一种能够用于网站安全性检测、自动化测试的验证码识别方法。
发明内容
针对上述现有技术存在的缺陷,本发明提供了一种验证码识别方法和装置,用以实现网站网页中的验证码识别。
根据本发明的一个方面,提供了一种验证码识别方法,包括:
获取网站网页中的待识别验证码图像;
判断所述待识别验证码图像的边缘像素点的灰度值的平均值是否大于设定灰度阈值;若是,则将所述待识别验证码图像中灰度值不大于设定灰度阈值的像素点用1表示,灰度值大于设定灰度阈值的像素点用0表示;否则,将所述待识别验证码图像中灰度值大于设定灰度阈值的像素点用1表示,灰度值不大于设定灰度阈值的像素点用0表示;
对二值表示后的待识别验证码图像进行降噪处理后,采用切割算法从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像;
对于切割出的每个待识别验证码字符的图像,根据该待识别验证码字符的图像中的各像素点的表示数值,构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量;
对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,并将与该待识别验证码字符的距离最小的标准特征向量所对应的字符作为识别出的验证码字符。
较佳地,所述计算该待识别验证码字符的特征向量与特征码库中的各标准特征向量之间的距离,具体包括:
记该待识别验证码字符为第j个待识别验证码字符,根据如下公式1计算第j个待识别验证码字符的特征向量CurrParaj与第k个标准特征向量StdParak之间的距离Lengthjk:
其中,n为待识别验证码字符的特征向量的元素的个数,CurrParaj[i]表示第j个待识别验证码字符的特征向量的第i个元素,StdParak[i]表示第k个待识别验证码字符的特征向量的第i个元素。
其中,所述特征码库中的各标准特征向量是预先存储的:
人工收集所述网站网页中的若干验证码图像,确定出收集的验证码图像中的每个字符的二值矩阵;对于每个字符,根据该字符的二值矩阵确定出该字符的特征向量,作为该字符的标准特征向量对应存储到所述特征码库中。
较佳地,所述确定出该待识别验证码字符的特征向量,具体包括:
将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m行元素之和作为该待识别验证码字符的第m+i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m列元素之和作为该待识别验证码字符的第m+i个元素。
较佳地,所述构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量,具体包括:
构建该待识别验证码字符的二值矩阵后,根据该二值矩阵求出该待识别验证码字符的质心坐标(x0,y0),进而求出该待识别验证码字符的旋转角度:对于该待识别验证码字符的图像中用1表示的每个像素点,根据如下公式2和3对该像素点进行坐标转换,由坐标(x,y)转换为(x',y'),计算出使得x'=x的θ,作为该像素点对应的旋转角度;其中,θ为假设的待识别验证码字符的旋转角度;
x'=(x-x0)×cosθ-(y-y0)×sinθ+x0 (公式2)
y'=(y-y0)×cosθ-(x-x0)×sinθ+y0 (公式3)
将该待验证码字符的图像中用1标识的每个像素点对应的旋转角度的平均值,作为该待识别验证码字符的旋转角度;
根据计算出的该待识别验证码字符的旋转角度,对该待识别验证码字符进行反向旋转后,确定出反向旋转后的该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量。
较佳地,所述对二值表示后的待识别验证码图像进行降噪处理,具体包括:
对于所述待识别验证码图像中每个用1表示的像素点,若判定与该像素点相邻的8个像素点均用0表示,则将该像素点修改为用0表示。
根据本发明的另一个方面,还提供了一种验证码识别装置,包括:
图像获取模块,用于获取网站网页中的待识别验证码图像;
二值表示模块,用于判断所述待识别验证码图像的边缘像素点的灰度值的平均值是否大于设定灰度阈值;若是,则将所述待识别验证码图像中灰度值不大于设定灰度阈值的像素点用1表示,灰度值大于设定灰度阈值的像素点用0表示;否则,将所述待识别验证码图像中灰度值大于设定灰度阈值的像素点用1表示,灰度值不大于设定灰度阈值的像素点用0表示;之后,输出二值表示后的待识别验证码图像;
降噪切割模块,用于对所述二值表示模块输出的待识别验证码图像进行降噪处理后,采用切割算法从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像;
特征向量确定模块,用于对于所述字符切割模块切割出的每个待识别验证码字符的图像,根据该待识别验证码字符的图像中的各像素点的表示数值,构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量;
字符识别模块,用于对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,并将与该待识别验证码字符的距离最小的标准特征向量所对应的字符作为识别出的验证码字符。
较佳地,所述字符识别模块具体用于根据如下公式1计算第j个待识别验证码字符的特征向量CurrParaj与第k个标准特征向量StdParak之间的距离Lengthjk:
其中,n为待识别验证码字符的特征向量的元素的个数,CurrParaj[i]表示第j个待识别验证码字符的特征向量的第i个元素,StdParak[i]表示第k个待识别验证码字符的特征向量的第i个元素。
较佳地,所述特征向量确定模块具体用于对于所述降噪切割模块切割出的每个待识别验证码字符的图像,将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m行元素之和作为该待识别验证码字符的第m+i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m列元素之和作为该待识别验证码字符的第m+i个元素。
较佳地,所述降噪切割模块具体用于对所述二值表示模块输出的待识别验证码图像中每个用1表示的像素点,若判定与该像素点相邻的8个像素点均用0表示,则将该像素点修改为用0表示;从而得到降噪处理后的待识别验证码图像;之后,采用切割算法,从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像。
本发明的技术方案中,获取网站网页中的待识别验证码图像后,对待识别验证码图像进行二值表示、降噪处理后,采用切割算法对待识别验证码图像进行切割,对于切割出的每个待识别验证码字符的图像,确定该待识别验证码字符的二值矩阵,进而确定该待识别验证码字符的特征向量,并计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,将与该待识别验证码字符的距离最小的标准特征向量对应的字符,作为识别出的验证码字符,从而本发明可以实现验证码识别,可用于网站安全性检测、自动化测试等。而且,本发明对待识别验证码图像进行二值表示、降噪处理,以及基于特征码库可以提高验证码识别的准确率。
附图说明
图1为本发明实施例的验证码识别方法的流程图;
图2为本发明实施例的待识别验证码图像中的噪点的示意图;
图3为本发明实施例的切割待识别验证码图像的示意图;
图4为本发明实施例的验证码识别装置的内部结构框图。
具体实施方式
以下将结合附图对本发明的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于:处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。
本发明的技术方案中,获取网站网页中的待识别验证码图像后,对待识别验证码图像进行二值表示、降噪处理后,对待识别验证码图像进行切割,切割出待识别验证码图像中的每个待识别验证码字符的图像;对于每个待识别验证码字符的图像,确定该待识别验证码字符的二值矩阵,并计算该待识别验证码字符的特征向量;对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,将与该待识别验证码字符的距离最小的标准特征向量所对应的字符,作为识别出的验证码字符,从而实现了验证码识别,为网站安全性检测、自动化测试的实现提供了支持。
下面结合附图详细说明本发明的技术方案。本发明实施例提供的验证码识别方法的流程如图1所示,具体包括如下步骤:
S101:获取网站网页中的待识别验证码图像。
具体地,基于互联网TCP/IP协议,获取网站网页中的验证码图像作为待识别验证码图像。
S102:对获取的待识别验证码图像进行二值表示。
具体地,将获取的待识别验证码图像转换为灰度图像后,判断该灰度图像的边缘像素点的灰度值的平均值是否大于设定灰度阈值;若是,则将待识别验证码图像中灰度值不大于设定灰度阈值的像素点用1表示,灰度值大于设定灰度阈值的像素点用0表示;否则,将待识别验证码图像中灰度值大于设定灰度阈值的像素点用1表示,灰度值不大于设定灰度阈值的像素点用0表示;从而得到二值表示后的待识别验证码图像。例如,图2示出了一个二值表示后的待识别验证码图像的示意图。
通常,为保证网站用户能肉眼识别网站网页中的验证码图像,验证码图像的验证码字符和背景往往具有一定的区分度(即背景和验证码字符的灰度值往往具有较大区别),以避免对用户肉眼识别造成干扰。
S103:对二值表示后的待识别验证码图像进行降噪处理,得到降噪处理后的待识别验证码图像。
具体地,对二值表示后的待识别验证码图像进行降噪处理,也就是查找二值表示后的待识别验证码图像中用1表示的每个像素点,判断与该像素点相邻的8个像素点是否均用0表示,若是,则判定该像素点为噪点(例如,图2所示的方框内的像素点),将该像素点修改为用0表示,否则,判定该像素点为正常点;从而,在本步骤中可得到降噪处理后的待识别验证码图像。
S104:采用切割算法从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像。
具体地,待识别验证码图像中通常包括多个待识别验证码字符,可采用现有的切割算法,对降噪处理后的待识别验证码图像进行切割。当待识别验证码图像中的验证码字符不存在粘连时,可采用较为简单的切割算法(例如最短路径法)进行图像切割,而当待识别验证码图像中的验证码字符存在粘连时,可以采用现有的滴水切分算法对待识别验证码图像进行切割。对待识别验证码图像进行切割后,可得到每个待识别验证码字符的图像。例如,图3示出了包含有5个验证码字符的待识别验证码图像的切割示意图。
S105:对于每个待识别验证码字符的图像,确定该待识别验证码字符的二值矩阵,进而计算该待识别验证码字符的特征向量。
具体地,对于得到的每个待识别验证码字符的图像,提取出该待识别验证码字符的图像中的像素点的表示数值(即0或1),结合该待识别验证码字符的图像中的各像素点的位置,构建该待识别验证码字符的二值矩阵。
之后,根据该待识别验证码字符的二值矩阵,计算该待识别验证码字符的特征向量,具体可以为:将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m行元素之和作为该待识别验证码字符的第m+i个元素;或者,将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m列元素之和作为该待识别验证码字符的第m+i个元素。其中,m、i均为自然数。
其中,对于有旋转的待识别验证码字符,确定该待识别验证码字符的二值矩阵后,可根据该二值矩阵求出该待识别验证码字符的质心坐标(x0,y0),并根据求出的质心坐标,求出该待识别验证码字符的旋转角度,具体可以为:
对于该待识别验证码字符的图像中用1表示的每个像素点,根据如下公式2和3对该像素点进行坐标转换,由坐标(x,y)转换为(x',y'):
x'=(x-x0)×cosθ-(y-y0)×sinθ+x0 (公式2)
y'=(y-y0)×cosθ-(x-x0)×sinθ+y0 (公式3)
其中,θ为假设的待识别验证码字符的旋转角度。
对于一个假设的θ,若x'<x,则增大θ,若x'>x,则减小θ,直至计算出使得x'=x的θ,并将其作为该待识别验证码字符的旋转角度。
从而,可基于确定出的待识别验证码字符的旋转角度,采用现有方法对有旋转的待识别验证码字符进行反向旋转,并确定出反向旋转后的该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量。
S106:对于每个待识别验证码字符,根据该待识别验证码字符的特征向量,识别出该待识别验证码字符。
具体地,对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,将与该待识别验证码字符的距离最小的标准特征向量所对应的字符作为识别出的验证码字符。
其中,对于第j个待识别验证码字符,采用如下公式3计算第j个待识别验证码字符的特征向量CurrParaj与第k个标准特征向量StdParak之间的距离Lengthjk:
其中,n为待识别验证码字符的特征向量的元素的个数,CurrParaj[i]表示第j个待识别验证码字符的特征向量的第i个元素,StdParak[i]表示第k个待识别验证码字符的特征向量的第i个元素。
事实上,特征码库中的各字符的标准特征向量是可以预先存储的,具体可以是由人工收集网站网页(也就是待测试安全性的网站网页,或者待进行自动化测试的网站)中的若干验证码图像,并使收集的若干验证码图像中包含该网站网页的所有验证码字符;之后,人工确定出收集的验证码图像中的每个字符的二值矩阵,并对于每个字符,采用上述的方法,根据该字符的二值矩阵确定出该字符的特征向量,作为该字符的标准特征向量对应存储到特征码库中。特征码库中的各字符的标准特征向量也可以是由本领域技术人员根据其他方法确定的,此处不再赘述。
基于上述的验证码识别方法,本发明实施例提供的验证码识别装置的内部结构框图,如图4所示,具体包括:图像获取模块401、二值表示模块402、降噪切割模块403、特征向量确定模块404和字符识别模块405。
图像获取模块401用于获取网站网页中的待识别验证码图像。
二值表示模块402用于判断待识别验证码图像的边缘像素点的灰度值的平均值是否大于设定灰度阈值;若是,则将所述待识别验证码图像中灰度值不大于设定灰度阈值的像素点用1表示,灰度值大于设定灰度阈值的像素点用0表示;否则,将所述待识别验证码图像中灰度值大于设定灰度阈值的像素点用1表示,灰度值不大于设定灰度阈值的像素点用0表示;之后,输出二值表示后的待识别验证码图像。
降噪切割模块403用于对二值表示模块402输出的待识别验证码图像进行降噪处理后,采用切割算法从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像。具体地,降噪切割模块403对二值表示模块402输出的待识别验证码图像中每个用1表示的像素点,若判定与该像素点相邻的8个像素点均用0表示,则将该像素点修改为用0表示;从而得到降噪处理后的待识别验证码图像。
特征向量确定模块404用于对于降噪切割模块403切割出的每个待识别验证码字符的图像,根据该待识别验证码字符的图像中的各像素点的表示数值,构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量。具体地,特征向量确定模块404对于降噪切割模块403切割出的每个待识别验证码字符的图像,将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m行元素之和作为该待识别验证码字符的第m+i个元素;或者,将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m列元素之和作为该待识别验证码字符的第m+i个元素。
字符识别模块405用于对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,将与该待识别验证码字符的距离最小的标准特征向量所对应的验证码字符作为识别出的验证码字符。具体地,字符识别模块405可根据如下公式1计算第j个待识别验证码字符的特征向量CurrParaj与第k个标准特征向量StdParak之间的距离Lengthjk:
其中,n为待识别验证码字符的特征向量的元素的个数,CurrParaj[i]表示第j个待识别验证码字符的特征向量的第i个元素,StdParak[i]表示第k个待识别验证码字符的特征向量的第i个元素。
综上所述,本发明技术方案中,获取网站网页中的待识别验证码图像后,对待识别验证码图像进行二值表示、降噪处理后,采用切割算法对待识别验证码图像进行切割,对于切割出的每个待识别验证码字符的图像,确定该待识别验证码字符的二值矩阵,进而确定该待识别验证码字符的特征向量,并计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,将与该待识别验证码字符的距离最小的标准特征向量对应的字符,作为识别出的验证码字符,从而本发明可以实现验证码识别,可用于网站安全性检测、自动化测试等。而且,本发明对待识别验证码图像进行二值表示、降噪处理,以及基于特征码库可以提高验证码识别的准确率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种验证码识别方法,其特征在于,包括:
获取网站网页中的待识别验证码图像;
判断所述待识别验证码图像的边缘像素点的灰度值的平均值是否大于设定灰度阈值;若是,则将所述待识别验证码图像中灰度值不大于设定灰度阈值的像素点用1表示,灰度值大于设定灰度阈值的像素点用0表示;否则,将所述待识别验证码图像中灰度值大于设定灰度阈值的像素点用1表示,灰度值不大于设定灰度阈值的像素点用0表示;
对二值表示后的待识别验证码图像进行降噪处理后,采用切割算法从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像;
对于切割出的每个待识别验证码字符的图像,根据该待识别验证码字符的图像中的各像素点的表示数值,构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量;
对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,并将与该待识别验证码字符的距离最小的标准特征向量所对应的字符作为识别出的验证码字符。
2.如权利要求1所述的方法,其特征在于,所述计算该待识别验证码字符的特征向量与特征码库中的各标准特征向量之间的距离,具体包括:
记该待识别验证码字符为第j个待识别验证码字符,根据如下公式1计算第j个待识别验证码字符的特征向量CurrParaj与第k个标准特征向量StdParak之间的距离Lengthjk:
其中,n为待识别验证码字符的特征向量的元素的个数,CurrParaj[i]表示第j个待识别验证码字符的特征向量的第i个元素,StdParak[i]表示第k个待识别验证码字符的特征向量的第i个元素。
3.如权利要求2所述的方法,其特征在于,所述特征码库中的各标准特征向量是预先存储的:
人工收集所述网站网页中的若干验证码图像,确定出收集的验证码图像中的每个字符的二值矩阵;对于每个字符,根据该字符的二值矩阵确定出该字符的特征向量,作为该字符的标准特征向量对应存储到所述特征码库中。
4.如权利要求3所述的方法,其特征在于,所述确定出该待识别验证码字符的特征向量,具体包括:
将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m行元素之和作为该待识别验证码字符的第m+i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m列元素之和作为该待识别验证码字符的第m+i个元素。
5.如权利要求4所述的方法,其特征在于,所述构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量,具体包括:
构建该待识别验证码字符的二值矩阵后,根据该二值矩阵求出该待识别验证码字符的质心坐标(x0,y0),进而求出该待识别验证码字符的旋转角度:对于该待识别验证码字符的图像中用1表示的每个像素点,根据如下公式2和3对该像素点进行坐标转换,由坐标(x,y)转换为(x',y'),计算出使得x'=x的θ,作为该像素点对应的旋转角度;其中,θ为假设的待识别验证码字符的旋转角度;
x'=(x-x0)×cosθ-(y-y0)×sinθ+x0 (公式2)
y'=(y-y0)×cosθ-(x-x0)×sinθ+y0 (公式3)
将该待验证码字符的图像中用1标识的每个像素点对应的旋转角度的平均值,作为该待识别验证码字符的旋转角度;
根据计算出的该待识别验证码字符的旋转角度,对该待识别验证码字符进行反向旋转后,确定出反向旋转后的该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量。
6.如权利要求1-5任一所述的方法,其特征在于,所述对二值表示后的待识别验证码图像进行降噪处理,具体包括:
对于所述待识别验证码图像中每个用1表示的像素点,若判定与该像素点相邻的8个像素点均用0表示,则将该像素点修改为用0表示。
7.一种验证码识别装置,其特征在于,包括:
图像获取模块,用于获取网站网页中的待识别验证码图像;
二值表示模块,用于判断所述待识别验证码图像的边缘像素点的灰度值的平均值是否大于设定灰度阈值;若是,则将所述待识别验证码图像中灰度值不大于设定灰度阈值的像素点用1表示,灰度值大于设定灰度阈值的像素点用0表示;否则,将所述待识别验证码图像中灰度值大于设定灰度阈值的像素点用1表示,灰度值不大于设定灰度阈值的像素点用0表示;之后,输出二值表示后的待识别验证码图像;
降噪切割模块,用于对所述二值表示模块输出的待识别验证码图像进行降噪处理后,采用切割算法从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像;
特征向量确定模块,用于对于所述字符切割模块切割出的每个待识别验证码字符的图像,根据该待识别验证码字符的图像中的各像素点的表示数值,构建该待识别验证码字符的二值矩阵,进而确定出该待识别验证码字符的特征向量;
字符识别模块,用于对于每个待识别验证码字符,计算该待识别验证码字符的特征向量与特征码库中的各字符的标准特征向量之间的距离,并将与该待识别验证码字符的距离最小的标准特征向量所对应的字符作为识别出的验证码字符。
8.如权利要求7所述的装置,其特征在于,
所述字符识别模块具体用于根据如下公式1计算第j个待识别验证码字符的特征向量CurrParaj与第k个标准特征向量StdParak之间的距离Lengthjk:
其中,n为待识别验证码字符的特征向量的元素的个数,CurrParaj[i]表示第j个待识别验证码字符的特征向量的第i个元素,StdParak[i]表示第k个待识别验证码字符的特征向量的第i个元素。
9.如权利要求8所述的装置,其特征在于,
所述特征向量确定模块具体用于对于所述降噪切割模块切割出的每个待识别验证码字符的图像,将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素;或者,
将该待识别验证码字符的二值矩阵的第i列元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m行元素之和作为该待识别验证码字符的第m+i个元素;或者,
将该待识别验证码字符的二值矩阵的第i行元素之和作为该待识别验证码字符的特征向量的第i个元素,并将该待识别验证码字符的第m列元素之和作为该待识别验证码字符的第m+i个元素。
10.如权利要求7-9任一所述的装置,其特征在于,
所述降噪切割模块具体用于对所述二值表示模块输出的待识别验证码图像中每个用1表示的像素点,若判定与该像素点相邻的8个像素点均用0表示,则将该像素点修改为用0表示;从而得到降噪处理后的待识别验证码图像;之后,采用切割算法,从降噪处理后的待识别验证码图像中切割出每个待识别验证码字符的图像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410246783.1A CN104021376B (zh) | 2014-06-05 | 2014-06-05 | 验证码识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410246783.1A CN104021376B (zh) | 2014-06-05 | 2014-06-05 | 验证码识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021376A true CN104021376A (zh) | 2014-09-03 |
CN104021376B CN104021376B (zh) | 2017-11-21 |
Family
ID=51438121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410246783.1A Active CN104021376B (zh) | 2014-06-05 | 2014-06-05 | 验证码识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021376B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104933345A (zh) * | 2015-06-09 | 2015-09-23 | 苏州德锐朗智能科技有限公司 | 一种基于图像的验证码自动输入系统 |
CN105187443A (zh) * | 2015-09-28 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种测试web验证码的系统及方法 |
CN106060000A (zh) * | 2016-05-06 | 2016-10-26 | 青岛海信移动通信技术股份有限公司 | 一种识别验证信息的方法和设备 |
CN107360137A (zh) * | 2017-06-15 | 2017-11-17 | 深圳市牛鼎丰科技有限公司 | 用于验证码识别的神经网络模型的构建方法和装置 |
CN108171229A (zh) * | 2017-12-27 | 2018-06-15 | 广州多益网络股份有限公司 | 一种空心粘连验证码的识别方法及系统 |
CN108563559A (zh) * | 2018-03-12 | 2018-09-21 | 平安普惠企业管理有限公司 | 一种验证码的测试方法、装置、终端设备及存储介质 |
CN108874756A (zh) * | 2018-06-29 | 2018-11-23 | 广东智媒云图科技股份有限公司 | 一种验证码优化方法 |
CN109101810A (zh) * | 2018-08-14 | 2018-12-28 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN109344834A (zh) * | 2018-09-06 | 2019-02-15 | 昆明理工大学 | 一种基于图像处理的残缺汉字识别方法 |
CN110490056A (zh) * | 2019-07-08 | 2019-11-22 | 北京三快在线科技有限公司 | 对包含算式的图像进行处理的方法和装置 |
CN110766068A (zh) * | 2019-10-21 | 2020-02-07 | 北京车智赢科技有限公司 | 一种验证码识别方法及计算设备 |
CN110808961A (zh) * | 2019-10-16 | 2020-02-18 | 上海易点时空网络有限公司 | 用于安全验证的数据处理方法及装置 |
CN110851816A (zh) * | 2019-11-18 | 2020-02-28 | 携程旅游信息技术(上海)有限公司 | 破解图像验证码的方法、系统、电子设备及存储介质 |
CN111160369A (zh) * | 2019-12-25 | 2020-05-15 | 携程旅游信息技术(上海)有限公司 | 破解汉字验证码的方法、系统、电子设备及存储介质 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
CN111667549A (zh) * | 2020-04-28 | 2020-09-15 | 华东师范大学 | 基于对抗样本和随机变换的图形验证码生成方法、设备及存储介质 |
CN112270325A (zh) * | 2020-11-09 | 2021-01-26 | 携程旅游网络技术(上海)有限公司 | 字符验证码识别模型训练方法、识别方法、系统、设备及介质 |
WO2021159802A1 (zh) * | 2020-09-04 | 2021-08-19 | 平安科技(深圳)有限公司 | 图形验证码识别方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282672A1 (en) * | 2005-05-27 | 2006-12-14 | Pitney Bowes Incorporated | Method for creating self-authenticating documents |
CN102737122A (zh) * | 2012-06-08 | 2012-10-17 | 浙江大学 | 一种提取网页中验证码图片的方法 |
CN103020634A (zh) * | 2011-09-26 | 2013-04-03 | 北京大学 | 用于验证码识别的分割方法和装置 |
CN103745213A (zh) * | 2014-02-28 | 2014-04-23 | 中国人民解放军63680部队 | 基于lvq神经网络的光学字符识别方法 |
-
2014
- 2014-06-05 CN CN201410246783.1A patent/CN104021376B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282672A1 (en) * | 2005-05-27 | 2006-12-14 | Pitney Bowes Incorporated | Method for creating self-authenticating documents |
CN103020634A (zh) * | 2011-09-26 | 2013-04-03 | 北京大学 | 用于验证码识别的分割方法和装置 |
CN102737122A (zh) * | 2012-06-08 | 2012-10-17 | 浙江大学 | 一种提取网页中验证码图片的方法 |
CN103745213A (zh) * | 2014-02-28 | 2014-04-23 | 中国人民解放军63680部队 | 基于lvq神经网络的光学字符识别方法 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104933345B (zh) * | 2015-06-09 | 2017-10-31 | 苏州德锐朗智能科技有限公司 | 一种基于图像的验证码自动输入系统 |
CN104933345A (zh) * | 2015-06-09 | 2015-09-23 | 苏州德锐朗智能科技有限公司 | 一种基于图像的验证码自动输入系统 |
CN105187443A (zh) * | 2015-09-28 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种测试web验证码的系统及方法 |
CN105187443B (zh) * | 2015-09-28 | 2018-03-06 | 上海斐讯数据通信技术有限公司 | 一种测试web验证码的系统及方法 |
CN106060000B (zh) * | 2016-05-06 | 2020-02-07 | 青岛海信移动通信技术股份有限公司 | 一种识别验证信息的方法和设备 |
CN106060000A (zh) * | 2016-05-06 | 2016-10-26 | 青岛海信移动通信技术股份有限公司 | 一种识别验证信息的方法和设备 |
CN107360137A (zh) * | 2017-06-15 | 2017-11-17 | 深圳市牛鼎丰科技有限公司 | 用于验证码识别的神经网络模型的构建方法和装置 |
CN108171229A (zh) * | 2017-12-27 | 2018-06-15 | 广州多益网络股份有限公司 | 一种空心粘连验证码的识别方法及系统 |
CN108171229B (zh) * | 2017-12-27 | 2021-11-16 | 广州多益网络股份有限公司 | 一种空心粘连验证码的识别方法及系统 |
CN108563559A (zh) * | 2018-03-12 | 2018-09-21 | 平安普惠企业管理有限公司 | 一种验证码的测试方法、装置、终端设备及存储介质 |
CN108874756A (zh) * | 2018-06-29 | 2018-11-23 | 广东智媒云图科技股份有限公司 | 一种验证码优化方法 |
CN109101810A (zh) * | 2018-08-14 | 2018-12-28 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN109101810B (zh) * | 2018-08-14 | 2021-07-06 | 电子科技大学 | 一种基于ocr技术的文字验证码识别方法 |
CN109344834A (zh) * | 2018-09-06 | 2019-02-15 | 昆明理工大学 | 一种基于图像处理的残缺汉字识别方法 |
CN110490056A (zh) * | 2019-07-08 | 2019-11-22 | 北京三快在线科技有限公司 | 对包含算式的图像进行处理的方法和装置 |
CN110808961A (zh) * | 2019-10-16 | 2020-02-18 | 上海易点时空网络有限公司 | 用于安全验证的数据处理方法及装置 |
CN110808961B (zh) * | 2019-10-16 | 2022-02-01 | 上海易点时空网络有限公司 | 用于安全验证的数据处理方法及装置 |
CN110766068A (zh) * | 2019-10-21 | 2020-02-07 | 北京车智赢科技有限公司 | 一种验证码识别方法及计算设备 |
CN110766068B (zh) * | 2019-10-21 | 2023-09-19 | 北京车智赢科技有限公司 | 一种验证码识别方法及计算设备 |
CN110851816A (zh) * | 2019-11-18 | 2020-02-28 | 携程旅游信息技术(上海)有限公司 | 破解图像验证码的方法、系统、电子设备及存储介质 |
CN110851816B (zh) * | 2019-11-18 | 2023-10-31 | 携程旅游信息技术(上海)有限公司 | 破解图像验证码的方法、系统、电子设备及存储介质 |
CN111160369A (zh) * | 2019-12-25 | 2020-05-15 | 携程旅游信息技术(上海)有限公司 | 破解汉字验证码的方法、系统、电子设备及存储介质 |
CN111160369B (zh) * | 2019-12-25 | 2024-03-05 | 携程旅游信息技术(上海)有限公司 | 破解汉字验证码的方法、系统、电子设备及存储介质 |
CN111274957A (zh) * | 2020-01-20 | 2020-06-12 | 阳光人寿保险股份有限公司 | 网页页面验证码识别方法、装置、终端和计算机存储介质 |
CN111667549A (zh) * | 2020-04-28 | 2020-09-15 | 华东师范大学 | 基于对抗样本和随机变换的图形验证码生成方法、设备及存储介质 |
CN111667549B (zh) * | 2020-04-28 | 2023-04-07 | 华东师范大学 | 基于对抗样本和随机变换的图形验证码生成方法、设备及存储介质 |
WO2021159802A1 (zh) * | 2020-09-04 | 2021-08-19 | 平安科技(深圳)有限公司 | 图形验证码识别方法、装置、计算机设备及存储介质 |
CN112270325A (zh) * | 2020-11-09 | 2021-01-26 | 携程旅游网络技术(上海)有限公司 | 字符验证码识别模型训练方法、识别方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104021376B (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021376A (zh) | 验证码识别方法和装置 | |
CN108870090B (zh) | 基于最小二乘支持向量机信息融合的管道泄漏检测方法 | |
CN107682368B (zh) | 基于交互操作的验证方法、客户端、服务器及系统 | |
CN104331876A (zh) | 直线检测、图像处理的方法及相关装置 | |
CN102799867A (zh) | 基于图像处理的仪表指针转角识别方法 | |
CN110008917B (zh) | 基于表格理解的继电保护装置定值单数据的故障检测方法 | |
CN109194677A (zh) | 一种sql注入攻击检测方法、装置及设备 | |
US9792507B2 (en) | Method and system for ground truth determination in lane departure warning | |
EP3684025B1 (en) | Web page request identification | |
CN108171229B (zh) | 一种空心粘连验证码的识别方法及系统 | |
EP3859558A1 (en) | Answer marking method for mental calculation questions, device, electronic apparatus, and storage medium | |
RU2014103152A (ru) | Способы и системы эффективного автоматического распознавания символов | |
CN116028499B (zh) | 检测信息生成方法、电子设备和计算机可读介质 | |
CN105978850A (zh) | 一种基于图形匹配的仿冒网站检测系统及检测方法 | |
CN109101810A (zh) | 一种基于ocr技术的文字验证码识别方法 | |
CN104331693A (zh) | 一种印刷品对称性检测方法及系统 | |
CN107426136B (zh) | 一种网络攻击的识别方法和装置 | |
CN110119742A (zh) | 一种集装箱号的识别方法、装置及移动终端 | |
CN106940804B (zh) | 建筑工程物料管理系统表单数据自动录入方法 | |
CN112883359B (zh) | 一种动态验证方法和系统 | |
CN111683089A (zh) | 一种识别钓鱼网站的方法、服务器、介质及计算机设备 | |
CN112070735A (zh) | 一种基于特设卷积算子的沥青芯样图像提取方法及系统 | |
Xu et al. | A statistical method for peak localization in Hough space by analysing butterflies | |
CN113128247B (zh) | 一种图像定位标识验证方法及服务器 | |
US10007857B2 (en) | Method for the three-dimensional detection of objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |