一种人脸特征点定位方法及装置与流程

文档序号:14572166发布日期:2018-06-01 22:59阅读:153来源:国知局
一种人脸特征点定位方法及装置与流程

本申请涉及图像处理技术领域,更具体地说,涉及一种人脸特征点定位方法及装置。



背景技术:

随着计算机视觉领域的技术的发展,人脸特征点定位的技术日趋完善。人脸特征点定位已经被应用到诸多领域中。

然而,目前的人脸检测以及特征点定位只能适用于单帧图像,对于视频等包含多帧图像场景,由于多帧图像之间人脸姿态存在较大变化,通常的特征点定位方法均无法准确定位各帧图像中人脸的特征点。



技术实现要素:

有鉴于此,本申请的目的在于提供一种人脸特征点定位方法及装置,以在多帧图像之间存在人脸姿态较大变化的情况下,提高人脸特征点定位的准确性。

为实现上述目的,本申请提供如下技术方案:一种人脸特征点定位方法,包括:

从视频中获取当前待处理的一帧目标图像,所述目标图像中包含人脸图像;

获取前一帧图像中人脸的横滚角度,所述前一帧图像为所述视频中处于所述目标图像之前且紧邻所述目标图像的一帧图像;

根据所述横滚角度,对所述目标图像进行旋转;

对旋转后的目标图像进行人脸特征点定位,得到第一人脸特征点集合,所述第一人脸特征点集合中包括多个第一人脸特征点;

根据所述横滚角度,分别将每个所述第一人脸特征点映射到未经旋转的所述目标图像中,得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点。

优选的,在所述根据所述横滚角度,对所述目标图像进行旋转之前,还包括:

判断所述横滚角度是否处于预设的角度范围内;

当所述横滚角度未处于所述预设的角度范围内时,执行所述根据所述横滚角度,对所述目标图像进行旋转;

当所述横滚角度处于所述预设的角度范围内时,从所述目标图像中定位出人脸的特征点。

优选的,所述根据所述横滚角度,分别将每个所述第一人脸特征点映射到未经旋转的所述目标图像中,得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点,包括:

确定与所述横滚角度对应的映射矩阵;

针对每个第一人脸特征点,将所述第一人脸特征点与所述映射矩阵相乘,得到所述第一人脸特征点映射到所述目标图像中所得到的第二人脸特征点。

优选的,在所述得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点之后,还包括:

当所述目标图像为被缩放的图像时,依据所述目标图像的缩放比,对所述多个第二人脸特征点进行缩放处理,并将缩放处理后的多个第二人脸特征点作为所述目标图像中人脸的特征点。

优选的,还包括:

确定当前待处理的所述目标图像中人脸的横滚角度;

存储所述目标图像中人脸的横滚角度。

另一方面,本申请还提供了一种人脸特征点定位装置,包括:

图像获取单元,用于从视频中获取当前待处理的一帧目标图像,所述目标图像中包含人脸图像;

姿态获取单元,用于获取前一帧图像中人脸的横滚角度,所述前一帧图像为所述视频中处于所述目标图像之前且紧邻所述目标图像的一帧图像;

图像旋转单元,用于根据所述横滚角度,对所述目标图像进行旋转;

第一点定位单元,用于对旋转后的目标图像进行人脸特征点定位,得到第一人脸特征点集合,所述第一人脸特征点集合中包括多个第一人脸特征点;

特征点映射单元,用于根据所述横滚角度,分别将每个所述第一人脸特征点映射到未经旋转的所述目标图像中,得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点。

优选的,还包括:

姿态判断单元,用于在所述图像旋转单元根据所述横滚角度,对所述目标图像进行旋转之前,判断所述横滚角度是否处于预设的角度范围内;

所述图像旋转单元具体为,用于当所述姿态判断单元判断出所述横滚角度未处于所述预设的角度范围内时,根据所述横滚角度,对所述目标图像进行旋转;

第二点定位单元,用于当所述横滚角度处于所述预设的角度范围内时,从所述目标图像中定位出人脸的特征点。

优选的,所述特征点映射单元,包括:

矩阵匹配子单元,用于确定与所述横滚角度对应的映射矩阵;

映射子单元,用于针对每个第一人脸特征点,将所述第一人脸特征点与所述映射矩阵相乘,得到所述第一人脸特征点映射到所述目标图像中所得到的第二人脸特征点。

