人脸活体检测方法、电子设备和计算机程序产品与流程

文档序号:15387250发布日期:2018-09-08 00:43阅读:230来源:国知局

本发明涉及人脸识别技术领域,特别涉及一种人脸活体检测方法、电子设备和计算机程序产品。



背景技术:

人脸识别技术与其他生物特征识别技术相比,通过摄像头直接获取,可以非接触的方式完成识别过程,方便快捷。

随着人脸识别应用越来越广泛,人脸识别的一个核心安全问题逐渐显现,即人脸欺诈,比如可以通过人脸照片、人脸视频或者3d脸膜欺骗人脸识别系统。因此,活体检测在人脸识别应用中至关重要。



技术实现要素:

为了防止人脸欺诈,本发明实施例提供一种人脸活体检测方法、电子设备和计算机程序产品,主要用于人脸识别。

第一方面,本发明实施例提供了一种人脸活体检测方法,所述方法,包括:

连续采集用户的图像;

确定所述图像均为立体人脸图像后,对采集到的图像进行心跳检测;

若心跳检测通过,则确认所述用户通过人脸活体检测。

第二方面,本发明实施例提供了一种电子设备,所述电子设备包括:

存储器,一个或多个处理器;存储器与处理器通过通信总线相连;处理器被配置为执行存储器中的指令;所述存储介质中存储有用于执行上述第一方面所述方法中各个步骤的指令。

第三方面,本发明实施例提供了一种与包括显示器的电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行上述第一方面所述方法中各个步骤的指令。

有益效果如下:

本发明实施例中,提供了连续采集用户的图像,确定图像均为立体人脸图像后,对采集到的图像进行心跳检测,若心跳检测通过,则确认用户通过人脸活体检测,有效解决人脸欺诈问题,提高人脸识别的安全性。

附图说明

下面将参照附图描述本发明的具体实施例,其中:

图1为本发明实施例中的一种人脸活体检测方法流程示意图;

图2为本发明实施例中的另一种人脸活体检测方法流程示意图;

图3为本发明实施例中的另一种人脸活体检测方法流程示意图;

图4为本发明实施例中的一种电子设备的结构示意图。

具体实施方式

为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以互相结合。

随着人脸识别应用越来越广泛,人脸识别的一个核心安全问题逐渐显现,即人脸欺诈,比如可以通过人脸照片、人脸视频或者3d脸膜欺骗人脸识别系统。因此,活体检测在人脸识别应用中至关重要。

基于此,本发明实施例提供了一种人脸活体检测方法,连续采集用户的图像,确定图像均为立体人脸图像后,对采集到的图像进行心跳检测,若心跳检测通过,则确认用户通过人脸活体检测,有效解决人脸欺诈问题,提高人脸识别的安全性。

参见图1,本实施例提供的人脸活体检测方法连续采集图像后,进行心跳检测和3d(threedimensions,三维)立体形状验证,只有在心跳检测和3d立体形状验证均通过后才确定人脸活体检测通过。心跳检测不通过,或者3d立体形状验证不通过,则人脸活体检测也不通过。

对于心跳检测,由于视频成像时,心脏的收缩与舒张使人脸的血液容量周期性地变化,血液吸收和皮肤反射的光强也随之改变,进而导致视频中人脸皮肤的颜色发生周期性变化,这个变化可以通过图像处理技术检测出来,因此检测心跳可以区分活体人脸与人脸照片或者3d脸膜。但是该方法无法区分人脸视频,因为人脸视频可以检测出心跳变化。

然而,活体人脸与人脸照片或者人脸视频的区别是活体人脸有显著的3d特征,而人脸照片和人脸视频基本是一个平面,通过3d形状检测技术可以有效的区分活体人脸与人脸照片或者人脸视频。

因此,本发明将心跳验证和人脸3d形状结合起来,只有当二者同时通过验证时,才认为活体检测通过,为有效预防人脸照片、3d脸膜、人脸视频三种攻击。

另外,运行本发明提供的人脸活体检测方法的设备(下述简称:运行设备)可以位于图像采集设备(如摄像头)本地,也可以位于云端。

