人脸关键点定位方法及装置

阅读:1020发布:2020-05-30

专利汇可以提供人脸关键点定位方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种人脸关键点 定位 方法及装置,所述人脸关键点定位方法包括:将至少一 帧 人脸图像输入至 卷积神经网络 ,卷积神经网络对至少一帧人脸图像进行特征提取;以及将提取的特征输入至 递归神经网络 ,递归神经网络结合至少一帧人脸图像之前帧的人脸图像通过递归神经网络的输出,预测至少一帧人脸图像中的多个人脸关键点。根据本发明 实施例 的人脸关键点定位方法及装置基于递归神经网络处理时序序列的特征,从而能够对视频数据中的人脸关键点进行准确地预测。,下面是人脸关键点定位方法及装置专利的具体信息内容。

1.一种人脸关键点定位方法,其特征在于,所述人脸关键点定位方法包括:
将至少一人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取;以及
将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点;
所述人脸关键点定位方法进一步包括:
对于所述递归神经网络预测的多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集;
当所述多个神经网络预测的至少一个人脸关键点被至少两个子集覆盖时,进一步使用线性变换确定人脸关键点;
所述线性变换包括:获得被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值;以及根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点;
所述预定的加权向量预先根据训练数据集获得,所述获得方法包括:对于所述训练数据集中的至少一个训练人脸关键点被多个训练子集覆盖的情况,获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值;计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小;
以及将计算得到的训练加权向量作为所述预定的加权向量。
2.根据权利要求1所述的人脸关键点定位方法,其特征在于,所述递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。
3.根据权利要求1所述的人脸关键点定位方法,其特征在于,每个子集对应一个矩形,并且,在将所述多个子集分别输入至所述多个神经网络时,保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
4.根据权利要求1所述的人脸关键点定位方法,其特征在于,
训练所述多个神经网络,所述训练方法包括:
对于训练数据集中的多个训练人脸关键点,获得所述训练人脸关键点的坐标;
根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻;以及将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
5.根据权利要求4所述的人脸关键点定位方法,其特征在于,每个训练子集对应一个矩形,并且,在将所述多个训练子集分别输入至所述多个神经网络时,保持每个矩形的中心,将每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
6.根据权利要求1所述的人脸关键点定位方法,其特征在于,所述卷积神经网络包括经过压缩之后的卷积神经网络。
7.根据权利要求6所述的人脸关键点定位方法,其特征在于,所述卷积神经网络基于剪枝算法而被压缩,所述剪枝算法包括:
对于所述卷积神经网络的每一层的通道,基于所述通道中每个通道的权值最大值对所述通道按照权值最大值从小到大的顺序进行排序,并将所述排序中靠前的预定个数的通道依次从所述卷积神经网络中删去。
8.根据权利要求1所述的人脸关键点定位方法,其特征在于,所述多个神经网络包括经过压缩之后的多个神经网络。
9.根据权利要求8所述的人脸关键点定位方法,其特征在于,所述多个神经网络基于剪枝算法而被压缩,所述剪枝算法包括:
针对每一个神经网络的每一层的通道,基于所述通道中每个通道的权值最大值对所述通道按照权值最大值从小到大的顺序进行排序,并将所述排序中靠前的预定个数的通道依次从所述神经网络中删去。
10.一种人脸关键点定位装置,其特征在于,所述人脸关键点定位装置包括:
人脸图像特征提取模,用于接收至少一帧人脸图像,并将所述至少一帧人脸图像输入至卷积神经网络,以对所述至少一帧人脸图像进行特征提取;以及
人脸关键点预测模块,用于接收所述提取的特征,并将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点;
所述人脸关键点预测模块进一步用于:对于所述递归神经网络预测的所述多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集;
当所述多个神经网络预测的至少一个人脸关键点被至少两个子集覆盖时,所述人脸关键点预测模块获得所述被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值,并根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点;
所述人脸关键点定位装置还包括第一训练模块,用于根据训练数据集获得所述预定的加权向量;
在所述训练数据集中的一个训练人脸关键点被多个训练子集覆盖的情况下,所述第一训练模块获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值,计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小,并将计算得到的训练加权向量作为所述预定的加权向量。
11.根据权利要求10所述的人脸关键点定位装置,其特征在于,所述递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。
12.根据权利要求10所述的人脸关键点定位装置,其特征在于,每个子集对应一个矩形,并且,在将所述多个子集分别输入至所述多个神经网络时,所述人脸关键点预测模块保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
13.根据权利要求10所述的人脸关键点定位装置,其特征在于,所述人脸关键点定位装置还包括第二训练模块,所述第二训练模块用于训练所述多个神经网络,其中,对于训练数据集中的多个训练人脸关键点,所述第二训练模块获得所述训练人脸关键点的坐标,根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻,所述第二训练模块将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
14.根据权利要求13所述的人脸关键点定位装置,其特征在于,每个训练子集对应一个矩形,并且,在将所述多个训练子集分别输入至所述多个神经网络时,所述第二训练模块保持所述每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
15.根据权利要求10所述的人脸关键点定位装置,其特征在于,所述卷积神经网络包括经过压缩之后的卷积神经网络。
16.根据权利要求15所述的人脸关键点定位装置,其特征在于,所述卷积神经网络基于剪枝算法而被压缩,所述剪枝算法包括:
对于所述卷积神经网络的每一层的通道,基于所述通道中每个通道的权值最大值对所述通道按照权值最大值从小到大的顺序进行排序,并将所述排序中靠前的预定个数的通道依次从所述卷积神经网络中删去。
17.根据权利要求10所述的人脸关键点定位装置,其特征在于,所述多个神经网络包括经过压缩之后的多个神经网络。
18.根据权利要求17所述的人脸关键点定位装置,其特征在于,所述多个神经网络基于剪枝算法而被压缩,所述剪枝算法包括:
针对每一个神经网络的每一层的通道,基于所述通道中每个通道的权值最大值对所述通道按照权值最大值从小到大的顺序进行排序,并将所述排序中靠前的预定个数的通道依次从所述神经网络中删去。