优选的,还包括:

特征点缩放单元,在所述特征点映射单元得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点之后,当所述目标图像为被缩放的图像时,依据所述目标图像的缩放比,对所述多个第二人脸特征点进行缩放处理,并将缩放处理后的多个第二人脸特征点作为所述目标图像中人脸的特征点。

优选的,还包括:

姿态估计单元,用于依据所述多个第二人脸特征点,确定当前待处理的所述目标图像中人脸的横滚角度;

姿态存储单元,用于存储所述目标图像中人脸的横滚角度。

从上述技术方案可以看出,在从视频中获取到待处理的目标图像之后,会根据该目标图像的前一帧图像中人脸的横滚角度进行人脸姿态变化估计,这样,依据该前一帧图像中人脸的横滚角度对该目标图像进行旋转,可以抵消由于人脸歪头而导致目标图像中人脸的偏向,使得旋转后的目标图像中人脸的朝向为正向,这样,有利于从旋转后的目标图像中较为精准的提取出人脸特征点,从而可以减少由于人脸歪头等姿态变化而导致提取出的特征点不准确的问题,在此基础上,将从旋转后的目标图像中提取出的人脸特征点映射到未经旋转的目标图像中,就可以得到目标图像中人脸特征点的坐标,从而可以提高目标图像中定位出的人脸特征点的准确度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请公开的一种人脸特征点定位方法一个实施例的流程图;

图2为本申请中人脸围绕不同轴向旋转所形成的不同种旋转角的示意图;

图3为本申请公开的一种人脸特征点定位方法又一个实施例的流程图;

图4为本申请公开的一种人脸特征点定位装置一个实施例的组成结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

如图1所示,为本申请公开的一种人脸特征点定位方法一个实施例的流程图,本方法可以应用于任意具备图像处理的计算机设备、服务器或者分布式计算系统中,本实施例的方法可以包括:

S101,从视频中获取当前待处理的一帧目标图像。

可以理解的是,本申请实施例是针对人脸特征点的提取,因此,视频中待处理的目标图像中包含人脸图像。

其中,视频可以有多帧图像构成,为了便于区分,将当前待进行人脸特征点定位的图像称为目标图像。

S102,获取前一帧图像中人脸的横滚角度。

其中,前一帧图像为视频中处于该目标图像之前且紧邻该目标图像的一帧图像。如,目标图像为视频中第2帧图像,则该前一帧图像为第1帧图像。

其中,该前一帧图像中人脸的横滚角度可以是在处理前一帧图像的过程中确定并存储的。如,该步骤S102可以获取存储的该前一帧图像中人脸的横滚角度。

其中,人脸的偏转方向可以有多种情况,相应的该横滚角度也可以有多种情况。如,人脸的俯仰角pitch的角度值,人脸的航向角yaw的角度值,以及人脸的横滚角的角度值。其中,俯仰角是指,正脸情况下低头、仰头的角度大小;航向角理解就是表示侧脸程度大小的值;横滚角通俗理解就是表示歪头角度大小的值。如,参见图2,其示出了人脸环绕不同轴向旋转所对应的不同偏转角。如,以垂直与人脸的轴向为Z轴时,则用户做歪头时,人脸实际上就是环绕Z轴旋转,而环绕Z轴旋转所称的角度称为横滚角。

可以理解的是,如果将人脸不发生任何偏转的情况下所得到的人脸图像称为正向人脸图像,则可以预置一个正向人脸图像,并检测该目标图像中的人脸相对于预置的正向人脸图像的偏转角度,从而可以得到人脸的横滚角度。

S103,根据该横滚角度,对该目标图像进行旋转。

其中,依据横滚角度对该目标图像进行旋转的方式可以有多种,如,就可以利用opencv库对图像进行了旋转,对于具有如何实现对目标图像的旋转本申请实施例不作限制。

可以理解的是,横滚角度可以为正值或负值,根据该横滚角度可以确定出目标图像所需旋转的方向以及角度。

如,横滚角度表征人脸向右侧歪头时,则可以依据该横滚角度,将人脸向左侧旋转,以将目标图像中的人脸旋转为正向人脸。举例说明,假设人脸向左歪头,则横滚角度为正值,那么在横滚角度为-20度,则可以将该目标图像向右旋转-20度。

