三维人脸识别方法和三维人脸识别系统转让专利

申请号 : CN201810353351.9

文献号 : CN108549873B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王行周晓军李骊李朔盛赞杨淼

申请人 : 北京华捷艾米科技有限公司

摘要 :

本发明公开了一种三维人脸识别方法和系统。包括:采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像;根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型;计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵;将所述表面距离矩阵转化为人脸标准型;从所述人脸标准型中提取出待识别特征向量;将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。本发明的三维人脸识别方法,识别精确度高,识别速度快。

权利要求 :

1.一种三维人脸识别方法,其特征在于,包括:步骤S110、采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像;

步骤S120、根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型;

步骤S130、计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵;

步骤S140、将所述表面距离矩阵转化为人脸标准型;

步骤S150、从所述人脸标准型中提取出待识别特征向量;

步骤S160、将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。

2.根据权利要求1所述的三维人脸识别方法,其特征在于,所述步骤S110包括:通过RGB摄像头采集待识别目标人脸的彩色图像,并从所述人脸的彩色图像中检测出人脸各关键点的位置,并对所述人脸各关键点的位置进行标定;

通过深度摄像头采集待识别目标人脸的深度图像,将各关键点的位置对应到所述人脸的深度图像中,并从所述人脸的深度图像中剪裁出人脸区域。

3.根据权利要求2所述的三维人脸识别方法,其特征在于,所述步骤S120包括:根据所述深度摄像头的内参公式,将所述人脸的深度图像转换为3D点云;

对所述3D点云进行降采样,以去除所述3D点云中的离群点;

对去除离群点的3D点云进行表面重建,得到三维人脸重建模型。

4.根据权利要求1所述的三维人脸识别方法,其特征在于,所述步骤S130包括:基于预设的动态规划中的最短路径算法,计算出所述三维人脸重建模型中各关键点之间的最短表面距离;

将各关键点之间的最短表面距离组合在一起,形成所述表面距离矩阵。

5.根据权利要求1所述的三维人脸识别方法,其特征在于,所述步骤S140包括:基于等距映射算法,将所述表面距离矩阵转化为人脸标准型。

6.根据权利要求1至5中任意一项所述的三维人脸识别方法,其特征在于,所述步骤S150包括:计算所述人脸标准型的K阶矩,并以所述K阶矩作为所述待识别特征向量。

7.根据权利要求1至5中任意一项所述的三维人脸识别方法,其特征在于,所述步骤S160包括:计算待识别特征向量与预设的所述人脸特征数据库中已有的特征向量之间的欧氏距离以及余弦距离,并将所述欧氏距离和所述余弦距离进行加权组合,得到待识别距离;

将所述待识别距离与预设的距离阈值进行比较,并根据比较结果实现三维人脸识别。

8.一种三维人脸识别系统,其特征在于,包括:采集模块,用于采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像;

重建模块,用于根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型;

计算模块,用于计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵;

转化模块,用于将所述表面距离矩阵转化为人脸标准型;

提取模块,用于从所述人脸标准型中提取出待识别特征向量;

对比模块,用于将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。

9.根据权利要求8所述的三维人脸识别系统,其特征在于,所述重建模块还用于:根据深度摄像头的内参公式,将所述人脸的深度图像转换为3D点云;

对所述3D点云进行降采样,以去除所述3D点云中的离群点;

对去除离群点的3D点云进行表面重建,得到三维人脸重建模型。

10.根据权利要求8或9所述的三维人脸识别系统,其特征在于,所述计算模块用于:

基于预设的动态规划中的最短路径算法,计算出所述三维人脸重建模型中各关键点之间的最短表面距离;

将各关键点之间的最短表面距离组合在一起,形成所述表面距离矩阵;和/或,所述转化模块用于:基于等距映射算法,将所述表面距离矩阵转化为人脸标准型;和/或所述提取模块用于:计算所述人脸标准型的K阶矩,并以所述K阶矩作为所述待识别特征向量;和/或,所述对比模块用于:计算待识别特征向量与预设的所述人脸特征数据库中已有的特征向量之间的欧氏距离以及余弦距离,并将所述欧氏距离和所述余弦距离进行加权组合,得到待识别距离;

