本申请涉及人脸检测技术领域,特别是涉及一种人脸活体检测方法、装置、电子设备及计算机可读存储介质。
背景技术:
为了提高人脸识别技术在实际应用中的安全性,对待识别人脸图像进行活体检测,以对抗非真人的照片或视频对人脸识别应用进行攻击的重要性日益凸显。现有技术中,基于双目可见光摄像头的人脸识别技术进行人脸活体检测时,通常需要对人脸的三维信息进行恢复,速度慢,精度差;而基于可见光摄像头和红外光摄像头的人脸识别技术进行人脸活体检测时,通常根据红外光摄像头采集的真人人脸图像与可见光摄像头采集的真人人脸图像的差异进行人脸活体检测。现有技术中的这种人脸活体检测方法,需要处理的人脸图像数据量大,人脸检测算法复杂度高,计算处理设备执行人脸检测时间长。
可见,现有技术中的人脸活体检测的方法仍需要改进。
技术实现要素:
本申请提供一种人脸活体检测方法,有助于提升人脸活体检测的速度和准确度。
为了解决上述问题,第一方面,本申请实施例提供了一种人脸活体检测方法,包括:
获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像;
分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点,其中,预设人脸关键点包括:鼻尖点;
根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域;
根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云;
根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸;
响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测。
第二方面,本申请实施例提供了一种人脸活体检测装置,包括:
人脸图像获取模块,用于获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像;
人脸关键点确定模块,用于分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点,其中,预设人脸关键点包括:鼻尖点;
鼻子区域确定模块,用于根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域;
鼻子轮廓三维点云确定模块,用于根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云;
预判断模块,用于根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸;
活体检测模块,用于响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测。
第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的人脸活体检测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的人脸活体检测方法的步骤。
本申请实施例公开的人脸活体检测方法,通过获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像;分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点,其中,预设人脸关键点包括:鼻尖点;根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域;根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云;根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸;响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测,有助于提升人脸活体检测的速度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的人脸活体检测方法流程图;
图2是本申请实施例一的鼻子轮廓点分布示意图;
图3是本申请实施例一的预设第二人脸活体检测模型结构示意图;
图4是本申请实施例二的人脸活体检测装置结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本申请实施例公开的一种人脸活体检测方法,如图1所示,所述方法包括步骤110至步骤160。
步骤110,获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像。
本申请实施例中所述的人脸活体检测方法适用于具有至少两个人脸图像采集装置的电子设备,例如,具有两个摄像头的人脸识别设备;或者,适用于具有两个人脸图像采集装置的系统,例如,对于同一场景设置有两个摄像头的监控系统。本申请的一些实施例中,所述不同图像采集装置的竖直方向和水平方向相对位置保持不变,水平方向保持一定距离(例如通常为大于60毫米的间距)。优选的,本申请实施例中所述的人脸活体检测方法适用于带有双目同步摄像头的电子设备,例如,具有双目同步摄像头的人脸识别装置;或者,适用于具有双目同步人脸图像采集装置的系统,例如,具有双目同步摄像头的闸机系统。
本申请实施例中,所述的目标人脸可以为活体人脸、照片中的人脸或视频图像中的人脸。本申请实施例中,每个所述人脸图像采集装置针对同一物体(如人脸、照片或视频图像等)同步采集的包含人脸影像的人脸图像构成人脸图像对。当然,上述人脸图像采集装置可以都为可见光人脸图像采集装置,也可以都为红外光人脸图像采集装置,或者为可见光人脸图像采集装置和红外光人脸图像采集装置的组合,本申请对此不做限定。
由于所述人脸图像对包含的每幅人脸图像分别通过不同的人脸图像采集装置(如摄像头),在同一时刻从不同位置进行采集,因此,在进行人脸检测或人脸识别之前,首先需要对所述不同图像采集装置进行校准和标定,得到所述不同图像采集装置的标定矩阵。
对所述不同图像采集装置进行校准和标定的具体实施方式参见现有技术,例如可以采用张正友棋盘格标定法获得的摄像头内参和外参矩阵,本申请实施例中不再赘述。
本申请的一些实施例中,由于所述至少两幅人脸图像是通过不同的图像采集装置采集的,因此需要对所述不同图像采集装置采集的两幅人脸图像使用所述不同图像采集装置的标定矩阵进行矫正,使得所述不同图像采集装置采集的两幅人脸图像在水平方向保持一致。
本申请实施例中,以所述不同图像采集装置为电子设备的双目摄像头为例,双目摄像头的标定矩阵是摄像头出厂时校准确定的。本申请的一些实施例中,在通过电子设备的双目摄像头同时分别采集目标人脸的两幅人脸图像之后,例如,分别表示为图像a和图像b,进一步使用所述双目摄像头的标定矩阵对图像a和图像b进行矫正,分别得到图像a’和图像b’。
步骤120,分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点。
接下来,采用现有技术中的人脸定位方法分别对上述步骤采集的每幅人脸图像进行人脸关键点检测,以确定上述步骤采集的每幅人脸图像中的人脸定位框和预设人脸关键点。
不同的人脸定位方法定位得到的人脸关键点的数量和属性略有不同。本申请具体实施时,预设人脸关键点至少包括:鼻尖点,左眼点、右眼点、左嘴角点、右嘴角点。
通过采用人脸定位方法分别对上述步骤采集并矫正后的每幅人脸图像(如图像a’和图像b’)进行人脸关键点检测,确定出至少包括:鼻尖点,左眼点、右眼点、左嘴角点、右嘴角点在内的人脸关键点之后,根据确定的上述人脸关键点的位置,可以进一步确定人脸定位框。
本申请的另一些实施例中,还可以根据检测到的人脸轮廓点确定人脸定位框。
本申请实施例中确定的人脸定位框中通常包括部分或全部人脸关键点。例如,所述人脸定位框中包括双眼、嘴巴、鼻子对应的人脸关键点。
本申请的一些实施例中,在对图像a’和图像b’进行人脸定位时,可以分别得到每张图像中面积最大、置信度最高的人脸定位框位置信息,同时得到人脸的双眼、鼻尖、两嘴角五个关键点信息。
本申请的一些实施例中,分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点之后,还包括:响应于所述至少两幅人脸图像中的任意一幅人脸图像中确定人脸定位框失败,则结束人脸活体检测流程。例如,若上述图像a’或图像b’中任意一幅图像中没有定位到人脸定位框,则结束人脸活体检测流程。
本申请的一些实施例中,分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点之后,还包括:响应于所述至少两幅人脸图像中的任意一幅人脸图像中确定人脸定位框成功,对所述至少两幅人脸图像中各自的确定的人脸定位框进行相似性比较,若进行相似性比较的结果指示所述至少两幅人脸图像中确定的人脸定位框不相似,则结束人脸活体检测流程;否则,执行后续步骤。例如,若上述图像a’或图像b’中的人脸定位框尺寸差异过大,或者,形状不同,则可以确定两幅人脸图像中的人脸定位框不相似,则结束人脸活体检测流程。
步骤130,根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域。
本申请的一些实施例中,可以在每幅所述人脸图像(上述图像a’或图像b’)中,以鼻尖点为中心,确定预设大小的矩形区域,作为鼻子区域。本申请的另一些实施例中,还可以根据鼻尖点,采用其他方法在所述人脸图像中确定一矩形区域,并将确定的矩形区域作为鼻子区域。
本申请的一些实施例中,确定的鼻子区域的图像中包括鼻子图像。
步骤140,根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云。
本申请的一些实施例中,根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云,包括:通过预先训练的鼻子轮廓点定位网络模型,对每幅所述人脸图像中的鼻子区域分别进行定位处理,确定每幅所述人脸图像中的鼻子区域各自的预设鼻子轮廓点,其中,所述鼻子轮廓点包括:鼻翼点、鼻尖点和鼻梁点;根据所述至少两幅人脸图像中鼻子区域各自的预设鼻子轮廓点数据,确定对应所述目标人脸的鼻子轮廓三维稀疏点云;对所述鼻子轮廓三维稀疏点云中,对应所述鼻翼点中相临近的鼻子轮廓点的点云数据、对应所述鼻梁点和所述鼻尖点以及位于鼻子中线的所述鼻翼点的点云数据、对应各所述鼻翼点和所述鼻尖点的点云数据进行线性插值,得到鼻子轮廓三维点云。
在通过预先训练的鼻子轮廓点定位网络模型,对每幅所述人脸图像中的鼻子区域分别进行定位处理,确定每幅所述人脸图像中的鼻子区域各自的预设鼻子轮廓点之前,首先需要训练鼻子轮廓点定位网络模型。
本申请的一些实施例中,所述鼻子轮廓点定位网络模型是通过以下方法训练得到的:根据预设人脸关键点数据集中各人脸图像样本的鼻尖点,分别确定每幅所述人脸图像样本中的鼻子区域;对于每幅所述人脸图像样本,以所述人脸图像样本中的鼻子区域的图像作为所述人脸图像样本对应的样本数据,以所述人脸图像样本的人脸关键点中预设鼻子轮廓点作为所述人脸图像样本对应的样本标签,构建所述人脸图像样本对应的训练样本;基于每幅所述人脸图像样本对应的所述训练样本,训练所述鼻子轮廓点定位网络模型。其中,预设人脸关键点数据集可以为现有技术中公用的用于训练人脸定位模型或算法的数据集。所述数据集中的每条数据包括确定尺寸的人脸图像,以及该人脸图像中的人脸关键点像素位置信息。其中,所述人脸关键点,包括:鼻子轮廓点。
本申请的一些实施例中,如图2所示,所述鼻子轮廓点包括:鼻翼点(如图2中标号0至8)、鼻尖点(如图2中标号9)和鼻梁点(如图2中标号10)。
在训练鼻子轮廓点定位网络模型时,可以将所述数据集中的每条数据包括的人脸图像作为样本数据,以每条数据中的人脸关键点中各鼻子轮廓点的像素位置信息作为该条数据的样本标签,以该条数据的样本数据和样本标签构建该条数据对应的用于训练所述鼻子轮廓点定位网络模型的一条训练样本。按照此方法,可以构建若干条训练样本。之后,基于构建的所述若干条训练样本训练所述鼻子轮廓点定位网络模型。例如,通过所述鼻子轮廓点定位网络模型对每条所述训练样本中的样本图像进行特征抽象和映射后,输出每条所述训练样本对应的鼻子轮廓点的预估值;之后,根据各训练样本对应的鼻子轮廓点的预估值和该条训练样本对应的鼻子轮廓点真实值(即该条训练样本的样本标签)的差值计算模型误差,并以最小的所述模型误差为目标优化所述鼻子轮廓点定位网络模型的网络参数,直至所述模型误差满足预设条件,结束训练过程。
在实际应用过程中,对于采集的人脸图像,可以截取鼻子区域的图像,之后将截取的图像输入至训练得到的所述鼻子轮廓点定位网络模型中,所述鼻子轮廓点定位网络模型将输出鼻子轮廓点的像素位置坐标。
之后,根据所述至少两幅人脸图像(如图像a’和图像b’)中鼻子区域确定的各自的鼻子轮廓点的像素坐标,使用所述双目摄像头的标定矩阵计算上述各鼻子轮廓点的深度信息,得到对应所述目标人脸的鼻子轮廓三维稀疏点云。根据双目摄像头采集的两幅图像以及所述双目摄像头的标定矩阵计算所述两幅图像中相应像素点的深度信息的具体实施方式参见现有技术,本申请实施例中不再赘述。根据各像素点的上述像素位置坐标和计算得到的深度信息,即可确定由各像素点组成的三维点云。
由于前述步骤确定的是稀疏的鼻子轮廓点(如图2中的11个鼻子轮廓点)不利于准确进行平面鼻尖或立体鼻尖的检测,因此,本申请的一些实施例中,通过对所述鼻子轮廓三维稀疏点云中,对应所述鼻翼点中相临近的鼻子轮廓点的点云数据、对应所述鼻梁点和所述鼻尖点以及位于鼻子中线的所述鼻翼点的点云数据、对应各所述鼻翼点和所述鼻尖点的点云数据进行线性插值,得到鼻子轮廓三维点云。即需要对鼻子区域的稀疏点云通过插值方式进行点云重建,得到稠密点云。其中,对所述鼻子轮廓三维稀疏点云中,对应所述鼻翼点中相临近的鼻子轮廓点的点云数据、对应所述鼻梁点和所述鼻尖点以及位于鼻子中线的所述鼻翼点的点云数据、对应各所述鼻翼点和所述鼻尖点的点云数据进行线性插值,得到鼻子轮廓三维点云的点云重建过程,包括:以下几种插值情况。第一种,对所述鼻子轮廓三维稀疏点云中,对应临近鼻翼点之间的连线所经过的点的点云数据进行线性插值,例如,对于图2中的鼻子轮廓点,插值标号0-1、标号1-2、标号2-3、…、标号7-8之间点连线经过的像素点。第二种,对所述鼻子轮廓三维稀疏点云中,对应所述鼻梁点和所述鼻尖点以及位于鼻子中线的所述鼻翼点的点云数据进行线性插值,例如,对于图2中的鼻子轮廓点,插值标号4-9,标号9-10之间连线经过的像素点。第三种,对所述鼻子轮廓三维稀疏点云中,对应各所述鼻翼点和所述鼻尖点的点云数据进行线性插值,例如,对于图2中的鼻子轮廓点,插值标号0-9、标号1-9、标号2-9、…、标号8-9之间的连线经过的像素点。最后,计算如图2中的标号0-10,标号8-10连线经过的像素点(即插值的各像素点)的深度值,例如,可以根据插值时依据的鼻子轮廓点的深度值计算插入的像素点的深度值。在对鼻子轮廓点的点云数据进行插值并计算插值点的深度值之后,可以将鼻子区域中没有深度值的像素点的深度坐标记为0。然后,将通过上述插值方法对鼻子区域的稀疏点云进行重建后得到的点云放缩到如64×64大小,得到鼻子轮廓三维点云。
步骤150,根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸。
在确定了目标人脸的鼻子轮廓三维点云之后,可以根据所述鼻子轮廓三维点云中的深度信息预判所述目标人脸是否为活体人脸。
本申请的一些实施例中,根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸,包括:通过预设第一卷积神经网络模型,基于所述鼻子轮廓三维点云的点云数据深度信息进行分类预测,预判所述目标人脸是否为活体人脸。例如,将鼻子轮廓三维点云的点云数据的深度信息作为预设第一卷积神经网络模型的特征提取通道的输入数值,使用分类网络检测点云数据是否为带有三维信息的鼻尖或者仅带有平面信息的鼻尖。
本申请的一些实施例中,通过预设第一卷积神经网络模型,基于所述鼻子轮廓三维点云的点云数据深度信息进行分类预测,预判所述目标人脸是否为活体人脸,包括:通过预设第一卷积神经网络模型的特征提取通道对所述鼻子轮廓三维点云的深度值进行分类映射,并基于分类映射结果预判所述目标人脸是否为活体人脸;其中,对所述鼻子轮廓三维点云的深度值进行分类映射包括:基于最大和最小的所述深度值,对所述鼻子轮廓三维点云的深度值进行归一化,得到鼻尖点的归一化深度值;根据所述鼻尖点的归一化深度值预判所述目标人脸是否为活体人脸。例如,以所述鼻子轮廓三维点云的点云数据深度信息作为预设第一卷积神经网络模型的特征提取通道的输入数值(即将鼻子轮廓三维点云看做为单通道矩阵,三维点云x、y坐标即为该单通道矩阵的行列,深度信息为对应行列的数值),通过预设第一卷积神经网络模型的特征提取通道对输入的深度值基于最大值和最小值之差进行归一化,之后,根据点云数据中每个像素点的归一化后的深度值进一步进行分类映射,得到输入的点云数据中包括三维鼻尖点的概率和包括平面鼻尖点的概率。当得到的点云数据中包括三维鼻尖点的概率满足预设概率阈值时,可以初步判定所述目标人脸为活体人脸,否则,认为所述目标人脸为非活体人脸。
本申请的一些实施例中,所述预设第一卷积神经网络模型是通过以下方法训练得到的:获取由不同图像采集装置针对每个活体人脸同步采集的至少两幅样本人脸图像,以及由所述不同图像采集装置针对每个非活体人脸同步采集的至少两幅样本人脸图像;分别确定每幅所述样本人脸图像中各自的预设人脸关键点;根据每幅所述样本人脸图像中所述鼻尖点,分别确定每幅所述样本人脸图像中的鼻子区域;根据每幅所述样本人脸图像中的鼻子区域确定对应每个所述活体人脸或每个所述非活体人脸的鼻子轮廓三维点云;对于对应每个所述活体人脸或每个所述非活体人脸的鼻子轮廓三维点云,分别通过所述预设第一卷积神经网络模型的特征提取通道对所述鼻子轮廓三维点云的深度值进行分类映射,学习所述预设第一卷积神经网络模型的最优参数,以完成所述预设第一卷积神经网络模型的训练。
例如,可以采用如前述采集目标人脸的方法采集活体人脸或者非活体人脸(如照片、头模、视频)的人脸图像作为一组样本人脸图像;之后,通过如前述步骤所述的人脸关键点检测方法对采集每组样本人脸图像分别进行人脸定位,确定每幅样本人脸图像中的人脸定位框,以及所述预设人脸关键点。其中,所述预设人脸关键点包括鼻尖点。然后,根据每幅所述样本人脸图像中所述鼻尖点,采用如前所述的鼻尖点确定鼻子区域的方法,分别确定每幅所述样本人脸图像中的鼻子区域。接下来,采用如前所述的确定鼻子轮廓三维点云的方法,根据每组所述样本人脸图像中各样本人脸图像的鼻子区域确定该组样本人脸图像所属活体人脸或非活体人脸的鼻子轮廓三维点云。根据一组样本人脸图像的鼻子区域确定鼻子轮廓三维点云的具体实施方式,参见前述步骤中确定鼻子轮廓三维点云的具体实施方式,此处不再赘述。按照此方法,可以确定每组样本人脸图像所属活体人脸或非活体人脸的鼻子轮廓三维点云,从而得到若干条活体人脸的鼻子区域图像与鼻子轮廓三维点云的对应数据,以及若干条非活体人脸的鼻子区域图像与鼻子轮廓三维点云的对应数据。
接下来,根据得到的若干条活体人脸的鼻子区域图像与鼻子轮廓三维点云的所述对应数据,以及若干条非活体人脸的鼻子区域图像与鼻子轮廓三维点云的所述对应数据,构建每条鼻子区域图像与鼻子轮廓三维点云的对应数据,构建训练样本,其中,鼻子轮廓三维点云数据作为样本数据,相应的鼻子区域所述人脸图像类别作为样本标签。之后,基于构建的训练样本训练预设第一卷积神经网络模型。
在训练预设第一卷积神经网络模型的过程中,所述预设第一卷积神经网络模型通过对训练样本的样本数据中的深度值(即点云数据的深度信息)与样本标签中的真实人脸图像类别的映射关系进行学习,得到最优网络参数,完成所述预设第一卷积神经网络模型的训练过程。
步骤160,响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测。
本申请的一些实施例中,根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸的步骤之后,还包括:响应于所述目标人脸为非活体人脸,结束活体人脸检测流程,输出指示所述目标人脸为非活体人脸的检测结果。具体的,若根据所述鼻子轮廓三维点云预判所述目标人脸为非活体人脸,则不再执行后续的人脸活体检测步骤,提升了活体人脸检测效率。
通过鼻子轮廓三维点云可以检测出使用照片或者手机屏幕等平面信息较强的攻击人脸图像,但是对于照片复杂弯折、三维头模、仿真面具或者是将照片鼻子抠掉真人佩戴的面具的攻击人脸,通过鼻子轮廓三维点云无法进行准确检测。为了防止此类三维的攻击人脸,进一步根据平面信息(如纹理信息)进行人脸活体检测。
本申请的一些实施例中,所述根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,包括:确定至少一幅所述人脸图像作为待识别人脸图像;将所述待识别人脸图像中的所述人脸定位框向四周分别扩展不同预设尺寸,确定扩展每个所述预设尺寸得到的相应人脸区域图像。本申请具体实施时,可以选择采集的至少一幅所述人脸图像中任意一幅人脸图像作为待识别人脸图像,用于基于图像纹理信息等二维信息进行活体检测。例如,可以选择前述步骤中的图像a’或图像b’作为待识别人脸图像。如选择图像b’作为待识别人脸图像为例,接下来,将图像b’中的人脸定位框向四周分别扩展不同预设尺寸,确定扩展每个所述预设尺寸得到的相应人脸区域图像,例如,确定扩展1倍后确定的人脸区域f1、扩展1.5倍后确定的人脸区域f2,以及,扩展2倍后确定的人脸区域f3。
对应扩展后确定的每个人脸区域(如人脸区域f1、f2和f3),以及,人脸定位框对应的人脸区域f0,分别从待识别人脸图像中截取相应人脸区域(如人脸区域f0、f1、f2和f3)的图像,可以得到多个(如4个)尺度的人脸区域图像。
接下来,基于得到的多个(如4个)尺度的人脸区域图像的平面图像信息进行活体人脸检测。
本申请的一些实施例中,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测,包括:将所述多个人脸区域图像分别归一化到预设尺寸;将归一化后得到的人脸图像并行输入至预设第二卷积神经网络模型的相应网络分支,通过所述相应网络分支对输入的人脸图像的平面图像信息分别进行特征提取,确定相应的特征编码;将每个所述网络分支确定的所述特征编码进行拼接后得到的拼接向量,输入至所述第二卷积神经网络模型的主干卷积神经网络;通过所述主干卷积神经网络对所述拼接向量进行分类映射,输出指示所述多个人脸区域图像属于预设人脸类别的概率;根据所述概率,确定人脸活体检测结果。
本申请的一些实施例中,所述预设第二卷积神经网络模型可以采用如图3所示的多层卷积神经网络结构。如图3所示,所述预设第二卷积神经网络模型包括:并行设置的多个网络分支310,以及,融合层320、主干卷积神经网络330。其中,所述网络分支310基于卷积神经网络构建,包括:由输入至输出依次设置的卷积层3101、池化层3102和卷积层3103;所述主干卷积神经网络330基于卷积神经网络构建,包括:由输入至输出依次设置的卷积层3301、池化层3302、卷积层3303、卷积层3304和全局平均池化层3305。
对于前述人脸区域f0、f1、f2和f3对应的人脸图像,首先将这四幅人脸图像归一化到预设尺寸,之后,将归一化得到的图像分别输入至各所述网络分支310,通过相应网络分支310的对输入的图像的平面图像信息(如纹理信息)分别进行特征提取,确定相应的特征编码向量e0、e1、e2和e3。之后,通过融合层320对特征编码向量e0、e1、e2和e3进行拼接,得到一拼接向量。然后,通过主干卷积神经网络330对融合层320输出的拼接向量进行特征映射和拉平处理,将特征编码映射为一个二维向量。所述二维向量用于表示输入图像为活体人脸和非活体人脸各自的概率。进一步的,根据所述对应人脸活体类别的概率,即可以确定输入图像是否为活体人脸的检测结果。
通常,攻击人脸(如照片、视频)的周围会有背景信息(如照片攻击会有照片背景,手机屏幕中的人脸图像攻击会有边框等),通过输入由多个不同尺度人脸区域归一化得到的多幅人脸图像进行分类识别,更容易识别出攻击人脸。
本申请的一些实施例中,所述预设第二卷积神经网络模型是通过以下方法训练得到的:根据活体人脸图像的人脸区域图像构建正样本,以及,根据非活体人脸图像的人脸区域图像构建负样本,得到用于训练所述预设第二卷积神经网络模型的若干训练样本;基于用于训练所述预设第二卷积神经网络模型的若干训练样本训练分离卷积神经网络,得到所述预设第二卷积神经网络模型。下面具体说明所述预设第二卷积神经网络模型的训练过程。
首先,参照步骤110的方式获取由不同图像采集装置针对活体人脸同步采集的至少两幅人脸图像,作为活体人脸图像,并参照步骤110的方式获取由所述不同图像采集装置针对非活体人脸同步采集的至少两幅人脸图像,作为非活体人脸图像,按照此方法采集若干活体人脸图像和非活体人脸图像。之后,分别确定每幅所述人脸图像中各自的人脸定位框。然后,根据每幅人脸图像中各自的人脸定位框按照预设尺度进行扩展,并按照扩展后得到的人脸定位框分别对相应的人脸图像进行裁剪,从每幅活体人脸图像中裁剪出与每种尺度对应的一幅图像,之后,对裁剪出的与各种尺度对应的多幅所述图像分别归一化到所述预设尺寸,并将归一化后得到的多幅预设尺寸的图像作为正样本的样本数据,并设置样本标签为指示活体人脸类别(如将样本标签设置为数值1)。同理,根据每幅人脸图像中各自的人脸定位框按照所述预设尺度进行扩展,并按照扩展后得到的人脸定位框分别对相应的人脸图像进行裁剪,从每幅非活体人脸图像中裁剪出与每种尺度对应的一幅图像,之后,对裁剪出的与各种尺度对应的多幅所述图像分别归一化到所述预设尺寸,并将归一化后得到的多幅预设尺寸的图像作为负样本的样本数据,并设置样本标签为指示非活体人脸类别(如将样本标签设置为数值0)。按照此方法构建若干正样本和若干负样本。接下来,基于所述若干正样本和若干负样本训练分离卷积神经网络,得到所述预设第二卷积神经网络模型。
本申请实施例中,所述预设第二卷积神经网络模型采用的输入多个尺度人脸图像分别进行卷积运算,之后,再进行融合卷积的分离卷积方法,可以减小模型体积,方便人脸检测方法在前端设备中使用。
在训练所述预设第二卷积神经网络模型的过程中,每条正样本或负样本的样本数据中的多幅图像会并行输入至所述预设第二卷积神经网络模型的相应网络分支,由相应网络分支310对输入的人脸图像的平面图像信息分别进行特征提取,确定相应的特征编码;之后,通过融合层320对所述特征编码进行拼接后得到拼接向量;接下来,所述第二卷积神经网络模型的主干卷积神经网络330对所述拼接向量进行分类映射,确定输入的图像预设人脸类别的预估值,并根据所述预估值与样本标签(即输入图像所述人脸类别的真实值),计算模型误差,并以最小的模型误差为目标,优化模型参数,直至所述模型误差收敛到预设范围,即完成预设第二卷积神经网络模型的训练过程。
本申请实施例公开的人脸活体检测方法,通过获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像;分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点,其中,预设人脸关键点包括:鼻尖点;根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域;根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云;根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸;响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测,有助于提升人脸活体检测的速度。
本申请实施例公开的人脸活体检测方法,通过首先基于鼻子区域的三维信息进行人脸活体检测,可以快速检测出照片、视频等非活体人脸,有助于迅速检测出平面图像的攻击。进一步的,在基于鼻子区域的三维信息进行人脸活体检测,初步判断为可能是活体人脸之后,进一步基于人脸图像的平面信息进行人脸活体检测,可以检测出鼻子复杂弯折、三维头模、仿真面具或者是将照片鼻子抠掉真人佩戴的面具的攻击人脸,进一步提升了人脸活体检测的准确度。
进一步的,基于鼻子区域的三维信息进行人脸活体检测,与基于人脸信息相比,图像区域更小,需要处理的数据量小,可以提升人脸活体检测的速度,更加适用于在前端电子设备中使用。
实施例二
对应于方法实施例,本申请另一实施例中公开了一种人脸活体检测装置,如图4所示,所述装置包括:
人脸图像获取模块410,用于获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像;
人脸关键点确定模块420,用于分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点,其中,预设人脸关键点包括:鼻尖点;
鼻子区域确定模块430,用于根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域;
鼻子轮廓三维点云确定模块440,用于根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云;
预判断模块450,用于根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸;
活体检测模块460,用于响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测。
本申请的一些实施例中,所述预判断模块450,进一步用于:
通过预设第一卷积神经网络模型,基于所述鼻子轮廓三维点云的点云数据深度信息进行分类预测,预判所述目标人脸是否为活体人脸。
本申请的一些实施例中,所述通过预设第一卷积神经网络模型,基于所述鼻子轮廓三维点云的点云数据深度信息进行分类预测,预判所述目标人脸是否为活体人脸,包括:
通过预设第一卷积神经网络模型的特征提取通道对所述鼻子轮廓三维点云的深度值进行分类映射,并基于分类映射结果预判所述目标人脸是否为活体人脸;其中,对所述鼻子轮廓三维点云的深度值进行分类映射包括:基于最大和最小的所述深度值,对所述鼻子轮廓三维点云的深度值进行归一化,得到鼻尖点的归一化深度值;根据所述鼻尖点的归一化深度值预判所述目标人脸是否为活体人脸。
本申请的一些实施例中,所述预设第一卷积神经网络模型是通过以下方法训练得到的:
获取由不同图像采集装置针对每个活体人脸同步采集的至少两幅样本人脸图像,以及由所述不同图像采集装置针对每个非活体人脸同步采集的至少两幅样本人脸图像;
分别确定每幅所述样本人脸图像中各自的预设人脸关键点;
根据每幅所述样本人脸图像中所述鼻尖点,分别确定每幅所述样本人脸图像中的鼻子区域;
根据每幅所述样本人脸图像中的鼻子区域确定对应每个所述活体人脸或每个所述非活体人脸的鼻子轮廓三维点云;
对于对应每个所述活体人脸或每个所述非活体人脸的鼻子轮廓三维点云,分别通过所述预设第一卷积神经网络模型的特征提取通道对所述鼻子轮廓三维点云的深度值进行分类映射,学习所述预设第一卷积神经网络模型的最优参数,以完成所述预设第一卷积神经网络模型的训练。
本申请的一些实施例中,所述鼻子轮廓三维点云确定模块440,进一步用于:
通过预先训练的鼻子轮廓点定位网络模型,对每幅所述人脸图像中的鼻子区域分别进行定位处理,确定每幅所述人脸图像中的鼻子区域各自的预设鼻子轮廓点,其中,所述鼻子轮廓点包括:鼻翼点、鼻尖点和鼻梁点;
根据所述至少两幅人脸图像中鼻子区域各自的预设鼻子轮廓点数据,确定对应所述目标人脸的鼻子轮廓三维稀疏点云;
对所述鼻子轮廓三维稀疏点云中,对应所述鼻翼点中相临近的鼻子轮廓点的点云数据、对应所述鼻梁点和所述鼻尖点以及位于鼻子中线的所述鼻翼点的点云数据、对应各所述鼻翼点和所述鼻尖点的点云数据进行线性插值,得到鼻子轮廓三维点云。
本申请的一些实施例中,所述根据所述多个人脸区域图像的平面图像信息进行人脸活体检测,包括:
将所述多个人脸区域图像分别归一化到预设尺寸;
将归一化后得到的人脸图像并行输入至预设第二卷积神经网络模型的相应网络分支,通过所述相应网络分支对输入的人脸图像的平面图像信息分别进行特征提取,确定相应的特征编码;
将每个所述网络分支确定的所述特征编码进行拼接后得到的拼接向量,输入至所述第二卷积神经网络模型的主干卷积神经网络;
通过所述主干卷积神经网络对所述拼接向量进行分类映射,输出指示所述多个人脸区域图像属于预设人脸类别的概率;
根据所述概率,确定人脸活体检测结果。
本申请实施例公开的人脸活体检测装置,用于实现本申请实施例一中所述的人脸活体检测方法,装置的各模块的具体实施方式不再赘述,可参见方法实施例相应步骤的具体实施方式。
本申请实施例公开的人脸活体检测装置,通过获取由不同图像采集装置针对目标人脸同步采集的至少两幅人脸图像;分别确定每幅所述人脸图像中各自的人脸定位框和预设人脸关键点,其中,预设人脸关键点包括:鼻尖点;根据每幅所述人脸图像中所述鼻尖点,分别确定每幅所述人脸图像中的鼻子区域;根据每幅所述人脸图像中的鼻子区域确定对应所述目标人脸的鼻子轮廓三维点云;根据所述鼻子轮廓三维点云预判所述目标人脸是否为活体人脸;响应于所述目标人脸为活体人脸,根据至少一幅所述人脸图像中的所述人脸定位框确定所述至少一幅所述人脸图像中匹配不同尺度的多个人脸区域图像,之后,根据所述多个人脸区域图像的平面图像信息进行人脸活体检测,有助于提升人脸活体检测的速度。
本申请实施例公开的人脸活体检测装置,通过首先基于鼻子区域的三维信息进行人脸活体检测,可以快速检测出照片、视频等非活体人脸,有助于迅速检测出平面图像的攻击。进一步的,在基于鼻子区域的三维信息进行人脸活体检测,初步判断为可能是活体人脸之后,进一步基于人脸图像的平面信息进行人脸活体检测,可以检测出鼻子复杂弯折、三维头模、仿真面具或者是将照片鼻子抠掉真人佩戴的面具的攻击人脸,进一步提升了人脸活体检测的准确度。
进一步的,基于鼻子区域的三维信息进行人脸活体检测,与基于人脸信息相比,图像区域更小,需要处理的数据量小,可以提升人脸活体检测的速度,更加适用于在前端电子设备中使用。
相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一所述的人脸活体检测方法。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。
本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一所述的人脸活体检测方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种人脸活体检测方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。