人脸关键点的模型训练及其检测方法和装置转让专利

申请号 : CN201810118211.3

文献号 : CN108399373B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李宣平

申请人 : 北京达佳互联信息技术有限公司

摘要 :

本发明实施例提供了人脸关键点的模型训练及其检测方法和装置,该模型训练方法包括:从训练图像中提取人脸数据;将所述人脸数据输入至所述第一级网络进行训练,所述第一级网络用于输出人脸关键点的预测坐标;当所述第一级网络训练完成时,在所述人脸数据中、基于所述预测坐标生成目标数据;将所述目标数据输入至所述第二级网络进行训练,所述第二级网络用于输出所述人脸关键点的坐标偏移值;当所述第二级网络训练完成时,确定所述级联网络为人脸关键点检测模型。通过两级网络学习预测坐标与坐标偏移值,在复杂场景下,依然可以得到精确的人脸关键点的坐标。

权利要求 :

1.一种基于级联网络的人脸关键点检测模型的训练方法,其特征在于,所述级联网络包括第一级网络与第二级网络,所述方法包括:从训练图像中提取人脸数据;

将所述人脸数据输入至所述第一级网络进行训练,所述第一级网络用于输出人脸关键点的预测坐标;

当所述第一级网络训练完成时,在所述人脸数据中、基于所述预测坐标生成目标数据;

将所述目标数据输入至所述第二级网络进行训练,所述第二级网络用于输出所述人脸关键点的坐标偏移值;

当所述第二级网络训练完成时,确定所述级联网络为人脸关键点检测模型;

其中,所述在所述人脸数据中、基于所述预测坐标生成目标数据,包括:在所述人脸数据中、基于所述预测坐标提取局部图像数据;将多个人脸关键点对应的所述局部图像数据按照颜色组合为数据矩阵,作为目标数据;

所述人脸数据预先设置有所述人脸关键点的真实坐标。

2.根据权利要求1所述的方法,其特征在于,所述将所述人脸数据输入至所述第一级网络进行训练,包括:将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;

采用所述预测坐标计算第一损失值;

根据所述第一损失值判断所述第一级网络是否收敛;

若是,则确定所述第一级网络训练完成;

若否,则根据所述第一损失值调整所述第一级网络,返回执行所述将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的原始坐标。

3.根据权利要求2所述的方法,其特征在于,所述采用所述预测坐标计算第一损失值,包括:计算所述预测坐标与真实坐标之间的第一距离;

计算所述第一距离的平均值,作为第一损失值。

4.根据权利要求1所述的方法,其特征在于,所述将所述目标数据输入至所述第二级网络进行训练,包括:将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;

采用所述坐标偏移值计算第二损失值;

根据所述第二损失值判断所述第二级网络是否收敛;

若是,则确定所述第二级网络训练完成;

若否,则根据所述第二损失值调整所述第二级网络,返回执行所述将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值。

5.根据权利要求4所述的方法,其特征在于,所述采用所述坐标偏移值计算第二损失值,包括:计算所述预测坐标与所述坐标偏移值之间的第二距离;

计算所述第二距离的平均值,作为第二损失值。

6.根据权利要求1-5任一项所述的方法,其特征在于,还包括:对所述人脸数据进行数据增强处理;

其中,所述数据增强处理包括如下的至少一项:增加噪声数据、裁剪并复原、平移处理、增加对比度。

7.一种基于人脸关键点检测模型的人脸关键点检测方法,其特征在于,所述人脸关键点检测模型包括第一级网络与第二级网络,所述方法包括:从目标图像中提取人脸数据;

将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;

在所述人脸数据中、基于所述预测坐标生成目标数据;

将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;

在所述预测坐标的基础上加上所述坐标偏移值,获得所述人脸关键点的目标坐标;

其中,所述在所述人脸数据中、基于所述预测坐标生成目标数据,包括:基于所述预测坐标提取局部图像数据;将多个人脸关键点对应的局部图像数据按照颜色组合为数据矩阵,作为目标数据;

所述人脸数据预先设置有所述人脸关键点的真实坐标。

8.一种基于级联网络的人脸关键点检测模型的训练装置,其特征在于,所述级联网络包括第一级网络与第二级网络,所述装置包括:人脸数据提取模块,用于从训练图像中提取人脸数据;

第一级网络训练模块,用于将所述人脸数据输入至所述第一级网络进行训练,所述第一级网络用于输出人脸关键点的预测坐标;