将所述待识别距离与预设的距离阈值进行比较,并根据比较结果实现三维人脸识别。

说明书 :

三维人脸识别方法和三维人脸识别系统

技术领域

[0001] 本发明涉及人脸识别技术领域,特别涉及一种三维人脸识别方法和一种三维人脸识别系统。

背景技术

[0002] 当今,人脸识别技术已经成为了一种应用广泛的智能生物识别技术,从厕所用纸、闯红灯抓拍到出入境安检、金融支付等各个领域,到处都有人脸识别技术的踪迹。
[0003] 现有的人脸识别技术主要分为二维人脸识别和三维人脸识别两类。二维人脸识别算法通常是对彩色摄像头所拍摄出的RGB图像进行识别,在从图片中检出目标人脸之后,通过标定、对齐等一系列处理操作,输入到目前最热门的深度学习模型(主要是卷积神经网络)中去,并输出一个可用于不同人脸之间比对的向量特征,最终完成整个的识别任务。整个二维人脸识别过程如图1所示。
[0004] 而关于三维人脸识别算法的研究目前比较少。首先,三维人脸点云数据需要通过特殊的设备(例如景深摄像头,立体扫描仪等)进行采集,较难以获取,样本数量有限,因此难以用来对需要大量样本数据的深度学习模型进行训练。其次,由于数据是三维的,相比二维人脸数据,使用深度学习模型进行处理所需要的运算量非常大,在时效性上不可接受。鉴于以上两点,现有的三维人脸识别算法通常不使用二维人脸中常用的深度学习模型,而是采用传统的表面曲率、几何形状等人脸特征进行识别,即利用不同人脸之间的形状和纹理差异来区分彼此。
[0005] 目前,与本发明比较接近的是一种利用等距映射算法将人脸转化为标准型进行识别的方法。具体地,该方法首先对输入的人脸点云数据进行降采样、去噪和表面重建,然后通过动态规划算法计算点云中的所有点之间的表面距离(在人脸表面上,一个点移动到另一个点所经过的距离)。假设人脸点云中共有N个点,这些表面距离就可以组成一个N*N的距离矩阵,矩阵中第i行、第j列的矩阵代表了顶点i和顶点j的表面距离。对这一距离矩阵进行人脸等距映射,生成人脸标准型后,再利用K阶矩从该标准型中提取出一个可用于不同人脸之间对比的向量特征,就实现了一次三维人脸的识别的过程。整个三维人脸识别过程如图2所示。
[0006] 目前的人脸识别算法中,二维人脸识别算法依据RGB彩色图片进行人脸识别,在头部旋转角度过大的情况下,算法的准确度会大幅度降低,除此之外,二维识别算法很难抵挡照片与视频等的欺骗性攻击。而已有的三维人脸识别算法虽然可以利用景深摄像头采集到的深度图像对人脸进行模拟建模,再进行识别,解决了头部大角度旋转与活体检测的问题,但是通常运行速度较慢,难以实际应用。

发明内容