当然,以上仅仅是为了便于理解而举出的一个简单例子,在实际应用中,根据该横滚角度旋转该目标图像时,需要处理的数据可能会很多,如,需要预先设定横滚角度与该目标图像旋转角度之间的映射关系,然后根据该映射关系,确定目标图像的旋转方式以及旋转角度等等,然后再旋转该目标图像,本申请对于如何依据该横滚角度将目标图像中的人脸旋转为正向人脸的具体方式不加以限制。

S104,对旋转后的目标图像进行人脸特征点定位,得到第一人脸特征点集合。

其中,第一人脸特征点集合中包括多个第一人脸特征点。

为了便于区分,将从旋转后的目标图像中定位出的人脸特征点称为第一人脸特征点。在本申请实施例中人脸特征点可以人脸面部图像上一些特定的点,如鼻尖、嘴角、眼角等特定位置上的点。

可以理解的是,由于目标图像中人脸存在偏转,而将目标图像进行旋转之后,由于旋转后的目标图像中人脸不存在偏转或者偏转角度较小,在该种情况下,对旋转后的目标图像中的人脸进行特征点定位,可以使得特征点定位的精准度相对较高。

S105,根据该横滚角度,分别将每个第一人脸特征点映射到未经旋转的该目标图像中,得到目标图像中分别与该多个第一人脸特征点具有映射关系的多个第二人脸特征点。

其中,该多个第二人脸特征点就是该目标图像中的人脸特征点。

可以理解的是,从旋转后的目标图像中定位出的人脸特征点并不是原始的该目标图像中特征点的坐标,为了能够确定出旋转后的目标图像中的人脸特征点对应到原始的该目标图像中的坐标点,需要将第一人脸特征点映射到该目标图像中,以从目标图像中找到该第一人脸特征点所映射到的第二人脸特征点,而第二人脸特征点就是该目标图像中人脸的特征点坐标。

其中,由步骤S103可知,第一人脸特征点是将目标图像旋转之后所提取出的特征点的坐标,而由于目标图像与旋转后的目标图像上的点之间具有特定的映射关系,该映射关系与该横滚角度或者说该目标图像的旋转角度有关,因此,根据该横滚角度,可以确定出该第一人脸特征点如果映射到该目标图像中所对应的点的坐标,该点的坐标就是第二人脸特征点。

可以理解的是,由于第一人脸特征点为经过旋转后的目标图像中的人脸特征点,为了确定出未经旋转的该目标图像中人脸特征点的坐标位置,需要对该第一人脸特征点进行旋转,以得到该第一人脸特征点对应的第二人脸特征点。

作为一种可选方式,根据该横滚角,可以确定与该横滚角对应的映射矩阵,如,根据该横滚角度,计算一个处于表征点变换的映射矩阵。然后针对每个第一人脸特征点,将该第一人脸特征点与该映射矩阵相乘,可以得到该第一人脸特征点映射到该目标图像中所得到的第二人脸特征点。

当然,该多个第一人脸特征点也可以构成一个矩阵,并将该多个人脸特征点构成的矩阵与该映射矩阵相乘,从而得到多个第二人脸特征点构成的矩阵。

具体的,该映射公式可以为:

B=A*C (公式一);

其中,A为第一人脸特征点或者多个第一人脸特征点构成的矩阵,C映射矩阵,该映射矩阵为2*2的矩阵,且映射矩阵中包含角度变换信息,B为第二人脸特征点或者多个第二人脸特征点构成的矩阵。

可以理解的是,由于视频数据可能经过压缩等,从视频中获取到的目标图像有可能是经过压缩的,当该目标图像为被缩放的图像时,还需要对第一人脸特征点进行缩放,才可以最终得到未经缩放的目标图像上的人脸特征点,因此,在将第一人脸特征点映射到第二人脸特征点之后,还需要进一步对第二人脸特征点进行缩放。具体的,依据该目标图像的缩放比,对该多个第二人脸特征点进行缩放处理,并将缩放处理后的多个第二人脸特征点作为所述目标图像中人脸的特征点。

特别的,当目标图像为缩放后的图像时,也可以利用公式一,直接对第一人脸特征点进行变化,以得到第二人脸特征点,不过在该公式一种该映射矩阵实际上是一个变换矩阵,在该变换矩阵中除了包含角度变换信息之外,还可以有尺度变换信息。

