图片简介:本技术涉及一种基于目标检测方法的验证码识别方法及系统,其中方法包括:A.收集不同形状的滑块图片并建立数据集,通过selenium库操控浏览器进行网页请求操作,并进行模拟登陆,对验证码图片进行截图;B.对滑块图片进行RGBA四通道转透明通道处理,得到不透明滑块图片,对带缺口的验证码图片进行灰色处理;C.通过OpenCV中的函数对图片进行匹配,计算出不透明滑块图片和带缺口的验证码图片缺口处的坐标,得到滑块图片的位移量;D.通过selenium库模拟鼠标,按照先快后慢的人工滑动规律移动滑块图片,对验证码进行解析。
为在各大网站收集数据做前期准备工作,实现自动识别滑动拼图验证码,提高验证码识别的准确率。
技术要求1.一种基于目标检测方法的验证码识别方法,其特征包括:A.收集不同形状的滑块图片并建立滑块图片数据集,通过selenium库操控浏览器进行网页请求操作,并进行模拟登录,对带缺口的验证码图片进行截图,提取带缺口的验证码图片;B.对数据集中的滑块图片进行RGBA四通道转透明通道处理,得到不透明滑块图片,对所提取的带缺口的验证码图片进行灰色处理;C.通过OpenCV的matchTemaplate函数对所述不透明滑块图片和所述带缺口的验证码图片进行匹配,设置相似度阀值,通过OpenCV中的cv2.TM_CCOEFF_NORMED得到与带缺口的验证码图片最相匹配的不透明滑块图片,计算出不透明滑块图片和带缺口的验证码图片缺口处的坐标,得到不透明滑块图片移动到带缺口的验证码图片缺口处的位移量distance;D.通过selenium库模拟鼠标点击所述滑块图片,并保持模拟鼠标按键的点压状态,按照先快后慢的人工滑动规律移动所述滑块图片,实现将滑块图片移动到所述带缺口的验证码图片的缺口处进行验证码解析。
2.根据权利要求1所述的一种基于目标检测方法的验证码识别方法,其特征在于:步骤B 中,对所述的滑块图片和带缺口的验证码图片进行处理时,对滑块图片进行RGBA四通道转透明通道处理,将RGB三通道的数值设为0,透明通道“A”的数值设置为220,仅保留滑块图的边缘部分;对所述带缺口的验证码图片进行RGB三通道转单通道的灰度处理。
3.根据权利要求1所述的一种基于目标检测方法的验证码识别方法,其特征在于:步骤D 中,所述进行验证码解析的步骤包括:D1.设置阈值mid=distance×3/4,初始滑块位置current=0,时刻t=0.2,初始速度V=0,加速度a=0;D2.初始滑块位置current小于位移量distance时,进入循环:若当前滑块位置current小于阀值mid时, a=2;若当前滑块位置current大于阀值mid时, a=-3;D3.设定滑块图片每次移动的初始速度V0 =V,则速度时间V = V0 + a × t,每次移动的位移量move = V0 × t + 1 / 2 × a × t × t,D4.调用selenium库的click_and_hold函数模拟鼠标点击滑块,并且模拟鼠标按键保持为按压状态不松开,将每次移动的位移量move的值传入selenium库的move_by_offset中,通过每次移动的位移量move的大小得到经过每次移动后的当前位置current=current+move,直到当前位置current大于位移量distance,退出循环,模拟释放鼠标,实现将滑块图片移动到带缺口的验证码图片的缺口处,完成对滑动拼图验证码的解析。
4.用于权利要求1至3之一所述方法的一种基于目标检测方法的验证码识别系统,其特征在于,包括图片收集模块、图片处理模块、图片匹配模块和图片验证模块;所述图片收集模块用于对网页上的滑块拼图验证码中的滑块图片和带缺口的验证码图片进行截图,提取出这两张图片;图片处理模块用于对滑块图片进行RGBA四通道转透明通道处理,得到不透明滑块图片,对带缺口的验证码图片进行灰色处理;图片匹配模块用于对所述不透明滑块图片和所述带缺口的验证码图片进行匹配,获取不透明滑块图片在带缺口的验证码图片的坐标和两张图片的相似度;图片验证模块用于通过selenium库模拟人工拖动滑块轨迹,按照先快后慢的人工滑动规律移动所述滑块图片,进行验证码解析。
5.根据权利要求4所述的一种基于目标检测方法的验证码识别系统,其特征在于,所述图片处理模块中包括灰色处理模块和透明处理模块,其中灰色处理模块用于将所述带缺口的验证码图片的RGB三通道的原图处理成单通道的图片;透明处理模块用于将所述滑块图片进行RGBA四通道转透明通道处理,得到不透明滑块图片。
技术说明书一种基于目标检测方法的验证码识别方法及系统技术领域本技术涉及计算机视觉及图像处理领域,具体的涉及一种基于目标检测方法的验证码识别方法及系统。
背景技术近年来互联网的迅猛发展,信息安全和网络安全的重要程度已经提到国家战略层面。
为了防止私人用户甚至大型企业肆意爬取网站数据、转化为商业用途甚至进行违法犯罪活动,在反爬虫领域的验证码方法也逐渐盛行。
滑动拼图验证码方法被许多大型互联网企业应用。
这种验证码打破了以往文字和/或字母验证码存在的缺点,使得传统爬虫方法无法操作。
申请号为2019102111603的中国专利文献介绍了一种基于深度学习的验证码识别方法及系统,该方法包括:步骤1,图像收集打标签:利用爬虫爬取该网站的验证码图片分为测试集和训练集,并手动打上标签;步骤2,图像预处理:利用图片处理工具CV2对验证码图片进行预处理;步骤3,搭建深度学习模型:利用深度学习框架keras、开发工具python以及训练集数据搭建深度学习模型;步骤4,模型训练及验证:利用反向传播,经过多次训练模型后,用训练好的模型来预测测试集的验证码图片。
但该技术方案不能实现对滑块拼图验证码进行解析和验证,以及不能实现自动识别滑动拼图验证码。
技术内容针对现有技术中无法对滑动拼图验证码进行操作的问题,本技术提供一种基于目标检测方法的验证码识别方法及系统,其目的在于:为在各大网站收集数据做前期准备工作,实现自动识别滑动拼图验证码,提高验证码识别的准确率。
本技术采用的技术方案如下:一种基于目标检测方法的验证码识别方法,包括:A.收集不同形状的滑块图片并建立滑块图片数据集,通过selenium库操控浏览器进行网页请求操作,并进行模拟登录,对带缺口的验证码图片进行截图,提取带缺口的验证码图片;B.对数据集中的滑块图片进行RGBA四通道转透明通道处理,得到不透明滑块图片,对所提取的带缺口的验证码图片进行灰色处理;C.通过OpenCV的matchTemaplate函数对不透明滑块图片和带缺口的验证码图片进行匹配,设置一个相似度阀值,通过OpenCV中的cv2.TM_CCOEFF_NORMED得到与带缺口的验证码图片最相匹配的不透明滑块图片,计算出不透明滑块图片和带缺口的验证码图片缺口处的坐标,得到不透明滑块图片移动到带缺口的验证码图片缺口处的位移量distance;D.通过selenium库模拟鼠标点击所述滑块图片,并保持模拟鼠标按键的点压状态,按照先快后慢的人工滑动规律移动所述滑块图片,实现将滑块图片移动到所述带缺口的验证码图片的缺口处进行验证码解析。
在本技术的方法中,使用selenium中的screenshot函数对带缺口的验证码图片进行截图,不需要前期在各大网站收集大量的验证码图片并建立数据集进行训练,降低了时间成本。
在对截取的验证码图片进行处理时,对滑块图片进行红色通道、绿色通道、蓝色通道和Alpha通道四通道转透明通道处理,得到不透明滑块图片,仅保留滑块图片的边缘,可以提高滑块图片和带缺口的验证码图片匹配的准确性,保证了通过OpenCV的matchTemaplate函数对所述不透明滑块图片和所述带缺口的验证码图片进行匹配时,获取到与带缺口的验证码图片更匹配的滑块图片,且能够更准确的滑块图片在带缺口的验证码图片的坐标,从而计算出较为准确的滑块图片移动到带缺口的验证码图片缺口处的位移量distance。
最后,将滑块位移量distance传入定义的函数,利用selenium库模拟人工拖动滑块轨迹进行验证码验证,从而实现自动识别滑动拼图验证码,提高验证码识别的准确率。
具体的,步骤B中,对滑块图片和带缺口的验证码图片进行处理时,对滑块图片进行红色通道、绿色通道、蓝色通道和Alpha通道四通道转透明通道处理,将红色通道、绿色通道、蓝色通道三通道的数值设为0,Alpha通道的数值设置为220,仅保留滑块图的边缘部分;对带缺口的验证码图片进行灰度处理(红色通道、绿色通道、蓝色通道三通道转单通道)。
进一步的,步骤D中,利用selenium库模拟人工拖动滑块轨迹,按照先快后慢的人工滑动规律移动所述滑块图片,进行验证码解析的具体方法为:D1.设置阈值mid=distance×3/4,初始滑块位置current=0,时刻t=0.2,初始速度V=0,加速度a=0;D2.初始滑块位置current小于位移量distance时,进入循环:若当前滑块位置current小于阀值mid时, a=2;若当前滑块位置current大于阀值mid时, a=-3;D3.设定滑块图片每次移动的初始速度V0 =V,则速度时间V = V0 + a × t,每次移动的位移量move = V0 × t + 1 / 2 × a × t × t,D4.调用selenium库的click_and_hold函数模拟鼠标点击滑块,并且模拟鼠标按键保持为按压状态不松开,将每次移动的位移量move的值传入selenium库的move_by_offset中,通过每次移动的位移量move的大小得到经过每次移动后的当前位置current=current+move,直到当前位置current大于位移量distance,退出循环,模拟释放鼠标,实现将滑块图片移动到带缺口的验证码图片的缺口处,完成对滑动拼图验证码的解析。
本技术还提供了一种用于上述方法的基于目标检测方法的验证码识别系统,包括图片收集模块、图片处理模块、图片匹配模块和图片验证模块;其中,图片收集模块用于对网页上的滑块拼图验证码中的滑块图片和带缺口的验证码图片进行截图,提取出这两张图片;图片处理模块用于对滑块图片进行RGBA四通道转透明通道处理,得到不透明滑块图片,对带缺口的验证码图片进行灰色处理;图片匹配模块用于对处理后的不透明滑块图片和带缺口的验证码图片进行匹配,获取不透明滑块图片在带缺口的验证码图片的坐标和两张图片的相似度;图片验证模块用于通过selenium库模拟人工拖动滑块轨迹,按照先快后慢的人工滑动规律移动滑块图片,进行验证码解析。