[0007] 本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种三维人脸识别方法和一种三维人脸识别系统。
[0008] 为了实现上述目的,本发明的第一方面,提供了一种三维人脸识别方法,包括:
[0009] 步骤S110、采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像;
[0010] 步骤S120、根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型;
[0011] 步骤S130、计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵;
[0012] 步骤S140、将所述表面距离矩阵转化为人脸标准型;
[0013] 步骤S150、从所述人脸标准型中提取出待识别特征向量;
[0014] 步骤S160、将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。
[0015] 可选地,所述步骤S110包括:
[0016] 通过RGB摄像头采集待识别目标人脸的彩色图像,并从所述人脸的彩色图像中检测出人脸各关键点的位置,并对所述人脸各关键点的位置进行标定;
[0017] 通过深度摄像头采集待识别目标人脸的深度图像,将各关键点的位置对应到所述人脸的深度图像中,并从所述人脸的深度图像中剪裁出人脸区域。
[0018] 可选地,所述步骤S120包括:
[0019] 根据所述深度摄像头的内参公式,将所述人脸的深度图像转换为3D点云;
[0020] 对所述3D点云进行降采样,以去除所述3D点云中的离群点;
[0021] 对去除离群点的3D点云进行表面重建,得到三维人脸重建模型。
[0022] 可选地,所述步骤S130包括:
[0023] 基于预设的动态规划中的最短路径算法,计算出所述三维人脸重建模型中各关键点之间的最短表面距离;
[0024] 将各关键点之间的最短表面距离组合在一起,形成所述表面距离矩阵。
[0025] 可选地,所述步骤S140包括:
[0026] 基于等距映射算法,将所述表面距离矩阵转化为人脸标准型。
[0027] 可选地,所述步骤S150包括:
[0028] 计算所述人脸标准型的K阶矩,并以所述K阶矩作为所述待识别特征向量。
[0029] 可选地,所述步骤S160包括:
[0030] 计算待识别特征向量与预设的所述人脸特征数据库中已有的特征向量之间的欧氏距离以及余弦距离,并将所述欧式距离和所述余弦距离进行加权组合,得到待识别距离;
[0031] 将所述待识别距离与预设的距离阈值进行比较,并根据比较结果实现三维人脸识别。
[0032] 本发明的第二方面,提供了一种三维人脸识别系统,包括:
[0033] 采集模块,用于采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像;
[0034] 重建模块,用于根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型;
[0035] 计算模块,用于计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵;
[0036] 转化模块,用于将所述表面距离矩阵转化为人脸标准型;
[0037] 提取模块,用于从所述人脸标准型中提取出待识别特征向量;
[0038] 对比模块,用于将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。
[0039] 可选地,所述重建模块还用于:
[0040] 根据深度摄像头的内参公式,将所述人脸的深度图像转换为3D点云;
[0041] 对所述3D点云进行降采样,以去除所述3D点云中的离群点;
[0042] 对去除离群点的3D点云进行表面重建,得到三维人脸重建模型。
[0043] 可选地,所述计算模块用于:
[0044] 基于预设的动态规划中的最短路径算法,计算出所述三维人脸重建模型中各关键点之间的最短表面距离;
[0045] 将各关键点之间的最短表面距离组合在一起,形成所述表面距离矩阵;和/或,[0046] 所述转化模块用于:
[0047] 基于等距映射算法,将所述表面距离矩阵转化为人脸标准型;和/或
[0048] 所述提取模块用于:
[0049] 计算所述人脸标准型的K阶矩,并以所述K阶矩作为所述待识别特征向量;和/或,[0050] 所述对比模块用于:
[0051] 计算待识别特征向量与预设的所述人脸特征数据库中已有的特征向量之间的欧氏距离以及余弦距离,并将所述欧式距离和所述余弦距离进行加权组合,得到待识别距离;
[0052] 将所述待识别距离与预设的距离阈值进行比较,并根据比较结果实现三维人脸识别。
[0053] 本发明的三维人脸识别方法和三维人脸识别系统,是一种新型的三维人脸识别算法,主要利用深度学习中的人脸检测与特征点标定算法,三维贪婪映射表面重建算法,最短路径算法、等距映射算法和矩阵K阶矩来实现整个的三维人脸特征提取流程,并将得到的向量特征与预设的人脸特征数据库中进行对比,输出一个最终的识别结果。相对于当前流行的二维识别方法来说,在人的头部角度变化较大时仍具有较好的识别精度。除此之外,三维信息的利用也使得算法被照片和视频等二维输入所欺骗的概率大大降低。本发明在计算人脸点云(通常含有几千个点)中各点之间的表面距离时只计算了较少数量的关键点(例如,各关键点的预设数量可以为68个)之间的距离,速度上提升了很多而效果却几乎没有下降,因此实用性大大增加。

附图说明