目标数据生成模块,用于当所述第一级网络训练完成时,在所述人脸数据中、基于所述预测坐标生成目标数据;

第二级网络训练模块,用于将所述目标数据输入至所述第二级网络进行训练,所述第二级网络用于输出所述人脸关键点的坐标偏移值;

模型确定模块,用于当所述第二级网络训练完成时,确定所述级联网络为人脸关键点检测模型;

其中,所述目标数据生成模块包括:

局部图像数据提取子模块,用于在所述人脸数据中、基于所述预测坐标提取局部图像数据;

矩阵组合子模块,用于将多个人脸关键点对应的所述局部图像数据按照颜色组合为数据矩阵,作为目标数据;

所述人脸数据预先设置有所述人脸关键点的真实坐标。

9.根据权利要求8所述的装置,其特征在于,所述第一级网络训练模块包括:人脸数据输入子模块,用于将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;

第一损失值计算子模块,用于采用所述预测坐标计算第一损失值;

第一级网络收敛判断子模块,用于根据所述第一损失值判断所述第一级网络是否收敛;若是,则调用第一级网络完成子模块,若否,则调用第一级网络调整子模块;

第一级网络完成子模块,用于确定所述第一级网络训练完成;

第一级网络调整子模块,用于根据所述第一损失值调整所述第一级网络,返回调用所述人脸数据输入子模块。

10.根据权利要求9所述的装置,其特征在于,所述第一损失值计算子模块包括:第一距离计算单元,用于计算所述预测坐标与真实坐标之间的第一距离;

第一平均值计算单元,用于计算所述第一距离的平均值,作为第一损失值。

11.根据权利要求8所述的装置,其特征在于,所述第二级网络训练模块包括:目标数据输入子模块,用于将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;

第二损失值计算子模块,用于采用所述坐标偏移值计算第二损失值;

第二级网络收敛判断子模块,用于根据所述第二损失值判断所述第二级网络是否收敛;若是,则调用第二级网络完成子模块,若否,则调用第二级网络调整子模块;

第二级网络完成子模块,用于确定所述第二级网络训练完成;

第二级网络调整子模块,用于根据所述第二损失值调整所述第二级网络,返回调用所述目标数据输入子模块。

12.根据权利要求11所述的装置,其特征在于,所述第二损失值计算子模块包括:第二距离计算单元,用于计算所述预测坐标与所述坐标偏移值之间的第二距离;

第二平均值计算单元,用于计算所述第二距离的平均值,作为第二损失值。

13.根据权利要求8-12任一项所述的装置,其特征在于,还包括:数据增强处理模块,用于对所述人脸数据进行数据增强处理;

其中,所述数据增强处理包括如下的至少一项:增加噪声数据、裁剪并复原、平移处理、增加对比度。

14.一种基于人脸关键点检测模型的人脸关键点检测装置,其特征在于,所述人脸关键点检测模型包括第一级网络与第二级网络,所述装置包括:人脸数据提取模块,用于从目标图像中提取人脸数据;

第一级网络处理模块,用于将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;

目标数据生成模块,用于在所述人脸数据中、基于所述预测坐标生成目标数据;

第二级网络处理模块,用于将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;

目标坐标计算模块,用于在所述预测坐标的基础上加上所述坐标偏移值,获得所述人脸关键点的目标坐标;

其中,所述目标数据生成模块包括:

局部图像数据提取子模块,用于在所述人脸数据中、基于所述预测坐标提取局部图像数据;

矩阵组合子模块,用于将多个人脸关键点对应的所述局部图像数据按照颜色组合为数据矩阵,作为目标数据;

所述人脸数据预先设置有所述人脸关键点的真实坐标。

说明书 :

人脸关键点的模型训练及其检测方法和装置

技术领域

[0001] 本发明涉及计算机处理的技术领域,特别是涉及人脸关键点的模型训练及其检测方法和装置。

背景技术