例如,运行设备上集成有摄像头,运行设备可以通过总线等方式与摄像头进行信息交互,且集成摄像头的运行设备置于人脸活体检测现场。在检测时,摄像头获取进行人脸活体检测的用户的图像信息,图像信息可基于运行设备与摄像头之间的信息交互传输至运行设备。运行设备通过执行本发明提供的人脸活体检测方法对该图像信息进行人脸活体检测,进而完成对该用户检测。

再例如,运行设备通过无线或者有线的传输方式与摄像头进行信息交互。其中,1)摄像头置于人脸活体检测现场,运行设备可以位于现场也可以位于云端。2)无线传输方式包括但不限于:通过wifi(wirelessfidelity,基于ieee802.11b标准的无线局域网)、蓝牙、zigbee(基于ieee802.15.4标准的低功耗个域网协议)、z-wave、nfc(nearfieldcommunication,近距离通讯)、2g网络、3g网络、4g网络、5g网络等通信方式。有线通信方式包括但不限于:光纤、同轴电缆、电话线、网线等通信方式。在检测时,摄像头获取进行人脸活体检测的用户的图像信息,图像信息可基于运行设备与摄像头之间的信息交互传输至运行设备。运行设备通过执行本发明提供的人脸活体检测方法对该图像信息进行人脸活体检测,进而完成对该用户检测。

参见图2,对本实施例提供的人脸活体检测方法进行详细说明。

201,连续采集用户的图像。

202,确定各张图像是否为立体人脸图像。

本步骤是对每张图像进行3d立体形状验证的过程。在进行本步骤的3d立体形状验证时,首先根据采集的一张图像获得图像的3d数据,然后判断是否存在非平面形状,如果成功则进行下一张图像的3d立体形状验证;一旦3d立体形状验证失败,则清空心跳验证的图像序列,重新开始整个心跳验证流程。

本步骤的3d立体形状验证不仅可以简单判断是否为平面,还可以判断是否为一个3d人脸形状。具体判断方式包括:1)获取图像的人脸3d数据;2)根据人脸3d数据,确定图像是否为立体人脸图像。

1)对于获取所述图像的人脸3d数据的过程,其实现方式包括但不限于如下两种:

第一种获取所述图像的人脸3d数据的方法:

针对任一张图像,

1.1,根据任一张图像的2d图像确定所述任一张图像是否存在人脸区域,若存在人脸区域则执行步骤1.2,若不存在人脸区域,则确认该用户不通过人脸活体检测。

1.2,检测人脸区域的3d数据,若检测到人脸区域的3d数据,则将检测到的人脸区域的3d数据作为人脸3d数据,若未检测到人脸区域的3d数据,则确认该用户不通过人脸活体检测。

此种方法并非直接对图像的所有3d数据进行分析,获取人脸3d数据,而是巧妙的先基于2d图像确定人脸区域,再针对性的获取人脸区域的3d数据。本申请所采用的此种方法可以大幅减少3d数据的分析量,提升分析速率,减少分析所耗资源。

除了上述方法之外,第二种获取所述图像的人脸3d数据的方法如下:

针对任一张图像,

2.1,获取整张图像的3d数据,在整张图像的3d数据中检测鼻尖点对应的3d数据,若检测到鼻尖点对应的3d数据,则执行步骤2.2,若未检测到鼻尖点对应的3d数据,则确认该用户不通过人脸活体检测。

2.2,以鼻尖点对应的3d数据为中心,第二阈值为半径进行球分割,将落入球内的3d数据作为人脸3d数据。

例如,在步骤2.1获取整张图像的3d数据,且检测到鼻尖点对应的3d数据后,基于鼻尖点进行人脸区域分割(如以鼻尖点为中心,以8cm为半径进行球分割,落在圆球内的三维点即为人脸对应的3d数据),将落入球内的3d数据作为人脸3d数据。

2)对于根据人脸3d数据,确定图像是否为立体人脸图像的过程,其实现方式包括但不限于如下两种:

第一种根据人脸3d数据,确定图像是否为立体人脸图像的方法:

3.1,将人脸3d数据输入人脸图像识别模型,得到识别结果。

该识别结果为任一张图像为立体人脸图像,或者,识别结果为任一张图像为非立体人脸图像。

其中,人脸图像识别模型基于深度卷积神经网络训练得到。

3.2,若任一张图像为立体人脸图像,则将任一张图像存入图像序列中;若任一张图像为非立体人脸图像,则确认该用户不通过人脸活体检测。

