一种基于图像识别的滑块拼图验证检验方法及装置与流程

文档序号:31025172发布日期:2022-08-06 00:01阅读:311来源:国知局
一种基于图像识别的滑块拼图验证检验方法及装置与流程

1.本发明属于互联网信息交互技术领域领域,具体涉及一种基于图像识别的滑块拼图验证检验方法及装置。


背景技术:

2.随着互联网的普及,为防止登录接口被人恶意访问或检测是否为真人操作,各大网站在登录前均增加了滑块拼图验证这一门槛,以保护网站资源不被滥用。
3.为了检验滑块拼图验证是否有效,软件测试人员需要对滑块拼图验证进行测试检验,常见的检验方法包括人工拖动、设置拖动距离数组和比较图片像素等检验方法。但是,上述检验方法均在存在一些缺陷。
4.人工拖动的检验方法仅适用于小批量、短时的检验需求,无法满足大量、长久稳定的检验需求,而且人工的介入一方面增加了检验成本,一方面会极大降低检验效率。设置拖动距离数组的检验方法仅适用于特定情形,例如,网站开发者仅使用特定的几组滑块拼图验证,然而这种情形对于大型网站几乎不可能出现,故此种检验方式的应用极其有限。比较图片像素的检验方法虽然可以有效通过常见的滑块拼图验证,然而,对于加入图片模糊技术的滑块拼图验证,其无法有效识别出缺口所在的地方、对于加入了多个缺口位置的滑块拼图验证,其仅能识别出最靠前的一个缺口,检验的效果较差。


技术实现要素:

5.为了解决现有技术中存在的上述问题,本发明提供了一种基于图像识别的滑块拼图验证检验方法及装置。本发明要解决的技术问题通过以下技术方案实现:
6.本发明提供了一种基于图像识别的滑块拼图验证检验方法,包括:
7.步骤1:获取滑块验证缺口图片和滑块图片,并确定所述滑块验证缺口图片和所述滑块图片的位置参数;
8.步骤2:根据所述滑块验证缺口图片和所述滑块图片的位置参数,确定所述滑块验证缺口图片中待截取区域的坐标参数,并截取所述待截取区域,得到截取图片,所述截取图片包括缺口部;
9.步骤3:根据所述滑块图片和所述截取图片,确定所述滑块图片的移动距离;
10.步骤4:根据所述移动距离移动所述滑块图片,以使所述滑块图片移动至所述缺口部。
11.在本发明的一个实施例中,所述滑块验证缺口图片的位置参数包括滑块验证缺口图片高度和滑块验证缺口图片宽度;
12.所述滑块图片的位置参数包括滑块图片高度、滑块图片宽度、滑块图片上边缘与滑块验证缺口图片上边缘之间的距离、以及滑块图片左边缘与滑块验证缺口图片左边缘之间的距离。
13.在本发明的一个实施例中,所述待截取区域为矩形区域,该矩形区域的四个顶点
坐标为(x2,y1)、(x2,y4)、(x3,y1)、(x3,y4),其中,各坐标参数按照下式计算得到:
14.x2=left+width2;
15.x3=width1;
16.y1=height
1-top-height
2-random1;
17.y4=height
1-top+random2;
18.式中,height1表示滑块验证缺口图片的高度,width1表示滑块验证缺口图片的宽度,height2表示滑块图片的高度,width2表示滑块图片的宽度,top表示滑块图片上边缘与滑块验证缺口图片上边缘之间的距离,left表示滑块图片左边缘与滑块验证缺口图片左边缘之间的距离,random1和random2表示随机数值。
19.在本发明的一个实施例中,所述步骤3包括:
20.步骤3.1:对所述截取图片依次进行灰度化处理和二值化处理,得到处理后的截取图片;
21.步骤3.2:对所述滑块图片依次进行灰度化处理、去除黑边处理和二值化处理,得到处理后的滑块图片;
22.步骤3.3:根据所述处理后的截取图片和所述处理后的滑块图片,利用图片匹配算法得到所述滑块图片的移动距离。
23.在本发明的一个实施例中,所述步骤3.3包括:
24.步骤a:将所述处理后的截取图片的所有像素点和所述处理后的滑块图片的所有像素点分别放入两个像素矩阵;
25.步骤b:使用图片匹配算法计算匹配得到所述处理后的截取图片和所述处理后的滑块图片的共同区域;
26.步骤c:根据所述共同区域的顶点坐标值,选取最大的一个x坐标值作为所述滑块图片的预测移动距离;
27.步骤d:根据所述预测移动距离得到所述滑块图片的移动距离。
28.在本发明的一个实施例中,所述步骤4包括:
29.根据所述移动距离,按照先加速后减速,加速度不恒定的方式移动所述滑块图片,以使所述滑块图片按照预设的移动轨迹移动至所述缺口部,其中,所述预设的移动轨迹为以所述滑块图片所在位置作为起始位置朝向所述缺口部移动,移动超过所述移动距离后原路返回停止至目标位置,所述目标位置与所述起始位置之间的距离为所述移动距离。
30.本发明提供了一种基于图像识别的滑块拼图验证检验装置,包括:
31.位置参数获取模块,用于获取滑块验证缺口图片和滑块图片,并确定所述滑块验证缺口图片和所述滑块图片的位置参数;
32.截取模块,用于根据所述滑块验证缺口图片和所述滑块图片的位置参数,确定所述滑块验证缺口图片中待截取区域的坐标参数,并截取所述待截取区域,得到截取图片,所述截取图片包括缺口部;
33.移动距离确定模块,用于根据所述滑块图片和所述截取图片,确定所述滑块图片的移动距离;
34.移动模块,用于根据所述移动距离移动所述滑块图片,以使所述滑块图片移动至所述缺口部。
35.在本发明的一个实施例中,所述移动距离确定模块,用于对所述截取图片依次进行灰度化处理和二值化处理,得到处理后的截取图片;对所述滑块图片依次进行灰度化处理、去除黑边处理和二值化处理,得到处理后的滑块图片;根据所述处理后的截取图片和所述处理后的滑块图片,利用图片匹配算法得到所述滑块图片的移动距离。
36.在本发明的一个实施例中,所述移动模块,用于根据所述移动距离,按照先加速后减速,加速度不恒定的方式移动所述滑块图片,以使所述滑块图片按照预设的移动轨迹移动至所述缺口部,其中,所述预设的移动轨迹为以所述滑块图片所在位置作为起始位置朝向所述缺口部移动,移动超过所述移动距离后原路返回停止至目标位置,所述目标位置与所述起始位置之间的距离为所述移动距离。
37.与现有技术相比,本发明的有益效果在于:
38.本发明的基于图像识别的滑块拼图验证检验方法,可以有效避免因人工而带来的成本和效率问题,提出的截图方法可以解决滑块拼图中的混淆问题,可以有效计算出滑块图片需要移动的距离,检验的效果更好。
39.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
40.图1是本发明实施例提供的一种基于图像识别的滑块拼图验证检验方法的流程示意图;
41.图2是本发明实施例提供的一种滑块拼图示意图;
42.图3是本发明实施例提供的一种基于图像识别的滑块拼图验证检验装置的示意图。
具体实施方式
43.为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种基于图像识别的滑块拼图验证检验方法及装置进行详细说明。
44.有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
45.实施例一
46.请结合参见图1和图2,图1是本发明实施例提供的一种基于图像识别的滑块拼图验证检验方法的流程示意图,图2是本发明实施例提供的一种滑块拼图示意图,其中图2中的(a)图为滑块验证缺口图片、(b)图为滑块图片、(c)图为待截取区域、(d)图为坐标参数示意图。
47.如图1所示,本实施例的基于图像识别的滑块拼图验证检验方法,包括:
48.步骤1:获取滑块验证缺口图片和滑块图片,并确定滑块验证缺口图片和滑块图片
的位置参数;
49.在本实施例中,滑块验证缺口图片的位置参数包括滑块验证缺口图片高度和滑块验证缺口图片宽度;滑块图片的位置参数包括滑块图片高度、滑块图片宽度、滑块图片上边缘与滑块验证缺口图片上边缘之间的距离、以及滑块图片左边缘与滑块验证缺口图片左边缘之间的距离。
50.具体地,可以在浏览器中打开开发者工具,将鼠标指针放在滑块图片上,从而得到上述滑块验证缺口图片的位置参数和滑块图片的位置参数。
51.步骤2:根据滑块验证缺口图片和滑块图片的位置参数,确定滑块验证缺口图片中待截取区域的坐标参数,并截取待截取区域,得到截取图片,截取图片包括缺口部;
52.需要说明的是,在目前的滑块拼图验证系统中,滑块图片与滑块验证缺口图片中的缺口部在同一水平高度,而混淆缺口是分布在其他位置的。
53.在本实施例中,如图2中(d)图所示,滑块验证缺口图片、滑块图片以及待截取区域的顶点坐标表示如下,滑块验证缺口图片的四个顶点坐标为:(0,0)、(0,y5)、(x3,0)、(x3,y5);滑块图片的四个顶点坐标为:(x1,y2)、(x1,y3)、(x2,y2)、(x2,y3);待截取区域为矩形区域,其四个顶点坐标为:(x2,y1)、(x2,y4)、(x3,y1)、(x3,y4)。
54.滑块验证缺口图片的位置参数和滑块图片的位置参数与上述坐标值的对应关系如下:
55.height1=y5ꢀꢀ
(1);
56.width1=x3ꢀꢀ
(2);
57.height2=y
3-y2ꢀꢀ
(3);
58.width2=x
2-x1ꢀꢀ
(4);
59.top=y
5-y3ꢀꢀ
(5);
60.left=x1ꢀꢀ
(6);
61.式中,height1表示滑块验证缺口图片的高度,width1表示滑块验证缺口图片的宽度,height2表示滑块图片的高度,width2表示滑块图片的宽度,top表示滑块图片上边缘与滑块验证缺口图片上边缘之间的距离,left表示滑块图片左边缘与滑块验证缺口图片左边缘之间的距离,random1和random2表示随机数值。
62.那么,根据公式(1)-(6),计算得到待截取区域的各坐标参数如下:
63.x2=left+width2ꢀꢀ
(7);
64.x3=width1ꢀꢀ
(8);
65.y1=height
1-top-height
2-random1
ꢀꢀ
(9);
66.y4=height
1-top+random2
ꢀꢀ
(10);
67.式中,random1和random2表示随机数值。可选地,random1和random2的取值为1~5px的随机值,通过加入random1和random2随机数值使得待截取区域稍大一些,可以避免刚好截到缺口步而导致后续识别不准确的问题。
68.在本实施例中,可选地,使用webdriver工具按照对应坐标对待截取区域进行截图操作,得到截取图片,同时根据滑块图片的坐标参数将其截图保存。
69.步骤3:根据滑块图片和截取图片,确定滑块图片的移动距离;
70.具体地,步骤3包括:
71.步骤3.1:对截取图片依次进行灰度化处理和二值化处理,得到处理后的截取图片;
72.步骤3.2:对滑块图片依次进行灰度化处理、去除黑边处理和二值化处理,得到处理后的滑块图片;
73.步骤3.3:根据处理后的截取图片和处理后的滑块图片,利用图片匹配算法得到滑块图片的移动距离。
74.在本实施例中,灰度化处理可采用如下处理方法,在图像处理中,用rgb三个分量(r:red,g:green,b:blue),即红、绿、蓝三原色来表示真彩色,三者的取值范围均为0~255,如一个绿色像素点的三个分量值分别为:0,255,0。像素点是最小的图像单元,对图像的处理就是对所有像素点组成的矩阵的操作,要改变某像素点的颜色,先找到其在像素矩阵中的坐标(x,y),然后对rgb进行赋值,比如改成绿色(0,255,0),可以表示为(x,y,(r=0,g=255,b=0))。而灰度化处理即让像素点矩阵中的每一个像素点都满足下面的关系:r=g=b,一般有如下两种方式:
75.1)r