[0002] 人脸关键点检测是人脸图像研究中的基础技术之一,目的是自动地估计人脸图片上脸部特征点的坐标,例如,脸部轮廓坐标、五官坐标等,其广泛应用于人脸识别、姿态估计、人脸滤镜、化妆美颜、三维建模等。
[0003] 现有的人脸关键点检测技术中,传统的方法包括基于形状约束方法,基于级联回归的方法,经典模型有主动形状模型(Active Shape Models,ASM))和级联回归模型(Cascaded pose regression,CPR)等。
[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] 计算所述第二距离的平均值,作为第二损失值。
[0033] 可选地,还包括:
[0034] 对所述人脸数据进行数据增强处理;
[0035] 其中,所述数据增强处理包括如下的至少一项:
[0036] 增加噪声数据、裁剪并复原、平移处理、增加对比度。
[0037] 根据本发明的另一方面,提供了一种基于人脸关键点检测模型的人脸关键点检测方法,所述人脸关键点检测模型包括第一级网络与第二级网络,所述方法包括:
[0038] 从目标图像中提取人脸数据;
[0039] 将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;
[0040] 在所述人脸数据中、基于所述预测坐标生成目标数据;
[0041] 将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;
[0042] 在所述预测坐标的基础上加上所述坐标偏移值,获得所述人脸关键点的目标坐标。
[0043] 根据本发明的另一方面,提供了一种基于级联网络的人脸关键点检测模型的训练装置,所述级联网络包括第一级网络与第二级网络,所述装置包括:
[0044] 人脸数据提取模块,用于从训练图像中提取人脸数据;
[0045] 第一级网络训练模块,用于将所述人脸数据输入至所述第一级网络进行训练,所述第一级网络用于输出人脸关键点的预测坐标;
[0046] 目标数据生成模块,用于当所述第一级网络训练完成时,在所述人脸数据中、基于所述预测坐标生成目标数据;
[0047] 第二级网络训练模块,用于将所述目标数据输入至所述第二级网络进行训练,所述第二级网络用于输出所述人脸关键点的坐标偏移值;
[0048] 模型确定模块,用于当所述第二级网络训练完成时,确定所述级联网络为人脸关键点检测模型。
[0049] 可选地,所述第一级网络训练模块包括:
[0050] 人脸数据输入子模块,用于将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;
[0051] 第一损失值计算子模块,用于采用所述预测坐标计算第一损失值;
[0052] 第一级网络收敛判断子模块,用于根据所述第一损失值判断所述第一级网络是否收敛;若是,则调用第一级网络完成子模块,若否,则调用第一级网络调整子模块;
[0053] 第一级网络完成子模块,用于确定所述第一级网络训练完成;
[0054] 第一级网络调整子模块,用于根据所述第一损失值调整所述第一级网络,返回调用所述人脸数据输入子模块。
[0055] 可选地,所述第一损失值计算子模块包括:
[0056] 第一距离计算单元,用于计算所述预测坐标与真实坐标之间的第一距离;
[0057] 第一平均值计算单元,用于计算所述第一距离的平均值,作为第一损失值。
[0058] 可选地,所述目标数据生成模块包括:
[0059] 局部图像数据提取子模块,用于在所述人脸数据中、基于所述预测坐标提取局部图像数据;
[0060] 矩阵组合子模块,用于将多个人脸关键点对应的所述局部图像数据按照颜色组合为数据矩阵,作为目标数据。
[0061] 可选地,所述第二级网络训练模块包括:
[0062] 目标数据输入子模块,用于将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;
[0063] 第二损失值计算子模块,用于采用所述坐标偏移值计算第二损失值;
[0064] 第二级网络收敛判断子模块,用于根据所述第二损失值判断所述第二级网络是否收敛;若是,则调用第二级网络完成子模块,若否,则调用第二级网络调整子模块;
[0065] 第二级网络完成子模块,用于确定所述第二级网络训练完成;
[0066] 第二级网络调整子模块,用于根据所述第二损失值调整所述第二级网络,返回调用所述目标数据输入子模块。
[0067] 可选地,所述第二损失值计算子模块包括:
[0068] 第二距离计算单元,用于计算所述预测坐标与所述偏移坐标之间的第二距离;
[0069] 第二平均值计算单元,用于计算所述第二距离的平均值,作为第二损失值。
[0070] 可选地,还包括:
[0071] 数据增强处理模块,用于对所述人脸数据进行数据增强处理;
[0072] 其中,所述数据增强处理包括如下的至少一项:
[0073] 增加噪声数据、裁剪并复原、平移处理、增加对比度。
[0074] 根据本发明的另一方面,提供了一种基于人脸关键点检测模型的人脸关键点检测装置,所述人脸关键点检测模型包括第一级网络与第二级网络,所述装置包括:
[0075] 人脸数据提取模块,用于从目标图像中提取人脸数据;
[0076] 第一级网络处理模块,用于将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;
[0077] 目标数据生成模块,用于在所述人脸数据中、基于所述预测坐标生成目标数据;
[0078] 第二级网络处理模块,用于将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;
[0079] 目标坐标计算模块,用于在所述预测坐标的基础上加上所述坐标偏移值,获得所述人脸关键点的目标坐标。
[0080] 本发明实施例包括以下优点:
[0081] 在本发明实施例中,级联网络包括第一级网络与第二级网络,第一级网络用于输出人脸关键点的预测坐标,第二级网络用于输出人脸关键点的坐标偏移值,从训练图像中提取人脸数据并输入至第一级网络进行训练,当第一级网络训练完成时,在人脸数据中、基于预测坐标生成目标数据并输入至第二级网络进行训练,当第二级网络训练完成时,确定级联网络为人脸关键点检测模型,通过两级网络学习预测坐标与坐标偏移值,在复杂场景下,依然可以得到精确的人脸关键点的坐标,并且,第二级网络的输入尺寸远小于第一级网络的输入尺寸,可以降低第二级网络的时间消耗,适用于在移动终端等资源较小的设备进行人脸关键点检测,从而提高了实用性。

