一种深度图像中人脸检测方法转让专利

申请号 : CN201910164890.2

文献号 : CN109961021B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马宁徐杰张颢向志宏杨延辉

申请人 : 北京超维度计算科技有限公司

摘要 :

本发明涉及深度图像中人脸检测方法,包括以下步骤:找出深度图像中所有有效深度值的局部最小值点;计算局部最小值点的曲率,去除曲率超出范围的点;如果此时还有剩余的局部最小值点,则在纵向剖线上用深度阈值切割出人脸轮廓线,去除纵向人脸轮廓线长度不符合真实人脸尺寸的局部最小值点;如果还有剩余的局部最小值点,则计算鼻子的深度值和纵向剖线上鼻子轮廓线占人脸轮廓线长度的比值,排除鼻子的深度值或比值超出一定范围的局部最小值点;如果还有剩余的局部最小值点,则通过深度阈值切割出可能存在的人脸,并排除切割区域尺寸小于真实人脸尺寸的局部最小值点;如果此时还有剩余的局部最小值点,则认为图像中有人脸,否则认为图像中没有人脸。

权利要求 :

1.一种深度图像中人脸检测方法,其特征在于,包括以下步骤:

找出深度图像中所有有效深度值的局部最小值点;

计算局部最小值点的曲率,去除曲率超出范围的点;

如果此时没有剩余的局部最小值点,则判断这一张深度图像中没有人脸;如果还有剩余的局部最小值点,则在纵向剖线上用深度阈值切割出可能的人脸轮廓线,去除纵向人脸轮廓线长度不符合真实人脸尺寸的局部最小值点;

如果此时没有剩余的局部最小值点,则判断这一张深度图像中没有人脸;如果还有剩余的局部最小值点,则计算鼻子的深度值和纵向剖线上鼻子轮廓线占人脸轮廓线长度的比值,排除鼻子的深度值或比值超出一定范围的局部最小值点;

如果此时没有剩余的局部最小值点,则判断这一张深度图像中没有人脸;如果还有剩余的局部最小值点,则通过深度阈值切割出可能存在的人脸区域,并排除切割区域尺寸小于真实人脸尺寸的局部最小值点;

如果此时还有剩余的局部最小值点,则认为图像中有人脸,输出图像中所有的人脸区域位置,否则认为图像中没有人脸。

2.根据权利要求1所述的方法,其特征在于,所述找出深度图像中所有有效深度值的局部最小值点步骤,包括:对深度相机输出的深度图像,找出深度图像中所有在局部窗口中有效深度值最小的像素点的位置,如果局部窗口中邻接的多个像素都为有效深度值最小的像素,则只取所述邻接的多个像素的中心位置为局部最小值位置。

3.根据权利要求1所述的方法,其特征在于,所述计算局部最小值点的曲率,去除曲率超出范围的点步骤,包括:对得到的每个局部最小值点,在一定邻域范围内计算有效深度值梯度幅度的平均值,此梯度幅度平均值反映了物体表面的曲率,通过人鼻尖表面曲率的范围,可以排除不是鼻尖的局部最小值点。

4.根据权利要求1所述的方法,其特征在于,所述在纵向剖线上用深度阈值切割出可能的人脸轮廓线,去除纵向人脸轮廓线长度不符合真实人脸尺寸的局部最小值点步骤,包括:对于剩余的每个局部最小值点,找出深度图像中局部最小值点位置的纵向轮廓线,由局部最小值点的深度和位置信息估计出该深度下真实人脸在纵向轮廓线上的最大范围,该范围作为人脸可能存在的范围,在该范围内,用该局部最小值点的深度值加上一个深度差值,作为深度切割的阈值,用该阈值切割出可能存在的人脸纵向轮廓线,并计算可能的人脸轮廓线的长度,由局部最小值点的深度估计出该深度下真实人脸轮廓线的长度,通过对比去除纵向剖线不符合真实人脸尺寸的局部最小值点。

5.根据权利要求1所述的方法,其特征在于,所述计算纵向剖线上鼻子轮廓线占人脸轮廓线长度的比值,排除比值超出一定范围的局部最小值点步骤,包括:根据符合真实人脸尺寸的每个局部最小值点,计算其在人脸轮廓线上的梯度,如果梯度值不大于0,则继续计算其在人脸轮廓线上的上一个像素点的梯度;当梯度值大于0时,此时的像素点位置即为鼻子轮廓线的上边缘位置;

所述像素点位置的深度值与对应的局部最小值点位置的深度值的差值即为鼻子的高度;所述像素点位置与对应的局部最小值点位置的差值即为鼻子轮廓线的长度;

计算鼻子轮廓线与人脸轮廓线长度的比值,排除比值超出一定范围的局部最小值点。