说明书全文

人脸关键点定位方法及装置

技术领域

[0001] 本发明涉及人脸识别技术领域,更具体地涉及一种人脸关键点定位方法及装置。

背景技术

[0002] 人脸关键点定位在人脸检测和美容软件上有着重大的应用。凭借着计算机图形处理单元(GPU)的计算能和神经网络的学习能力,人脸关键点技术已经得到了很大的提升,但是现有的人脸关键点技术基于主要基于图片进行,而在处理视频图像的时候,会出现人脸关键点检测不准确的情况。

发明内容

[0003] 考虑到上述问题而提出了本发明。本发明提供了一种人脸关键点定位方法及装置,其基于递归神经网络处理时序序列的特征,从而能够对视频数据中的人脸关键点进行准确地预测。
[0004] 根据本发明一方面,提供了一种人脸关键点定位方法,所述人脸关键点定位方法包括:将至少一人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取;以及将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。
[0005] 在本发明的一个实施例中,所述人脸关键点定位方法进一步包括:对于所述递归神经网络预测的多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集。
[0006] 在本发明的一个实施例中,所述递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。
[0007] 在本发明的一个实施例中,每个子集对应一个矩形,并且,在将所述多个子集分别输入至所述多个神经网络时,保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0008] 在本发明的一个实施例中,当所述多个神经网络预测的至少一个人脸关键点被至少两个子集覆盖时,进一步使用线性变换确定人脸关键点。
[0009] 在本发明的一个实施例中,所述线性变换方法包括:获得被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值;以及根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点。
[0010] 在本发明的一个实施例中,所述预定的加权向量预先根据训练数据集获得,所述获得方法包括:对于所述训练数据集中的至少一个训练人脸关键点被多个训练子集覆盖的情况,获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值;计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小;以及将计算得到的训练加权向量作为所述预定的加权向量。
[0011] 在本发明的一个实施例中,训练所述多个神经网络,所述训练方法包括:对于训练数据集中的多个训练人脸关键点,获得所述训练人脸关键点的坐标;根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻;以及将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
[0012] 在本发明的一个实施例中,每个训练子集对应一个矩形,并且,在将所述多个训练子集分别输入至所述多个神经网络时,保持每个矩形的中心,将每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0013] 在本发明的一个实施例中,所述卷积神经网络包括经过压缩之后的卷积神经网络。
[0014] 在本发明的一个实施例中,所述卷积神经网络基于剪枝算法而被压缩,所述剪枝算法包括:对于所述卷积神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去。
[0015] 在本发明的一个实施例中,所述多个神经网络包括经过压缩之后的多个神经网络。
[0016] 在本发明的一个实施例中,所述多个神经网络基于剪枝算法而被压缩,所述剪枝算法包括:对于所述卷积神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述神经网络中删去。
[0017] 根据本发明另一方面,提供了一种人脸关键点定位装置,所述人脸关键点定位装置包括:人脸图像特征提取模,用于接收至少一帧人脸图像,并将所述至少一帧人脸图像输入至卷积神经网络,以对所述至少一帧人脸图像进行特征提取;以及人脸关键点预测模块,用于接收所述提取的特征,并将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。
[0018] 在本发明的一个实施例中,所述人脸关键点预测模块进一步用于:对于所述递归神经网络预测的所述多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集。
[0019] 在本发明的一个实施例中,所述递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。
[0020] 在本发明的一个实施例中,每个子集对应一个矩形,并且,在将所述多个子集分别输入至所述多个神经网络时,所述人脸关键点预测模块保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0021] 在本发明的一个实施例中,当所述多个神经网络预测的至少一个人脸关键点被至少两个子集覆盖时,所述人脸关键点预测模块获得所述被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值,并根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点。
[0022] 在本发明的一个实施例中,所述人脸关键点定位装置还包括第一训练模块,用于根据训练数据集获得所述预定的加权向量。
[0023] 在本发明的一个实施例中,在所述训练数据集中的一个训练人脸关键点被多个训练子集覆盖的情况下,所述第一训练模块获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值,计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小,并将计算得到的训练加权向量作为所述预定的加权向量。
[0024] 在本发明的一个实施例中,所述人脸关键点定位装置还包括第二训练模块,所述第二训练模块用于训练所述多个神经网络,其中,对于训练数据集中的多个训练人脸关键点,所述第二训练模块获得所述训练人脸关键点的坐标,根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻,所述第二训练模块将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
[0025] 在本发明的一个实施例中,每个训练子集对应一个矩形,并且,在将所述多个训练子集分别输入至所述多个神经网络时,所述第二训练模块保持所述每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0026] 在本发明的一个实施例中,所述卷积神经网络包括经过压缩之后的卷积神经网络。
[0027] 在本发明的一个实施例中,所述卷积神经网络基于剪枝算法而被压缩,所述剪枝算法包括:对于所述卷积神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去。
[0028] 在本发明的一个实施例中,所述多个神经网络包括经过压缩之后的多个神经网络。
[0029] 在本发明的一个实施例中,所述多个神经网络基于剪枝算法而被压缩,所述剪枝算法包括:对于所述卷积神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述神经网络中删去。
[0030] 根据本发明实施例的人脸关键点定位方法及装置基于递归神经网络处理时序序列的特征,从而能够对视频数据中的人脸关键点进行准确地预测。附图说明
[0031] 通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0032] 图1是用于实现根据本发明实施例的人脸关键点定位方法和装置的示例电子设备的示意性框图
[0033] 图2是根据本发明实施例的人脸关键点定位方法的示意性流程图
[0034] 图3是根据本发明另一实施例的人脸关键点定位方法的示意性流程图;
[0035] 图4是根据本发明实施例的人脸关键点定位装置的示意性框图;以及
[0036] 图5是根据本发明实施例的人脸关键点定位系统的示意性框图。