=(r

+g

+b

)/3;
76.g

=(r

+g

+b

)/3;
77.b

=(r

+g

+b

)/3;
78.2)r

=r

*0.25+g

*0.55+b

*0.2;
79.g

=r

*0.25+g

*0.55+b

*0.2;
80.b

=r

*0.25+g

*0.55+b

*0.2;
81.其中,r

表示处理后的r值,g

表示处理后的g值,b

表示处理后的b值,r

表示处理前的r值,g

表示处理前的g值,b

表示处理前的b值。
82.优选地,采用第二种方式进行灰度化处理,处理后的图片效果更好,也可以根据自身实际需求进行rgb三者比例的合理调整,在此不做限制。
83.在本实施例中,滑块图片经过灰度化处理后,其四周会形成一圈黑边,为了不影响后续的移动距离计算精度,需要对其进行去除黑边的操作。具体地,滑块图片经过灰度化处理后黑边的rgb值为0,故可对灰度化处理后的滑块图片的整个像素点矩阵进行遍历,当发现rgb值为0的像素点时,将该像素点的rgb值改为127。在本实施例中,选择rgb值为127是因为127为0~255的中位数,这样可以有效去除黑边而不影响其它区域的变化。
84.进一步地,二值化处理即是将图片转换为黑白图片,也就是让像素点矩阵中所有像素点的灰度值为255(白色)或0(黑色),而对于一个像素点来说,需要设置一个阈值来控制是转为白色还是黑色,可选地,采用以下几种方式设置阈值进行二值化处理:
85.(1)以灰度值127作为阈值,由于127是0~255的中位数,将灰度值在127以下的改变为0(黑色),在127以上的改变为255(白色)。采用该二值化处理方法计算量小速度快,但一刀切的缺点也很明显,不同图片的颜色发布差别很大,若大多数像素点的灰度值均在127以下则会导致处理后的图片偏向于极端而无法突出显示需要的特征;
86.(2)取所有像素点灰度值的平均值作为阈值,然后将小于平均值的像素点的灰度值改变为0(黑色),大于平均值的像素点的灰度值改变为255(白色);
87.(3)直方图寻找阈值,即双峰法,将图像区分为前景和背景,在直方图中,两者都形成高峰,将阈值设置为双峰间最低谷之处,再根据设置的阈值对图片进行二值化处理。
88.进一步地,在本实施例中,步骤3.3包括:
89.步骤a:将处理后的截取图片的所有像素点和处理后的滑块图片的所有像素点分别放入两个像素矩阵;
90.步骤b:使用图片匹配算法计算匹配得到处理后的截取图片和处理后的滑块图片的共同区域;
91.在本实施例中,利用opencv中的matchtemplate,匹配得到处理后的截取图片和处理后的滑块图片的共同区域,其中,matchtemplate算法得到的结果是该共同区域的四个顶点坐标值。
92.步骤c:根据共同区域的顶点坐标值,选取最大的一个x坐标值作为滑块图片的预测移动距离;
93.步骤d:根据预测移动距离得到滑块图片的移动距离。
94.由于显示器分辨率的原因,计算得到的预测移动距离与滑块图片的实际移动距离存在差异,在本实施例中,对预测移动距离添加比例系数0.83得到滑块图片的移动距离,即移动距离=0.83*预测移动距离。
95.步骤4:根据移动距离移动滑块图片,以使滑块图片移动至缺口部。
96.在本实施例中,使用webdriver拖动滑块图片移动,以使滑块图片移动至缺口部。
97.具体地,根据移动距离,按照先加速后减速,加速度不恒定的方式移动滑块图片,以使滑块图片按照预设的移动轨迹移动至缺口部。
98.其中,预设的移动轨迹为以滑块图片所在位置作为起始位置朝向缺口部移动,移动超过移动距离后原路返回停止至目标位置,目标位置与起始位置之间的距离为移动距离。
99.可选地,预设的移动轨迹可以是一条斜向右上方的直线轨迹,在拖动滑块图片移动时,朝向缺口部移动时,对于y坐标,设置为一直增大,而对于原路返回操作时,y坐标则设置为减小。
100.在本实施例中,按照上述所述的预设的移动轨迹移动滑块图片可以更接近真人操作。
101.本实施例的基于图像识别的滑块拼图验证检验方法,可以有效避免因人工而带来的成本和效率问题,提出的截图方法可以解决滑块拼图中的混淆问题,可以有效计算出滑块图片需要移动的距离,检验的效果更好。
102.实施例二
103.本实施例提供了一种基于图像识别的滑块拼图验证检验装置,请参见图3是本发明实施例提供的一种基于图像识别的滑块拼图验证检验装置的示意图,如图所示,本实施例的基于图像识别的滑块拼图验证检验装置100,包括位置参数获取模块10、截取模块20、移动距离确定模块30和移动模块40。
104.其中,位置参数获取模块10用于获取滑块验证缺口图片和滑块图片,并确定滑块验证缺口图片和滑块图片的位置参数。
105.在本实施例中,滑块验证缺口图片的位置参数包括滑块验证缺口图片高度和滑块验证缺口图片宽度;滑块图片的位置参数包括滑块图片高度、滑块图片宽度、滑块图片上边缘与滑块验证缺口图片上边缘之间的距离、以及滑块图片左边缘与滑块验证缺口图片左边
缘之间的距离。
106.进一步地,截取模块20用于根据滑块验证缺口图片和滑块图片的位置参数,确定滑块验证缺口图片中待截取区域的坐标参数,并截取待截取区域,得到截取图片,截取图片包括缺口部。
107.具体地,待截取区域的坐标参数确定方法如实施例一中所述,在此不做赘述。
108.进一步地,移动距离确定模30用于根据滑块图片和截取图片,确定滑块图片的移动距离;
109.具体地,移动距离确定模块30用于对截取图片依次进行灰度化处理和二值化处理,得到处理后的截取图片;对滑块图片依次进行灰度化处理、去除黑边处理和二值化处理,得到处理后的滑块图片;根据处理后的截取图片和处理后的滑块图片,利用图片匹配算法得到滑块图片的移动距离。
110.在本实施例中,灰度化处理、二值化处理以及去除黑边处理方法可采用实施例一中所述的任一种处理方法,在此不做限制,具体处理方法如实施例一中所述,在此不做赘述。
111.进一步地,移动模块40用于根据移动距离移动滑块图片,以使滑块图片移动至缺口部。
112.具体地,移动模块40用于根据移动距离,按照先加速后减速,加速度不恒定的方式移动滑块图片,以使滑块图片按照预设的移动轨迹移动至缺口部。
113.在本实施例中,预设的移动轨迹为以滑块图片所在位置作为起始位置朝向缺口部移动,移动超过移动距离后原路返回停止至目标位置,目标位置与起始位置之间的距离为移动距离。
114.可选地,预设的移动轨迹是一条斜向右上方的直线轨迹,在拖动滑块图片移动时,朝向缺口部移动时,对于y坐标,设置为一直增大,而对于原路返回操作时,y坐标则设置为减小。
115.基于同一发明构思,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器用于存放计算机程序;处理器用于执行存储器上所存放的程序时,实现上述任一种基于图像识别的滑块拼图验证检验方法的方法步骤。
116.本发明还提供了一种计算机可读存储介质。在该计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述任一种基于图像识别的滑块拼图验证检验方法的方法步骤。
117.应当说明的是,在本文中,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
118.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在
不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1