移动平台的验证码识别系统及识别方法与流程

文档序号:11156146阅读:633来源:国知局
移动平台的验证码识别系统及识别方法与制造工艺

本发明涉及验证码识别领域,特别涉及一种移动平台的验证码识别系统及识别方法。



背景技术:

全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA)俗称验证码,是一种区分用户是计算机或人的公共全自动程序。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。

CAPTCHA目前广泛用于网站的留言板,许多留言板为防止有人利用计算机程序大量在留言板上张贴广告或其他垃圾消息,因此会放置CAPTCHA要求留言者必须输入图片上所显示的数字或是算术题才可以完成留言。而为了避免被计算机程序以暴力法大量尝试交易,一些网络上的交易系统(如订票系统、网络银行)也会有CAPTCHA的机制。

传统的验证码的生成方式较为简单,目前各平台使用的验证码技术从增加干扰点、线,到扭曲、变形验证码中的字符,更甚至通过点击答案图片、拖动图片拼图的方式来防止验证码被机器识别,阻止其他恶性行为的发生。在现有的自动化测试是,移动平台提供的接口模块包含验证码功能,而现有技术在对移动平台提供的接口所包含的验证码进行识别时,其识别较慢,严重影响用户的体验。

另外,目前各网站基本都使用了验证码识别技术,该验证码识别技术可以有效地阻止计算机直接进入网站系统,为用户的信息安全提供了强大的保障。但有时也存在着阻碍自动化测试的普通验证码,这一类验证码的结构较为简单,却对自动化测试产生了较大的阻碍,在不得关闭服务器的验证码功能以及探寻到万能验证码的情况下,如何解决验证码的自动识别问题,成了自动化测试最大的瓶颈。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能对移动平台提供的接口所包含的验证码进行快速自动识别、提升用户的体验的移动平台的验证码识别系统及识别方法。

本发明解决其技术问题所采用的技术方案是:构造一种移动平台的验证码识别系统,包括:

移动平台验证码截取模块:用于将原始验证码图片从移动平台截取至所述移动平台的验证码识别系统,做进一步的处理操作;

验证码降噪模块:与所述移动平台验证码截取模块连接,用于将截取到的所述原始验证码图片通过中值滤波算法进行降噪处理,得到二次验证码图片;

验证码二值化模块:与所述验证码降噪模块连接,用于将所述二次验证码图片转化为黑白二色的图片,并按照预先设定的截取框大小将所述黑白二色的图片切割成多个验证码子块;

验证码识别核心模块:与所述验证码二值化模块连接,用于根据总像素含量、像素匹配度、线段拐角匹配度以及自主学习模块产生的学习库比较法,识别出切割好的所述验证码子块,并得出验证码代表的字符串,将所述字符串代表的算式值计算出来;

自主学习模块:与所述验证码识别核心模块连接,用于当所述验证码识别核心模块无法通过算法和学习库比较法得出结果时,根据得到的总像素含量值、像素匹配度和线段拐角匹配度中最优可能的字符进行猜测性尝试,若移动平台接收到计算好的猜测值并能正确通过,则所述移动平台的验证码识别系统自动将所述猜测值记录到自主学习数据库中。

在本发明所述的移动平台的验证码识别系统中,所述验证码的个数为5块。

本发明还涉及一种利用上述移动平台的验证码识别系统进行验证码的识别方法,包括如下步骤:

A)验证码截取模块将移动平台产生的原始验证码图片截取下来,并保存验证码的输入位置和提交按钮的位置;

B)使用验证码降噪模块对所述原始验证码图片进行中值滤波,得到二次验证码图片;

C)采用验证码二值化模块计算所述二次验证图片中的整体像素平均值,根据所述整体像素平均值设定阈值,将低于所述阈值的部分设定为黑色,将高于所述阈值的部分设定为白色,并将二值化后得到的黑白二色的图片按照预先设定的截取框切割成多个验证码子块;

D)采用验证码识别核心模块对每一个所述验证码子块所代表的字符进行识别;

E)将识别得到的结果值自动填入到所述验证码的输入位置,并自动点击所述提交按钮,判断所述移动平台返回的状态是否为成功,如是,进行后续的自动化测试;否则,调用第三方人工识别,得出正确结果后经由同步器将其同步至自主学习数据库。

在本发明所述的识别方法中,所述步骤D)进一步包括:

D1)对于每一个所述验证码子块,先计算出原图的总黑色像素数x、学习库比对图的总黑色像素数y、匹配的黑色像素个数a和当前学习图中匹配的黑色像素个数的最大值b,并根据所述原图的总黑色像素数x、学习库比对图的总黑色像素数y、匹配的黑色像素个数a和当前学习图中匹配的黑色像素个数的最大值b计算出原图黑色像素匹配率r1=a/x和学习库黑色像素匹配率r2=a/y;执行步骤D2)或D3);

D2)若a大于b,且r1>0.6,则令b=a,β=r1,α=r2;其中,α为最大学习图匹配率,β为最大原图匹配率;若|y-x|≤4,且r1≥0.7,r2≥0.8,或者|y-x|>4且r1≥0.6,r2≥0.6,则认为学习图为原图的一个解;

D3)若a不大于b,则根据b、α和β计算出加权平均值(b*0.5+α*0.25+β*0.25),选择加权平均值最高者作为猜测字符,得到最终的字符串计算式,测算出结果值并返回。

在本发明所述的识别方法中,对于包含猜测字符的,在测算出的结果值的末尾设置一个标识位,当所述标识位的值为False时,表示所述测算出的结果值为猜测结果。

在本发明所述的识别方法中,对于标识位为False的猜测结果,将所述猜测结果自动填入到所述验证码的输入位置,并自动点击所述提交按钮,当移动平台返回的状态为成功时,则经由所述同步器将所述猜测结果存入所述自主学习数据库,当移动平台返回的状态为失败时,则调用第三方人工识别,得出正确结果后,经由所述同步器将正确结果同步至所述自主学习数据库。

在本发明所述的识别方法中,所述验证码子块的个数为5块。

实施本发明的移动平台的验证码识别系统及识别方法,具有以下有益效果:由于对截取到的原始验证码图片通过中值滤波算法进行降噪处理,得到二次验证码图片;然后将二次验证码图片转化为黑白二色的图片,并切割成多个验证码子块;对切割好的验证码子块进行识别,得出验证码代表的字符串,对最优可能的字符进行猜测性尝试,若移动平台接收到计算好的猜测值并能正确通过,则自动将猜测值记录到自主学习数据库中;本发明能解决简单旋转、放大缩小的字符验证码图片的识别,对于计算式会进行自动运算,得出正确结果并返回,自身具备自主学习的优点,对于未正确识别过的字符,会进行猜测,第三方验证码若通过,会将本次猜测结果保存到自主学习数据库,如此一来,随着程序的运行时间越久,整体识别验证码的正确率将会越来越高,所以其能对移动平台提供的接口所包含的验证码进行快速自动识别、提升用户的体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明移动平台的验证码识别系统及识别方法一个实施例中的结构示意图;

图2为所述实施例中进行验证码的识别方法的流程图;

图3为所述实施例中采用验证码识别核心模块对每一个所述验证码子块所代表的字符进行识别的具体流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明移动平台的验证码识别系统及识别方法实施例中,其移动平台的验证码识别系统的结构示意图如图1所示。图1中,该移动平台的验证码识别系统包括移动平台验证码截取模块1、验证码降噪模块2、验证码二值化模块3、验证码识别核心模块4和自主学习模块5;其中,移动平台验证码截取模块1用于将原始验证码图片从移动平台截取至移动平台的验证码识别系统,做进一步的处理操作;验证码降噪模块2与移动平台验证码截取模块1连接,用于将截取到的原始验证码图片通过中值滤波算法进行降噪处理,去除掉干扰点和线后,得到二次验证码图片;验证码二值化模块3与验证码降噪模块2连接,用于将二次验证码图片转化为黑白二色的图片,并按照预先设定的截取框大小将黑白二色的图片切割成多个验证码子块;本实施例中,将黑白二色的图片切割成5个验证码子块,当然,在实际应用中,验证码子块的个数可根据具体情况进行相应调整。

本实施例中,验证码识别核心模块4与验证码二值化模块3连接,用于根据总像素含量、像素匹配度、线段拐角匹配度以及自主学习模块5产生的学习库比较法,识别出切割好的验证码子块,并得出验证码代表的字符串,将该字符串代表的算式值计算出来;自主学习模块5与验证码识别核心模块4连接,用于当且仅当验证码识别核心模块4无法通过算法和学习库比较法得出结果时,根据算法得到的总像素含量值、像素匹配度和线段拐角匹配度中最优可能的字符进行猜测性尝试,若移动平台接收到计算好的猜测值并能正确通过,则移动平台的验证码识别系统自动将猜测值记录到自主学习数据库中。随着不断地自主学习,该移动平台的验证码识别系统的识别准确率将会不断提高。