除了上述方法之外,第二种根据人脸3d数据,确定图像是否为立体人脸图像的方法如下:

4.1,对人脸3d数据进行姿态矫正处理,得到姿态校正后的人脸区域的3d数据。

其中,对人脸3d数据进行姿态矫正处理的具体方法包括但不限于:采用霍特林变换进行旋转和平移处理。

4.2,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像。

4.3,若任一张图像为立体人脸图像,则将任一张图像存入图像序列中;若任一张图像为非立体人脸图像,则确认该用户不通过人脸活体检测。

其中,步骤4.2的实现方式包括但不限于如下的3种。

第1种实现方式:

计算姿态校正后的3d数据与标准3d数据之间的相似度,若相似度大于第一阈值,则确定任一张图像为立体人脸图像,若相似度不大于第一阈值,则确定任一张图像为非立体人脸图像。

例如,利用矫正后的人脸区域的3d数据与一个标准的平均3d人脸数据进行比较,计算其相似度,比如直接计算其欧氏距离,距离越小,相似度越高,如果相似度超过设定的阈值,则认为是立体人脸图像;否则为非立体人脸图像。

第2种实现方式:

将姿态校正后的人脸3d数据中描述人脸的轮廓深度变化的维度作为分析维度;统计姿态校正后分析维度对应的数据的方差;若方差大于第四阈值,则确定任一张图像为立体人脸图像;若方差不大于第四阈值,则确定任一张图像为非立体人脸图像。

例如,若第三维可以描述人脸的轮廓深度的变化,则只要简单的统计这个维度数据的方差,如果大于某个设定的阈值,就认为其不是平面,就可以过滤掉人脸视频等入侵手段。

第3种实现方式:

将姿态校正后的3d数据输入人脸图像识别模型,得到识别结果。该识别结果为任一张图像为立体人脸图像,或者,识别结果为任一张图像为非立体人脸图像。

其中,人脸图像识别模型基于深度卷积神经网络训练得到。

另外,当步骤1.2、步骤2.1、步骤3.2、步骤4.3中确认该用户不通过人脸活体检测之后,还会终止流程,清空图像序列。

本步骤可以基于被动双目摄像头,也可以基于主动红外光结构光的双目摄像头,也可以基于主动红外结构光+单目摄像头,也可以是基于tof(timeofflight,时间飞行法)的3d摄像头实现。

前两种技术主要基于双目立体匹配技术,区别是一种基于自然纹理进行匹配,缺点是容易受到光照的影响,另一种则是基于主动投射的红外光斑进行匹配,鲁棒性较高。基于单目+主动结构光的3d成像技术也比较成熟,一种是基于三角测量方法。还有一种散斑测量技术,比如primsense技术,也就是第一代kinect采用的技术。

203,确定图像均为立体人脸图像后,对采集到的图像进行心跳检测。

本步骤是进行心跳验证的过程。

当图像序列的长度达到第三阈值之后,对采集到的图像进行心跳检测。

心跳检测可以基于rgb摄像头也可以基于红外摄像头进行。

假如基于rgb摄像头,获取图像序列中每一张图像预设区域(如脸颊区域)的红绿蓝rgb数据,形成rgb数据序列,根据rgb数据序列判断是否存在心跳。

例如,先进行人脸检测,检测人脸区域后,选择合适区域(如脸颊区域)的信号进行分析,然后对rgb三个通道的信号进行连续统计和分析,判断心跳是否存在。

除此之外还可以基于视频放大技术进行心跳检测。

204,若心跳检测通过,则确认用户通过人脸活体检测。

至此,在连续采集用户的图像之后,先确定各张图像是否为立体人脸图像,再进行心跳检测,完成人脸活体检测。

其中,确定各张图像是否为立体人脸图像的方法有2种,第1种为先确定是人脸图像,再确定该人脸图像是立体的。第2种为先确定是立体图像,再确定该立体图像是人脸。对于第2种,其实现流程可参见图3,连续采集用户的图像后,首先对每一张图像进行立体形状检测,若立体形状检测失败,则清空图像序列重新开始整个人脸活体检测流程,立体形状检测成功后,再进行人脸检测。若人脸检测失败,则清空图像序列重新开始整个人脸活体检测流程,人脸检测成功后,将图像添加到图像序列。当序列满足一定的长度时,对序列图像进行统计分析,检测心跳是否存在,为保证算法的稳定性可以选组合适的区域进行分析,比如脸颊区域。一旦心跳检测失败,则清空这个图像序列,重新开始整个心跳验证流程。

