关键点检测方法、装置、电子设备及存储介质转让专利

申请号 : CN202111052857.4

文献号 : CN113505763B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 呼延康

申请人 : 北京爱笔科技有限公司

摘要 :

本发明提供一种关键点检测方法、装置、电子设备及存储介质,通过检测模型能够在回归关键点位置坐标同时给出关键点的置信度,这就可以根据置信度大小过滤掉被遮挡的关键点,既保证了模型的计算速度,又可以获得可靠的关键点置信度,从而为后续的目标识别应用提供有效的支持。

权利要求 :

1.一种关键点检测方法,其特征在于,所述方法包括:获取待检测的第一图像;

将所述第一图像输入至检测模型中,所述检测模型是以第二图像为样本图像,以对所述样本图像中关键点的预测结果趋近于目标结果为目的,对卷积神经网络进行训练得到的,所述第一图像和所述第二图像包含同类对象,所述预测结果中包括关键点的位置坐标和置信度;所述卷积神经网络包括:骨架网络以及并行连接于所述骨架网络之后的回归层和分类层;在对所述卷积神经网络训练的过程中,通过对所述回归层输出的位置预测结果按照是否处于目标区域进行正负样本的划分,确定出每个关键点的类别标签,并通过分类学习获得每个关键点的置信度;所述目标区域表征对于所述样本图像中标注的各个关键点,选取的以其位置坐标为中心且以r为半径的区域,其中,r为正数;

获取所述检测模型所预测的所述第一图像中关键点的位置坐标和置信度,或者,获取所述检测模型所预测的所述第一图像中关键点的位置坐标。

2.根据权利要求1所述的方法,其特征在于,对所述卷积神经网络进行训练得到所述检测模型的过程,包括:

从所述样本图像中确定本次训练用的目标样本图像;

在本次训练中将所述目标样本图像输入至所述骨架网络,以实现:所述骨架网络基于其网络参数提取所述目标样本图像的特征图,并将所述目标样本图像的特征图分别输出至所述回归层和所述分类层;所述回归层基于其网络参数处理所述特征图,得到所述目标样本图像中关键点的位置预测结果;所述分类层基于其网络参数处理所述特征图,得到所述目标样本图像中关键点的类别预测结果;

根据所述位置预测结果和所述目标样本图像中关键点的位置标注结果计算位置损失函数值,以及,根据所述类别预测结果和类别标签计算分类损失函数值,所述类别标签是根据所述位置预测结果和所述位置标注结果确定的;

利用所述位置损失函数值和所述分类损失函数值计算本次训练的总损失函数值;

在所述总损失函数值不符合预设结束条件的情况下,调整所述骨架网络、所述回归层和所述分类层的网络参数,并返回执行所述从所述样本图像中确定本次训练用的目标样本图像,这一步骤;

在所述总损失函数值符合预设结束条件的情况下,结束训练,将本次训练后的所述卷积神经网络作为所述检测模型。

3.根据权利要求2所述的方法,其特征在于,所述样本图像是对所述第二图像进行预处理得到的;

对所述第二图像进行预处理得到所述样本图像的过程,包括:识别所述第二图像中的检测框;

放大所述检测框,并基于放大后的检测框从所述第二图像中裁剪所述对象所在的对象区域;

对所述对象区域进行缩放和像素归一化处理。

4.根据权利要求2所述的方法,其特征在于,根据所述位置预测结果和所述位置标注结果确定所述类别标签的过程,包括:根据所述位置标注结果确定所述目标样本图像中关键点的目标区域;

在所述位置预测结果位于所述目标区域内的情况下,确定所述类别标签为正样本;在所述位置预测结果位于所述目标区域外的情况下,确定所述类别标签为负样本。

5.根据权利要求2所述的方法,其特征在于,所述分类损失函数值中包含所述目标样本图像中不同关键点的子损失函数值,所述类别标签包括正样本和负样本;

相应的,所述利用所述位置损失函数值和所述分类损失函数值计算本次训练的总损失函数值,包括:

针对所述目标样本图像中类别标签为负样本的第一关键点,选取所述第一关键点中子损失函数值最大的多个目标第一关键点;

根据所述目标样本图像中类别标签为正样本的第二关键点的子损失函数值、所述多个目标第一关键点的子损失函数值计算实际分类损失函数值;