附图说明

[0082] 图1是本发明一个实施例的一种基于级联网络的人脸关键点检测模型的训练方法的步骤流程图;
[0083] 图2是本发明一个实施例的一种第一级网络与第二级网络的结构示例图;
[0084] 图3是本发明一个实施例的一种基于人脸关键点检测模型的人脸关键点检测方法的步骤流程图;
[0085] 图4是本发明一个实施例的一种基于级联网络的人脸关键点检测模型的训练装置的结构框图;
[0086] 图5是本发明一个实施例的一种基于人脸关键点检测模型的人脸关键点检测装置的结构框图。

具体实施方式

[0087] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0088] 参照图1,示出了本发明一个实施例的一种基于级联网络的人脸关键点检测模型的训练方法的步骤流程图,具体可以包括如下步骤:
[0089] 步骤101,从训练图像中提取人脸数据。
[0090] 在本发明实施例中,可以采用级联网络训练人脸关键点检测模型,用以检测人脸关键点。
[0091] 级联网络包括第一级网络与第二级网络,每级网络可以独立进行运行,第一级网络的输出依赖第二级网络的输入。
[0092] 以CNN(Convolutional Neural Network,卷积神经网络)作为第一级网络与第二级网络的示例,CNN具有多个层,上一层的输出作为下一层的输入。
[0093] CNN的每一层一般由多个map组成,每个map由多个神经单元组成,同一个map的所有神经单元共用一个卷积核(即权重),卷积核往往代表一个特征,比如某个卷积和代表一段弧,那么把这个卷积核在整个图片上滚一下,卷积值较大的区域就很有可能是一段弧。
[0094] 如图2所示,在此示例中,第一级网络(CNN)具有5个排序在前的卷积层,2个排序在后的全连接层,第二级网络(CNN)具有3个排序在前的卷积层,2个排序在后的全连接层。
[0095] 在卷积层中,卷积层本质上是个特征抽取层,可以设定超参数F来指定设立多少个特征抽取器(Filter),对于某个Filter来说,相当于有一个k*d大小的移动窗口从输入矩阵的第一个字开始不断往后移动,其中k和d是Filter指定的窗口大小。对于某个时刻的窗口,通过神经网络的非线性变换,将这个窗口内的输入值转换为某个特征值,随着窗口不断往后移动,这个Filter对应的特征值不断产生,形成这个Filter的特征向量。这就是卷积层抽取特征的过程。每个Filter都如此操作,形成了不同的特征抽取器。
[0096] 在全连接层中,是n个1*1的卷积核对上层feature进行卷积,然后在对卷积后的feature做一次均值pooling。
[0097] 当然,上述第一级网络与第二级网络的结构只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他第一级网络与第二级网络的结构,本发明实施例对此不加以限制。另外,除了上述第一级网络与第二级网络的结构外,本领域技术人员还可以根据实际需要采用其它第一级网络与第二级网络的结构,本发明实施例对此也不加以限制。
[0098] 在采用级联网络训练人脸关键点检测模型时,可以从图库中提取预先准备的训练图像,该训练图像中为包含人脸的图像数据。
[0099] 对该训练图像进行人脸检测,识别人脸所在的区域,并将该区域裁剪为指定大小(如10*10)的像素块,作为人脸数据。
[0100] 在具体实现中,可以通过如下的一种或多种方式进行人脸检测:
[0101] 1、参考模板法
[0102] 首先设计一个或数个标准人脸的模板,然后计算测试采集的样品与标准模板之间的匹配程度,并通过阈值来判断是否存在人脸。
[0103] 2、人脸规则法
[0104] 由于人脸具有一定的结构分布特征,所谓人脸规则的方法即提取这些特征生成相应的规则以判断测试样品是否包含人脸
[0105] 3、样品学习法
[0106] 这种方法即采用模式识别中人工神经网络的方法,即通过对面像样品集和非面像样品集的学习产生分类器
[0107] 4、肤色模型法
[0108] 这种方法是依据面貌肤色在色彩空间中分布相对集中的规律来进行检测。
[0109] 5、特征子脸法
[0110] 这种方法是将所有面像集合视为一个面像子空间,并基于检测样品与其在子空间的投影之间的距离判断是否存在面像。
[0111] 在视频、拍照等场景中,人脸关键点的检测往往抖动较大,人间关键点的抖动可能和人脸框检测抖动有关,也和光照变化有关。
[0112] 在本发明实施例中,为了降低抖动,在人脸关键点检测模型的训练过程中,可以对人脸数据进行数据增强处理,人脸数据的增强有助于提高人脸关键点检测模型的鲁棒性。
[0113] 在一个示例中,数据增强处理包括如下的至少一项:
[0114] 1、增加噪声数据
[0115] 在人脸数据中加入随机的像素值,作为噪声(如高斯噪声)。
[0116] 2、裁剪并复原
[0117] 将人脸数据随机裁剪,一般裁剪至原尺寸的80%~100%,并拉伸到原尺寸(resize),此时,人脸关键点的真实坐标也要做相应的变换,确保人脸关键点的位置不会偏移。
[0118] 3、平移处理
[0119] 整体移动人脸图像的像素值,空缺区域的像素值用0等其他像素值填补。
[0120] 4、增加对比度
[0121] 将人脸数据中,像素值较大的区域增大其像素值,像素值低的区域减小其像素值。
[0122] 当然,上述数据增强处理只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他数据增强处理,本发明实施例对此不加以限制。另外,除了上述数据增强处理,本领域技术人员还可以根据实际需要采用其它数据增强处理,本发明实施例对此也不加以限制。
[0123] 步骤102,将所述人脸数据输入至所述第一级网络进行训练。
[0124] 在本发明实施例中,第一级网络可以用于输出人脸关键点的预测坐标。
[0125] 如图2所示,将人脸数据输入第一级网络中,以人脸数据作为训练样本,对第一级网络进行训练。
[0126] 在本发明的一个实施例中,步骤102可以包括如下子步骤:
[0127] 子步骤S11,将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标。
[0128] 子步骤S12,采用所述预测坐标计算第一损失值。
[0129] 子步骤S13,根据所述第一损失值判断所述第一级网络是否收敛;若是,则执行子步骤S14,若否,则执行子步骤S15。
[0130] 子步骤S14,确定所述第一级网络训练完成。
[0131] 子步骤S15,根据所述第一损失值调整所述第一级网络,返回执行子步骤S11。
[0132] 在本发明实施例中,人脸数据预先设置有人脸关键点的真实坐标。
[0133] 将人脸数据输入第一级网络中,按照第一级网络的逻辑进行处理,例如,如图2所示,按照顺序在5个卷积层中进行卷积处理之后,在2个全连接层进行卷积处理。
[0134] 第一级网络处理完毕之后,输出人脸关键点的预测坐标。
[0135] 此时,将该人脸关键点的预测坐标作为计算的参数,输入预设的损失函数中,计算第一损失值。
[0136] 在一个示例中,可以计算预测坐标与真实坐标之间的第一距离,计算第一距离的平均值,作为第一损失值。
[0137] 以欧式距离为例,通过如下公式计算第一损失值:
[0138]
[0139] 其中,人脸数据共n(n为正整数)个人脸关键点,(x1i,y1i)为第一级网络中第i(i为正整数,i≤n)个人脸关键点的预测坐标, 为第i个人脸关键点的真实坐标。
[0140] 在每一轮迭代中,判断第一损失值是否满足预设的条件,如小于设定的第一阈值等,若是,则确定第一级网络训练完成,否则,调整第一级网络中的参数,进入下一次迭代,继续进行训练,使得第一级网络在损失函数的约束下,通过反向传播等方式逐渐收敛,直至稳定、停止迭代。
[0141] 步骤103,当所述第一级网络训练完成时,在所述人脸数据中、基于所述预测坐标生成目标数据。
[0142] 在训练人脸关键点检测模型时,先训练第一级网络,待第一级网络收敛稳定后,固定第一级网络中的参数,之后再继续训练第二级网络。
[0143] 如图2所示,在人脸数据中可以基于人脸关键点提取部分数据,组合为目标数据,以减少数据量。
[0144] 在本发明的一个实施例中,步骤103可以包括如下子步骤:
[0145] 子步骤S21,在所述人脸数据中、基于所述预测坐标提取局部图像数据。
[0146] 子步骤S22,将所述局部图像数据转换为颜色矩阵,作为目标数据。
[0147] 在本发明实施例中,可以以人脸关键点的预测坐标作为基准点,将附近一定范围(如10*10)内的数据从人脸数据中裁剪出来,作为指定大小(如10*10*3)的局部图像数据。
[0148] 将多个人脸关键点对应的局部图像数据按照颜色组合为数据矩阵(即基于颜色维度组成的矩阵),作为目标数据。
[0149] 例如,局部图像数据的大小为10*10*3,其中,3为GRB(红绿蓝)三个颜色通道,把n个人脸关键点对应的局部图像数据组合起来,就形成了10*10*3n个数据矩阵了。
[0150] 步骤104,将所述目标数据输入至所述第二级网络进行训练。
[0151] 在本发明实施例中,第二级网络可以用于输出人脸关键点的坐标偏移值,所谓坐标偏移值,可以指预测坐标偏离真实坐标的程度。
[0152] 如图2所示,将目标数据输入第二级网络中,以目标数据作为训练样本,对第二级网络进行训练。
[0153] 在本发明的一个实施例中,步骤102可以包括如下子步骤:
[0154] 子步骤S31,将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值。
[0155] 子步骤S32,采用所述坐标偏移值计算第二损失值。
[0156] 子步骤S33,根据所述第二损失值判断所述第二级网络是否收敛;若是,则执行子步骤S34,若否,则执行子步骤S35。
[0157] 子步骤S34,确定所述第二级网络训练完成。
[0158] 子步骤S35,根据所述第二损失值调整所述第二级网络,返回执行子步骤S31。
[0159] 在本发明实施例中,人脸数据预先设置有人脸关键点的真实坐标。
[0160] 将目标数据输入第二级网络中,按照第二级网络的逻辑进行处理,例如,如图2所示,按照顺序在3个卷积层中进行卷积处理之后,在2个全连接层进行卷积处理。
[0161] 第二级网络处理完毕之后,可以以人脸关键点的预测坐标与真实坐标之间的残差,作为人脸关键点的坐标偏移值。
[0162] 此时,将该人脸关键点的坐标偏移值作为计算的参数,输入预设的损失函数中,计算第二损失值。
[0163] 在一个示例中,可以计算预测坐标与偏移坐标之间的第二距离,计算第二距离的平均值,作为第二损失值。
[0164] 以欧式距离为例,通过如下公式计算第二损失值:
[0165]
[0166] 其中,人脸数据共n(n为正整数)个人脸关键点,(x2i,y2i)为第二级网络中第i(i为正整数,i≤n)个人脸关键点的预测坐标, 为第i个人脸关键点的预测坐标与真实坐标之间的残差(即坐标偏移值)。
[0167] 此时, (x1i,y1i)为第一级网络中第i个人脸关键点的预测坐标。
[0168] 在每一轮迭代中,判断第二损失值是否满足预设的条件,如小于设定的第二阈值等,若是,则确定第二级网络训练完成,否则,调整第二级网络中的参数,进入下一次迭代,继续进行训练,使得第二级网络在损失函数的约束下,通过反向传播等方式逐渐收敛,直至至稳定、停止迭代。
[0169] 步骤105,当所述第二级网络训练完成时,确定所述级联网络为人脸关键点检测模型。
[0170] 待第二级网络收敛稳定后,固定第二级网络中的参数,此时,该级联网络即为人脸关键点检测模型。
[0171] 在本发明实施例中,级联网络包括第一级网络与第二级网络,第一级网络用于输出人脸关键点的预测坐标,第二级网络用于输出人脸关键点的坐标偏移值,从训练图像中提取人脸数据并输入至第一级网络进行训练,当第一级网络训练完成时,在人脸数据中、基于预测坐标生成目标数据并输入至第二级网络进行训练,当第二级网络训练完成时,确定级联网络为人脸关键点检测模型,通过两级网络学习预测坐标与坐标偏移值,在复杂场景下,依然可以得到精确的人脸关键点的坐标,并且,第二级网络的输入尺寸远小于第一级网络的输入尺寸,可以降低第二级网络的时间消耗,适用于在移动终端等资源较小的设备进行人脸关键点检测,从而提高了实用性。
[0172] 参照图3,示出了本发明一个实施例的一种基于人脸关键点检测模型的人脸关键点检测方法的步骤流程图,具体可以包括如下步骤:
[0173] 步骤301,从目标图像中提取人脸数据。
[0174] 步骤302,将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标。
[0175] 步骤303,在所述人脸数据中、基于所述预测坐标生成目标数据。
[0176] 步骤304,将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值。
[0177] 步骤305,在所述预测坐标的基础上加上所述坐标偏移值,获得所述人脸关键点的目标坐标。
[0178] 在实际应用中,人脸关键点检测模型可以部署在门禁系统、监控系统、支付系统、相机程序等系统,按照业务的需求对用户进行人脸检测,识别其中的人脸关键点,如脸部轮廓坐标、五官坐标等。
[0179] 在本发明实施例中,人脸关键点检测模型包括第一级网络与第二级网络,每级网络可以独立进行运行,第一级网络的输出依赖第二级网络的输入。
[0180] 若获得了待检测人脸关键点的目标图像,则可以对该目标图像进行人脸检测,识别人脸所在的区域,并将该区域裁剪为指定大小(如10*10)的像素块,作为人脸数据。
[0181] 将人脸数据输入第一级网络中,按照第一级网络的逻辑进行处理,输出人脸关键点的预测坐标。
[0182] 例如,如图2所示,按照顺序在5个卷积层中进行卷积处理之后,在2个全连接层进行卷积处理。
[0183] 此时,在人脸数据中可以基于人脸关键点提取部分数据,组合为目标数据,以减少数据量。
[0184] 在一种实施方式中,可以在人脸数据中、基于预测坐标提取局部图像数据。将多个人脸关键点对应的局部图像数据按照颜色组合为数据矩阵,作为目标数据。
[0185] 此后,将目标数据输入第二级网络中,按照第二级网络的逻辑进行处理,输出人脸关键点的坐标偏移值。
[0186] 例如,如图2所示,按照顺序在3个卷积层中进行卷积处理之后,在2个全连接层进行卷积处理。
[0187] 此时,在预测坐标的基础上加上坐标偏移值,即可以作为人脸关键点的目标坐标:
[0188] (x+Δx,y+Δy)
[0189] 其中,(x,y)为人脸关键点的预测坐标,(Δx,Δy)为人脸关键点的坐标偏移值。
[0190] 已目标坐标作为人脸关键点检测模型的输出,供系统中的其他模块进行使用。
[0191] 在本发明实施例中,级联网络包括第一级网络与第二级网络,从目标图像中提取人脸数据并输入第一级网络进行处理,输出人脸关键点的预测坐标,在所述人脸数据中、基于预测坐标生成目标数据,将目标数据输入至所述第二级网络进行处理,输出人脸关键点的坐标偏移值,在预测坐标的基础上加上坐标偏移值,获得人脸关键点的目标坐标,通过两级网络学习预测坐标与坐标偏移值,在复杂场景下,依然可以得到精确的人脸关键点的坐标,并且,第二级网络的输入尺寸远小于第一级网络的输入尺寸,可以降低第二级网络的时间消耗,适用于在移动终端等资源较小的设备进行人脸关键点检测,从而提高了实用性。
[0192] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0193] 参照图4,示出了本发明一个实施例的一种基于级联网络的人脸关键点检测模型的训练装置的结构框图,所述级联网络包括第一级网络与第二级网络,所述装置具体可以包括如下模块:
[0194] 人脸数据提取模块401,用于从训练图像中提取人脸数据;
[0195] 第一级网络训练模块402,用于将所述人脸数据输入至所述第一级网络进行训练,所述第一级网络用于输出人脸关键点的预测坐标;
[0196] 目标数据生成模块403,用于当所述第一级网络训练完成时,在所述人脸数据中、基于所述预测坐标生成目标数据;
[0197] 第二级网络训练模块404,用于将所述目标数据输入至所述第二级网络进行训练,所述第二级网络用于输出所述人脸关键点的坐标偏移值;
[0198] 模型确定模块405,用于当所述第二级网络训练完成时,确定所述级联网络为人脸关键点检测模型。
[0199] 在本发明的一个实施例中,所述第一级网络训练模块402包括:
[0200] 人脸数据输入子模块,用于将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;
[0201] 第一损失值计算子模块,用于采用所述预测坐标计算第一损失值;
[0202] 第一级网络收敛判断子模块,用于根据所述第一损失值判断所述第一级网络是否收敛;若是,则调用第一级网络完成子模块,若否,则调用第一级网络调整子模块;
[0203] 第一级网络完成子模块,用于确定所述第一级网络训练完成;
[0204] 第一级网络调整子模块,用于根据所述第一损失值调整所述第一级网络,返回调用所述人脸数据输入子模块。
[0205] 在本发明实施例的一个示例中,所述第一损失值计算子模块包括:
[0206] 第一距离计算单元,用于计算所述预测坐标与真实坐标之间的第一距离;
[0207] 第一平均值计算单元,用于计算所述第一距离的平均值,作为第一损失值。
[0208] 在本发明的一个实施例中,所述目标数据生成模块403包括:
[0209] 局部图像数据提取子模块,用于在所述人脸数据中、基于所述预测坐标提取局部图像数据;
[0210] 矩阵组合子模块,用于将多个人脸关键点对应的所述局部图像数据按照颜色组合为数据矩阵,作为目标数据。
[0211] 在本发明的一个实施例中,所述第二级网络训练模块404包括:
[0212] 目标数据输入子模块,用于将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;
[0213] 第二损失值计算子模块,用于采用所述坐标偏移值计算第二损失值;
[0214] 第二级网络收敛判断子模块,用于根据所述第二损失值判断所述第二级网络是否收敛;若是,则调用第二级网络完成子模块,若否,则调用第二级网络调整子模块;
[0215] 第二级网络完成子模块,用于确定所述第二级网络训练完成;
[0216] 第二级网络调整子模块,用于根据所述第二损失值调整所述第二级网络,返回调用所述目标数据输入子模块。
[0217] 在本发明实施例的一个示例中,所述第二损失值计算子模块包括:
[0218] 第二距离计算单元,用于计算所述预测坐标与所述偏移坐标之间的第二距离;
[0219] 第二平均值计算单元,用于计算所述第二距离的平均值,作为第二损失值。
[0220] 在本发明的一个实施例中,还包括:
[0221] 数据增强处理模块,用于对所述人脸数据进行数据增强处理;
[0222] 其中,所述数据增强处理包括如下的至少一项:
[0223] 增加噪声数据、裁剪并复原、平移处理、增加对比度。
[0224] 参照图5,示出了本发明一个实施例的一种基于人脸关键点检测模型的人脸关键点检测装置的结构框图,所述人脸关键点检测模型包括第一级网络与第二级网络,所述装置具体可以包括如下模块:
[0225] 人脸数据提取模块501,用于从目标图像中提取人脸数据;
[0226] 第一级网络处理模块502,用于将所述人脸数据输入至所述第一级网络进行处理,输出人脸关键点的预测坐标;
[0227] 目标数据生成模块503,用于在所述人脸数据中、基于所述预测坐标生成目标数据;
[0228] 第二级网络处理模块504,用于将所述目标数据输入至所述第二级网络进行处理,输出所述人脸关键点的坐标偏移值;
[0229] 目标坐标计算模块505,用于在所述预测坐标的基础上加上所述坐标偏移值,获得所述人脸关键点的目标坐标。
[0230] 在本发明的一个实施例中,所述目标数据生成模块503包括:
[0231] 局部图像数据提取子模块,用于在所述人脸数据中、基于所述预测坐标提取局部图像数据;
[0232] 矩阵组合子模块,用于将多个人脸关键点对应的所述局部图像数据按照颜色组合为数据矩阵,作为目标数据。
[0233] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0234] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0235] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0236] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0237] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0238] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0239] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0240] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0241] 以上对本发明所提供的一种基于级联网络的人脸关键点检测模型的训练方法、一种基于人脸关键点检测模型的人脸关键点检测方法和一种基于级联网络的人脸关键点检测模型的训练装置、一种基于人脸关键点检测模型的人脸关键点检测装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。