[0054] 附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0055] 图1为现有技术一中人脸图像的二维自动化识别技术流程框图;
[0056] 图2为现有技术二中人脸图像的三维自动化识别技术流程框图;
[0057] 图3为本发明中三维人脸识别方法的流程框图;
[0058] 图4为本发明中三维人脸识别方法的流程图;
[0059] 图5为本发明中三维人脸识别系统的结构示意图。
[0060] 附图标记说明
[0061] 100:三维人脸识别系统;
[0062] 110:采集模块;
[0063] 120:重建模块;
[0064] 130:计算模块;
[0065] 140:转化模块;
[0066] 150:提取模块;
[0067] 160:对比模块。

具体实施方式

[0068] 以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0069] 部分名词解释:
[0070] 深度图(depth image):由带有景深传感器的RGB摄像头所拍摄出来的图片,该类型图片被存储为单通道图片,相当于一个二维矩阵,矩阵中的每一个像素值等于被拍摄的目标点到摄像头的距离。
[0071] 相机内参:用于从相机坐标系到像平面坐标系进行变换的相机固有参数。因为像平面坐标系是用像素单位来表示的,而相机坐标系则是以毫米为单位来表示的,二者呈线性关系,所以需要一组相关的相机参数来实现这一变换。
[0072] 点云(point cloud):存在于三维空间中的一组点的坐标位置的集合,这些点在三维空间中的分布表征了物体的形状和位置。
[0073] 等距映射(isometric embedding):如果一个点的集合通过某种方式,在保持各点之间距离不变的情况下从原本的空间映射到了另一个空间,这一过程就被称为等距映射。
[0074] 人脸标准型(canonical form):一个用三维点云存储的人脸可以通过等距映射转换为一种新的形态,在该形态下,不同的人脸之间差异很大,但同一张人脸不同表情之间的差异却很小,这种新的形态就被称为人脸标准型。
[0075] K阶矩(K-order moments):一个高维对象的K阶矩表征了其在高维空间中的几何特征,例如一阶矩表征了该对象在空间中的位置特征,二阶矩表征了该对象的大小和旋转方向的特征,更高阶的高阶矩表征了其他的一些更加抽象的特征。
[0076] 参考图3和图4,本发明的第一方面,涉及一种三维人脸识别方法S100,包括:
[0077] 步骤S110、采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像。
[0078] 步骤S120、根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型。
[0079] 步骤S130、计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵。
[0080] 步骤S140、将所述表面距离矩阵转化为人脸标准型。
[0081] 步骤S150、从所述人脸标准型中提取出待识别特征向量。
[0082] 步骤S160、将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。
[0083] 本实施例中的三维人脸识别方法S100,是一种新型的三维人脸识别算法,主要利用深度学习中的人脸检测与特征点标定算法,三维贪婪映射表面重建算法,最短路径算法、等距映射算法和矩阵K阶矩来实现整个的三维人脸特征提取流程,并将得到的向量特征与预设的人脸特征数据库中进行对比,输出一个最终的识别结果。相对于当前流行的二维识别方法来说,在人的头部角度变化较大时仍具有较好的识别精度。除此之外,三维信息的利用也使得算法被照片和视频等二维输入所欺骗的概率大大降低。本发明在计算人脸点云(通常含有几千个点)中各点之间的表面距离时只计算了较少数量的关键点(例如,各关键点的预设数量可以为68个)之间的距离,速度上提升了很多而效果却几乎没有下降,因此实用性大大增加。
[0084] 可选地,所述步骤S110包括:
[0085] 通过RGB摄像头采集待识别目标人脸的彩色图像,并从所述人脸的彩色图像中检测出人脸各关键点的位置,并对所述人脸各关键点的位置进行标定;
[0086] 通过深度摄像头(该深度摄像头一般包括深度传感器)采集待识别目标人脸的深度图像,将各关键点的位置对应到所述人脸的深度图像中,并从所述人脸的深度图像中剪裁出人脸区域。
[0087] 具体地,在步骤S110中,输入为两张包含了待识别目标人脸的图片,一张是RGB彩色图片,一张是深度图片,分别由RGB摄像头和深度传感器采集得到。由于两张图片具有相同的照相机视点(RGB摄像头和深度传感器在相同的位置上进行拍摄),因此这两张图片中的像素是一一对应的,同一物体在两张图片中处于相同的位置。
[0088] 如此,便可以利用深度学习中的MTCNN(multi-task convolutional neural networks)算法模型,在68个关键点(人脸关键点是指能确定人脸五官位置的关键性的点)的图片数据集上重新回归训练后,从RGB图片中检测出目标人脸的位置及68个面部关键点的位置(指的是人脸及面部关键点在RGB图片中的像素位置)。
[0089] 在RGB图片中检测到人脸之后,按照MTCNN模型给出的人脸框的位置在深度图片中将对应的区域剪裁出来,用于之后的计算。
[0090] 可选地,所述步骤S120包括:
[0091] 根据深度摄像头的内参公式,将所述人脸的深度图像转换为3D点云;
[0092] 对所述3D点云进行降采样,以去除所述3D点云中的离群点;
[0093] 对去除离群点的3D点云进行表面重建,得到三维人脸重建模型。
[0094] 具体地,利用相机内参和映射公式,就可以将深度图片转换为3D点云数据(原本二维的关键点也被转换成了三维空间中的点)。具体的映射公式如下:
[0095] pz=I(i,j)/camera.scale  (1)
[0096] px=(j-camera.cx)*pz/camera.fx  (2)
[0097] py=(i-camera.cy)*pz/camera.fy  (3)
[0098] 其中,I(i,j)指的是人脸深度图像中第i行第j列的点的像素值,camera.scale表示人脸深度图像的像素值和被拍摄点距摄像头的实际物理距离(毫米)的比值,camera.fx/camera.fy分别是深度相机所拍摄的图像的横向/纵向方向上的每个像素所代表的实际物理长度(毫米),camera.cx/camera.cy表示图像的中心像素坐标和图像原点像素坐标之间相差的横向/纵向像素数。
[0099] 不同相机的内参不同,以下是取值示例:
[0100] camera.scale=1.0;
[0101] camera.cx=313.259979;camera.cy=270.867126;
[0102] camera.fx=563.343384;camera.fy=563.343384;
[0103] 利用该映射公式,便可以建立人脸深度图像中的每一个像素点与三维空间中的点之间的一一对应关系,从而计算出三维人脸点云中的每一个点的坐标(px,py,pz),得到完整的人脸点云。
[0104] 得到人脸点云之后,由于点云所含的点数较多,数据量较大,因此需要使用体素滤波器(Voxel Grid Filter)对其进行降采样以加速后面的计算。此外,还要使用统计滤波器(Statistical Filter)对点云进行去噪,最后利用贪婪映射算法(Greedy Projection Triangulation),完成人脸表面的重建工作。贪婪映射算法利用点云中各点的法线来估计它们的连通性和区域聚集性,并将这些点划分为一个个的小三角形(每个三角形都是一个小面片),如果把这些小三角形面片按照它们的位置关系组合起来,就构成了一个完整的人脸表面。
[0105] 可选地,所述步骤S130包括:
[0106] 基于预设的动态规划中的最短路径算法,计算出所述三维人脸重建模型中各关键点之间的最短表面距离;
[0107] 将各关键点之间的最短表面距离组合在一起,形成所述表面距离矩阵。
[0108] 具体地,人脸的预设数量的各关键点(例如,68个关键点)遍布于人脸的眉毛、眼睛、鼻子、嘴巴和下巴区域,含有非常大的信息量。利用计算机领域中动态规划算法中的最短路径算法中的Dijkstra算法,计算出每一个人脸关键点与其他关键点之间的面部表面距离,并将这些距离按照行列排布,即可得到一个68*68的距离矩阵。具体的排布方式为:矩阵的第i行、第j列存储了第i个关键点与第j个关键点之间的人脸表面距离。
[0109] 由于人脸的68个关键点所含有的人脸信息量远高于其他的一般性的点,因此使用这些关键点之间的表面距离来为人脸识别任务提供支持并不会明显地降低整个识别算法的准确性,但却可以大幅度地提升算法的运行速率。
[0110] 可选地,所述步骤S140包括:
[0111] 基于等距映射算法,将所述表面距离矩阵转化为人脸标准型。
[0112] 具体地,对于计算出来的人脸特征点表面距离矩阵,使用等距映射算法(Isomap)将其转化为人脸标准型。等距映射算法是一种低损耗的空间映射算法,它可以使得原有数据点在相互之间距离基本不变的情况下映射到一个新的空间中。通过等距映射算法所生成的人脸标准型具有对表情变化的非敏感性,这使得它在人脸表情大幅变化的情况下仍可以提供稳定的具有区分性的人脸特征信息。
[0113] 等距映射算法的基本原理为:
[0114] (1)计算原始数据(假设是一个n个点的点集)中任意两点的距离δrs,其中r和s是任意两点的标号,取值范围1~n,得到一个距离矩阵Δn×n。
[0115] (2)对矩阵Δn×n的每一个元素计算 得到矩阵An×n。
[0116] (3)对于矩阵An×n,对它的每一个元素减去该元素对应的行均值,减去该元素对应的列均值,加上整个矩阵的均值,即 得矩阵B。
[0117] 其中,
[0118] (4)计算矩阵B的所有特征向量V1,...,Vi,...,Vm,以及它们对应的特征值λ1,...,λi,...,λm,并对特征向量进行归一化,确保
[0119] 如果B不是半正定(一些特征值为负),那么可采取以下两种方式:
[0120] (a)忽略负的特征值,并继续后续的步骤;
[0121] (b)在测地距离上增加一个合适的常数c,即δ′rs=δ′rs+c(1-deltars),然后重新回到第(2)步。其中deltars是克罗内克符号(Kronecker delta),表示如果r=s,则deltars=1;否则deltars=0(即除了矩阵对角线之外全部加上常数c)。
[0122] (5)选择一个适当的维数p,使得:
[0123]
[0124] 的值接近1,或者直接选p为3或4。
[0125] 这里的λ1,...,λp应该是指众多特征值从大到小排列后的前p个特征值,代表矩阵最主要的p个变化方向。
[0126] (6)最后,计算原始数据点转化到p维欧氏空间之后的坐标:
[0127] 原始空间中的第r个点(r=1,...,n),在转化到p维空间之后的p维坐标为:
[0128] (xr1,...,xri,...,xrp)=((V1)r,...,(Vi)r,...,(Vp)r)
[0129] 即xri=(Vi)r,其中i=1,...,p,r=1,...,n,意思是新的欧式空间中的第r个点的第i维坐标等于按特征值从大到小排列后的p个特征向量中的第i个向量的第r个元素值。
[0130] 这样,我们就将人脸表面距离矩阵转化成了人脸标准型。
[0131] 可选地,所述步骤S150包括:
[0132] 计算所述人脸标准型的K阶矩,并以所述K阶矩作为所述待识别特征向量。
[0133] 具体地,人脸标准型不能直接用于解决人脸识别问题,需要使用K阶矩将其转化为向量的形式(该向量表征了人脸的特征信息)。K阶矩的具体计算公式如下:
[0134] 对于一个三维空间中的人脸标准型 它的k阶矩的(pqr)分量为:
[0135]
[0136] 其中p+q+r=k。公式中的mpqr是一个标量,而该标准型的k阶矩则是一个包含了所有可能的mpqr值的一维向量。例如,一个标准型的2阶矩为:
[0137] (m002,m011,m020,m101,m110,m200)
[0138] 通过对k取不同的值,可以得到不同的人脸特征信息。因此在本技术方案中,会将人脸标准型从1阶矩到10阶矩的所有向量结果进行合并,组合成一个新的特征向量,然后将该向量作为识别算法的最终输出向量。
[0139] 可选地,所述步骤S160包括:
[0140] 计算待识别特征向量与预设的所述人脸特征数据库中已有的特征向量之间的欧氏距离以及余弦距离,并将所述欧式距离和所述余弦距离进行加权组合,得到待识别距离;
[0141] 将所述待识别距离与预设的距离阈值进行比较,并根据比较结果实现三维人脸识别。
[0142] 具体地,有了三维人脸的特征向量,就相当于获得了一种可计算的人脸表征形式,这种表征形式便可以用来进行相似度对比,从而识别出两张人脸是否为同一个人。本技术方案中会将从预设的人脸特征数据库中提取出的众多特征向量构建成库,然后把待识别的特征向量拿到库中进行对比(计算向量间的欧氏距离(Euclidean distance)或余弦距离(cosine distance)),进而判断出新输入的人脸是否已存在于库中,与库中的哪一个人最接近等等。
[0143] 本发明的第二方面,如图5所示,提供了一种三维人脸识别系统100,包括:
[0144] 采集模块110,用于采集待识别目标人脸的图像数据,并对其中的人脸关键点进行标定,其中,所述人脸的图像数据包括人脸的深度图像和人脸的彩色图像;
[0145] 重建模块120,用于根据标定后的所述人脸的深度图像进行三维人脸重建,得到三维人脸重建模型;
[0146] 计算模块130,用于计算所述三维人脸重建模型中的预设数量的各关键点之间的表面距离,生成表面距离矩阵;
[0147] 转化模块140,用于将所述表面距离矩阵转化为人脸标准型;
[0148] 提取模块150,用于从所述人脸标准型中提取出待识别特征向量;
[0149] 对比模块160,用于将所述待识别特征向量与预设的人脸特征数据库中已有的特征向量进行对比,实现三维人脸识别。
[0150] 本实施例中的三维人脸识别系统100,是一种新型的三维人脸识别算法,主要利用深度学习中的人脸检测与特征点标定算法,三维贪婪映射表面重建算法,最短路径算法、等距映射算法和矩阵K阶矩来实现整个的三维人脸特征提取流程,并将得到的向量特征与预设的人脸特征数据库中进行对比,输出一个最终的识别结果。相对于当前流行的二维识别方法来说,在人的头部角度变化较大时仍具有较好的识别精度。除此之外,三维信息的利用也使得算法被照片和视频等二维输入所欺骗的概率大大降低。本发明在计算人脸点云(通常含有几千个点)中各点之间的表面距离时只计算了较少数量的关键点(例如,各关键点的预设数量可以为68个)之间的距离,速度上提升了很多而效果却几乎没有下降,因此实用性大大增加。
[0151] 可选地,所述重建模块120还用于:
[0152] 根据深度摄像头的内参公式,将所述人脸的深度图像转换为3D点云;
[0153] 对所述3D点云进行降采样,以去除所述3D点云中的离群点;
[0154] 对去除离群点的3D点云进行表面重建,得到三维人脸重建模型。
[0155] 可选地,所述计算模块130用于:
[0156] 基于预设的动态规划中的最短路径算法,计算出所述三维人脸重建模型中各关键点之间的最短表面距离;
[0157] 将各关键点之间的最短表面距离组合在一起,形成所述表面距离矩阵;和/或,[0158] 所述转化模块140用于:
[0159] 基于等距映射算法,将所述表面距离矩阵转化为人脸标准型;和/或
[0160] 所述提取模块150用于:
[0161] 计算所述人脸标准型的K阶矩,并以所述K阶矩作为所述待识别特征向量;和/或,[0162] 所述对比模块160用于:
[0163] 计算待识别特征向量与预设的所述人脸特征数据库中已有的特征向量之间的欧氏距离以及余弦距离,并将所述欧式距离和所述余弦距离进行加权组合,得到待识别距离;
[0164] 将所述待识别距离与预设的距离阈值进行比较,并根据比较结果实现三维人脸识别。
[0165] 可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。