具体实施方式

[0037] 为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
[0038] 首先,参照图1来描述用于实现本发明实施例的人脸关键点定位方法和装置的示例电子设备100。
[0039] 如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像传感器110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
[0040] 所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
[0041] 所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
[0042] 所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘鼠标、麦克触摸屏等中的一个或多个。
[0043] 所述输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
[0044] 所述图像传感器110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。
[0045] 示例性地,用于实现根据本发明实施例的人脸关键点定位方法和装置的示例电子设备可以被实现为诸如智能手机、平板电脑等移动终端上。
[0046] 下面,将参考图2描述根据本发明实施例的人脸关键点定位方法200。
[0047] 在步骤S210,将至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取。
[0048] 首先,从图片或者视频流中接收至少一帧人脸图像,将所述至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取。在一个实施例中,所述卷积神经网络可以包括一个训练好的多层(例如,三层)卷积神经网络,以对所述至少一帧人脸图像进行特征提取。
[0049] 在步骤S220,将所述提取的特征输入至递归神经网络(Recurrent Neural Network,简称RNN),所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。
[0050] 递归神经网络可以利用内部的记忆信息处理时序的输入序列。递归神经网络可以根据预定的函数、结合递归神经网络中的记忆信息(例如,所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出),预测所述至少一帧人脸图像中的多个人脸关键点。所述预定的函数可以包括递归神经网络的输入输出函数,如等式(1)所示:
[0051] h’=f1(Wh*h+Wx*x+b)  等式(1)
[0052] 其中x是递归神经网络的输入(例如,所述至少一帧人脸图像经过卷积神经网络提取的特征);Wh,Wx为线性变换矩阵;b是常向量;h是递归神经网络的记忆信息(例如,所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出);f1为非线性函数,如tanh(x),sigmoid(x),max(x,0)等;h’是递归神经网络的输出(例如,预测的所述至少一帧图像中的人脸关键点)。
[0053] 在一个实施例中,所述递归神经网络RNN接收t时刻的人脸图像,并根据等式(1)中所示的函数、结合t时刻之前的任一帧(例如(t-n)时刻的图像帧(1≤n≤(t-1))通过递归神经网络预测得到的人脸关键点信息,预测t时刻的人脸图像中的多个人脸关键点,例如,81个人脸关键点。
[0054] 当t=1时,即对于初始时刻(t=1)的人脸图像的人脸关键点预测,所述递归神经网络RNN采用的记忆信息是h0,即递归神经网络内部存储的初始记忆信息,示例性地,h0被定义为一个全0向量。
[0055] 根据本发明实施例的人脸关键点定位方法利用递归神经网络根据t时刻的图像帧的特征和t时刻之前时刻的图像帧的记忆信息结合,预测多个人脸关键点。递归神经网络基于视频的时序特征、结合前后帧的图像信息预测人脸关键点,有利于克服视频中人脸模糊和抖动严重的情况,并使得预测的人脸关键点结果更加准确。
[0056] 在一个实施例中,可以收集大量带人脸关键点标注的图片/视频,作为训练数据集以用于训练卷积神经网络和递归神经网络。其中,所述卷积神经网络可以被压缩,例如,压缩到可以在一般移动终端使用的大小,然后将经压缩的卷积神经网络移植到移动终端上,以在移动终端上对人脸图像进行特征提取,并基于所提取的特征利用递归神经网络预测多个关键点。
[0057] 根据本发明的实施例,被移植到移动终端上的卷积神经网络是基于剪枝(pruning)算法进行压缩的。基于pruning算法的压缩能够达到较大的压缩率,且不会带来性能损失。
[0058] 示例性地,基于pruning算法对卷积神经网络的压缩过程可以为如下:对于多层的已经训练好的卷积神经网络,每经过若干轮训练,将每一层的通道(channel)个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去,例如按照权值最大值的从小到大的顺序依次删除预定个数的通道。其中,所述预定个数可以按照一定的比例选择,该比例比如可以为5%。在删去所述通道时,可以将通道的输出设置为0以实现通道的删除。然后再基于训练数据集进行训练,直到能够达到删去所述通道前的训练结果。
[0059] 例如,假设第r层的神经网络的输出总共有p个通道(或特征图(feature map)),第c个通道的输出是一个i*j的矩阵Ac{i,j};那么令maxp=max(|Ac{i,j}|for all i,j),其中,i=0,……(n-1);j=0,……(m-1);1≤c≤p,则每次被删去的通道是maxp从小到大排序的前k(k取决于所需要删除的比例)个通道,将这个被删去的通道的输出和计算所述输出所对应的权值清空,即,将该通道的输出全部设置成0即可。
[0060] 在其他示例中,也可以采用张量(tensor)、分解(decomposition)等方法对卷积神经网络进行压缩。
[0061] 所述训练好的、经压缩的卷积神经网络可以移植到移动终端上对人脸关键点定位,由此,可以利用卷积神经网络的优势学习较抽象的特征,从而提高人脸关键点定位的准确度。此外,由于卷积神经网络经过了压缩,因此可以减少网络运行的时间,并缩短整个关键点定位的过程耗时。
[0062] 示例性地,根据本发明实施例的人脸关键点定位方法可以在具有存储器和处理器的设备、装置或者系统中实现。
[0063] 根据本发明实施例的人脸关键点定位方法可以部署在个人移动终端处,诸如智能电话、平板电脑等。
[0064] 下面,将参考图3描述根据本发明另一实施例的人脸关键点定位方法300。
[0065] 在步骤S310将至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取。
[0066] 在步骤S320,将所述提取的特征输入至递归神经网络(Recurrent Neural Network,简称RNN),所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。示例性地,所述递归神经网络可以根据预定的函数、结合递归神经网络中的记忆信息(例如,所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出),预测所述至少一帧人脸图像中的多个人脸关键点,所述预定的函数如上文中的等式(1)所示。在一个实施例中,所述多个人脸关键点可以是81个。
[0067] 在步骤S330,对于所述递归神经网络预测的多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集。
[0068] 其中,步骤S310和S320分别与图2中所示出的步骤S210和S220相类似,为了简洁,此处不再赘述。
[0069] 在步骤S330中,基于在步骤S320所得到的初步预测结果,即对步骤S320中递归神经网络预测的多个人脸关键点,选取不同的多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置。其中,所述多个神经网络分别对应所述多个子集。在一个实施例中,对于S320中递归神经网络预测的所有人脸关键点选取不同的子集,其中,递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。每个子集可以对应一个矩形(例如,最小的包含子集中的人脸关键点的正方形),并且,在将所述多个子集分别输入至所述多个神经网络时,保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数(例如,1.3倍),以将所述每个矩形调整为与对应的每个神经网络的输入大小(例如,40*40)相适应。所述多个神经网络接收对应的子集并进行人脸关键点预测,以确定最终的人脸关键点位置。
[0070] 在一个实施例中,所述多个神经网络预测出的人脸关键点会被至少两个子集覆盖。在这种情况下,进一步使用线性变换确定人脸关键点位置。
[0071] 在一个实施例中,对于所述神经网络预测出来的一个人脸关键点被至少两个子集覆盖的情况,获得被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值,并根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点。
[0072] 例如,假设多个神经网络中的第N个神经网络预测出的一个人脸关键点i被k个子集覆盖。在这种情况下,获得被覆盖的人脸关键点i所在的k个子集对所述被覆盖的人脸关键点i的k个预测值P,P=(p1,……pk)。根据预定的加权向量a,将所述预定的加权向量a点乘P,即a·P,并将所述点乘的结果作为确定的人脸关键点。
[0073] 在一个实施例中,所述预定的加权向量可以预先根据训练数据集获得。示例性地,对于所述训练数据集中的至少一个训练人脸关键点被多个训练子集覆盖的情况,获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值,计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小,将计算得到的训练加权向量作为所述预定的加权向量。
[0074] 例如,假设训练数据集中的一个训练人脸关键点i’被j个训练子集覆盖。在这种情况下,获得被覆盖的训练人脸关键点i’所在的j个训练子集对所述被覆盖的训练人脸关键点i’的j个预测值P’,P’=(p’1……,p’j)。计算一个训练加权向量a’,使得所述训练加权向量a’点乘P’,即a’·P’的结果与该训练人脸关键点i’的标注位置g的距离最小。计算距离时,使用L2距离,故直接用最小二乘法即可。将计算得到的训练加权向量a’作为所述预定的加权向量a,用于进一步确定人脸关键点位置。
[0075] 在一个实施例中,所述多个神经网络是训练好的神经网络。在训练所述多个神经网络的过程中,可以用标注好人脸关键点的视频数据作为训练数据集。对于训练数据集中的多个(例如,81个)标注好的训练人脸关键点,获得所述训练人脸关键点的坐标,根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻,将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
[0076] 更具体地,在一个实施例中,每个训练子集可以对应一个矩形,作为训练步骤S330中相应的神经网络的输入(基本上就是最小的包含子集中的训练人脸关键点的正方形),保持矩形的中心,将矩形的边长扩大预定倍数,例如1.3倍,将每个矩形的尺寸大小调整到对应的神经网络的输入大小(例如40*40),将调整好尺寸之后的矩形输入至对应的神经网络,用于训练步骤S330中的多个神经网络。
[0077] 在一个实施例中,所述多个神经网络包括经过压缩之后的多个神经网络。例如,可以使用pruning算法对训练好的多个神经网络的进行压缩。示例性地,针对每一个神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从神经网络中删去,例如按照权值最大值的从小到大的顺序依次删除预定个数的通道,其中,所述预定个数可以按照一定的比例选择,该比例比如为5%。在删去所述通道时,将这个被删去的通道的输出和计算所述输出所对应的权值清空,即,将该通道的输出全部设置成0即可,以实现通道的删除。然后基于训练数据集进行训练,直到能够达到删去所述通道前的训练结果。在另一个实施例中,也可以采用张量(tensor)、分解(decomposition)等方法对训练好的多个神经网络进行压缩。
[0078] 所述卷积神经网络也可以被压缩。在一个实施例中,所述卷积神经网络是基于剪枝(pruning)算法进行压缩的。基于pruning算法的压缩能够达到较大的压缩率,且不会带来性能损失。
[0079] 示例性地,基于pruning算法对卷积神经网络的压缩过程可以为如下:对于多层的已经训练好的卷积神经网络,每经过若干轮训练,将每一层的通道(channel)个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去,例如按照权值最大值的从小到大的顺序依次删除预定个数的通道。其中,所述预定个数可以按照一定的比例选择,该比例比如可以为5%。在删去所述通道时,可以将通道的输出设置为0以实现通道的删除。然后再基于训练数据集进行训练,直到能够达到删去该通道前的训练结果。
[0080] 根据上述实施例的人脸关键点定位方法利用递归神经网络处理时序序列的特征,从而能够对视频数据中的人脸关键点进行准确地预测。并且,上述实施例的人脸关键点定位方法采用多个神经网络对所预测的每个人脸关键点再进行多次预测,能够得到更精确的人脸关键点预测结果。此外,本发明实施例中使用的卷积神经网络和用于确定人脸关键点的多个神经网络还可以被压缩,因此,本发明实施例的人脸关键点定位方法可以在移动终端上应用,并且,在不超出移动终端的计算容量的前提下,尽可能地发挥神经网络效果,而且,在尽可能耗时小的情况下提高移动终端上人脸关键点定位的准确率。
[0081] 图4示出了根据本发明实施例的人脸关键点定位装置400的示意性框图。如图4所示,根据本发明实施例的人脸关键点定位装置400包括人脸图像特征提取模块410和人脸关键点预测模块420。所述各个模块可分别执行上文中结合图2和图3描述的人脸关键点定位方法的各个步骤/功能。以下仅对该人脸关键点定位装置400的各模块的主要功能进行描述,而省略以上已经描述过的细节内容。
[0082] 人脸图像提取模块410用于接收至少一帧人脸图像,并将所述至少一帧人脸图像输入至卷积神经网络,以用于对所述至少一帧人脸图像进行特征提取。人脸图像提取模块410可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现,并且可以执行根据本发明实施例的人脸关键点定位方法中的步骤S210和S310。
[0083] 人脸关键点预测模块420用于接收所述提取的特征,并将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。人脸关键点预测模块420可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现,并且可以执行根据本发明实施例的人脸关键点定位方法中的步骤S220和S320。
[0084] 根据本发明实施例,人脸图像特征提取模块410从图片或者视频流中接收至少一帧人脸图像,将所述至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取。在一个实施例中,所述卷积神经网络可以包括一个训练好的多层(例如,三层)卷积神经网络,以对所述至少一帧人脸图像进行特征提取。
[0085] 递归神经网络可以利用内部的记忆信息处理时序的输入序列。递归神经网络可以根据预定的函数、结合递归神经网络中的记忆信息(例如,所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出),预测所述至少一帧人脸图像中的多个人脸关键点。所述预定的函数如上文中的等式(1)所示。
[0086] 根据本发明的实施例,所述递归神经网络RNN接收t时刻的人脸图像,并根据等式(1)的函数、结合t时刻之前的任一帧(例如(t-n)时刻的图像帧(1≤n≤(t-1))通过递归神经网络预测得到的人脸关键点信息,预测t时刻的人脸图像中的多个人脸关键点,例如,81个人脸关键点。
[0087] 当t=1时,即对于初始时刻(t=1)的人脸图像的人脸关键点预测,所述递归神经网络RNN采用的记忆信息是h0,即递归神经网络内部存储的初始记忆信息。示例性地,所述初始记忆信息h0可以定义为全0向量。
[0088] 在一个实施例中,所述卷积神经网络可以被压缩,例如,压缩到可以在一般移动终端使用的大小,然后将经压缩的卷积神经网络移植到移动终端上,以在移动终端上用于对人脸图像进行特征提取,并基于所提取的特征利用递归神经网络求得人脸关键点。
[0089] 根据本发明的实施例,被移植到移动终端上的卷积神经网络是基于剪枝(pruning)算法进行压缩的。基于pruning算法的压缩能够达到较大的压缩率,且不会带来性能损失。
[0090] 示例性地,基于pruning算法对卷积神经网络的压缩过程可以为如下:对于一个多层卷积神经网络,每经过若干轮训练,将每一层的通道(channel)个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去,例如按照权值最大值的从小到大的顺序依次删除预定个数的通道其中,所述预定个数可以按照一定的比例选择,该比例比如为5%。在删去所述通道时,可以将通道的输出设置为0以实现通道的删除。然后基于训练数据集进行训练,直到能够达到删去该通道前的训练结果。
[0091] 例如,假设第r层的神经网络的输出总共有p个通道(或特征图(feature map)),定义第c个通道的输出是一个i*j的矩阵Ac{i,j};那么令maxp=max(|Ac{i,j}|for all i,j),其中,i=0,……(n-1);j=0,……(m-1),1≤c≤p。则每次被删去的通道是maxp从小到大排序前k(k取决于所需要删除的比例)个通道,即将这个通道的输出和计算所述输出所对应的权值清空,即,将该通道的输出全部设置成0即可。
[0092] 在其他示例中,也可以采用张量(tensor)、分解(decomposition)等方法对卷积神经网络进行压缩。
[0093] 因此,根据本发明实施例的人脸关键点定位装置基于训练好的、经压缩并移植到移动终端上的卷积神经网络,能够在不超出一般移动终端的计算容量的前提下,尽可能地发挥神经网络效果,在尽可能耗时小的情况下提高移动终端上人脸关键点定位的准确率。
[0094] 根据本发明的实施例,人脸图像特征提取模块410可以从视频流中接收至少一帧人脸图像,将所述至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取。所述人脸关键点预测模块420将所述提取的特征输入至递归神经网络(Recurrent Neural Network,简称RNN),所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。示例性地,所述递归神经网络可以根据预定的函数、结合递归神经网络中的记忆信息(例如,所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出),预测所述至少一帧人脸图像中的多个人脸关键点,所述预定的函数如上文中的等式(1)所示。
[0095] 进一步地,对于所述递归神经网络预测的多个人脸关键点,所述人脸关键点预测模块420选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集。
[0096] 根据本发明的实施例,对于递归神经网络预测的所有人脸关键点,所述人脸关键点预测模块420选取多个不同的子集,其中,递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。每个子集可以对应一个矩形(例如,最小的包含子集中的人脸关键点的正方形),并且,在将所述多个子集分别输入至所述多个神经网络时,所述人脸关键点预测模块420保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数(例如,1.3倍),以将所述每个矩形调整为与对应的每个神经网络的输入大小(例如,40*40)相适应。所述多个神经网络接收对应的子集并进行人脸关键点预测,以确定最终的人脸关键点位置。
[0097] 在一个实施例中,所述多个神经网络预测出的人脸关键点会被至少两个子集覆盖。在这种情况下,进一步使用线性变换确定人脸关键点位置。
[0098] 根据本发明的实施例,对于所述神经网络预测出来的一个人脸关键点被至少两个子集覆盖的情况,人脸关键点预测模块420获得被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值,并根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点。
[0099] 根据本发明的实施例,所述预定的加权向量预先根据训练数据集获得。示例性地,根据本发明实施例的人脸关键点定位装置还包括第一训练模块(未示出),在所述训练数据集中的至少一个训练人脸关键点被多个训练子集覆盖的情况下,所述第一训练模块获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值,计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小,将计算得到的训练加权向量作为所述预定的加权向量。
[0100] 在一个实施例中,所述多个神经网络是训练好的神经网络。示例性地,根据本发明实施例的人脸关键点定位装置还包括第二训练模块(未示出)。在训练所述多个神经网络的过程中,可以用标注好的人脸关键点的视频数据作为训练数据集。对于训练数据集中的多个(例如,81个)标注好的训练人脸关键点,所述第二训练模块获得所述训练人脸关键点的坐标,根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻,所述第二训练模块将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
[0101] 根据本发明的实施例,所述第二训练模块对于训练数据集中的多个训练人脸关键点选择多个训练子集,其中,每个训练子集包含在人脸空间上相邻的多个训练人脸关键点。在一个实施例中,每个训练子集可以对应一个矩形,作为训练人脸关键点预测模块420中的多个神经网络的输入(基本上就是最小的包含子集中的训练人脸关键点的子集(矩形),然后,第二训练模块将保持每个矩形的中心,将每个矩形的边长扩大预定倍数(例如,1.3倍),将每个矩形的尺寸大小调整到神经网络的输入大小(例如40*40),第二训练模块进一步将调整尺寸之后的矩形输入至对应的神经网络,以训练人脸关键点预测模块420中的多个神经网络。
[0102] 在一个实施例中,所述多个神经网络包括经过压缩之后的多个神经网络。例如,可以使用pruning算法对训练好的多个神经网络的进行压缩。示例性地,针对每一个神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述神经网络中删去,例如,按照权值最大值的从小到大的顺序依次删除预定个数的通道,其中,所述预定个数可以按照一定的比例选择,该比例比如为5%。在删去所述通道时,将这个被删去的通道的输出和计算所述输出所对应的权值清空,即,将该通道的输出全部设置成0即可,以实现通道的删除。然后基于训练数据集进行训练,直到能够达到删去所述通道前的训练结果。在另一个实施例中,也可以采用张量(tensor)、分解(decomposition)等方法对训练好的多个神经网络进行压缩。在另一个实施例中,也可以采用张量(tensor)、分解(decomposition)等方法对训练好的多个神经网络进行压缩。
[0103] 所述卷积神经网络也可以被压缩。在一个实施例中,所述卷积神经网络是基于剪枝(pruning)算法进行压缩的。基于pruning算法的压缩能够达到较大的压缩率,且不会带来性能损失。
[0104] 示例性地,基于pruning算法对卷积神经网络的压缩过程可以为如下:对于多层的已经训练好的卷积神经网络,每经过若干轮训练,将每一层的通道(channel)个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去,例如按照权值最大值的从小到大的顺序依次删除预定个数的通道。其中,所述预定个数可以按照一定的比例选择,该比例比如可以为5%。在删去所述通道时,可以将通道的输出设置为0以实现通道的删除。然后再基于训练数据集进行训练,直到能够达到删去所述通道前的训练结果。
[0105] 根据上述实施例的人脸关键点定位装置利用递归神经网络处理时序序列的特征,从而能够对视频数据中的人脸关键点进行准确地预测。并且,上述实施例的人脸关键点定位装置可以采用多个神经网络对所预测的每个点再进行多次预测,能够得到更精确的人脸关键点预测结果。此外,根据本发明实施例的人脸关键点定位装置使用的卷积神经网络和用于确定人脸关键点的多个神经网络还可以被压缩,因此,本发明实施例的人脸关键点定位装置可以在移动终端上应用,并且,在不超出移动终端的计算容量的前提下,尽可能地发挥神经网络效果,而且,在尽可能耗时小的情况下提高移动终端上人脸关键点定位的准确率。
[0106] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0107] 图5示出了根据本发明实施例的人脸关键点定位系统500的示意性框图。人脸关键点定位系统500包括图像传感器510、存储装置520、以及处理器530。
[0108] 其中,图像传感器510用于捕捉图像或视频。存储装置520存储用于实现根据本发明实施例的人脸关键点定位方法中的相应步骤的程序代码。处理器530用于运行存储装置520中存储的程序代码,以执行根据本发明实施例的人脸关键点定位方法的相应步骤,并且用于实现根据本发明实施例的人脸关键点定位装置中的相应模块。
[0109] 在一个实施例中,所述程序代码被处理器530运行时,使得所述人脸关键点定位系统500执行以下步骤:将至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取;以及将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。
[0110] 在一个实施例中,所述程序代码被处理器530运行时,还使得所述人脸关键点定位系统500执行以下步骤:对于所述递归神经网络预测的多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集。
[0111] 在一个实施例中,所述递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。
[0112] 在一个实施例中,每个子集对应一个矩形,并且,在将所述多个子集分别输入至所述多个神经网络时,保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0113] 在一个实施例中,所述程序代码被处理器530运行时,还使得所述人脸关键点定位系统500执行以下步骤:当所述多个神经网络预测的至少一个人脸关键点被至少两个子集覆盖时,进一步使用线性变换确定人脸关键点。
[0114] 在一个实施例中,所述线性变换方法包括:获得被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值;以及根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点。
[0115] 在一个实施例中,所述预定的加权向量预先根据训练数据集获得,所述程序代码被处理器530运行时,还使得所述人脸关键点定位系统500执行以下步骤:对于所述训练数据集中的至少一个训练人脸关键点被多个训练子集覆盖的情况,获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值;计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小;以及将计算得到的训练加权向量作为所述预定的加权向量。
[0116] 在一个实施例中,所述程序代码被处理器530运行时,还使得所述人脸关键点定位系统500执行以下步骤:训练所述多个神经网络,所述训练方法包括:对于训练数据集中的多个训练人脸关键点,获得所述训练人脸关键点的坐标;根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻;以及将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
[0117] 在一个实施例中,每个训练子集对应一个矩形,并且,在将所述多个训练子集分别输入至所述多个神经网络时,保持每个矩形的中心,将每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0118] 在一个实施例中,所述卷积神经网络包括经过压缩之后的卷积神经网络。
[0119] 在一个实施例中,所述卷积神经网络基于剪枝算法而被压缩,所述剪枝算法包括:对于所述卷积神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去。
[0120] 在一个实施例中,所述多个神经网络包括经过压缩之后的多个神经网络。
[0121] 在一个实施例中,所述多个神经网络基于剪枝算法而被压缩,所述剪枝算法包括:针对每一个神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述神经网络中删去。
[0122] 此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的人脸关键点定位方法的相应步骤,并且用于实现根据本发明实施例的人脸关键点定位装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含用于预测多个人脸关键点的程序代码,另一个计算机可读存储介质包含用于确定最终的人脸关键点的程序代码。
[0123] 在一个实施例中,所述计算机程序指令在被计算机运行时可以实现根据本发明实施例的人脸关键点定位装置的各个功能模块,并且/或者可以执行根据本发明实施例的人脸关键点定位方法。
[0124] 在一个实施例中,所述计算机程序指令在被计算机运行时使得所述计算机执行以下步骤:将至少一帧人脸图像输入至卷积神经网络,所述卷积神经网络对所述至少一帧人脸图像进行特征提取;以及将所述提取的特征输入至递归神经网络,所述递归神经网络结合所述至少一帧人脸图像之前帧的人脸图像通过所述递归神经网络的输出,预测所述至少一帧人脸图像中的多个人脸关键点。
[0125] 在一个实施例中,所述计算机程序指令在被计算机运行时还使得所述计算机执行以下步骤:对于所述递归神经网络预测的多个人脸关键点,选取多个子集,并将所述多个子集分别输入至多个神经网络再次进行人脸关键点预测,以确定最终的人脸关键点位置,其中,所述多个神经网络分别对应所述多个子集。
[0126] 在一个实施例中,所述递归神经网络预测的每个人脸关键点至少被一个子集覆盖,并且每个子集中的各个人脸关键点在空间上相邻。
[0127] 在一个实施例中,每个子集对应一个矩形,并且,在将所述多个子集分别输入至所述多个神经网络时,保持每个矩形的中心,并将所述每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0128] 在一个实施例中,所述计算机程序指令在被计算机运行时还使得所述计算机执行以下步骤:当所述多个神经网络预测的至少一个人脸关键点被至少两个子集覆盖时,进一步使用线性变换确定人脸关键点。
[0129] 在一个实施例中,所述线性变换方法包括:获得被覆盖的人脸关键点所在的多个子集对所述被覆盖的人脸关键点的多个预测值;以及根据预定的加权向量,将所述预定的加权向量与所述被覆盖的人脸关键点的多个预测值点乘的结果作为确定的人脸关键点。
[0130] 在一个实施例中,所述预定的加权向量预先根据训练数据集获得,所述计算机程序指令在被计算机运行时,使得所述计算机执行的获得方法包括:对于所述训练数据集中的至少一个训练人脸关键点被多个训练子集覆盖的情况,获得所述多个训练子集对所述被覆盖的训练人脸关键点的多个预测值;计算一个训练加权向量,使得所述训练加权向量点乘所述多个预测值的结果与所述被覆盖的训练人脸关键点的标注位置的距离最小;以及将计算得到的训练加权向量作为所述预定的加权向量。
[0131] 在一个实施例中,所述计算机程序指令在被计算机运行时还使得所述计算机执行以下步骤:训练所述多个神经网络,所述训练方法包括:对于训练数据集中的多个训练人脸关键点,获得所述训练人脸关键点的坐标;根据所述训练人脸关键点的坐标,获得多个训练子集,其中,每个训练人脸关键点至少被一个训练子集覆盖,并且每个训练子集中的各个训练人脸关键点在空间上相邻;以及将所述多个训练子集分别输入至所述多个神经网络,以对所述多个神经网络进行训练,其中,所述多个神经网络分别对应于所述多个训练子集。
[0132] 在一个实施例中,每个训练子集对应一个矩形,并且,在将所述多个训练子集分别输入至所述多个神经网络时,保持每个矩形的中心,将每个矩形的边长扩大预定倍数,以将所述每个矩形调整为与对应的每个神经网络的输入大小相适应。
[0133] 在一个实施例中,所述卷积神经网络包括经过压缩之后的卷积神经网络。
[0134] 在一个实施例中,所述卷积神经网络基于剪枝算法而被压缩,所述剪枝算法包括:对于所述卷积神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述卷积神经网络中删去。
[0135] 在一个实施例中,所述多个神经网络包括经过压缩之后的多个神经网络。
[0136] 在一个实施例中,所述多个神经网络基于剪枝算法而被压缩,所述剪枝算法包括:针对每一个神经网络,将每一层的通道个数中权值的最大值最小的预定个数的通道依次从所述神经网络中删去。
[0137] 根据本发明实施例的人脸关键点定位装置中的各模块可以通过根据本发明实施例的人脸关键点定位的电子设备的处理器运行在存储器中存储的计算机程序指令来实现,或者可以在根据本发明实施例的计算机程序产品的计算机可读存储介质中存储的计算机指令被计算机运行时实现。
[0138] 根据本发明实施例的人脸关键点定位方法利用递归神经网络处理时序序列的特征,从而能够对视频数据中的人脸关键点进行准确地预测。并且,根据本发明实施例的人脸关键点定位方法采用多个神经网络对所预测的每个人脸关键点再进行多次预测,能够得到更精确的人脸关键点预测结果。此外,本发明实施例中使用的卷积神经网络和用于确定人脸关键点的多个神经网络还可以被压缩,因此,本发明实施例的人脸关键点定位方法可以在移动终端上应用,并且,在不超出移动终端的计算容量的前提下,尽可能地发挥神经网络效果,而且,在尽可能耗时小的情况下提高移动终端上人脸关键点定位的准确率。
[0139] 尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
[0140] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0141] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
[0142] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0143] 类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0144] 本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0145] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0146] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的物品分析设备中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0147] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0148] 以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