可见,在本申请实施例中,在从视频中获取到待处理的目标图像之后,会根据该目标图像的前一帧图像中人脸的横滚角度进行人脸姿态变化估计,这样,依据该前一帧图像中人脸的横滚角度对该目标图像进行旋转,可以抵消由于人脸歪头而导致目标图像中人脸的偏向,使得旋转后的目标图像中人脸的朝向为正向,这样,有利于从旋转后的目标图像中较为精准的提取出人脸特征点,从而可以减少由于人脸歪头等姿态变化而导致提取出的特征点不准确的问题,在此基础上,将从旋转后的目标图像中提取出的人脸特征点映射到未经旋转的目标图像中,就可以得到目标图像中人脸特征点的坐标,从而可以提高目标图像中定位出的人脸特征点的准确度。

可以理解的是,在以上实施例中,为了能够为目标图像之后的下一帧图像的处理提供依据,还可以确定当前待处理的该目标图像中人脸的横滚角度;并存储目标图像中人脸的横滚角度。

其中,确定目标图像中人脸的横滚角度的方式可以有多种,为了提高横滚角度的准确性,可以依据该目标图像中确定出的人脸特征点,即依据该多个第二人脸特征点,确定出目标图像中人脸的横滚角度。如,依据该多个第二人脸特征点,与正向人脸图像进行比对,从而确定出该目标图像中人脸的横滚角度。

在一种实现方式中,可以先根据前一帧图像人脸的横滚角度,以及预置的正向人脸模型,预估一相似变化矩阵,然后,根据该目标图像的多个第二人脸特征点,以及该相似变换矩阵,确定出该目标图像中人脸的横滚角度。计方法为计算平均形状和当前形状的相似变换矩阵,依据相似变换矩阵可以算得旋转角度。

其中,相似变换矩阵M,矩阵M可以通过如下公式二确定:

Min|E-F*M|2 (公式二)

其中,E为前一帧图像的横滚角度所表征的形状矩阵,F为预置的正向人脸模型所对应的形状矩阵。通过计算得到使得公式二最小的值,就可以得到相似变换矩阵M。利用M很容易确定旋转角度。

当然,本申请对于确定人脸的横滚角度的具体方式不作限制。

可以理解的是,一般的特征点定位算法都具有一定的容忍性,即,在人脸的横滚角度处于特定角度范围内时,仍可以精准确定出图像中人脸的特征点,因此,为了降低旋转图像等处理而带来的数据处理量,本申请还可以根据特征点定位算法(或者说,特征点定位模型)所能允许的横滚角度的最大角度范围,预设一个角度范围,相应的,当上一帧图像的横滚角度处于该预设的角度范围内时,则可以预估出当前目标图像中人脸的偏转角度较小,在该种情况下,则无需旋转该目标图像,便可以直接从目标图像中定位人脸的特征点;相反的,如果上一帧图像的横滚角度未处于该预设的角度范围内时,则可以预估出当前目标图像中人脸的偏转角度较大,如果直接从该目标图像中定位人脸特征点,则会使得定位出的人脸特征点的准确度较低,因此,需要对该目标图像进行旋转之后,再从旋转后的目标图像中进行人脸特征点的定位,然后再将定位出的人脸特征点映射到该目标图像中。

可以理解的是,考虑到视频中第一帧图像不存在前一帧图像,因此,对应视频中第一帧图像,则可以直接从该第一帧图像中定位出人脸的特征点,并依据人脸的特征点估计该第一帧图像中人脸的横滚角度,以为第二帧图像是否旋转以及如何定位特征点提供依据。

如,参见图3,其示出了本申请一种人脸特征点定位方法又一个实施例的流程示意图,本实施例的方法可以包括:

S301,从视频中获取当前待处理的目标图像;

该目标图像中包含人脸图像。

S302,判断该目标图像是否为该视频的第一帧图像,如果是,则执行步骤S303;如果否,则执行步骤S305。

S303,从该目标图像中定位出人脸特征点。

S304,依据该目标图像中的人脸特征点,估计该目标图像中人脸的横滚角度,并存储该目标图像中人脸的横滚角度。

如果是第一帧图像,或者是目标图像的前一帧图像的横滚角度未超出预设的角度范围,则无需旋转该目标图像,而直接从该目标图像中定位出人脸的特征点。同时,为了能够为该目标图像的下一帧图像的人脸的横滚角度提供依据,需要估计出该目标图像中人脸的横滚角度。