将所述位置损失函数值和所述实际分类损失函数值的迭加和作为所述总损失函数值。

6.一种关键点检测装置,其特征在于,所述装置包括:图像获取模块,用于获取待检测的第一图像;

检测模块,用于将所述第一图像输入至检测模型中,所述检测模型是以第二图像为样本图像,以对所述样本图像中关键点的预测结果趋近于目标结果为目的,对卷积神经网络进行训练得到的,所述第一图像和所述第二图像包含同类对象,所述预测结果中包括关键点的位置坐标和置信度;所述卷积神经网络包括:骨架网络以及并行连接于所述骨架网络之后的回归层和分类层;在对所述卷积神经网络训练的过程中,通过对所述回归层输出的位置预测结果按照是否处于目标区域进行正负样本的划分,确定出每个关键点的类别标签,并通过分类学习获得每个关键点的置信度;所述目标区域表征对于所述样本图像中标注的各个关键点,选取的以其位置坐标为中心且以r为半径的区域,其中,r为正数;获取所述检测模型所预测的所述第一图像中关键点的位置坐标和置信度,或者,获取所述检测模型所预测的所述第一图像中关键点的位置坐标。

7.一种电子设备,其特征在于,所述电子设备包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于实现权利要求1‑5任意一项所述的关键点检测方法。

8.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1‑5任意一项所述的关键点检测方法。

9.一种电子设备,其特征在于,所述电子设备包括:处理逻辑,被配置为获取待检测的第一图像,并使用检测模型来预测所述第一图像中关键点的位置坐标和置信度,或者预测所述第一图像中关键点的位置坐标;所述检测模型是以第二图像为样本图像,以对所述样本图像中关键点的预测结果趋近于目标结果为目的,对卷积神经网络进行训练得到的;所述卷积神经网络包括:骨架网络以及并行连接于所述骨架网络之后的回归层和分类层;在对所述卷积神经网络训练的过程中,通过对所述回归层输出的位置预测结果是否处于目标区域进行正负样本的划分,确定出每个关键点的类别标签,并通过分类学习获得每个关键点的置信度;所述目标区域表征对于所述样本图像中标注的各个关键点,选取的以其位置坐标为中心且以r为半径的区域,其中,r为正数;

所述骨架网络基于其网络参数提取所述第一图像的特征图,并将所述第一图像的特征图分别输出至所述回归层和所述分类层,所述第一图像的特征图中包含所述第一图像的关键点位置特征和关键点类别特征;所述回归层基于其网络参数处理所述关键点位置特征以定位关键点,得到所述第一图像中关键点的位置坐标;所述分类层基于其网络参数处理所述关键点类别特征以分类关键点,得到所述第一图像中关键点的置信度。

说明书 :

关键点检测方法、装置、电子设备及存储介质

技术领域

[0001] 本发明涉及软件技术和图像处理领域,更具体地说,涉及一种关键点检测方法、装置、电子设备及存储介质。

背景技术

[0002] 在关键点检测任务中,利用卷积神经网络等方法直接回归出关键点坐标的方法往往无法判断出回归出的关键点是否被遮挡。以人脸关键点为例,口罩、墨镜等饰品对口鼻上
关键点的遮挡、或者由于人脸旋转导致一半侧脸的关键点不可见等都无法被准确识别。
[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] 图像获取模块,用于获取待检测的第一图像;
[0033] 检测模块,用于将所述第一图像输入至检测模型中,所述检测模型是以第二图像为样本图像,以对所述样本图像中关键点的预测结果趋近于目标结果为目的,对卷积神经
网络进行训练得到的,所述第一图像和所述第二图像包含同类对象,所述预测结果中包括
关键点的位置坐标和置信度;获取所述检测模型所预测的所述第一图像中关键点的位置坐
标和置信度,或者,获取所述检测模型所预测的所述第一图像中关键点的位置坐标。
[0034] 本发明再一方面提供一种电子设备,所述电子设备包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用
于实现所述的关键点检测方法。
[0035] 本发明又一方面提供一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行所述的关键点检测方法。
[0036] 本发明又一方面提供一种电子设备,所述电子设备包括:
[0037] 处理逻辑,被配置为获取待检测的第一图像,并使用检测模型来预测所述第一图像中关键点的位置坐标和置信度,或者预测所述第一图像中关键点的位置坐标;
[0038] 其中,所述检测模型包括骨架网络、回归层和分类层;
[0039] 所述骨架网络基于其网络参数提取所述第一图像的特征图,并将所述第一图像的特征图分别输出至所述回归层和所述分类层,所述第一图像的特征图中包含所述第一图像
的关键点位置特征和关键点类别特征;所述回归层基于其网络参数处理所述关键点位置特
征以定位关键点,得到所述第一图像中关键点的位置坐标;所述分类层基于其网络参数处
理所述关键点类别特征以分类关键点,得到所述第一图像中关键点的置信度。
[0040] 相较于现有技术,本发明实现的有益效果为:
[0041] 本发明提供一种关键点检测方法、装置、电子设备及存储介质,通过检测模型能够在回归关键点位置坐标同时给出关键点的置信度,这就可以根据置信度大小过滤掉被遮挡
的关键点,既保证了模型的计算速度,又可以获得可靠的关键点置信度,从而为后续的目标
识别应用提供有效的支持。

