本发明涉及计算机技术领域,特别是涉及一种人脸活体的鉴别方法和装置。
背景技术:
随着计算机技术的发展,各种应用都伴随着身份验证这一操作,如在支付时通过人脸识别验证操作者身份。假冒者往往采用拍摄的照片或提前录制的视频进行假冒身份的验证,使得在验证过程中验证是否是活体显得尤为重要。
现有的人脸活体的鉴别往往采用纹理分类器鉴别人脸活体,当人像照片或人像视频画质较高时,会将照片或视频误判为真人,当视频采集设备质量较差时,真人也不能通过活体鉴别,产生很高的误判率。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种人脸活体的鉴别方法和装置,提高人脸活体鉴别的准确率。
一种人脸活体的鉴别方法,所述方法包括:
获取随机的动作序列集,提示用户在规定的时间内依次完成所述动作序列集中的指定动作;
获取人脸视频序列,使用人脸检测方法检测所述人脸视频序列中的第一帧人脸图像;
定位所述第一帧人脸图像中的人脸关键点;
跟踪人脸关键点,输出每一帧的人脸关键点;
根据所述人脸关键点采用连续分析法输出所述人脸视频序列对应的动作的状态参数;
根据所述状态参数的连续性鉴别用户是否完成当前的指定动作,如果用户在规定的时间内依次完成所述动作序列集中的指定动作,则鉴定为人脸活体,否则,鉴定为非活体。
一种人脸活体的鉴别装置,所述装置包括:
提示模块,用于获取随机的动作序列集,提示用户在规定的时间内依次完成所述动作序列集中的指定动作;
检测模块,用于获取人脸视频序列,使用人脸检测方法检测所述人脸视频序列中的第一帧人脸图像;
定位跟踪人脸关键点模块,用于定位所述第一帧人脸图像中的人脸关键点,跟踪人脸关键点,输出每一帧的人脸关键点;
连续分析模块,用于根据所述人脸关键点采用连续分析法输出所述人脸视频序列对应的动作的状态参数;
鉴定模块,用于根据所述状态参数的连续性鉴别用户是否完成当前的指定动作,如果用户在规定的时间内依次完成所述动作序列集中的指定动作,则鉴定为人脸活体,否则,鉴定为非活体。
上述人脸活体的鉴别方法和装置,通过获取随机的动作序列集,提示用户在规定的时间内依次完成动作序列集中的指定动作,获取人脸视频序列,使用人脸检测方法检测人脸视频序列中的第一帧人脸图像,定位第一帧人脸图像中的人脸关键点,跟踪人脸关键点,输出每一帧的人脸关键点,根据人脸关键点采用连续分析法输出人脸视频序列对应的动作的状态参数,根据状态参数的连续性鉴别用户是否完成当前的指定动作,如果用户在规定的时间内依次完成动作序列集中的指定动作,则鉴定为人脸活体,否则,鉴定为非活体,根据状态参数的连续性鉴定用户是否完成当前的指定动作,相当于不仅要完成指定动作的端点状态,还要保证从一个端点状态到另一个端点状态之间的动作的连续性,假冒的视频往往完成动作时不能具有很好的连续性,大大提高了人脸活体鉴别的准确性。
附图说明
图1为一个实施例中人脸活体的鉴别方法的应用环境图;
图2为一个实施例中图1中服务器的内部结构图;
图3为一个实施例中图1中终端的内部结构图;
图4为一个实施例中人脸活体的鉴别方法的流程图;
图5为一个实施例中人脸活体的鉴别装置的结构框图;
图6为另一个实施例中人脸活体的鉴别装置的结构框图。
具体实施方式
图1为一个实施例中人脸活体的鉴别方法运行的应用环境图。如图1所示,该应用环境包括终端110、服务器120,其中终端110和服务器120通过网络进行通信。
终端110包括视频序列采集装置,可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端110可通过网络从服务器120接收随机的动作序列集或向服务器120发送视频序列等,服务器120可以响应终端110发送的鉴定请求等。
在一个实施例中,图1中的服务器120的内部结构如图2所示,该服务器120包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器120的存储介质存储有操作系统、数据库和第一人脸活体的鉴别装置,数据库用于存储数据,如用户的人脸视频,第一人脸活体的鉴别装置用于实现一种适用于服务器120的人脸活体的鉴别方法。该服务器120的处理器用于提供计算和控制能力,支撑整个服务器120的运行。该服务器120的内存为存储介质中的第一人脸活体的鉴别装置的运行提供环境。该服务器120的网络接口用于与外部的终端110通过网络连接通信,比如向终端110发送随机的动作序列集等。
在一个实施例中,图1中的终端110的内部结构如图3所示,该终端110包括通过系统总线连接的处理器、图形处理单元、存储介质、内存、网络接口、显示屏幕和输入设备。其中,终端110的存储介质存储有操作系统,还包括第二人脸活体的鉴别装置,该装置用于实现一种适用于终端的人脸活体的鉴别方法。该处理器用于提供计算和控制能力,支撑整个终端110的运行。终端110中的图形处理单元用于至少提供显示界面的绘制能力,内存为存储介质中的第 二人脸活体的鉴别装置的运行提供环境,网络接口用于与服务器120进行网络通信,如接收服务器120发送的随机的动作序列集等。显示屏幕用于显示应用界面等,如显示应用界面上的随机的动作序列对应的示范动作动画等,输入设备包括摄像头,用于采集用户的视频,接收用户输入的命令或数据等。对于带触摸屏的终端110,显示屏幕和输入设备可为触摸屏。
如图4所示,在一个实施例中,提供了一种人脸活体的鉴别方法,以应用于上述应用环境中的服务器或终端来举例说明,包括如下步骤:
步骤S210,获取随机的动作序列集,提示用户在规定的时间内依次完成所述动作序列集中的指定动作。
具体的,随机的动作序列集可由服务器或终端产生,如随机的动作序列集为“左右摇头,眨眼,张嘴,上下摇头”,并在终端显示随机的动作序列集,可通过文字、示范视频的形式显示提示信息,可逐个显示,提示用户在规定的时间内依次完成动作序列集中的指定动作,可提示用户面向摄像头等按要求完成指定动作,可以限定每个指定动作的完成时间。如果是由服务器产生,则将随机的动作序列集发送至终端。在一个实施例中,动作序列集中的指定动作需要完成预设数目个,可以不用全部完成。
步骤S220,获取人脸视频序列,使用人脸检测方法检测人脸视频序列中的第一帧人脸图像。
具体的,通过摄像头采集用户的人脸视频序列,获取人脸视频序列中的每帧人脸视频图像,按照时间的先后顺序使用人脸检测方法检测人脸视频图像的第一帧人脸图像。人脸检测方法可以根据需要自定义,如采用基于深度学习的人脸检测方法,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示,在人脸检测率和误检率上明显优于基于肤色或者统计学习的方法,并且适用于更加多变的图像。
步骤S230,定位第一帧人脸图像中的人脸关键点,跟踪人脸关键点,输出每一帧的人脸关键点。
具体的,可以精确定位面部的关键区域位置,人脸关键点包括眉毛、眼睛、鼻子、嘴巴,脸部轮廓等,支持一定程度遮挡以及多角度人脸。定位出第一帧 人脸关键点后,后续人脸图像帧进行人脸关键点跟踪,输出每一帧的人脸关键点,人脸关键点的跟踪可以采用不同的跟踪方法,如光流跟踪、TLD(Tracking-Learning-Detection)跟踪、利用配准前后帧关系的跟踪。
在一个实施例中,人脸检测方法为基于深度卷积神经网络的人脸检测方法,定位第一帧人脸图像中的人脸关键点采用基于深度卷积神经网络的定位方法。
具体的,卷积神经网络(Convolutional Neural Network,CNN)是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的下采样层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。基于深度卷积神经网络的人脸检测方法的输入是各个视频图像,检测出各个视频图像中的人脸图像,基于深度卷积神经网络的人脸关键点定位方法使用CNN网络进行训练,在检测出的人脸图像中定位人脸关键点,采用深度卷积神经网络来检测人脸和定位人脸关键点,能提高检测和定位的准确性。
步骤S240,根据人脸关键点采用连续分析法输出人脸视频序列对应的动作的状态参数。
具体的,状态参数根据动作的不同,表示不同人脸关键点的状态值,如指定动作是摇头,则状态参数是指人脸的三维角度值,如指定动作是眨眼,则状态参数是指睁眼幅度值,如指定动作是张嘴,则状态参数是张嘴幅度值。采用连续分析法是指得到的各个状态值不是离散数值,在动作连续的情况下得到的状态值应是连续的。根据指定动作的不同,可采用不同的连续分析法,如对于摇头,可使用姿态估计得到人脸的连续三维角度值,对于张嘴,可采用五官关键点的几何位置关系,或者回归器来计算出连续的睁眼幅度。采用连续分析法在判断各个动作时,如果是真人完成的,则各个动作的状态参数应是连续的数值,因为对于真人做各个动作时一定是一个以连续变化渐进完成的过程,如摇头时,人脸的角度一定是连续的角度变化过程。
步骤S250,根据状态参数的连续性鉴别用户是否完成当前的指定动作,如果用户在规定的时间内依次完成所述动作序列集中的指定动作,则鉴定为人脸 活体,否则,鉴定为非活体。
具体的,可根据各个状态参数的突变性检测动作是否是由真人完成,如果存在突变值,则说明动作不是由真人完成的。如采用照片假冒真人完成动作,照片上的动作往往是跳跃性的,不具有连续的变化过程。对于传统的鉴别方法往往采用分类器进行鉴别,而分类器输出的分类结果是离散的,不具有连续性,比如对于张嘴动作,采用2张照片,一张完全张开,一张完全闭合就可能假冒成功通过鉴定,而根据状态参数的连续性鉴定用户是否完成当前的指定动作,可提高鉴定的准确性。根据状态参数的连续性鉴定用户是否完成当前的指定动作,可预设各个动作完成成功需要达到的预设状态参数值,如设定一系列连续变化的多个状态参数值,各个状态参数的精确度可自行设定,如精确到小数位数为2位,只要人脸视频序列对应的动作的状态参数中缺少其中任何一个状态参数就鉴定为非活体,大大提高了人脸活体鉴别的准确性。并且只有用户在规定的时间内依次完成动作序列集中的指定动作,才鉴定为人脸活体,因为动作序列集中的指定动作都是随机的,且可自设定每个动作完成的次数等,进一步保证了鉴别的准确性。
本实施例中,通过获取随机的动作序列集,提示用户在规定的时间内依次完成动作序列集中的指定动作,获取人脸视频序列,使用人脸检测方法检测人脸视频序列中的第一帧人脸图像,定位第一帧人脸图像中的人脸关键点,跟踪人脸关键点,输出每一帧的人脸关键点,根据人脸关键点采用连续分析法输出人脸视频序列对应的动作的状态参数,根据状态参数的连续性鉴别用户是否完成当前的指定动作,如果用户在规定的时间内依次完成动作序列集中的指定动作,则鉴定为人脸活体,否则,鉴定为非活体,根据状态参数的连续性鉴定用户是否完成当前的指定动作,相当于不仅要完成指定动作的端点状态,还要保证从一个端点状态到另一个端点状态之间的动作的连续性,假冒的视频往往完成动作时不能具有很好的连续性,大大提高了人脸活体鉴别的准确性。
在一个实施例中,当前指定动作为摇头,步骤S240包括:根据每帧人脸图像的人脸关键点做姿态估计得到连续的人脸三维角度。
具体的,不同的人脸方向即为不同的人脸姿态,根据人脸关键点的位置和 五官的比例可分析得到人脸的三维角度作为状态参数。并且由于采用的是可得到连续性的人脸三维角度的姿态估计,得到的人脸三维角度是连续性数值,可为小数,可自定义精确到的小数点位数,以左右摇头为例,若人脸三维角度从左侧20度逐渐变化至右侧20度,则判定为鉴定通过,如果中间出现跳变值,或某些指定的状态值没有达到,则鉴定为非活体。
在一个实施例中,当前指定动作为眨眼或张嘴,步骤S240包括:包括:通过回归器输出人脸视频序列对应的动作的连续状态值,连续状态值与当前指定动作的张开幅度对应。
具体的,采用回归器输出的状态值是0~1之间的连续数值,可自定义精确到的小数点位数,如可采用SVR回归器(support vector regressor,支持向量回归)。对于每一帧图像,使用回归器输出一个状态值,该状态值作为状态参数,该值的大小与睁眼或张嘴的幅度成正比,通过幅度变化的连续性来判断整个动作的完成过程是连续的还是跳跃的。以张嘴为例,若嘴巴张开幅度对应的状态值从0至1连续变化,则判定为鉴定通过,如果中间出现跳变值,或某些指定的状态值没有达到,则为鉴定不通过。
在一个实施例中,步骤S250包括:判断任意相邻的两个状态状态的差值是否大于预设阈值,如果是,则当前的指定动作鉴定不通过,否则当前的指定动作鉴定通过。
具体的,相邻的两个状态参数是指根据时间先后顺序获得到的相邻2个人脸图像分析得到的状态参数。如果相邻的两个状态参数的差值大于预设阈值,则说明存在跳变值,动作的完成可能是假冒的,当前的指定动作鉴定不通过。只要有任意的两个状态参数的差值大于预设阈值,就可得到鉴定结果,快速方便。
在一个实施例中,方法还包括:通过分类器判断人脸视频序列中的人脸图像的类别,如果人脸图像为异常人脸,则当前的指定动作鉴定不通过。
具体的,有一些假冒身份者通过真人在扣洞人脸照后面完成动作来通过身份鉴定,通过剪去人脸图片的眼部和嘴部来制作一个纸片面具,真人在纸片面具后眨眼、张嘴、摇头便可通过传统的人脸活体鉴别。本实施例中,设置了异 常检测器,先通过训练生成的分类器判断人脸视频序列中的人脸图像的类别,是不是异常人脸,也就是上述情况下的假脸,如果是假脸,则当前的指定动作鉴定不通过。在使用分类器之前可收集正常人脸图片和纸片面具图片作为两个类进行训练,可以先提取特征再训练分类器,如SVM(Support Vector Machine,支持向量机)或者直接用图片训练CNN分类器,得到训练成功的分类器,用于后续对正常人脸和异常人脸分类,进行异常人脸的识别。通过异常人脸的识别,进一步提高了人脸活体鉴别的准确性。
在一个实施例中,如图5所示,提供了一种人脸活体的鉴别装置,包括:
提示模块310,用于获取随机的动作序列集,提示用户在规定的时间内依次完成动作序列集中的指定动作。
检测模块320,用于获取人脸视频序列,使用人脸检测方法检测人脸视频序列中的第一帧人脸图像。
定位跟踪人脸关键点模块330,用于定位第一帧人脸图像中的人脸关键点,跟踪人脸关键点,输出每一帧的人脸关键点。
连续分析模块340,用于根据人脸关键点采用连续分析法输出人脸视频序列对应的动作的状态参数。
鉴定模块350,用于根据状态参数的连续性鉴别用户是否完成当前的指定动作,如果用户在规定的时间内依次完成动作序列集中的指定动作,则鉴定为人脸活体,否则,鉴定为非活体。
在一个实施例中,人脸检测方法为基于深度卷积神经网络的人脸检测方法,定位第一帧人脸图像中的人脸关键点采用基于深度卷积神经网络的定位方法。
在一个实施例中,当前指定动作为摇头,连续分析模块340还用于根据每帧人脸图像的人脸关键点做姿态估计得到连续的人脸三维角度。
在一个实施例中,当前指定动作为眨眼或张嘴,连续分析模块340还用于通过回归器输出人脸视频序列对应的动作的连续状态值,连续状态值与当前指定动作的张开幅度对应。
在一个实施例中,鉴定模块350还用于判断任意相邻的两个状态参数的差 值是否大于预设阈值,如果是,则当前的指定动作鉴定不通过,否则当前的指定动作鉴定通过。
在一个实施例中,如图6所示,装置还包括:
异常检测模块360,用于通过分类器判断人脸视频序列中的人脸图像的类别,如果人脸图像为异常人脸,则当前的指定动作鉴定不通过。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。