具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的活体检测方法的流程示意图,该方法可以在终端执行,该方法包括:
S11:终端采集用户的生物特征信息,并将所述生物特征信息显示在终端屏幕的初始位置上。
本实施例中,以生物特征信息是人脸信息为例。可以理解的是,生物特征信息不限于人脸信息,还可以是指纹,掌纹,虹膜等。
本实施例中,以人脸姿态信息为例,人脸姿态信息用(pitch,roll,yaw)表示,其中,pitch是俯仰角,roll是转动角,yaw是摆动角。
例如,参见图2,人脸所在的坐标系可以称为第一坐标系,为一个三维坐标系,假设将人的头部看作一个三维球体,则第一坐标系的坐标原点选择的是该球体的中心点。第一坐标系的三个坐标轴分别是X轴,Y轴和Z轴,其中,X轴正方向是水平向右的,Y轴正方向是竖直向上的,Z轴正方向是人眼正视前方的方向。在图2所示的第一坐标系内,当人脸平视时的人脸姿态信息中的pitch,roll,yaw均为0度。
可选的,参见图3,所述将所述生物特征信息显示在终端屏幕的初始位置上,可以具体包括:
S31:确定采集到的所述用户的生物特征信息的关键区域。
以生物特征信息是人脸信息为例,可以采用所述终端的摄像头对所述用户的人脸进行拍摄,得到人脸图片。
例如,用户进入基于人脸信息的登录界面后,系统自动或者提示用户人工确认图片拍摄,从而得到人脸图片。
之后,采用人脸检测算法,从所述人脸图片中检测出人脸区域。
人脸检测算法可以采用已有算法,例如,基于级联分类器的人脸检测算法。级联分类器中可以采用串联的多个函数,假设包括第一函数,第二函数等,则采用第一函数淘汰一部分图像,之后采用第二函数在剩下的图像中再次淘汰一部分图像,依次类推,采用串联的多个函数依次淘汰一部分图像后,剩下的图像就是人脸。当然,可以理解的是,这只是简要说明,由于级联分类器是已有技术,具体内容可以采用已有技术。
在检测出人脸区域后,将人脸区域确定为关键区域。
S32:利用所述关键区域内的生物特征信息,计算得到所述生物特征信息的初始姿态。
其中,可以根据所述人脸区域进行人脸姿态估计,获取所述人脸的初始姿态,所述初始姿态包括如下至少一项角度的初始值:俯仰角,转动角和摆动角。
在检测出人脸区域后,可以采用人脸关键点定位算法得到人脸关键点,人脸关键点例如眼睛,鼻子,嘴巴等脸部特征点。人脸关键点定位方法通常是采用机器学习的方法,分成训练和定位两个阶段,训练阶段是通过人脸关键点坐标与其对应人脸图像的训练数据集,训练从人脸图像到关键点坐标的回归器,在定位阶段则直接利用训练好的回归器,从输入的人脸图像中估计人脸关键点坐标,具体的人脸关键点定位算法也可以采用已有算法。
在定位出人脸关键点后,可以采用人脸关键点以及头部三维建模算法,估算出人的头部对应的三维球体,头部三维建模算法也有很多已有算法,例如基于单幅图片的三维建模,实时三维建模等。估算出该三维球体后,该球体相对于X轴的旋转角度就是俯仰角(pitch),该球体相对于Y轴的旋转角度就是摆动角(yaw),该球体相对于Z轴的旋转角度就是转动角(roll),从而得到初始状态信息。
S33:根据所述初始姿态进行坐标映射,将所述生物特征信息映射到终端屏幕的初始位置。
可选的,所述根据所述初始姿态进行坐标映射,将所述生物特征信息映射到终端屏幕的初始位置,包括:
获取第一坐标系内的坐标与第二坐标系内的坐标之间的映射关系,所述第一坐标系是所述生物特征信息所在的坐标系,所述第二坐标系是所述屏幕所在坐标系;
根据所述映射关系,确定与所述初始姿态对应的初始位置的坐标;
根据所述初始位置的坐标,将所述生物特征信息映射到所述初始位置。
初始位置,以及后续生物特征信息移动后的显示位置,都可以根据预先建立的第一坐标系与第二坐标系之间的映射关系得到,其中,第一坐标系是如图2所示的生物特征信息所在的坐标系,第二坐标系是屏幕所在的坐标系。参见图4,第二坐标系是一个二维坐标系,以终端为手机为例,第二坐标系的坐标原点是手机屏幕的中心点,第二坐标系的两个坐标轴分别是X轴和Y轴,其中,X轴的方向与第一坐标系的X轴方向一致,Y轴正方向是竖直向下的。
本实施例中,在计算时采用了上述三个角度中的两个角度,在图2和图4所示的两个坐标系中,两个坐标系之间的映射关系可以表示为:
Δx=Sx×sin(yaw),Δy=Sy×sin(pitch); (1)
其中,yaw,pitch分别是人脸信息在第一坐标系内的状态信息,具体为摆动角和俯仰角,Δx,Δy分别是在第二坐标系内,人脸信息在屏幕上的显示位置相对于第二坐标系的坐标原点的偏移量。
Sx,Sy由人脸姿态角的变化范围与屏幕的宽高决定。如假设屏幕的宽和高分别为w,h,且屏幕坐标系原点位于(w/2,h/2),即屏幕正中心位置;假设头部的俯仰角变化范围为[-θ,+θ],摆动角的变化范围为:[-β,+β],则:
θ,β是可配置的,本实施例中,可以配置θ=β=45°。
在得到的上述公式(1)和(2)后,就可以由状态信息(yaw,pitch)得到对应的显示位置(Δx,Δy),从而再根据第二坐标系的坐标原点(Ox,Oy),得到与状态信息对应的位置信息(Ox+Δx,Oy+Δy)。
例如,在确定出初始位置后,就可以将人脸信息显示在初始位置上。
可以理解的是,上述坐标原点的选择方式,以及坐标系中各坐标轴方向的选择不限于上述方式,还可以选择其他坐标原点或者其他方向的坐标轴等,相应的,当坐标原点或者坐标轴方向改变后,上述的计算公式可以根据两个坐标系之间的空间几何关系进行相应调整。
S12:根据所述初始位置,确定目标位置,并在所述屏幕上显示所述目标位置。
该目标位置可以是采用随机方式生成的。
通过采用随机的方式生成目标位置,可以降低目标位置被破解的可能,提高活体检测的准确性。
可选的,所述根据所述初始位置,确定目标位置,包括:
随机生成候选目标位置;
判断所述候选目标位置与所述初始位置是否满足预设条件;
当满足预设条件时,将所述候选目标位置确定为所述目标位置。
具体的,另一实施例中,参见图5,所述根据所述初始位置,确定目标位置,包括:
S51:随机生成候选目标位置。
例如,采用随机算法随机生成X和Y方向的坐标值,用随机生成的X和Y方向的坐标值表示候选目标位置。
S52:计算随机生成的候选目标位置与所述初始位置之间的距离。由于候选目标位置和初始位置都可以表示为第二坐标系内的一个点,因此候选目标位置与初始位置之间的距离,可以采用二维平面上两个点之间距离的计算方式得到。
S53:判断所述距离是否小于第一预设值,若是,重复执行S51及其后续步骤,否则,执行S54。第一预设值例如为w/2,通过比较该距离与w/2,可以得到判断结果。
S54:将该距离大于或等于所述第一预设值的候选目标位置,确定为最终采用的目标位置。
S13:提示所述用户移动所述生物特征信息,以使所述生物特征信息在所述屏幕上的显示位置从所述初始位置向所述目标位置移动。
其中,在确定出最终采用的目标位置后,终端可以向用户显示提示信息,提示信息用于提示用户移动人脸信息,使得人脸信息的显示位置移动到最终采用的目标位置。
用户在看到提示信息后,可以运动头部,使得人脸信息在屏幕上的显示位置不断移动。
本实施例中,通过选择与初始位置之间的距离大于预设值的目标位置,可以将目标位置与初始位置在位置上进行区分,从而方便用户运动头部等生物特征。
以人脸信息为例,目标人脸位置与初始人脸位置的关系可以如图6所示。
S14:检测移动后的生物特征信息在所述屏幕上的显示位置,并根据所述显示位置与所述目标位置之间的关系,判断所述用户是否为活体。
如上所示,移动后的生物特征信息在屏幕上的显示位置也可以类似初始位置的计算方式得到。
具体的,所述计算移动后的生物特征信息在所述屏幕上的显示位置,包括:
获取移动后的生物特征信息,在第一坐标系内的姿态信息;
根据预先建立的第一坐标系内的坐标与第二坐标系内的坐标之间的映射关系,计算与所述第一坐标系内的姿态信息对应的第二坐标系内的坐标信息,根据所述第二坐标系内的坐标信息确定移动后的生物特征信息在所述屏幕上的显示位置;
其中,所述第一坐标系是所述生物特征信息所在的坐标系,所述第二坐标系是所述屏幕所在的坐标系。
例如,当用户运动头部后,会改变人脸姿态信息,从而根据之前建立的第一坐标系与第二坐标系之间的映射关系,Δx,Δy也是变化的,再根据Δx,Δy以及坐标原点得到人脸在屏幕上的显示位置,该显示位置也是变化的。
另外,实时计算人脸在屏幕上的显示位置后,还可以根据实时计算出的显示位置,在相应位置显示人脸信息,以方便用户将人脸信息移动到目标位置。
通过第一坐标系与第二坐标系的映射关系,可以实现将人脸姿态信息映射到屏幕上的相应位置。
可选的,所述显示位置是随着所述生物特征信息的移动而移动的,所述生物特征信息的移动驱动所述显示位置的移动,,所述根据所述显示位置与所述目标位置之间的关系,判断所述用户是否为活体,包括:
当所述显示位置与所述目标位置之间的距离小于第二预设值时,判断出成功移动;
如果成功移动的次数达到预设次数,判断出所述用户是活体。
例如,用户在运动头部时,终端实时计算相应的移动后的显示位置,并实时计算移动后的显示位置与目标位置之间的距离,直至两者之间的距离小于第二预设值。当两者之间的距离小于第二预设值时,表明一次成功移动。如果预设次数是1,则一次成功移动后,就可以判断出用户是活体。或者,为了进一步提高安全性,可以设置次数大于1,此时,在一次成功移动后,可以重新随机生成目标位置,并根据上述流程提示用户移动生物特征信息,并实时计算显示位置与重新生成的目标位置之间的距离,当两者距离再次小于第二预设值时,则表明二次成功移动,如果预设次数是2次,则此时可以判断出用户是活体。当然,可以理解的是,如果预设次数多于2次,则还可以依此继续判断是否成功移动,从而判断是否为活体。
第二预设值可以与第一预设值相同或者不同,本实施例中,假设第二预设值也为w/2,从而当移动后的显示位置与目标位置之间的距离小于w/2后,可以确认检测的用户是活体,另一方面,也可以确认人脸匹配成功。
通过实时计算移动后的显示位置与目标位置之间的距离,可以及时发现活体检测或者说人脸匹配是否成功。
本实施例中,通过将生物特征信息映射到屏幕的显示位置上,并根据显示位置和目标位置之间的关系可以识别出用户是否为活体,从而在用户登录时只对活体的生物特征信息进行验证,提高安全性。
图7是本发明另一实施例提出的身份认证方法的流程示意图,该方法可以由终端执行,该方法包括:
S71:接收到用户的身份认证指令后,终端采集所述用户的生物特征信息。
用户在需要身份认证时,可以点击终端登录界面上的身份认证按钮,从而产生身份认证指令。
终端接收到用户产生的身份认证指令后,可以获取人脸信息等生物特征信息。
S72:根据采集的所述生物特征信息,判断所述用户是否为活体。
其中,所述判断所述用户是否为活体,具体包括:
将采集的所述用户的生物特征信息显示在终端屏幕的初始位置上;
根据所述初始位置,确定目标位置,并在所述屏幕上显示所述目标位置;
提示所述用户移动所述生物特征信息,以使所述生物特征信息在所述屏幕上的显示位置从所述初始位置向所述目标位置移动;
检测移动后的生物特征信息在所述屏幕上的显示位置,并根据所述显示位置与所述目标位置之间的关系,判断所述用户是否为活体。
其中,所述活体检测的具体内容可以参见上述相关实施例,在此不再赘述。
S73:若是,发送所述用户的生物特征信息给认证服务器。
其中,发送给认证服务器的生物特征信息可以是在多个生物特征信息中选择得到的。
可选的,参见图8,另一实施例中,该身份认证方法包括:
S81:接收到用户的身份认证指令后,终端采集所述用户的生物特征信息。
如上所示,当终端提示用户移动后,用户可以运动头部,并且用户在运动头部的过程中,终端可以实时对用户的人脸进行拍照,从而获取多个人脸图片。其中,多个人脸图片可以具体是指从提示用户运动开始,直至确认人脸匹配成功(也就是确认用户是活体)这一过程中实时拍摄的人脸图片。
S82:根据采集的所述生物特征信息,判断所述用户是否为活体。
其中,活体检测的内容可以参见上述相关实施例,在此不再赘述。
S83:如果是活体,确定采集的所述用户的生物特征信息的图像帧质量,并从采集的所述用户的生物特征信息中,选取图像帧质量排在前N个的生物特征信息的图像帧;其中,N为预设正整数。
根据生物特征信息的不同,可以采用不同的衡量算法评估相应的质量。以人脸图片为例,例如可以根据姿态(是否正视),光线(脸部光线是否充足),表情(是否无表情)等来衡量图片质量。具体的衡量算法可以根据实际需求设置,例如,设置上述各种参数(姿态,光线,表情)的权重,再将权重与各自参数的数值相乘,再将相乘后的各数值相加后得到每个人脸图片的图像帧质量的数值。之后可以根据该数值从大到小的顺序选择N个,假设N为1时,可以选择数值最大的图片。
S84:将选取的图像帧质量排在前N个的生物特征信息的图像帧,发送给认证服务器。
例如,选取图像帧质量排在第一位的人脸图片后,将该人脸图片发送给认证服务器。
S74:接收所述认证服务器发送的身份认证结果,所述身份认证结果是所述认证服务器对所述生物特征信息及预先存储的与所述用户对应的生物特征信息进行比对后发送的。
其中,终端发送人脸图片时还可以携带用户标识信息,认证服务器中预先保存用户标识信息与人脸图片的对应关系,当认证服务器接收到终端发送的人脸图片和用户标识信息后,可以先根据用户标识信息获取到预先保存的人脸图片,再将接收的人脸图片与预先保存的人脸图片进行比对,得到身份认证结果。
人脸图片比对可以采用已有算法,例如,基于深度学习的人脸比对算法,或者,基于高维特征的人脸比对算法。
认证服务器获取到身份认证结果后,可以将该身份认证结果发送给终端,终端接收到该身份认证结果后,可以显示给用户。当身份认证成功时,允许用户登录,否则,用户登录失败。
另外,如果终端将多张图片发送给认证服务器,则认证服务器可以分别将接收的每张图片与存储的图片进行比对,如果存在一张比对成功的,则表明认证成功。
上述描述了显示位置与目标位置满足匹配条件后的验证流程,另一方面,当判断出显示位置与目标位置不满足匹配条件后,可以不需要再向认证服务器进行验证,直接由终端向用户返回身份认证失败的信息。
本实施例中,通过在身份认证之前先进行活体检测,可以在用户是活体时才进行进一步验证,避免用照片等形式进行验证信息的冒用,从而提高认证时的安全性。
图9是本发明另一实施例提出的活体检测装置的结构示意图,该装置可以位于终端上,终端例如手机等,该装置90包括:
第一显示模块91,用于采集用户的生物特征信息,并将所述生物特征信息显示在终端屏幕的初始位置上;
本实施例中,以生物特征信息是人脸信息为例。可以理解的是,生物特征信息不限于人脸信息,还可以是指纹,掌纹,虹膜等。
本实施例中,以人脸姿态信息为例,人脸姿态信息用(pitch,roll,yaw)表示,其中,pitch是俯仰角,roll是转动角,yaw是摆动角。
例如,参见图2,人脸所在的坐标系可以称为第一坐标系,为一个三维坐标系,假设将人的头部看作一个三维球体,则第一坐标系的坐标原点选择的是该球体的中心点。第一坐标系的三个坐标轴分别是X轴,Y轴和Z轴,其中,X轴正方向是水平向右的,Y轴正方向是竖直向上的,Z轴正方向是人眼正视前方的方向。在图2所示的第一坐标系内,当人脸平视时的人脸姿态信息中的pitch,roll,yaw均为0度。
可选的,所述第一显示模块91用于将所述生物特征信息显示在终端屏幕的初始位置上,包括:
确定采集到的所述用户的生物特征信息的关键区域;
以生物特征信息是人脸信息为例,可以采用所述终端的摄像头对所述用户的人脸进行拍摄,得到人脸图片。
例如,用户进入基于人脸信息的登录界面后,系统自动或者提示用户人工确认图片拍摄,从而得到人脸图片。
之后,采用人脸检测算法,从所述人脸图片中检测出人脸区域。
人脸检测算法可以采用已有算法,例如,基于级联分类器的人脸检测算法。级联分类器中可以采用串联的多个函数,假设包括第一函数,第二函数等,则采用第一函数淘汰一部分图像,之后采用第二函数在剩下的图像中再次淘汰一部分图像,依次类推,采用串联的多个函数依次淘汰一部分图像后,剩下的图像就是人脸。当然,可以理解的是,这只是简要说明,由于级联分类器是已有技术,具体内容可以采用已有技术。
在检测出人脸区域后,将人脸区域确定为关键区域。利用所述关键区域内的生物特征信息,计算得到所述生物特征信息的初始姿态;
其中,可以根据所述人脸区域进行人脸姿态估计,获取所述人脸的初始姿态,所述初始姿态包括如下至少一项角度的初始值:俯仰角,转动角和摆动角。
在检测出人脸区域后,可以采用人脸关键点定位算法得到人脸关键点,人脸关键点例如眼睛,鼻子,嘴巴等脸部特征点。人脸关键点定位方法通常是采用机器学习的方法,分成训练和定位两个阶段,训练阶段是通过人脸关键点坐标与其对应人脸图像的训练数据集,训练从人脸图像到关键点坐标的回归器,在定位阶段则直接利用训练好的回归器,从输入的人脸图像中估计人脸关键点坐标,具体的人脸关键点定位算法也可以采用已有算法。
在定位出人脸关键点后,可以采用人脸关键点以及头部三维建模算法,估算出人的头部对应的三维球体,头部三维建模算法也有很多已有算法,例如基于单幅图片的三维建模,实时三维建模等。估算出该三维球体后,该球体相对于X轴的旋转角度就是俯仰角(pitch),该球体相对于Y轴的旋转角度就是摆动角(yaw),该球体相对于Z轴的旋转角度就是转动角(roll),从而得到初始状态信息。
根据所述初始姿态进行坐标映射,将所述生物特征信息映射到终端屏幕的初始位置。
可选的,所述第一显示模块91用于根据所述初始姿态进行坐标映射,将所述生物特征信息映射到终端屏幕的初始位置,包括:
获取第一坐标系内的坐标与第二坐标系内的坐标之间的映射关系,所述第一坐标系是所述生物特征信息所在的坐标系,所述第二坐标系是所述屏幕所在坐标系;
根据所述映射关系,确定与所述初始姿态对应的初始位置的坐标;
根据所述初始位置的坐标,将所述生物特征信息映射到所述初始位置。
初始位置,以及后续生物特征信息移动后的显示位置,都可以根据预先建立的第一坐标系与第二坐标系之间的映射关系得到,其中,第一坐标系是如图2所示的生物特征信息所在的坐标系,第二坐标系是屏幕所在的坐标系。
参见图4,第二坐标系是一个二维坐标系,以终端为手机为例,第二坐标系的坐标原点是手机屏幕的中心点,第二坐标系的两个坐标轴分别是X轴和Y轴,其中,X轴的方向与第一坐标系的X轴方向一致,Y轴正方向是竖直向下的。
本实施例中,在计算时采用了上述三个角度中的两个角度,在图2和图4所示的两个坐标系中,两个坐标系之间的映射关系可以表示为:
Δx=Sx×sin(yaw),Δy=Sy×sin(pitch); (1)
其中,yaw,pitch分别是人脸信息在第一坐标系内的状态信息,具体为摆动角和俯仰角,Δx,Δy分别是在第二坐标系内,人脸信息在屏幕上的显示位置相对于第二坐标系的坐标原点的偏移量。
Sx,Sy由人脸姿态角的变化范围与屏幕的宽高决定。如假设屏幕的宽和高分别为w,h,且屏幕坐标系原点位于(w/2,h/2),即屏幕正中心位置;假设头部的俯仰角变化范围为[-θ,+θ],摆动角的变化范围为:[-β,+β],则:
θ,β是可配置的,本实施例中,可以配置θ=β=45°。
在得到的上述公式(1)和(2)后,就可以由状态信息(yaw,pitch)得到对应的显示位置(Δx,Δy),从而再根据第二坐标系的坐标原点(Ox,Oy),得到与状态信息对应的位置信息(Ox+Δx,Oy+Δy)。
例如,在确定出初始位置后,就可以将人脸信息显示在初始位置上。
可以理解的是,上述坐标原点的选择方式,以及坐标系中各坐标轴方向的选择不限于上述方式,还可以选择其他坐标原点或者其他方向的坐标轴等,相应的,当坐标原点或者坐标轴方向改变后,上述的计算公式可以根据两个坐标系之间的空间几何关系进行相应调整。
第二显示模块92,用于根据所述初始位置,确定目标位置,并在所述屏幕上显示所述目标位置;
该目标位置可以是采用随机方式生成的。
通过采用随机的方式生成目标位置,可以降低目标位置被破解的可能,提高活体检测的准确性。
可选的,所述生成模块92用于根据所述初始位置,确定目标位置,包括:
随机生成候选目标位置;
例如,采用随机算法随机生成X和Y方向的坐标值,用随机生成的X和Y方向的坐标值表示候选目标位置。
判断所述候选目标位置与所述初始位置是否满足预设条件;
可选的,所述生成模块用于判断所述候选目标位置与所述初始位置是否满足预设条件,包括:
计算所述候选目标位置与所述初始位置之间的距离;
判断所述距离是否小于第一预设值;
如果所述距离小于第一预设值时,重新生成候选目标位置,直至所述距离大于或等于所述第一预设值;
当所述距离大于或等于所述第一预设值时,判断出所述候选目标位置与所述初始位置满足预设条件。
由于候选目标位置和初始位置都可以表示为第二坐标系内的一个点,因此候选目标位置与初始位置之间的距离,可以采用二维平面上两个点之间距离的计算方式得到。
第一预设值例如为w/2,通过比较该距离与w/2,可以得到判断结果。
当满足预设条件时,将所述候选目标位置确定为所述目标位置。
例如,将距离大于或等于所述第一预设值的候选目标位置,确定为最终采用的目标位置。
提示模块93,用于提示所述用户移动所述生物特征信息,以使所述生物特征信息在所述屏幕上的显示位置从所述初始位置向所述目标位置移动。
其中,在确定出最终采用的目标位置后,终端可以向用户显示提示信息,提示信息用于提示用户移动人脸信息,使得人脸信息的显示位置移动到最终采用的目标位置。
用户在看到提示信息后,可以运动头部,使得人脸信息在屏幕上的显示位置不断移动。
本实施例中,通过选择与初始位置之间的距离大于预设值的目标位置,可以将目标位置与初始位置在位置上进行区分,从而方便用户运动头部等生物特征。
以人脸信息为例,目标人脸位置与初始人脸位置的关系可以如图6所示。
判断模块94,用于检测移动后的生物特征信息在所述屏幕上的显示位置,并根据所述显示位置与所述目标位置之间的关系,判断所述用户是否为活体。
如上所示,移动后的生物特征信息在屏幕上的显示位置也可以类似初始位置的计算方式得到。
可选的,所述判断模块93用于计算移动后的生物特征信息在所述屏幕上的显示位置,包括:
获取移动后的生物特征信息,在第一坐标系内的姿态信息;
根据预先建立的第一坐标系内的坐标与第二坐标系内的坐标之间的映射关系,计算与所述第一坐标系内的姿态信息对应的第二坐标系内的坐标信息,根据所述第二坐标系内的坐标信息确定移动后的生物特征信息在所述屏幕上的显示位置;
其中,所述第一坐标系是所述生物特征信息所在的坐标系,所述第二坐标系是所述屏幕所在的坐标系。
例如,当用户运动头部后,会改变人脸姿态信息,从而根据之前建立的第一坐标系与第二坐标系之间的映射关系,Δx,Δy也是变化的,再根据Δx,Δy以及坐标原点得到人脸在屏幕上的显示位置,该显示位置也是变化的。
另外,实时计算人脸在屏幕上的显示位置后,还可以根据实时计算出的显示位置,在相应位置显示人脸信息,以方便用户将人脸信息移动到目标位置。
通过第一坐标系与第二坐标系的映射关系,可以实现将人脸姿态信息映射到屏幕上的相应位置。
可选的,所述显示位置是随着所述生物特征信息的移动而移动的,所述生物特征信息的移动驱动所述显示位置的移动,所述判断模块94用于根据所述显示位置与所述目标位置之间的关系,判断所述用户是否为活体,包括:
当所述显示位置与所述目标位置之间的距离小于第二预设值时,判断出成功移动;
如果成功移动的次数达到预设次数,判断出所述用户是活体。
例如,用户在运动头部时,终端实时计算相应的移动后的显示位置,并实时计算移动后的显示位置与目标位置之间的距离,直至两者之间的距离小于第二预设值。当两者之间的距离小于第二预设值时,表明一次成功移动。如果预设次数是1,则一次成功移动后,就可以判断出用户是活体。或者,为了进一步提高安全性,可以设置次数大于1,此时,在一次成功移动后,可以重新随机生成目标位置,并根据上述流程提示用户移动生物特征信息,并实时计算显示位置与重新生成的目标位置之间的距离,当两者距离再次小于第二预设值时,则表明二次成功移动,如果预设次数是2次,则此时可以判断出用户是活体。当然,可以理解的是,如果预设次数多于2次,则还可以依此继续判断是否成功移动,从而判断是否为活体。
第二预设值可以与第一预设值相同或者不同,本实施例中,假设第二预设值也为w/2,从而当移动后的显示位置与目标位置之间的距离小于w/2后,可以确认检测的用户是活体,另一方面,也可以确认人脸匹配成功。
通过实时计算移动后的显示位置与目标位置之间的距离,可以及时发现活体检测或者说人脸匹配是否成功。
本实施例中,通过将生物特征信息映射到屏幕的显示位置上,并根据显示位置和目标位置之间的关系可以识别出用户是否为活体,从而在用户登录时只对活体的生物特征信息进行验证,提高安全性。
图10是本发明另一实施例提出的身份认证装置的结构示意图,该装置可以位于终端上,终端例如手机等。该装置100包括:
获取模块101,用于接收到用户的身份认证指令后,采集所述用户的生物特征信息;
用户在需要身份认证时,可以点击终端登录界面上的身份认证按钮,从而产生身份认证指令。
终端接收到用户产生的身份认证指令后,可以获取人脸信息等生物特征信息。
判断模块102,用于根据采集的所述生物特征信息,判断所述用户是否为活体。
所述判断模块102具体用于:
将采集的所述用户的生物特征信息显示在终端屏幕的初始位置上;
根据所述初始位置,确定目标位置,并在所述屏幕上显示所述目标位置;
提示所述用户移动所述生物特征信息,以使所述生物特征信息在所述屏幕上的显示位置从所述初始位置向所述目标位置移动;
检测移动后的生物特征信息在所述屏幕上的显示位置,并根据所述显示位置与所述目标位置之间的关系,判断所述用户是否为活体。
其中,所述活体检测的具体内容可以参见上述相关实施例,在此不再赘述。
发送模块103,用于在所述判断模块判断出所述用户是活体时,发送所述用户的生物特征信息给认证服务器;
其中,发送给认证服务器的生物特征信息可以是在多个生物特征信息中选择得到的。
可选的,所述发送模块103具体用于:确定采集的所述用户的生物特征信息的图像帧质量,并从采集的所述用户的生物特征信息中,选取图像帧质量排在前N个的生物特征信息的图像帧;其中,N为预设正整数;将选取的图像帧质量排在前N个的生物特征信息的图像帧,发送给认证服务器。
如上所示,当终端提示用户移动后,用户可以运动头部,并且用户在运动头部的过程中,终端可以实时对用户的人脸进行拍照,从而获取多个人脸图片。其中,多个人脸图片可以具体是指从提示用户运动开始,直至确认人脸匹配成功(也就是确认用户是活体)这一过程中实时拍摄的人脸图片。
之后可以进行活体检测,其中,多个生物特征信息的获取以及活体检测的流程可以参见上述相关实施例,在此不再赘述。
根据生物特征信息的不同,可以采用不同的衡量算法评估相应的质量。以人脸图片为例,例如可以根据姿态(是否正视),光线(脸部光线是否充足),表情(是否无表情)等来衡量图片质量。具体的衡量算法可以根据实际需求设置,例如,设置上述各种参数(姿态,光线,表情)的权重,再将权重与各自参数的数值相乘,再将相乘后的各数值相加后得到每个人脸图片的图像帧质量的数值。之后可以根据该数值从大到小的顺序选择N个,假设N为1时,可以选择数值最大的图片。
例如,选取图像帧质量排在第一位的人脸图片后,将该人脸图片发送给认证服务器。
接收模块104,用于接收所述认证服务器发送的身份认证结果,所述身份认证结果是所述认证服务器对所述生物特征信息及预先存储的与所述用户对应的生物特征信息进行比对后发送的;
其中,终端发送人脸图片时还可以携带用户标识信息,认证服务器中预先保存用户标识信息与人脸图片的对应关系,当认证服务器接收到终端发送的人脸图片和用户标识信息后,可以先根据用户标识信息获取到预先保存的人脸图片,再将接收的人脸图片与预先保存的人脸图片进行比对,得到身份认证结果。
人脸图片比对可以采用已有算法,例如,基于深度学习的人脸比对算法,或者,基于高维特征的人脸比对算法。
认证服务器获取到身份认证结果后,可以将该身份认证结果发送给终端,终端接收到该身份认证结果后,可以显示给用户。当身份认证成功时,允许用户登录,否则,用户登录失败。
另外,如果终端将多张图片发送给认证服务器,则认证服务器可以分别将接收的每张图片与存储的图片进行比对,如果存在一张比对成功的,则表明认证成功。
上述描述了显示位置与目标位置满足匹配条件后的验证流程,另一方面,当判断出显示位置与目标位置不满足匹配条件后,可以不需要再向认证服务器进行验证,直接由终端向用户返回身份认证失败的信息。
本实施例中,通过在身份认证之前先进行活体检测,可以在用户是活体时才进行进一步验证,避免用照片等形式进行验证信息的冒用,从而提高认证时的安全性。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。