由于本发明的验证码识别系统对截取到的原始验证码图片通过中值滤波算法进行降噪处理,得到二次验证码图片;然后将二次验证码图片转化为黑白二色的图片,并切割成多个验证码子块;对切割好的验证码子块进行识别,得出验证码代表的字符串,对最优可能的字符进行猜测性尝试,若移动平台接收到计算好的猜测值并能正确通过,则自动将猜测值记录到自主学习数据库中;本发明的验证码识别系统能解决简单旋转、放大缩小的字符验证码图片的识别,对于计算式会进行自动运算,得出正确结果并返回,自身具备自主学习的优点,对于未正确识别过的字符,会进行猜测,第三方验证码若通过,会将本次猜测结果保存到自主学习数据库,如此一来,随着程序的运行时间越久,整体识别验证码的正确率将会越来越高,所以其能对移动平台提供的接口所包含的验证码进行快速自动识别、提升用户的体验。

本实施例还涉及一种利用上述移动平台的验证码识别系统进行验证码的识别方法,其流程图如图2所示。图2中,该进行验证码的识别方法包括如下步骤:

步骤S01 验证码截取模块将移动平台产生的原始验证码图片截取下来,并保存验证码的输入位置和提交按钮的位置:本步骤中,验证码截取模块将移动平台产生的原始验证码图片截取下来,并保存验证码的输入位置和提交按钮的位置。

步骤S02 使用验证码降噪模块对原始验证码图片进行中值滤波,得到二次验证码图片:本步骤中,使用验证码降噪模块对原始验证码图片进行中值滤波,去除掉干扰点和线后,得到二次验证码图片。

步骤S03 采用验证码二值化模块计算二次验证图片中的整体像素平均值,根据整体像素平均值设定阈值,将低于阈值的部分设定为黑色,将高于阈值的部分设定为白色,并将二值化后得到的黑白二色的图片按照预先设定的截取框切割成多个验证码子块:本步骤中,采用验证码二值化模块计算二次验证图片中的整体像素平均值,根据整体像素平均值设定阈值,具体是收集主体验证码符号采用的像素的RGB值,计算出阈值,根据阈值对二次验证图片进行二值化处理,即将低于阈值的部分设定为黑色,将高于阈值的部分设定为白色。然后将二值化后得到的黑白二色的图片按照预先设定的截取框切割成多个验证码子块。本实施例中,将黑白二色的图片切割成5个验证码子块,当然,在实际应用中,验证码子块的个数可根据具体情况进行相应调整。

步骤S04 采用验证码识别核心模块对每一个验证码子块所代表的字符进行识别:本步骤中,采用验证码识别核心模块对每一个验证码子块所代表的字符进行识别,关于如何进行识别,后续会进行详细描述。

步骤S05 将识别得到的结果值自动填入到验证码的输入位置,并自动点击提交按钮,判断移动平台返回的状态是否为成功:本步骤中,将识别得到的结果值自动填入到上述步骤S01中保留的验证码的输入位置,并自动点击提交按钮,然后判断移动平台返回的状态是否为成功,如果判断的结果为是,则执行步骤S07;否则,执行步骤S06。

步骤S06调用第三方人工识别,得出正确结果后经由同步器将其同步至自主学习数据库:如果上述步骤S05的判断结果为否,即移动平台返回的状态为失败,则执行本步骤。本步骤中,调用第三方人工识别,得出正确结果后经由同步器将本次的正确结果同步至自主学习数据库,用于以后的验证码识别,提高识别的准确率。

步骤S07 进行后续的自动化测试:如果上述步骤S05的判断结果为是,即移动平台返回的状态为成功,则执行本步骤。本步骤中,进行后续的自动化测试。