6.根据权利要求1所述的方法,其特征在于,所述通过深度阈值切割出可能存在的人脸区域,并排除切割区域尺寸小于真实人脸尺寸的局部最小值点步骤,包括:对于每一个局部最小值点,由局部最小值点的深度估计出该深度下真实人脸在深度图像中的最大尺寸,该尺寸范围作为人脸可能存在的范围,在该范围内,用该局部最小值点的深度值加上一个深度差值,作为深度切割的阈值,用该阈值切割出可能存在的人脸;计算切割出的区域面积与估计出的人脸范围的比值,如果比值小于一定阈值,则判断该区域不是人脸,否则判断该区域为人脸区域。

说明书 :

一种深度图像中人脸检测方法

技术领域

[0001] 本发明涉及深度图像人脸检测领域,特别涉及一种深度图像中人脸检测方法。

背景技术

[0002] 在人脸正对深度相机时,鼻子在深度图上是距离深度相机最近的部分;现有的深度图像人脸检测技术通过把深度图上距离深度相机最近的部分作为鼻尖位置,人脸其他部位到鼻尖的距离都在一定范围内,通过计算深度图中的其余部分到鼻尖的距离来划分出人脸区域。
[0003] 鼻子是三维人脸上最突出的部位,能否准确定位鼻尖的位置是三维人脸检测的关键步骤。现有的人脸检测技术把深度图上距离深度相机最近的部分作为鼻尖位置,在人脸正对深度相机或者近似正对深度相机,而且没有戴帽子的情况下,是能够准确定位鼻尖位置的。但是,在人脸与深度相机的角度较大时,或者是在人戴了帽子的情况下,深度图上距离深度相机最近的部分就不一定是鼻子了,所以仅靠深度图中的距离信息来定位鼻尖的方法就不适用了。另外,如果深度图中没有人脸,或者虽然有人脸但是有其他物体比人脸更靠近深度相机,现有的检测技术就会发生误检,把非人脸的物体当成人脸检测出来。

发明内容

[0004] 本发明的目的在于,针对现有技术人脸检测中存在的上述问题。
[0005] 为实现上述目的,本发明提供了一种深度图像中人脸检测方法,该方法包括以下步骤:
[0006] 找出深度图像中所有有效深度值的局部最小值点;计算局部最小值点的曲率,去除曲率超出范围的点;如果此时还有剩余的局部最小值点,则在纵向剖线上用深度阈值切割出可能的人脸轮廓线,去除纵向人脸轮廓线长度不符合真实人脸尺寸的局部最小值点;如果此时还有剩余的局部最小值点,则计算鼻子的深度值和纵向剖线上鼻子轮廓线占人脸轮廓线长度的比值,排除鼻子的深度值或鼻子轮廓线比值超出一定范围的局部最小值点;
如果此时还有剩余的局部最小值点,则通过深度阈值切割出可能存在的人脸区域,并排除切割区域尺寸小于真实人脸尺寸的局部最小值点;如果此时还有剩余的局部最小值点,则判断图像中有人脸,输出图像中所有的人脸区域位置。本发明在人戴帽子的情况下仍然能够检测出人脸。
[0007] 本发明通过人脸的以上几个特点来逐级判断,最终能够排除绝大部分的非人脸干扰,并且不漏检真实存在的人脸,从而能够实现对人脸具有高检测率,同时对非人脸具有低误检率。

附图说明

[0008] 图1为本发明实施例提供的一种深度图像中人脸检测方法流程示意图;
[0009] 图2为图1方法人脸检测效果图。

具体实施方式