附图说明

[0042] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
提供的附图获得其他的附图。
[0043] 图1为本发明实施例提供的人脸示意图;
[0044] 图2为本发明实施例提供的关键点检测方法的方法流程图;
[0045] 图3为本发明实施例提供的检测流程示意图;
[0046] 图4为本发明实施例提供的类别标签示意图;
[0047] 图5为本发明实施例提供的关键点检测装置的结构示意图。

具体实施方式

[0048] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0049] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0050] 为方便理解本发明,继续以人脸关键点为例来说明本发明的关键点检测方案。需要说明的是,本发明的应用并不局限于人脸场景,还可以应用到其他场景,比如动物、再比
如车辆、再比如货物等。
[0051] 参见图1所示的人脸示意图,人脸关键点一般为人工设定的、在人脸上代表人脸五官轮廓和位置的点,比如图1中的眼角、鼻尖、嘴角、以及眉眼口鼻面部轮廓上的点。
[0052] 发明人研究发现,人脸关键点检测主要有两类方法:
[0053] 第一类是基于回归的方法。这类方法使用卷积神经网络等方法以人脸图像作为输入直接回归出人脸图像中人脸关键点的位置坐标。这类方法通常计算速度很快,但是目前
尚不能在回归出人脸关键点位置坐标的同时回归出人脸关键点的置信度。
[0054] 第二类是基于像素分类的方法。这类方法同样使用卷积神经网络,但是网络的输出并不是人脸关键点的坐标,而是和原图等大或者稍小于原图的热量图。热量图中热量值
取值范围通常为[0,1]。热量图中人脸关键点部位的像素点为正样本,通常被赋予较高的热
量值如1,而非人脸关键点部位被认为是负样本,通常被赋予相对较低的热量值如0,这样人
脸关键点检测任务会被当成一个针对每一个像素的二分类任务。这类方法在得到人脸关键
点位置的同时可以得到人脸关键点的置信度。但是由于此类方法需要输出和原图等大的或
者稍小于原图的热量图,需要卷积神经网络对原图先降采样计算特征,再上采样生成热量
图。这个操作通常十分耗时,在ARM端处理器和CPU上会消耗大量的计算资源,计算速度较
慢。
[0055] 对此,发明人认为如果关键点检测任务在回归关键点位置坐标同时给出每个关键点的置信度,根据置信度大小便可以过滤掉被遮挡的关键点。因此,本发明提出一种能够实
现置信度回归的关键点检测方案,采用直接回归关键点位置坐标的方式,同时回归出每个
关键点的置信度,这既保证了模型的计算速度,又可以获得可靠的关键点置信度。
[0056] 参见图2所示的方法流程图,本发明实施例提供一种关键点检测方法,该方法包括如下步骤:
[0057] S10,获取待检测的第一图像。
[0058] S20,将第一图像输入至检测模型中,检测模型是以第二图像为样本图像,以对样本图像中关键点的预测结果趋近于目标结果为目的,对卷积神经网络进行训练得到的,第
一图像和第二图像包含同类对象,预测结果中包括关键点的位置坐标和置信度。
[0059] 本发明实施例中,检测模型是通过对卷积神经网络进行训练所获得的,训练结束后的卷积神经网络作为该检测模型,检测模型具备对样本图像中关键点的预测结果趋近于
目标结果的能力。其中,预测结果中包含两方面的信息,一方面是关键点的位置坐标,另一
方面是关键点的置信度,相应的,预测结果趋近于目标结果也有两方面含义,一方面是检测
模型能够准确回归关键点的位置坐标、另一方面是检测模型能够准确对关键点进行分类。
[0060] 继续以人脸关键点为例,相应的第一图像为第一人脸图像。参见图3所示的检测流程示意图,检测模型包括骨架网络以及并行连接于骨架网络之后的回归层和分类层。骨架
网络基于其网络参数提取第一人脸图像的特征图,并将第一人脸图像的特征图分别输出至
分类层和回归层,第一人脸图像的特征图中包含第一人脸图像的关键点位置特征和关键点
类别特征。回归层基于其网络参数处理该关键点位置特征以定位关键点,得到第一图像中
关键点的位置坐标。分类层基于其网络参数处理关键点类别特征以分类关键点,得到第一
图像中关键点的置信度。
[0061] 需要说明的是,上述检测模型中骨架网络、分类层和回归层各自的网络参数均为训练后的参数。即卷积神经网络包括骨架网络以及并行连接于骨架网络之后的回归层和分
类层。
[0062] 以下对对卷积神经网络进行训练得到检测模型的过程进行说明,包括如下步骤:
[0063] 从样本图像中确定本次训练用的目标样本图像;在本次训练中将目标样本图像输入至骨架网络,以实现:
[0064] 骨架网络基于其网络参数提取目标样本图像的特征图,并将目标样本图像的特征图分别输出至回归层和分类层;回归层基于其网络参数处理特征图,得到目标样本图像中
关键点的位置预测结果;分类层基于其网络参数处理特征图,得到目标样本图像中关键点
的类别预测结果;
[0065] 根据位置预测结果和目标样本图像中关键点的位置标注结果计算位置损失函数值,以及,根据类别预测结果和类别标签计算分类损失函数值,类别标签是根据位置预测结
果和位置标注结果确定的;利用位置损失函数值和分类损失函数值计算本次训练的总损失
函数值;在总损失函数值不符合预设结束条件的情况下,调整骨架网络、回归层和分类层的
网络参数,并返回执行从样本图像中确定本次训练用的目标样本图像,这一步骤;在总损失
函数值符合预设结束条件的情况下,结束训练,将本次训练后的卷积神经网络作为检测模
型。
[0066] 本发明实施例中,在训练得到检测模型的过程中需要对卷积神经网络进行多次训练,每次训练所需的样本图像(即目标样本图像)可以按照一定策略从样本图像中获得,本
发明实施例对此不做限定。
[0067] 以对卷积神经网络进行的一次训练来说明:将本次训练用的目标样本图像输入至骨架网络,目标样本图像中已预先标注有关键点。骨架网络基于其网络参数提取目标样本
图像的特征图,该特征图中以向量形式表示目标样本图像中关键点不同维度的特征。
[0068] 回归层基于其网络参数处理特征图,以预测目标样本图像中关键点的位置坐标产生位置预测结果。分类层则基于其网络参数处理特征图,以预测目标样本图像中关键点的
类别产生类别预测结果。
[0069] 进一步,通过对比目标样本图像中关键点的位置预测结果与位置标注结果(已标注的关键点的位置坐标,将其作为真实值)来计算位置损失函数值。需要说明的是,回归层
的损失函数可以采用smooth L1损失函数。举例来说,假设特征图中提取到118个关键点,则
回归层可以输出236维的向量[x1,y1,x2,y2,…,x118,y118]来表示118个关键点的位置坐
标。
[0070] 更进一步,基于目标样本图像中关键点的位置预测结果与位置标注结果可以确定目标样本图像的类别标签,如果位置预测结果与位置标注结果一致,则类别标签为正样本,
反之,如果位置预测结果与位置标注结果不一致,则类别标签为负样本;进一步,通过对比
目标样本图像中关键点的类别预测结果与类别标签类计算分类损失函数值。具体来说,类
别标签包括正样本和负样本,其中,正样本用于定义高质量关键点、负样本用于定义低质量
关键点。需要说明的是,分类层的损失函数可以采用交叉熵损失函数。
[0071] 继续以118个关键点为例,分类层可以输出118维的向量[x1,y1,x2,y2,…,x118,y118]来表示118个关键点的类别概率。一般来说,类别标签“正样本”用“1”来表示、类别标
签“负样本”用“0”来表示,因此分类层输出的类别概率为0 1范围内的值,越接近1则表示属
~
于高质量关键点的概率越大、相应的置信度也就越大、被遮挡的程度越小,反之,越接近0则
表示属于低质量关键点的概率越大、相应的置信度也就越小、被遮挡的程度也就越大。
[0072] 再进一步,在每次训练获得位置损失函数值和分类损失函数值之后,可以将两者迭加和作为本次训练的总损失函数值,在该总损失函数值不符合预设结束条件的情况下,
以梯度回传的方式反向调整骨架网络、回归层和分类层的网络参数,并进一步下一次的训
练中。而一旦该总损失函数值不符合预设结束条件,则结束对卷积神经网络的训练,将训练
后的卷积神经网络作为检测模型。
[0073] 需要说明的是,上述预设结束条件,可以根据实际场景进行设置,比如可以设置为“低于损失函数阈值”、或者“多次获得的损失函数值不变”,本发明实施例对此不做限定。
[0074] 需要说明的是,卷积神经网络训练结束获得检测模型,即表示检测模型中骨架网络输出的特征图具有明显的关键点位置特征和关键点类别特征。对于检测模型中的回归
层,其可以通过关键点位置特征定位关键点,输出关键点的位置坐标。对于检测模型中的分
类层,其可以通过关键点类别特征分类关键点,输出关键点的置信度。
[0075] 还需要说明的是,相较于仅包含回归层的传统卷积神经网络,本发明中在卷积神经网络中加入分类层,这就使得骨干网络的特征图中的特征信息更为丰富。因此,检测模型
输出的关键点的位置坐标也会具有更高的准确度。
[0076] 在其他一些实施例中,为获得规范的样本图像,减少检测模型的训练时间,本发明实施例中样本图像是对第二图像进行预处理得到的。对第二图像进行预处理得到样本图像
的过程,包括如下步骤:
[0077] 识别第二图像中的检测框;放大检测框,并基于放大后的检测框从第二图像中裁剪对象所在的对象区域;对对象区域进行缩放和像素归一化处理。
[0078] 为方便理解,继续以人脸关键点为例,相应的第二图像为第二人脸图像。对第二人脸图像进行人脸检测得到表征人脸位置的人脸框;放大该人脸框,并基于放大后的人脸框
从第二人脸图像中裁剪人脸区域;对人脸区域进行缩放和像素归一化处理。具体的:
[0079] 经过人脸检测算法处理可以获得第二人脸图像的人脸框,进而以该人脸框为基础进行后续处理。假设人脸框的左上角顶点坐标是(x, y),人脸框宽为w,人脸框高为h,则为
了避免人脸框过小导致眉毛或者下巴在人脸框以外,首先将人脸框扩大为原来的数倍(比
如1.5倍)的正方行,具体的将1.5 * max(h,w)作为新的人脸框的边长,人脸框顶点则更新
为x=x‑0.25* max(h,w)、y=y‑0.25* max(h,w);进一步,根据新的人脸框从第二人脸图像中
裁剪出人脸区域,并缩放到为统一尺寸(比如128*128);最后,对人脸区域中的像素值做归
一化处理(比如像素值除以255)。基于此,输入卷积神经网络中的样本图像是归一化处理后
人脸区域对应的部分图像,这就可以保证输入至卷积神经网络中的样本图像被统一到相同
的尺寸,降低网络学习的难度,提升精度。
[0080] 在其他一些实施例中,根据位置预测结果和位置标注结果确定类别标签的过程,可以通过定义目标区域来实现,具体的:根据位置标注结果确定目标样本图像中关键点的
目标区域;在位置预测结果位于目标区域内的情况下,确定类别标签为正样本;在位置预测
结果位于目标区域外的情况下,确定类别标签为负样本。
[0081] 继续以人脸关键点为例,相应的目标样本图像为目标样本人脸图像。参见图4所示的类别标签示意图,对于目标样本人脸图像中人工标注的每个关键点来说,选取一个以其
位置坐标(即位置标注结果)为中心、以r为半径的区域作为其目标区域;如果回归层针对该
关键点输出的位置预测结果位于该目标区域内,可以确定该关键点的类别标签为“正样
本”,反之,如果回归层针对该关键点输出的位置预测结果位于该目标区域外,可以确定该
关键点的类别标签为“负样本”。当然,类别标签是以类别概率的形式来表示,正样本对应的
类别概率为1、负样本对应的类别概率为0。
[0082] 对此,本发明中通过对回归层输出的位置预测结果按照给定的半径进行正负样本的划分,从而确定类别标签。由此能够通过分类学习获得每个关键点的置信度。相比基于像
素分类的方法,本发明不需要计算关键点的热量分布图,可以极大的减少模型计算量,在
CPU和ARM处理器上可以做到1000Fps和500Fps的计算速度。
[0083] 另外,由于回归层有smooth1损失函数作为约束,其位置预测结果一定是越来越准确的,而分类层正负样本划分虽然不受回归层影响,但在训练前期由于回归层预测不准确
很容易导致分类层中负样本过多、正样本过少,为解决该问题,在其他一些实施例中,可以
采用难例挖掘的策略,具体如下:
[0084] 分类损失函数值中包含目标样本图像中不同关键点的子损失函数值,类别标签包括正样本和负样本;
[0085] 相应的,执行“利用位置损失函数值和分类损失函数值计算本次训练的总损失函数值”时,可以采用如下步骤:
[0086] 针对目标样本图像中类别标签为负样本的第一关键点,选取第一关键点中子损失函数值最大的多个目标第一关键点;根据目标样本图像中类别标签为正样本的第二关键点
的子损失函数值、多个目标第一关键点的子损失函数值计算实际分类损失函数值;将位置
损失函数值和实际分类损失函数值的迭加和作为总损失函数值。
[0087] 本发明实施例中,分类损失函数值中包含目标样本图像中各关键点的损失函数值(即子损失函数值)。对于目标样本图像中类别标签为“负样本”的每个关键点(即第一关键
点)来说,可以选取其中子损失函数值最大的多个关键点作为目标第一关键点。继续以118
个关键点为例,假设其中10个关键点的类别标签为“正样本”、118个关键点的类别标签为
“负样本”,也就是有118个第一关键点、10个第二关键点,可以118个第一关键点中选取子损
失函数值最大的70个关键点作为目标第一关键点,而子损失函数最小的30个第一关键点则
不用作梯度回传。
[0088] 进一步,可以将目标样本图像中类别标签为“正样本”的每个关键点(即第二关键点)的子损失函数值与目标第一关键点的子损失函数值的迭加和作为实际分类损失函数
值。继续以上述118个关键点为例,可以将70个目标第一关键点的子损失函数值和10个第二
关键点的子损失函数值迭加和作为实际分类损失函数值。
[0089] 最后,将位置损失函数值和实际分类损失函数值的迭加和作为总损失函数值。
[0090] S30,获取检测模型所预测的第一图像中关键点的位置坐标和置信度,或者,获取检测模型所预测的第一图像中关键点的位置坐标。
[0091] 本发明实施例中,检测模型针对第一图像可以输出其中关键点的位置坐标和类别概率,而类别概率则可以等同于置信度,类别概率越接近1则置信度也就越大、被遮挡的程
度越小,反之,越接近0则置信度也就越小、被遮挡的程度也就越大。此时,可以通过置信度
来筛选可靠的关键点,比如可以筛选分类概率大于预设的概率阈值的关键点。
[0092] 本发明实施例提供关键点检测方法,通过检测模型能够在回归关键点位置坐标同时给出关键点的置信度,这就可以根据置信度大小过滤掉被遮挡的关键点,既保证了模型
的计算速度,又可以获得可靠的关键点置信度,从而为后续的目标识别应用提供有效的支
持。
[0093] 基于上述实施例提供的人脸关键点检测方法,本发明实施例则对应提供执行上述人脸关键点检测方法的装置,该装置的结构示意图如图5所示,包括:
[0094] 图像获取模块10,用于获取待检测的第一图像;
[0095] 检测模块20,用于将第一图像输入至检测模型中,检测模型是以第二图像为样本图像,以对样本图像中关键点的预测结果趋近于目标结果为目的,对卷积神经网络进行训
练得到的,第一图像和第二图像包含同类对象,预测结果中包括关键点的位置坐标和置信
度;获取检测模型所预测的第一图像中关键点的位置坐标和置信度,或者,获取检测模型所
预测的第一图像中关键点的位置坐标。
[0096] 可选的,卷积神经网络包括:骨架网络以及并行连接于骨架网络之后的回归层和分类层。
[0097] 可选的,检测模块20对卷积神经网络进行训练得到检测模型的过程,包括:
[0098] 从样本图像中确定本次训练用的目标样本图像;在本次训练中将目标样本图像输入至骨架网络,以实现:
[0099] 骨架网络基于其网络参数提取目标样本图像的特征图,并将目标样本图像的特征图分别输出至回归层和分类层;回归层基于其网络参数处理特征图,得到目标样本图像中
关键点的位置预测结果;分类层基于其网络参数处理特征图,得到目标样本图像中关键点
的类别预测结果;
[0100] 根据位置预测结果和目标样本图像中关键点的位置标注结果计算位置损失函数值,以及,根据类别预测结果和类别标签计算分类损失函数值,类别标签是根据位置预测结
果和位置标注结果确定的;利用位置损失函数值和分类损失函数值计算本次训练的总损失
函数值;在总损失函数值不符合预设结束条件的情况下,调整骨架网络、回归层和分类层的
网络参数,并返回执行从样本图像中确定本次训练用的目标样本图像,这一步骤;在总损失
函数值符合预设结束条件的情况下,结束训练,将本次训练后的卷积神经网络作为检测模
型。
[0101] 可选的,样本图像是对第二图像进行预处理得到的;
[0102] 检测模块20对第二图像进行预处理得到样本图像的过程,包括:
[0103] 识别第二图像中的检测框;放大检测框,并基于放大后的检测框从第二图像中裁剪对象所在的对象区域;对对象区域进行缩放和像素归一化处理。
[0104] 可选的,检测模块20根据位置预测结果和位置标注结果确定类别标签的过程,包括:
[0105] 根据位置标注结果确定目标样本图像中关键点的目标区域;在位置预测结果位于目标区域内的情况下,确定类别标签为正样本;在位置预测结果位于目标区域外的情况下,
确定类别标签为负样本。
[0106] 可选的,分类损失函数值中包含目标样本图像中不同关键点的子损失函数值,类别标签包括正样本和负样本;
[0107] 相应的,检测模块20利用位置损失函数值和分类损失函数值计算本次训练的总损失函数值,包括:
[0108] 针对目标样本图像中类别标签为负样本的第一关键点,选取第一关键点中子损失函数值最大的多个目标第一关键点;根据目标样本图像中类别标签为正样本的第二关键点
的子损失函数值、多个目标第一关键点的子损失函数值计算实际分类损失函数值;将位置
损失函数值和实际分类损失函数值的迭加和作为总损失函数值。
[0109] 需要说明的是,本发明实施例中各模块的细化功能可以参见上述关键点检测方法实施例对应公开部分,在此不再赘述。
[0110] 基于上述实施例提供的关键点检测方法,本发明实施例则对应提供一种电子设备,电子设备包括:至少一个存储器和至少一个处理器;存储器存储有程序,处理器调用存
储器存储的程序,程序用于实现关键点检测方法。
[0111] 基于上述实施例提供的关键点检测方法,本发明实施例则对应提供一种存储介质,存储介质中存储有计算机可执行指令,计算机可执行指令用于执行关键点检测方法。
[0112] 基于上述实施提供的人脸关键点检测方法,本发明实施例则对应提供一种电子设备,电子设备包括:
[0113] 处理逻辑,被配置为获取待检测的第一图像,并使用检测模型来预测第一图像中关键点的位置坐标和置信度,或者预测第一图像中关键点的位置坐标;
[0114] 其中,检测模型包括骨架网络、回归层和分类层;
[0115] 骨架网络基于其网络参数提取第一图像的特征图,并将第一图像的特征图分别输出至回归层和分类层,第一图像的特征图中包含第一图像的关键点位置特征和关键点类别
特征;回归层基于其网络参数处理关键点位置特征以定位关键点,得到第一图像中关键点
的位置坐标;分类层基于其网络参数处理关键点类别特征以分类关键点,得到第一图像中
关键点的置信度。
[0116] 以上对本发明所提供的一种关键点检测方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的
说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依
据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容
不应理解为对本发明的限制。
[0117] 需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相
关之处参见方法部分说明即可。
[0118] 还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间
存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵
盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,
或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,
由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备
中还存在另外的相同要素。
[0119] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。