有益效果:

本发明实施例连续采集用户的图像,确定图像均为立体人脸图像后,对采集到的图像进行心跳检测,若心跳检测通过,则确认用户通过人脸活体检测,有效解决人脸欺诈问题,提高人脸识别的安全性。

基于同一发明构思,本发明实施例还提供了一种电子设备,参见图4,电子设备包括:

存储器401,一个或多个处理器402;以及收发组件403,存储器、处理器以及收发组件403通过通信总线(本发明实施例中是以通信总线为i/o总线进行的说明)相连;所述存储介质中存储有用于执行下述各个步骤的指令:

连续采集用户的图像;

确定图像均为立体人脸图像后,对采集到的图像进行心跳检测;

若心跳检测通过,则确认用户通过人脸活体检测。

可选地,连续采集用户的图像之后,还包括:

获取图像的人脸3d数据;

根据人脸3d数据,确定图像是否为立体人脸图像。

可选地,获取图像的人脸3d数据,包括如下步骤:

针对任一张图像,根据任一张图像的二维2d图像确定任一张图像是否存在人脸区域;

若存在人脸区域,则检测人脸区域的3d数据;

若检测到人脸区域的3d数据,则将检测到的人脸区域的3d数据作为人脸3d数据;

若不存在人脸区域,或者,未检测到人脸区域的3d数据,则确认用户不通过人脸活体检测;

或者,获取图像的人脸3d数据,包括如下步骤:

针对任一张图像,获取整张图像的3d数据,在整张图像的3d数据中检测鼻尖点对应的3d数据;

若检测到鼻尖点对应的3d数据,则以鼻尖点对应的3d数据为中心,第二阈值为半径进行球分割,将落入球内的3d数据作为人脸3d数据;

若未检测到鼻尖点对应的3d数据,则确认用户不通过人脸活体检测。

可选地,根据人脸3d数据,确定图像是否为立体人脸图像,包括:

针对任一张图像,对人脸3d数据进行姿态矫正处理,得到姿态校正后的人脸3d数据;

根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像;

若任一张图像为立体人脸图像,则将任一张图像存入图像序列中;

若任一张图像为非立体人脸图像,则确认用户不通过人脸活体检测。

可选地,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像,包括如下步骤:

计算姿态校正后的3d数据与标准3d数据之间的相似度;

若相似度大于第一阈值,则确定任一张图像为立体人脸图像;

若相似度不大于第一阈值,则确定任一张图像为非立体人脸图像;

或者,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像,包括如下步骤:

将姿态校正后的人脸3d数据中描述人脸的轮廓深度变化的维度作为分析维度;

统计姿态校正后分析维度对应的数据的方差;

若方差大于第四阈值,则确定任一张图像为立体人脸图像;

若方差不大于第四阈值,则确定任一张图像为非立体人脸图像;

或者,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像,包括如下步骤:

将姿态校正后的3d数据输入人脸图像识别模型,得到识别结果;

识别结果为任一张图像为立体人脸图像,或者,识别结果为任一张图像为非立体人脸图像;

人脸图像识别模型基于深度卷积神经网络训练得到。

可选地,根据人脸3d数据,确定图像是否为立体人脸图像,包括:

将人脸3d数据输入人脸图像识别模型,得到识别结果,识别结果为任一张图像为立体人脸图像,或者,识别结果为任一张图像为非立体人脸图像;

若任一张图像为立体人脸图像,则将任一张图像存入图像序列中;

若任一张图像为非立体人脸图像,则确认用户不通过人脸活体检测;

人脸图像识别模型基于深度卷积神经网络训练得到。

可选地,确认用户不通过人脸活体检测之后,还包括:

终止流程,清空图像序列。

可选地,对采集到的图像进行心跳检测之前,还包括:

确定图像序列的长度达到第三阈值;

对采集到的图像进行心跳检测,包括:

获取图像序列中每一张图像脸颊区域的红绿蓝rgb数据,形成rgb数据序列;