[0010] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0011] 图1为本发明实施例提供的一种深度图像中人脸检测方法流程示意图。如图1所示,该方法包括以下步骤:
[0012] 步骤一,找出局部最小值点。
[0013] 具体地,对深度相机输出的深度图像,找出深度图像中所有在局部窗口中有效深度值最小(深度值为0的像素点为无效深度值)的像素点的位置,如果邻接的多个像素都为局部最小值点,则只取这几个邻接像素的中心位置为局部最小值位置。
[0014] 步骤二,去除曲率超出一定范围的局部最小值点。
[0015] 具体地,对于步骤一中得到的每个局部最小值点,在一定邻域范围内计算有效深度值(非0深度值)梯度幅度的平均值,此梯度幅度平均值反映了物体表面的曲率,通过人鼻尖表面曲率的范围,可以排除一些不是鼻尖的局部最小值点。
[0016] 如果此时没有剩余的局部最小值点,则可以判断这一张深度图像中没有人脸;如果还有剩余的局部最小值点,则进入步骤三。
[0017] 步骤三,在纵向剖线上用深度阈值切割出可能的人脸轮廓线,去除纵向人脸轮廓线长度不符合真实人脸尺寸的局部最小值点。
[0018] 具体地,对于步骤二中剩余的每个局部最小值点,找出深度图像中该位置的纵向轮廓线,由局部最小值点的深度和位置信息可以估计出该距离下真实人脸在纵向轮廓线上的最大范围,该范围作为人脸可能存在的范围,在该范围内,用该局部最小值点的深度值加上一个深度差值,作为深度切割的阈值,用该阈值切割出可能存在的人脸纵向轮廓线,并计算可能的人脸轮廓线的长度,由局部最小值点的深度可以估计出该距离下真实人脸轮廓线的长度,通过对比可以去除一些纵向剖线不符合真实人脸尺寸的局部最小值点。
[0019] 如果此时没有剩余的局部最小值点,则可以判断这一张深度图像中没有人脸;如果还有剩余的局部最小值点,则进入步骤四。
[0020] 步骤四,计算纵向剖线上鼻子轮廓线占人脸轮廓线长度的比值,排除比值超出一定范围的局部最小值点。
[0021] 具体地,对于步骤三中剩余的每个局部最小值点,在其可能的人脸纵向轮廓线上从该局部最小值点开始,计算其在可能的人脸纵向轮廓线上的梯度(其深度值与其在可能的人脸纵向轮廓线上的上一个像素点深度值的差值),如果梯度值不大于0,则继续计算其在可能的人脸纵向轮廓线上的上一个像素点的梯度,直到梯度值大于0(或者像素点的坐标超过出可能的人脸纵向轮廓线范围),此时的像素点位置即为鼻子轮廓线的上边缘位置,此像素点位置的深度值与对应的局部最小值点位置的深度差值即为鼻子的高度,通过深度差值可以去除一些不符合鼻子高度范围的局部最小值点;此像素点位置与对应的局部最小值点位置的差值即为鼻子轮廓线的长度,计算鼻子轮廓线与人脸轮廓线长度的比值,排除比值超出一定范围的局部最小值点。
[0022] 如果此时没有剩余的局部最小值点,则可以判断这一张深度图像中没有人脸;如果还有剩余的局部最小值点,则进入步骤五)。
[0023] 步骤五,通过深度阈值切割出可能存在的人脸,并排除切割区域尺寸小于真实人脸尺寸的局部最小值点。
[0024] 具体地,对于每一个局部最小值点,由局部最小值点的深度可以估计出该距离下真实人脸在深度图像中的最大尺寸,该尺寸范围作为人脸可能存在的范围,在该范围内,用该局部最小值点的深度值加上一个深度差值,作为深度切割的阈值,用该阈值切割出可能存在的人脸。计算切割出的区域面积与估计出的人脸范围的比值,如果比值小于一定阈值,则判断该区域不是人脸,否则判断该区域为人脸区域。
[0025] 步骤六,输出所有的人脸位置。
[0026] 具体地,如果图像中有人脸,输出图像中所有的人脸位置。
[0027] 本发明实施例,在人戴帽子的情况下仍然能够检测出人脸。在人脸与相机之间的角度在方位±30°、俯仰±5°的范围内,都能够检测出人脸。
[0028] 在一个人脸检测例子中,人戴了帽子,侧脸30°面向深度相机镜头,深度相机采集深度图像并输出。
[0029] 首先,通过人脸检测算法接收到图像开始人脸检测,首先找出深度图像中所有有效深度值的局部最小值点,找到的局部最小值点中会有鼻尖、帽檐、脸颊、额头等部位。
[0030] 通过计算这些局部最小值点的曲率,帽檐的曲率明显与鼻尖曲率差异很大,不在曲率范围内,通过曲率可以去除帽檐处的局部最小值点。
[0031] 然后在纵向剖线上用深度阈值切割出可能的人脸轮廓线,去除纵向人脸轮廓线长度不符合真实人脸尺寸的局部最小值点;
[0032] 在一个例子中,可以通过计算额头的深度值和额头处的局部最小值点切割出的人脸轮廓线,排除额头的深度值超出一定范围的局部最小值点,以及额头处的局部最小值点切割出的人脸轮廓线低于真实人脸轮廓线的长度的局部最小值点。
[0033] 在一个例子中,可以通过计算鼻子的深度值和纵向剖线上鼻子轮廓线占人脸轮廓线长度的比值,排除鼻子的深度值或比值超出一定范围的局部最小值点。
[0034] 在一个例子中,可以通过脸颊处的局部最小值的深度差值和纵向轮廓线与人脸轮廓线长度的比值,排除脸颊的深度差值和比值超出一定范围的局部最小值点。
[0035] 通过深度阈值切割出可能存在的人脸,并排除切割区域尺寸小于真实人脸尺寸的局部最小值点,此时只留下了鼻尖位置处的局部最小值点,通过深度阈值切割可以输出人脸位置(如图2所示)。
[0036] 本例子通过寻找局部最小值点的位置来确定潜在的鼻尖位置,即使鼻尖不是距离深度相机最近的点时(在人脸与相机的角度比较大,或者戴帽子的情况下)也能找到鼻尖。
[0037] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。