由于本发明的识别方法对截取到的原始验证码图片通过中值滤波算法进行降噪处理,得到二次验证码图片;然后将二次验证码图片转化为黑白二色的图片,并切割成多个验证码子块;对切割好的验证码子块进行识别,得出验证码代表的字符串,对最优可能的字符进行猜测性尝试,若移动平台接收到计算好的猜测值并能正确通过,则自动将猜测值记录到自主学习数据库中;本发明的识别方法能解决简单旋转、放大缩小的字符验证码图片的识别,对于计算式会进行自动运算,得出正确结果并返回,自身具备自主学习的优点,对于未正确识别过的字符,会进行猜测,第三方验证码若通过,会将本次猜测结果保存到自主学习数据库,如此一来,随着程序的运行时间越久,整体识别验证码的正确率将会越来越高,所以其能对移动平台提供的接口所包含的验证码进行快速自动识别、提升用户的体验。

对于本实施例而言,上述步骤S04还可进一步细化,其细化后的流程图如图3所示。图3中,该步骤S04进一步包括:

步骤S41 对于每一个验证码子块,先计算出原图的总黑色像素数x、学习库比对图的总黑色像素数y、匹配的黑色像素个数a和当前学习图中匹配的黑色像素个数的最大值b,并根据原图的总黑色像素数x、学习库比对图的总黑色像素数y、匹配的黑色像素个数a和当前学习图中匹配的黑色像素个数的最大值b计算出原图黑色像素匹配率r1=a/x和学习库黑色像素匹配率r2=a/y:本步骤中,对于每一个验证码子块,先计算出原图的总黑色像素数x、学习库比对图的总黑色像素数y、匹配的黑色像素个数a和当前学习图中匹配的黑色像素个数的最大值b,并根据上述四个参数(即原图的总黑色像素数x、学习库比对图的总黑色像素数y、匹配的黑色像素个数a和当前学习图中匹配的黑色像素个数的最大值b)计算出原图黑色像素匹配率r1=a/x和学习库黑色像素匹配率r2=a/y,其中,r1为原图黑色像素匹配率,r2为学习库黑色像素匹配率。执行完本步骤,执行步骤S42或步骤S43。

步骤S42 若a大于b,且r1>0.6,则令b=a,β=r1,α=r2;若|y-x|≤4,且r1≥0.7,r2≥0.8,或者|y-x|>4且r1≥0.6,r2≥0.6,则认为学习图为原图的一个解:本步骤中,若a大于b,且r1>0.6,则可以认定学习图是极接近原图的一个解,更新当前学习图中匹配的黑色像素个数的最大值b,则令b=a,更新最大原图匹配率β,令β=r1,更新最大学习图匹配率α,令α=r2。进一步地,若y减去x的绝对值小于等于4,即|y-x|≤4,且r1≥0.7,r2≥0.8,或者y减去x的绝对值大于4,|y-x|>4且r1≥0.6,r2≥0.6,则认为学习图为原图的一个解。

步骤S43若a不大于b,则根据b、α和β计算出加权平均值(b*0.5+α*0.25+β*0.25),选择加权平均值最高者作为猜测字符,得到最终的字符串计算式,测算出结果值并返回:本步骤中,若a不大于b,则根据现有的参数b、α和β,计算出加权平均值(b*0.5+α*0.25+β*0.25),选择加权平均值最高者作为猜测字符,得到最终的字符串计算式,然后测算出结果值并返回,值得一提的是,还将测算出的结果值保存到结果数组中。

本实施例中,对于包含猜测字符的,在测算出的结果值的末尾设置一个标识位,当标志位的值为True时,读取数据库中保存的验证码的输入位置,将测算出的结果值填入,并读取提交按钮的位置,自动点击提交按钮,上传到移动平台进行校验。

当该标识位的值为False时,表示测算出的结果值为猜测结果。对于标识位为False的猜测结果,读取数据库中保存的验证码的输入位置,将猜测结果自动填入到验证码的输入位置,读取提交按钮的位置,并自动点击提交按钮。上传到移动平台进行校验,当移动平台返回的状态为成功时,则经由同步器将猜测结果存入自主学习数据库,当移动平台返回的状态为失败时,则调用第三方人工识别,得出正确结果后,经由同步器将该正确结果同步至自主学习数据库,用于以后的验证码识别,提高识别的准确率。

总之,本发明通过识别算法和自主学习库的设计模式,能解决自动化测试中的阻碍问题,消除自动化测试存在的瓶颈,能解决简单旋转、放大缩小的字符验证码图片的识别,对于计算式会进行自动运算,得出正确结果并返回,自身具备自主学习的优点,对于未正确识别过的字符,会进行猜测,第三方验证码若通过,会将本次猜测结果保存到自主学习数据库,随着程序的运行时间越来越久,整体识别验证码的准确率将会越来越高。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1