发明内容
本公开提供了一种人机识别方法、滑块验证方法、人机识别装置、滑块验证装置、计算机可读存储介质和电子设备,进而至少在一定程度上改善现有技术人机识别准确率和效率不高的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种人机识别方法,所述方法包括:获取客户端进行滑块验证所产生的滑动轨迹数据,所述滑动轨迹数据包括所述滑块验证过程中滑块在各时刻的位置;对所述各时刻的位置进行分段线性拟合,根据每一段的斜率生成所述滑动轨迹数据对应的目标特征向量;将所述目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类;如果所述目标特征向量所属类别中向量的数量或比例满足预设条件,则确定所述滑块验证由机器执行。
在本公开的一种示例性实施方式中,所述对所述各时刻的位置进行分段线性拟合,根据每一段的斜率生成所述滑动轨迹数据对应的目标特征向量,包括:以时刻为横轴,位置为纵轴,将所述各时刻的位置绘制为对应的数据点;将各所述数据点进行分段,分别对每一段中的所述数据点进行线性拟合,得到每一段的斜率;将所述每一段的斜率排列为向量,以得到所述滑动轨迹数据对应的目标特征向量。
在本公开的一种示例性实施方式中,所述将各所述数据点进行分段,包括:确定第一个数据点为当前段的起点;依次将所述起点后续的数据点作为所述当前段的终点,对所述当前段中的所有数据点进行线性拟合,并计算拟合误差;如果所述拟合误差小于误差阈值,则继续将下一数据点作为所述当前段的终点;如果所述拟合误差大于所述误差阈值,则将所述当前段的终点移动到上一数据点,划分所述当前段;将所述当前段的终点确定为下一段的起点,划分下一段,直到对最后一个数据点完成分段。
在本公开的一种示例性实施方式中,在得到每一段的斜率后,对所述每一段的斜率分别取整。
在本公开的一种示例性实施方式中,所述将所述目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类,包括:从所述历史特征向量中确定与所述目标特征向量相似的向量,将所述目标特征向量及其相似的向量形成一个类别;所述如果所述目标特征向量所属类别中向量的数量或比例满足预设条件,则确定所述滑块验证由机器执行,包括:当所述类别中向量的数量大于数量阈值,或者所述类别中向量占全部所述历史特征向量与目标特征向量的比例大于比例阈值时,确定所述滑块验证由机器执行。
在本公开的一种示例性实施方式中,所述滑块验证过程中滑块沿预设轴的方向滑动;所述滑块在各时刻的位置包括:所述滑块在各时刻的预设轴坐标。
在本公开的一种示例性实施方式中,在进行聚类后,所述方法还包括:将所述目标特征向量添加至所述历史特征向量中。
根据本公开的第二方面,提供一种滑块验证方法,所述方法包括:当客户端进行滑块验证时,判断滑块位置是否正确;如果所述滑块位置正确,则通过上述人机识别任一项所述的方法识别所述滑块验证是否由机器执行;如果确定所述滑块验证非机器执行,则确定所述滑块验证通过。
在本公开的一种示例性实施方式中,所述滑块显示于所述客户端的图形验证区域内,且所述图形验证区域内包括可移动图形和残缺图形;所述判断滑块位置是否正确,包括:当所述滑块滑动时,同步移动所述可移动图形;当所述滑块停止滑动时,检测所述可移动图形与所述残缺图形是否重合;当确定所述可移动图形与所述残缺图形重合时,确定所述滑块位置正确。
根据本公开的第三方面,提供一种人机识别装置,所述人机识别装置包括:获取装置,用于获取客户端进行滑块验证所产生的滑动轨迹数据,所述滑动轨迹数据包括所述滑块验证过程中滑块在各时刻的位置;生成模块,用于对所述各时刻的位置进行分段线性拟合,根据每一段的斜率生成所述滑动轨迹数据对应的目标特征向量;聚类模块,用于将所述目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类;确定模块,用于如果所述目标特征向量所属类别中向量的数量或比例满足预设条件,则确定所述滑块验证由机器执行。
在本公开的一种示例性实施方式中,所述生成模块包括:绘制单元,用于以时刻为横轴,位置为纵轴,将所述各时刻的位置绘制为对应的数据点;拟合单元,用于将各所述数据点进行分段,分别对每一段中的所述数据点进行线性拟合,得到每一段的斜率;排列单元,用于将所述每一段的斜率排列为向量,以得到所述滑动轨迹数据对应的目标特征向量。
在本公开的一种示例性实施方式中,所述拟合单元通过执行以下方法,对各所述数据点进行分段:确定第一个数据点为当前段的起点;依次将所述起点后续的数据点作为所述当前段的终点,对所述当前段中的所有数据点进行线性拟合,并计算拟合误差;如果所述拟合误差小于误差阈值,则继续将下一数据点作为所述当前段的终点;如果所述拟合误差大于所述误差阈值,则将所述当前段的终点移动到上一数据点,划分所述当前段;将所述当前段的终点确定为下一段的起点,划分下一段,直到对最后一个数据点完成分段。
在本公开的一种示例性实施方式中,所述生成模块还用于在得到每一段的斜率后,对所述每一段的斜率分别取整。
在本公开的一种示例性实施方式中,所述聚类模块用于从所述历史特征向量中确定与所述目标特征向量相似的向量,将所述目标特征向量及其相似的向量形成一个类别;所述确定模块用于当所述类别中向量的数量大于数量阈值,或者所述类别中向量占全部所述历史特征向量与目标特征向量的比例大于比例阈值时,确定所述滑块验证由机器执行。
在本公开的一种示例性实施方式中,所述滑块验证过程中滑块沿预设轴的方向滑动;所述滑块在各时刻的位置包括:所述滑块在各时刻的预设轴坐标。
在本公开的一种示例性实施方式中,在进行聚类后,所述聚类模块还用于将所述目标特征向量添加至所述历史特征向量中。
根据本公开的第四方面,提供一种滑块验证装置,所述滑块验证装置包括:判断模块,用于当客户端进行滑块验证时,判断滑块位置是否正确;识别模块,用于如果所述滑块位置正确,则通过上述人机识别任一项所述的方法识别所述滑块验证是否由机器执行;确定模块,用于如果确定所述滑块验证非机器执行,则确定所述滑块验证通过。
在本公开的一种示例性实施方式中,所述滑块显示于所述客户端的图形验证区域内,且所述图形验证区域内包括可移动图形和残缺图形;所述判断模块通过执行以下方法,确定所述滑块位置正确:当所述滑块滑动时,同步移动所述可移动图形;当所述滑块停止滑动时,检测所述可移动图形与所述残缺图形是否重合;当确定所述可移动图形与所述残缺图形重合时,确定所述滑块位置正确。
根据本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种人机识别方法或滑块验证方法。
根据本公开的第六方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一种人机识别方法或滑块验证方法。
本公开具有以下有益效果:
本公开示例性实施方式提出了一种人机识别方法,该方法通过对滑块验证产生的滑动轨迹数据进行分段线性拟合,并根据每一段的斜率生成滑动轨迹数据对应的目标特征向量,将该目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类,以确定目标特征向量的类别,当目标特征向量所属类别中向量的数量满足预设条件时,确定滑块验证由机器执行。一方面,本示例性实施方式实质上实现了对机器滑块验证行为的无监督学习,基于机器学习之间的相似性进行聚类,将其与人的行为区分开来,对于各种机器行为均具有较强的泛化能力;特别是对新出现的机器行为,无需学习到其行为特征,可以在早期识别出来,而现有技术需要对这些行为打标签并训练机器学习模型,因此本方案具有较高的准确性和时效性。另一方面,以分段线性拟合得到的由斜率组成的目标特征向量,来表示滑块验证中滑动轨迹数据的特征,降低了特征提取的复杂度,并且以向量聚类的方式进行人机识别,相比于机器学习模型的处理过程,减少了运算量,因而提高了人机识别的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
本公开的示例性实施方式首先提供了一种人机识别方法,该方法可以由计算机或应用程序后台的服务器执行,来判断客户端的验证行为是由人或机器触发的。
图1示出了本示例性实施方式中人机识别方法的一种流程,可以包括以下步骤S110~S140:
步骤S110.获取客户端进行滑块验证所产生的滑动轨迹数据,该滑动轨迹数据包括滑块验证过程中滑块在各时刻的位置。
其中,滑块验证可以是一种通过模拟滑动操作将预设图形移动至目标位置的验证方式。
当客户端在进行滑块验证时,可以通过相应操作,如拖动滑块等改变滑块所在的位置。参考图2所示,示出了一种滑块验证的用户界面示意图,响应于客户端滑动滑块210的操作,滑块210可以沿滑动条向左右两侧移动,获取滑块210在移动过程中各时刻的位置,如坐标等,即得到客户端进行滑块验证时的滑动轨迹数据。
由于在滑块移动至目标位置的过程中,可以沿滑块与目标位置的直线方向滑动,因此,在一种可选的实施方式中,在滑块验证过程中滑块可以沿预设轴方向滑动,如图2中,滑块可以沿滑动条向左右两侧水平移动,则可以将水平方向的x轴作为预设轴,在这种情况下,上述滑动轨迹数据,即滑块在各时刻的位置也可以是滑块在各时刻的预设轴坐标。
通过获取滑块在各时刻的预设轴坐标,可以减少滑块在其他方向上的位置数据,因而能够减少计算的数据量,提高滑块验证的效率。
步骤S120.对各时刻的位置进行分段线性拟合,根据每一段的斜率生成上述滑动轨迹数据对应的目标特征向量。
在进行滑块验证时,滑块在各时刻的位置可以组成多段位置数据,如相邻一个或多个时刻的位置可以组成一段位置数据,对每段位置数据进行线性拟合,可以得到多个线性线段,将每个线性线段的斜率依次排列,得到上述滑动轨迹数据对应的目标特征向量。
由于滑块在各时刻的位置可以是滑块在各时刻的预设轴坐标,因此,在一种可选的实施方式中,步骤S120可以通过以下方式实现:
以时刻为横轴,位置为纵轴,将各时刻的位置绘制为对应的数据点;
将各数据点进行分段,分别对每一段中的数据点进行线性拟合,得到每一段的斜率;
将每一段的斜率排列为向量,以得到滑动轨迹数据对应的目标特征向量。
在坐标系中,将滑动轨迹数据中的时刻t作为横轴,位置x作为纵轴,则滑动轨迹数据可以表示为(x1,t1),(x2,t2),…,(xn,tn);将滑块在各时刻的位置绘制为坐标系中对应的数据点,并对各数据点进行分段,例如,将相邻两个数据点划分为一个数据段,对每个数据段进行线性拟合,则可以得到多个数据段对应的斜率;将各数据段对应的斜率按照顺序依次排列,所得到的向量即为滑动轨迹数据对应的目标特征向量。
由于在将数据点进行分段时,也可以将一个或多个数据点划分为一个数据段,因此,在一种可选的实施方式中,将各数据点进行分段可以通过以下方式实现:
确定第一个数据点为当前段的起点;
依次将起点后续的数据点作为当前段的终点,对当前段中的所有数据点进行线性拟合,并计算拟合误差;
如果拟合误差小于误差阈值,则继续将下一数据点作为当前段的终点;
如果拟合误差大于误差阈值,则将当前段的终点移动到上一数据点,划分当前段;
将当前段的终点确定为下一段的起点,划分下一段,直到对最后一个数据点完成分段。
如前所述,滑动轨迹数据可以表示为(x1,t1),(x2,t2),…,(xn,tn),x1为第一个数据点,也就是当前段的起点,由此,依次将起点后续的数据点作为当前段的终点,对当前段的数据点进行线性拟合,可以通过公式(1)至(4)实现:
例如,令i=1,j=2,对与起点x1相邻的第一个数据点x2与起点形成的数据段进行线性拟合,得到对应x1与x2两个数据点形成的数据段的直线方程x=at+b;a为斜率,b为截距。再例如,令i=1,j=3,可以得到对应x1、x2和x3三个数据点所形成的数据段的直线方程。
在通过公式(1)至(4)得到拟合后的直线x=at+b后,通过公式(5)计算对应数据点形成的数据段的线性拟合误差:
由公式(5)可知,线性拟合误差表示对应数据点到拟合直线的均方误差,根据预先设置的误差阈值可以将各数据点划分至相应的数据段,该误差阈值可以根据对应数据点到拟合直线的误差和确定,例如可以设置为对应数据点误差和的平均值或1/3值等。具体的,如果线性拟合误差小于误差阈值,则将下一数据点作为当前段的终点,形成新的当前段,再通过式(1)至(4)再次对当前段的数据进行线性拟合,当对应x1与x2两个数据点形成的数据段的线性拟合误差小于误差阈值时,则将x3作为当前段的终点,形成由x1、x2和x3组成的新的当前段数据,对该新的当前段数据再次进行线性拟合;如果拟合误差大于误差阈值,则将当前段的终点移动到上一数据点,确定以上一数据点为终点的当前段为一独立的数据段,保存该数据段的斜率a,然后将当前段的终点,即上一数据点确定为下一段的起点,划分下一段,直到对最后一个数据点完成分段,例如,当对应x1与x2和x3三个数据点形成的数据段的线性拟合误差大于误差阈值时,则将当前段的终点移动至上一数据点x2,保存由x1与x2两个数据形成的数据段的斜率,该斜率即为目标特征向量的第一个元素,然后将当前段的终点,即x2作为下一个当前段的起点,划分新的当前段,直至完成最后一个数据点的分段。
通过以上对滑动轨迹数据进行分段线性拟合,可以得到多个线性拟合的斜率向量(a1,a2,…,ak),该斜率向量即为滑动轨迹数据对应的目标特征向量。
需要补充的是,在进行分段线性拟合时,不同滑动轨迹数据的分段数量可能不同,则得到的目标特征向量的维度可能不同。为了统一向量维度,以便于后续处理,可以设定向量的固定长度,如固定长度为32,如果滑动轨迹数据的分段数量不足32,例如只有30个分段,导致所得到的斜率数量也为30,则可以在后面填充两预设数值,例如在30个斜率后面填充两个0,形成32维度的目标特征向量。
步骤S130.将上述目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类。
其中,历史特征向量是历史验证行为中通过历史滑动轨迹数据得到的特征向量,可以由特定的数据库或数据平台存储。
由于机器行为一般是按照脚本执行的,其产生的滑动轨迹数据之间往往存在较大的相似性,参考图3所示,示出了一种机器进行滑块验证所产生的滑动轨迹数据的曲线图,其中,时刻t为横轴,位置坐标x为纵轴,如图,各滑动轨迹数据之间呈阶段平行,也就是说在对应阶段滑动轨迹数据的差异较小;而人的验证行为由于与个人习惯、操作特点等因素相关,滑动轨迹数据通常会存在较大的差异性,参考图4所示,示出了人为进行的滑块验证所产生的滑动轨迹数据的曲线图,各滑动轨迹数据呈现明显的不规则状态,也就是说,可以通过滑动轨迹数据间的相似性判断人机行为,具体的,可以在通过步骤S210得到目标特征向量后,将其与历史滑块验证中所得到的历史特征向量进行聚类,从而确定历史特征向量中与目标特征向量相似的特征向量。
由于人机识别方法实际上是一种分类方法,因此,在一种可选的实施方式中,步骤S130可以通过以下方式实现:
从历史特征向量中确定与目标特征向量相似的向量,将目标特征向量及其相似的向量形成一个类别。
通过计算历史特征向量与目标特征向量的相似度,将相似度大于预设阈值的向量作为目标特征向量的相似向量,从而将目标特征向量与相似向量作为一个类别。
需要说明的是,在历史特征向量中确定与目标特征向量相似的特征向量可以通过多种方式实现,例如,在得到目标特征向量后,可以通过计算目标特征向量与历史特征向量的欧氏距离、余弦相似度和相关系数等来确定与目标特征向量相似的特征向量。
此外,在确定目标特征向量的相似向量时,也可以对目标特征向量进行近似,以将与目标特征向量相同的向量作为目标特征向量的相似向量。例如,在通过步骤S120得到每一段的斜率后,可以对每一段的斜率分别取整,由此可以得到多个线性拟合的整数斜率向量,将该整数斜率向量作为滑动轨迹数据对应的目标特征向量。在得到目标特征向量后,将历史特征向量中与目标特征向量相同的向量作为目标特征向量的相似向量。
步骤S140.如果目标特征向量所属类别中向量的数量或比例满足预设条件,则确定上述滑块验证由机器执行。
其中,预设条件可以是目标特征向量所属类别中向量的数量条件,例如可以包括目标特征向量所属类别中向量的数量阈值或比例阈值,该数量阈值和比例阈值通常可以由开发人员根据操作经验等设置。
当目标特征向量所属类别中向量的数量或者比例满足预设条件,说明在当前的滑块验证和历史验证中,目标特征向量的总数量已超过预设的人为验证的数量范围,因此可以将目标特征向量对应的滑块验证行为确定为由机器执行。
在确定与目标特征向量相似的向量,并将目标特征向量与相似的向量形成一个类别后,可以通过统计该类别中的向量数量,来确定目标特征向量对应的滑块验证行为是否为机器执行。具体的,在一种可选的实施方式中,当上述类别中向量的数量大于数量阈值,或者上述类别中向量占全部历史特征向量与目标特征向量的比例大于比例阈值时,确定上述滑块验证由机器执行。
在一种可选的实施方式中,在步骤S130后,可以将目标特征向量添加至历史特征向量中,使得历史特征向量不断累积,用于对后续的滑块验证行为进行人机识别。
综上,本公开示例性实施方式提出了一种人机识别方法,该方法通过对滑块验证产生的滑动轨迹数据进行分段线性拟合,并根据每一段的斜率生成滑动轨迹数据对应的目标特征向量,将该目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类,以确定目标特征向量的类别,当目标特征向量所属类别中向量的数量满足预设条件时,确定滑块验证由机器执行。一方面,本示例性实施方式实质上实现了对机器滑块验证行为的无监督学习,基于机器学习之间的相似性进行聚类,将其与人的行为区分开来,对于各种机器行为均具有较强的泛化能力;特别是对新出现的机器行为,无需学习到其行为特征,可以在早期识别出来,而现有技术需要对这些行为打标签并训练机器学习模型,因此本方案具有较高的准确性和时效性。另一方面,以分段线性拟合得到的由斜率组成的目标特征向量,来表示滑块验证中滑动轨迹数据的特征,降低了特征提取的复杂度,并且以向量聚类的方式进行人机识别,相比于机器学习模型的处理过程,减少了运算量,因而提高了人机识别的效率。
进一步的,本示例性实施方式还提供了一种滑块验证方法,该方法可以应用于进行滑块验证的计算机或应用程序后台的服务器,从而在客户端进行滑块验证时,确定客户端的验证行为是否通过。
图5示出了本示例性实施方式中滑块验证方法的一种流程图,可以包括以下步骤S510~S530:
步骤S510.当客户端进行滑块验证时,判断滑块位置是否正确。
步骤S520.如果滑块位置正确,则通过上述人机识别方法识别上述滑块验证是否由机器执行。
步骤S530.如果确定滑块验证非机器执行,则确定滑块验证通过。
当客户端进行滑块验证时,可以通过滑块验证所产生的滑动轨迹数据确定滑块最终所在的位置是否正确。例如,可以通过在客户端拖动验证图形以使其位于相应的位置进行验证,因此,在一种可选的实施方式中,滑块可以显示于客户端的图形验证区域内,且图形验证区域内可以包括可移动图形和残缺图形,参考图2所示,滑块210显示于图形验证区域240,图形验证区域内包括可移动图形220和残缺图形230,由此,步骤S510可以通过以下方式实现:
当滑块滑动时,同步移动可移动图形;
当滑块停止滑动时,检测可移动图形与残缺图形是否重合;
当确定可移动图形与残缺图形重合时,确定滑块位置正确。
当滑块移动时,在客户端以相同的速度和方向移动可移动图形,当检测到滑块停止滑动时,确定可移动图形的位置,并根据可移动图形的位置确定其与残缺图形是否重合,当确定两者重合时,确定上述滑块的位置正确。
人为滑动滑块时,往往难以将可移动图形与残缺图形完全重合,因此,可以设置一定的重合阈值,如80%、90%等。当滑块停止移动时,计算可移动图形与残缺图形的重合比例,若该比例大于重合阈值,则确定可移动图形与残缺图形重合,滑块位置正确,反之,则确定可移动图形与残缺图形不重合,滑块位置不正确。
在确定滑块位置正确时,可以通过上述人机识别方法识别上述滑块验证是否是由机器执行的,当确定上述滑块验证是由机器执行的,则确定滑块验证为不通过,反之则确定滑块验证通过。
此外,也可以直接将可移动图形作为滑块,使用户直接拖动可移动图形进行滑动,以完成滑块验证。
由于相比机器学习模型方法,本示例性实施方式中的人机识别方法的计算较为简化,因此,上述滑块验证方法也在一定程度上提高了验证效率。
图6示出了本示例性实施方式的另一种滑块验证方法的流程图,可以包括以下步骤S610~S650:
步骤S610.获取客户端进行滑块验证所产生的滑动轨迹数据。
步骤S620.当滑块停止移动时,确定滑块位置是否正确。
当滑块停止移动时,滑块在当前时刻的位置不再变化,因此,可以根据滑动轨迹数据中最终时刻滑块所在的位置确定滑块的位置是否满足图形的重合条件,当确定滑块所在位置满足图形重合条件时,确定滑块位置正确,执行步骤S630,反之则确定滑块位置不正确,执行步骤S650。
步骤S630.通过上述人机识别方法判断上述滑动轨迹数据对应的滑块验证行为是否为机器行为。
当通过上述人机识别方法确定滑动行为不是机器行为时,执行步骤S640;当通过上述人机识别方法确定滑动行为是机器行为时,执行步骤S650。
步骤S640.确定客户端滑块验证通过。
步骤S650.确定客户端滑块验证不通过。
本公开的示例性实施方式还提供了一种人机识别装置,参考图7所示,示出了一种人机识别装置的结构框图,人机识别装置700可以包括:获取装置710,可以用于获取客户端进行滑块验证所产生的滑动轨迹数据,滑动轨迹数据可以包括滑块验证过程中滑块在各时刻的位置;生成模块720,可以用于对各时刻的位置进行分段线性拟合,根据每一段的斜率生成滑动轨迹数据对应的目标特征向量;聚类模块730,可以用于将目标特征向量与历史滑块验证中所得到的历史特征向量进行聚类;确定模块740,可以用于如果目标特征向量所属类别中向量的数量或比例满足预设条件,则确定滑块验证由机器执行。
在本公开的一种示例性实施方式中,生成模块720可以包括:绘制单元,可以用于以时刻为横轴,位置为纵轴,将各时刻的位置绘制为对应的数据点;拟合单元,可以用于将各数据点进行分段,分别对每一段中的数据点进行线性拟合,得到每一段的斜率;排列单元,可以用于将每一段的斜率排列为向量,以得到滑动轨迹数据对应的目标特征向量。
在本公开的一种示例性实施方式中,拟合单元通过执行以下方法,对各数据点进行分段:确定第一个数据点为当前段的起点;依次将起点后续的数据点作为当前段的终点,对当前段中的所有数据点进行线性拟合,并计算拟合误差;如果拟合误差小于误差阈值,则继续将下一数据点作为当前段的终点;如果拟合误差大于误差阈值,则将当前段的终点移动到上一数据点,划分当前段;将当前段的终点确定为下一段的起点,划分下一段,直到对最后一个数据点完成分段。
在本公开的一种示例性实施方式中,生成模块720还可以用于在得到每一段的斜率后,对每一段的斜率分别取整。
在本公开的一种示例性实施方式中,聚类模块730可以用于从历史特征向量中确定与目标特征向量相似的向量,将目标特征向量及其相似的向量形成一个类别;确定模块740可以用于当类别中向量的数量大于数量阈值,或者类别中向量占全部历史特征向量与目标特征向量的比例大于比例阈值时,确定滑块验证由机器执行。
在本公开的一种示例性实施方式中,滑块验证过程中滑块沿预设轴的方向滑动;滑块在各时刻的位置可以包括:滑块在各时刻的预设轴坐标。
在本公开的一种示例性实施方式中,在进行聚类后,聚类模块740还可以用于将目标特征向量添加至历史特征向量中。
本示例性实施方式还提供了一种滑块验证装置,参考图8所示,示出了一种滑块验证装置的结构框图,滑块验证装置800可以包括:判断模块810,可以用于当客户端进行滑块验证时,判断滑块位置是否正确;识别模块820,可以用于如果滑块位置正确,则通过上述人机识别任一项的方法识别滑块验证是否由机器执行;确定模块830,可以用于如果确定滑块验证非机器执行,则确定滑块验证通过。
在本公开的一种示例性实施方式中,滑块显示于客户端的图形验证区域内,且图形验证区域内可以包括可移动图形和残缺图形;判断模块810通过执行以下方法,确定滑块位置正确:当滑块滑动时,同步移动可移动图形;当滑块停止滑动时,检测可移动图形与残缺图形是否重合;当确定可移动图形与残缺图形重合时,确定滑块位置正确。
上述装置中各模块的具体细节在方法部分实施方式中已经详细说明,未披露的方案细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图9所示,描述了根据本公开的示例性实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品900可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种能够实现上述方法的电子设备。下面参照图10来描述根据本公开的这种示例性实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
如图10所示,电子设备1000可以以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同***组件(包括存储单元1020和处理单元1010)的总线1030和显示单元1040。
其中,存储单元1020存储有程序代码,程序代码可以被处理单元1010执行,使得处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元1010可以执行图1、图5至图6所示的方法步骤等。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储单元(ROM)1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1025的程序/实用工具1024,这样的程序模块1025包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例性实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开示例性实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。