本发明属于互联网,具体涉及一种基于ssim的点选验证码识别方法与系统。
背景技术:
1、随着移动互联网时代的到来,验证码的运用场景越来越广,常常出现在人机交互界面,以防止用户利用机器人程序自动注册、登录、恶意投票、发送垃圾邮件、恶意尝试密码等登陆尝试,保证网络安全。
2、验证码作为区分人类与爬虫的反爬虫措施之一,对网络数据爬取工作影响不容小觑。在爬虫采集数据的过程中一旦出现验证码,正在进行的数据采集工作就会因此中断。
3、传统输入式验证码,主要是通过用户输入图片中的字母、数字、汉字等进行验证。但随着安全性的要求越来越高,更复杂的图形验证码和行为验证码已经成为了更流行的趋势。图标点选式验证码作为新一代交互式验证码,已广泛应用于反爬虫以及自动测试等方面。在图标点选式验证码使用上,用户只要根据提示,按照顺序点击图中图标,即可完成验证。因此,本文提出一种基于ssim的点选验证码识别方法与系统,辅助爬虫及测试完成在登录过程中对图标点选类验证码的识别,实现自动化登录验证。
技术实现思路
1、针对现有技术中存在的问题,本发明的目的在于提供一种点选验证码识别方法与系统。
2、本发明的技术方案为:
3、一种点选验证码识别方法,其步骤包括:
4、1)获取验证页面中的图片数据流;所述图片数据流中的信息包括目标图标图和待点击图标图;
5、2)从所述图片数据流中提取目标图标图,然后对所述目标图标图进行图标分割,得到所述目标图标图所包含的各个目标图标及其对应的点选顺序;
6、3)从所述图片数据流中提取待点击图标图,然后从所述待点击图标图中识别出各待点击图标;
7、4)获取每一所述目标图标与每一所述待点击图标的相似度,然后基于相似度结果与匹配策略确定每一所述目标图标最佳匹配的待点击图标;
8、5)根据所述目标图标的点选顺序和最佳匹配的待点击图标,依次对相应的待点击图标进行模拟点击,完整验证。
9、进一步的,步骤4)中,所述匹配策略为:
10、41)按照相似度对每一对目标图标、待点击图进行递减排序,获取三元组集合
11、{(target,select,similarity)};其中,target为目标图标,select为待点击图标,similarity为相似度;
12、42)选取集合中当前最大相似度对应的三元组,确定目标图标targeti对应的最佳匹配待点击图标selectj;
13、43)将包含目标图标targeti或待点击图标selectj的三元组从集合中删除,然后重复步骤42)的操作,直至每个target皆有唯一且不重复的select匹配结果。
14、进一步的,步骤2)中,对所述目标图标图进行图标分割,得到所述目标图标图所包含的各个目标图标的方法为:
15、21)对所述目标图标图进行灰度处理;然后根据边缘区域像素值和为0进行切割;
16、22)利用切割后图片中像素特征,合并间隔小于设定阈值的图标图,并裁剪出相应的图标;
17、23)对裁剪出的图标进行不失真的图像缩放,得到目标图标;且使得各目标图标具有同样的大小。
18、进一步的,基于训练好的目标检测算法从待点击图标图中识别出各待点击图标。
19、进一步的,所述目标检测算法为yolov5目标检测算法;通过对收集的各待点击图标图进行数据标注,构建图标检测数据集,训练yolov5目标检测算法。
20、进一步的,利用ssim算法计算每一个目标图标和待点击图标的相似度
21、一种点选验证码识别系统,其特征在于,包括数据获取模块、目标图标提取模块、待点击图标提取模块、图标匹配模块和模拟点击模块;
22、所述数据获取模块,用于获取验证页面中的图片数据流;所述图片数据流中的信息包括目标图标图和待点击图标图;
23、所述目标图标提取模块,用于从所述图片数据流中提取目标图标图,然后对所述目标图标图进行图标分割,得到所述目标图标图所包含的各个目标图标及其对应的点选顺序;
24、所述待点击图标提取模块,用于从所述图片数据流中提取待点击图标图,然后从所述待点击图标图中识别出各待点击图标;
25、所述图标匹配模块,用于计算每一所述目标图标与每一所述待点击图标的相似度,然后基于相似度结果与匹配策略确定每一所述目标图标最佳匹配的待点击图标;
26、所述模拟点击模块,用于根据所述目标图标的点选顺序和最佳匹配的待点击图标,依次对相应的待点击图标进行模拟点击,完整验证。
27、一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
28、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
29、本发明的优点如下:
30、1.未使用目标检测等算法检测目标图标图中内容,仅用于检测待点击图标图内容,减少数据标注并提高识别准确性。
31、2.较孪生神经网络,不需将属于同一个字符的图片放在一个文件夹内,减少大量人工成本。不同于文字点选,图标元素会进行周期性叠代更新。神经网络方法,需要进行分类数据标注,而在应用时,一般每隔1-2个月对进行素材的更新,因此需要再次进行训练和数据标注;但本方法使用ssim进行匹配,不需进行人工标注。
1.一种点选验证码识别方法,其步骤包括:
2.根据权利要求1所述的方法,其特征在于,步骤4)中,所述匹配策略为:
3.根据权利要求1所述的方法,其特征在于,步骤2)中,对所述目标图标图进行图标分割,得到所述目标图标图所包含的各个目标图标的方法为:
4.根据权利要求1或2或3所述的方法,其特征在于,基于训练好的目标检测算法从待点击图标图中识别出各待点击图标。
5.根据权利要求4所述的方法,其特征在于,所述目标检测算法为yolov5目标检测算法;通过对收集的各待点击图标图进行数据标注,构建图标检测数据集,训练yolov5目标检测算法。
6.根据权利要求1或2或3所述的方法,其特征在于,利用ssim算法计算每一个目标图标和待点击图标的相似度。
7.一种点选验证码识别系统,其特征在于,包括数据获取模块、目标图标提取模块、待点击图标提取模块、图标匹配模块和模拟点击模块;
8.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至6任一所述方法中各步骤的指令。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一所述方法的步骤。