根据rgb数据序列判断是否存在心跳。

不难理解的是,在具体实施时,就为了实现本发明的基本目的而言,上述的并不必然的需要包含上述的收发组件403。

有益效果:

本发明实施例连续采集用户的图像,确定图像均为立体人脸图像后,对采集到的图像进行心跳检测,若心跳检测通过,则确认用户通过人脸活体检测,有效解决人脸欺诈问题,提高人脸识别的安全性。

再一方面,本发明实施例还提供了一种与包括显示器的电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行下述各个步骤的指令:

连续采集用户的图像;

确定图像均为立体人脸图像后,对采集到的图像进行心跳检测;

若心跳检测通过,则确认用户通过人脸活体检测。

可选地,连续采集用户的图像之后,还包括:

获取图像的人脸3d数据;

根据人脸3d数据,确定图像是否为立体人脸图像。

可选地,获取图像的人脸3d数据,包括如下步骤:

针对任一张图像,根据任一张图像的二维2d图像确定任一张图像是否存在人脸区域;

若存在人脸区域,则检测人脸区域的3d数据;

若检测到人脸区域的3d数据,则将检测到的人脸区域的3d数据作为人脸3d数据;

若不存在人脸区域,或者,未检测到人脸区域的3d数据,则确认用户不通过人脸活体检测;

或者,获取图像的人脸3d数据,包括如下步骤:

针对任一张图像,获取整张图像的3d数据,在整张图像的3d数据中检测鼻尖点对应的3d数据;

若检测到鼻尖点对应的3d数据,则以鼻尖点对应的3d数据为中心,第二阈值为半径进行球分割,将落入球内的3d数据作为人脸3d数据;

若未检测到鼻尖点对应的3d数据,则确认用户不通过人脸活体检测。

可选地,根据人脸3d数据,确定图像是否为立体人脸图像,包括:

针对任一张图像,对人脸3d数据进行姿态矫正处理,得到姿态校正后的人脸3d数据;

根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像;

若任一张图像为立体人脸图像,则将任一张图像存入图像序列中;

若任一张图像为非立体人脸图像,则确认用户不通过人脸活体检测。

可选地,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像,包括如下步骤:

计算姿态校正后的3d数据与标准3d数据之间的相似度;

若相似度大于第一阈值,则确定任一张图像为立体人脸图像;

若相似度不大于第一阈值,则确定任一张图像为非立体人脸图像;

或者,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像,包括如下步骤:

将姿态校正后的人脸3d数据中描述人脸的轮廓深度变化的维度作为分析维度;

统计姿态校正后分析维度对应的数据的方差;

若方差大于第四阈值,则确定任一张图像为立体人脸图像;

若方差不大于第四阈值,则确定任一张图像为非立体人脸图像;

或者,根据姿态校正后的人脸3d数据确定任一张图像是否为立体人脸图像,包括如下步骤:

将姿态校正后的3d数据输入人脸图像识别模型,得到识别结果;

识别结果为任一张图像为立体人脸图像,或者,识别结果为任一张图像为非立体人脸图像;

人脸图像识别模型基于深度卷积神经网络训练得到。

可选地,根据人脸3d数据,确定图像是否为立体人脸图像,包括:

将人脸3d数据输入人脸图像识别模型,得到识别结果,识别结果为任一张图像为立体人脸图像,或者,识别结果为任一张图像为非立体人脸图像;

若任一张图像为立体人脸图像,则将任一张图像存入图像序列中;

若任一张图像为非立体人脸图像,则确认用户不通过人脸活体检测;

人脸图像识别模型基于深度卷积神经网络训练得到。

可选地,确认用户不通过人脸活体检测之后,还包括:

终止流程,清空图像序列。

可选地,对采集到的图像进行心跳检测之前,还包括:

确定图像序列的长度达到第三阈值;

对采集到的图像进行心跳检测,包括:

获取图像序列中每一张图像脸颊区域的红绿蓝rgb数据,形成rgb数据序列;

根据rgb数据序列判断是否存在心跳。

有益效果:

本发明实施例连续采集用户的图像,确定图像均为立体人脸图像后,对采集到的图像进行心跳检测,若心跳检测通过,则确认用户通过人脸活体检测,有效解决人脸欺诈问题,提高人脸识别的安全性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1