S305,获取存储的该目标图像的前一帧图像中人脸的横滚角度。

如,第二帧图像需要获取第一帧图像中人脸的横滚角度;第三帧图像需要获取第二帧图像中人脸的横滚角度,依次类推。

S306,判断该横滚角度是否超出预设的角度范围,如果是,则执行步骤S307;如果否,则执行步骤S303。

由于相邻两帧图像中人脸的姿态变化较小,如果上一帧图像中人脸的横滚角度小于预设的角度范围,则可以预测出该目标图像中人脸的横滚角度也不会太大,仍处于该预设的角度范围,所以人脸特征点定位算法或者定位模型,仍可以准确定位该目标图像中的人脸特征点,在该种情况下,则可以依据步骤S303的方式,直接从该目标图像中提取出人脸的特征点。相反的,则需要对目标图像进行旋转。

S307,根据该前一帧图像中人脸的横滚角度,对该目标图像进行旋转。

S308,对旋转后的目标图像进行人脸特征点定位,得到第一人脸特征点集合。

其中,第一人脸特征点集合中包括多个第一人脸特征点。

S309,根据该横滚角度,确定映射矩阵,并通过该映射矩阵将该多个第一人脸特征点分别映射为未经旋转的该目标图像中的多个第二人脸特征点,将该多个第二人脸特征点确定为该目标图像的人脸特征点。

S310,依据该目标图像的多个第二人脸特征点,估计该目标图像中人脸的横滚角度,并存储该目标图像中人脸的横滚角度。

以上步骤S307到S310可以参见前面实施例的相关介绍,在此不再赘述。

可以理解的是,当目标图像存在缩放时,该步骤S309中确定出的映射矩阵中可以包含尺度缩放信息,以通过该映射矩阵对该第一人脸特征点进行缩放,具体可以参见前面相关介绍,在此不再赘述。

对应本申请的一种人脸特征点定位方法,本申请还提供了一种人脸特征点定位装置。如,参见图4,其示出了本申请一种人脸特征点定位装置一个实施例的组成结构示意图,本实施例的装置可以包括:

图像获取单元401,用于从视频中获取当前待处理的一帧目标图像,所述目标图像中包含人脸图像;

姿态获取单元402,用于获取前一帧图像中人脸的横滚角度,所述前一帧图像为所述视频中处于所述目标图像之前且紧邻所述目标图像的一帧图像;

图像旋转单元403,用于根据所述横滚角度,对所述目标图像进行旋转;

第一点定位单元404,用于对旋转后的目标图像进行人脸特征点定位,得到第一人脸特征点集合,所述第一人脸特征点集合中包括多个第一人脸特征点;

特征点映射单元405,用于根据所述横滚角度,分别将每个所述第一人脸特征点映射到未经旋转的所述目标图像中,得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点。

在一种实现方式中,该装置还可以包括:

姿态判断单元,用于在所述图像旋转单元根据所述横滚角度,对所述目标图像进行旋转之前,判断所述横滚角度是否处于预设的角度范围内;

所述图像旋转单元具体为,用于当所述姿态判断单元判断出所述横滚角度未处于所述预设的角度范围内时,根据所述横滚角度,对所述目标图像进行旋转;

第二点定位单元,用于当所述横滚角度处于所述预设的角度范围内时,从所述目标图像中定位出人脸的特征点。

在以上装置实施例的基础上,所述特征点映射单元,可以包括:

矩阵匹配子单元,用于确定与所述横滚角度对应的映射矩阵;

映射子单元,用于针对每个第一人脸特征点,将所述第一人脸特征点与所述映射矩阵相乘,得到所述第一人脸特征点映射到所述目标图像中所得到的第二人脸特征点。

在以上装置实施例的基础上,该装置还可以包括:

特征点缩放单元,在所述特征点映射单元得到所述目标图像中分别与所述多个第一人脸特征点具有映射关系的多个第二人脸特征点之后,当所述目标图像为被缩放的图像时,依据所述目标图像的缩放比,对所述多个第二人脸特征点进行缩放处理,并将缩放处理后的多个第二人脸特征点作为所述目标图像中人脸的特征点。

在一种实现方式中,该装置还包括:

姿态估计单元,用于依据所述多个第二人脸特征点,确定当前待处理的所述目标图像中人脸的横滚角度;

姿态存储单元,用于存储所述目标图像中人脸的横滚角度。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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