手部关键点检测方法、装置及终端设备与流程

文档序号:23898700发布日期:2021-02-09 12:58阅读:106来源:国知局
手部关键点检测方法、装置及终端设备与流程

[0001]
本申请属于图像处理技术领域,尤其涉及一种手部关键点检测方法、装置、计算机可读存储介质及终端设备。


背景技术:

[0002]
随着人工智能(artificial intelligence,ai)技术的快速发展,人机交互的方法得到了极大的扩展。手势交互是人机交互中应用最为广泛的方法,利用不同的手势可以传达不同指令。区分不同手势从根本上来讲是手部关节位置与角度的变化。为了更好的识别不同手势,手部关键点的准确定位起着不可忽视的作用。现有技术中已有较多的手部关键点检测方法,但这些方法的准确度较低,实用价值不高。


技术实现要素:

[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]
第一计算单元,用于根据所述样本图像的输出热图集合和基准热图集合分别计算各个手部关键点的训练损失;
[0044]
第二计算单元,用于根据各个手部关键点的训练损失计算所述第二训练损失。
[0045]
进一步地,所述第一计算单元具体用于:
[0046]
从所述基准热图集合中选取目标关键点对应的基准热图,并从所述输出热图集合中选取所述目标关键点对应的输出热图,所述目标关键点为任意一个手部关键点;
[0047]
根据所述基准热图和所述输出热图计算所述目标关键点的训练损失。
[0048]
进一步地,所述基准热图集合生成子模块可以包括:
[0049]
位置确定单元,用于根据所述第二标注信息确定所述目标关键点的位置;
[0050]
高斯模糊单元,用于以所述目标关键点的位置为中心进行高斯模糊,得到所述目标关键点对应的基准热图;
[0051]
热图添加单元,用于将所述目标关键点对应的基准热图添加入所述基准热图集合中。
[0052]
进一步地,所述关键点确定模块可以包括:
[0053]
热图选取子模块,用于对于每个手部关键点,从所述输出热图集合中选取该手部关键点对应的输出热图;
[0054]
轮廓区域确定子模块,用于确定所述输出热图中的关键点轮廓区域;
[0055]
关键点确定子模块,用于将所述关键点轮廓区域中的峰值像素点所在位置确定为该手部关键点的位置。
[0056]
本申请实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种手部关键点检测方法的步骤。
[0057]
本申请实施例的第四方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种手部关键点检测方法的步骤。
[0058]
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述任一种手部关键点检测方法的步骤。
[0059]
本申请实施例与现有技术相比存在的有益效果是:本申请实施例获取待检测的目标图像;使用以手部分割掩码为监督信息的手部关键点检测模型对所述目标图像进行处理,得到所述目标图像的输出热图集合;根据所述输出热图集合确定各个手部关键点的位置。通过本申请实施例,同时将手部分割掩码和手部关键点位置均作为对手部关键点检测模型进行训练的监督信息,基于这一模型所得到的检测结果具有较高的准确度,能够在各种实际应用场景中进行广泛应用。
附图说明
[0060]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0061]
图1为手部关键点的示意图;
[0062]
图2为使用数据手套来检测手部关键点的示意图;
[0063]
图3为手部关键点的热图表示示意图;
[0064]
图4为手部关键点检测模型的一种训练过程的示意流程图;
[0065]
图5为手部分割掩码的标注信息的示意图;
[0066]
图6为手部关键点位置的标注信息的示意图;
[0067]
图7为手部关键点检测模型的网络结构示意图;
[0068]
图8为手部关键点检测模型的另一种训练过程的示意流程图;
[0069]
图9为本申请实施例中一种手部关键点检测方法的一个实施例流程图;
[0070]
图10为本申请实施例中一种手部关键点检测装置的一个实施例结构图;
[0071]
图11为本申请实施例中一种终端设备的示意框图。
具体实施方式
[0072]
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本申请一部分实施例,而非全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0073]
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0074]
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0075]
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0076]
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0077]
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0078]
手部关键点检测,是指根据手部关节位置,在一只手中定位出各个手部关键点。具体的手部关键点数目可以根据实际情况进行设置,图1所示即为手部关键点数目为21时的
示意图。
[0079]
基于手势的人机交互可以使用数据手套来检测手部关键点,也可以使用基于视觉的方法来检测手部关键点。如图2所示,数据手套获取的手部关键点位置更为准确,因为不会存在视觉遮挡等问题,缺点是不够便利,需要佩戴额外的设备,且设备价格较高,使用场景严重受限。基于视觉手部姿态估计不需要佩戴额外装备,只需要相应相机来采集图像即可,应用场景广泛,并且价格较低,具有广泛应用的潜力。
[0080]
基于视觉的手部关键点检测可分为2d关键点检测和3d关键点检测。基于视觉的手部关键点检测的数据源可以是单目rgb图像、多目rgb图像以及深度图像等。由于单目rgb图像的相机价格较低且应用广泛,并且单目rgb图像更易于获取,便于构建大量训练数据,因此在本申请实施例中优选采用单目rgb图像作为数据源。
[0081]
在本申请实施例中,可以采用以下两类基于rgb图像的2d手部关键点的深度学习检测方法:第一类是通过神经网络直接回归出手部关键点的归一化后的图像坐标;第二类是利用神经网络预测手部关键点的热图(heatmap)信息,再通过后处理热图来获得最终手部关键点的位置信息。
[0082]
第一类手部关键点检测方法简单直接,利用卷积神经网络回归出关键点的坐标,优点明显,因为特征图较小,计算量小,因而速度较快,能够在移动端进行广泛应用。缺点是准确度较低,为克服这个缺点,可以对网络结构做出改进,例如,增加对偏移量(offset)的预测,为每个手部关键点的二维或三维坐标各增加一个offset值来进行矫正,进一步提升预测精度,但即使经过改进,依然可能存在没有充分利用语义信息的缺点。第二类手部关键点检测方法是利用热图来定位关键点。图3所示即为手部关键点的热图表示,某一像素点越靠近标记的关键点位置,其置信度越高,“温度”也越高,反之,某一像素点距离关键点越远,其置信度越低,“温度”也越低。直接通过降采样得到的热图精度不高,因此往往需要经过几个阶段(一般为3-6个阶段)的监督学习来逐步提升精度,每个阶段都设置损失函数来进行监督,虽然精度出众,但大大提升了模型推理的计算量,在算力有限的平台难以部署应用。
[0083]
基于此,在本申请实施例中进一步提出了一种使用深度学习来检测2d手部关键点的多任务学习方法,同时将手部分割掩码和手部关键点位置均作为对手部关键点检测模型进行训练的监督信息,意在增强检测模型对手部关键点位置的定位准确度。需要注意的是,使用该方法最终得到的是手部关键点的二维位置坐标(x,y),不考虑手部关键点的深度信息以及手部关键点之间的相对深度。
[0084]
具体地,在本申请实施例中采用预设的手部关键点检测模型来进行手部关键点的检测,所述手部关键点检测模型为以手部分割掩码(mask)和手部关键点位置作为监督信息训练得到的深度学习网络模型。
[0085]
如图4所示,在本申请实施例的一种可能实现中,所述手部关键点检测模型的训练过程具体可以包括如下步骤:
[0086]
步骤s401、获取样本图像以及所述样本图像的第一标注信息和第二标注信息。
[0087]
所述样本图像为对所述手部关键点检测模型进行训练的图像。一般地,对于用于模型训练的一张原始图像而言,可以首先从该原始图像中定位手部的位置,即进行手部的目标检测,然后在检测到的手部区域中定位手部关键点的位置。手部的目标检测可以使用基于神经网络的方法,检测网络框架可使用ssd、yolo或者基于anchor free的方法等,其具
体过程在此处不再赘述。在本申请实施例中,所述样本图像可以为从原始图像中截取的手部区域检测框(bounding box,bb)中的图像,或者为将该手部区域检测框中的图像进行归一化处理后的图像。
[0088]
对于所述样本图像可以预先进行标注,例如,可以使用labelme等标注工具进行标注。标注内容分为两部分,一部分是手部分割掩码的标注信息,将其记为第一标注信息,如图5所示,另一部分是手部关键点位置的标注信息,将其记为第二标注信息,如图6所示,其中的每个点均表示特定关节的位置,因此顺序关系不可打乱,相邻关节进行连接可以得到手部的骨骼图。在标注完成后,可以将标注文件统一为coco数据集格式,以方便后续调用。
[0089]
步骤s402、使用所述手部关键点检测模型对所述样本图像进行处理,得到所述样本图像的手部分割掩码和输出热图集合。
[0090]
图7所示即为所述手部关键点检测模型的网络结构示意图,所述手部关键点检测模型的前半部分主要包括卷积层(记为c)与池化层(记为p),此外还可以包括批量归一化层(batch normalization,bn)与激活层,通过前半部分的处理,对每个像素均进行二分类,即位于手部区域和非手部区域,从而得到手部分割掩码;在所述手部关键点检测模型的后半部分继续接入卷积层并进行下采样,得到输出热图集合。所述输出热图集合中包括背景热图和各个手部关键点分别对应的热图,其中,所述背景热图在理论上应为一张全黑的热图,但实际的输出一般会存在偏差,并非是全黑的,每个手部关键点均存在一张与之对应的热图,若共有21个手部关键点,则输出热图集合中共包括22张热图。
[0091]
步骤s403、根据所述样本图像的手部分割掩码和所述第一标注信息计算所述手部关键点检测模型的第一训练损失。
[0092]
在本申请实施例中,可以使用预设的第一损失函数来计算所述第一训练损失,所述第一损失函数可以为l1 loss函数,尤其是softmax loss函数。
[0093]
步骤s404、根据所述样本图像的输出热图集合和所述第二标注信息计算所述手部关键点检测模型的第二训练损失。首先,根据所述第二标注信息生成所述样本图像的基准热图集合。
[0094]
以任意一个手部关键点(将其记为目标关键点)为例,根据所述第二标注信息确定所述目标关键点的位置;以所述目标关键点的位置为中心进行高斯模糊(可以包括但不限于二阶高斯模糊),得到所述目标关键点对应的热图,将其记为基准热图;将所述目标关键点对应的基准热图添加入所述基准热图集合中。所述基准热图集合初始时为空,按照以上过程遍历各个手部关键点,将各个手部关键点对应的基准热图和一张全黑的背景热图均添加入所述基准热图集合中,即可得到最终的基准热图集合。
[0095]
然后,根据所述样本图像的输出热图集合和基准热图集合计算所述手部关键点检测模型的第二训练损失。
[0096]
在本申请实施例中,可以使用预设的第二损失函数来计算所述第二训练损失,所述第二损失函数可以为l2 loss函数,如下式所示:
[0097][0098]
其中,n表示所述输出热图集合中的热图数量,f表示所述输出热图集合中的各像素点的置信度,g表示所述基准热图集合中的各像素点的置信度,l为所述第二训练损失。
[0099]
具体地,可以先根据所述样本图像的输出热图集合和基准热图集合分别计算各个手部关键点的训练损失,再根据各个手部关键点的训练损失计算所述第二训练损失。
[0100]
以任意一个手部关键点(将其记为目标关键点)为例,可以从所述基准热图集合中选取所述目标关键点对应的基准热图,并从所述输出热图集合中选取所述目标关键点对应的输出热图,根据所述基准热图和所述输出热图即可计算所述目标关键点的训练损失,例如,可以将这两张热图中所有对应像素点的置信度的差值的平方和作为所述目标关键点的训练损失。按照以上过程遍历各个手部关键点对应的热图以及背景热图,最后将各个手部关键点的训练损失以及背景热图的训练损失的平均值作为所述第二训练损失。
[0101]
步骤s405、根据所述第一训练损失和所述第二训练损失对所述手部关键点检测模型的模型参数进行调整。
[0102]
其中,所述第一训练损失可以用于对所述手部关键点检测模型的前半部分的模型参数进行调整,所述第二训练损失可以用于对所述手部关键点检测模型的后半部分的模型参数进行调整。以前半部分的模型参数的调整过程为例,假设初始的模型参数为w1,将所述第一训练损失反向传播修改模型参数w1,得到修改后的模型参数w2。修改参数之后重新进行训练,也即开始进行下一次的训练过程,在该次训练过程中,可以对新的样本图像进行处理,并计算得到对应的第一训练损失,将该训练损失反向传播修改模型参数w2,得到修改后的模型参数w3,
……
,以此类推,不断重复以上过程,直至满足预设的训练条件才结束训练,其中,所述训练条件可以是训练次数达到预设的次数阈值,可选地,所述次数阈值可以是100000次;所述训练条件也可以是第一训练损失收敛;由于可能出现训练次数还未达到所述次数阈值,但第一训练损失已经收敛,可能导致重复不必要的工作;或者第一训练损失始终无法收敛,可能导致无限循环,无法结束训练的过程,基于上述两种情况,所述训练条件还可以是训练次数达到所述次数阈值或第一训练损失收敛。后半部分的模型参数的调整过程与之类似,此处不再赘述。
[0103]
如图8所示,在本申请实施例的另一种可能实现中,所述手部关键点检测模型的训练过程具体可以包括如下步骤:
[0104]
步骤s801、获取样本图像以及所述样本图像的第一标注信息和第二标注信息。
[0105]
步骤s802、使用所述手部关键点检测模型对所述样本图像进行处理,得到所述样本图像的手部分割掩码。
[0106]
步骤s803、根据所述样本图像的手部分割掩码和所述第一标注信息计算所述手部关键点检测模型的第一训练损失。
[0107]
步骤s804、使用所述手部关键点检测模型对所述样本图像的手部分割掩码进行处理,得到所述样本图像的输出热图集合。
[0108]
步骤s805、根据所述样本图像的输出热图集合和所述第二标注信息计算所述手部关键点检测模型的第二训练损失。
[0109]
步骤s806、根据所述第一训练损失和所述第二训练损失对所述手部关键点检测模型的模型参数进行调整。
[0110]
需要注意的是,图8所示过程中的步骤s801、s803、s805、s806分别与图4所示过程中的步骤s401、s403、s404、s405相同,具体可以参见前述内容,此处不再赘述。两者之间的差别在于,步骤s402拆分为了步骤s802和步骤s804两个阶段,首先在第一个阶段输出所述
样本图像的手部分割掩码,并据此计算第一训练损失,然后在第二个阶段输出所述样本图像的输出热图集合,并据此计算第二训练损失。
[0111]
训练过程结束后,即可使用训练得到的手部关键点检测模型来进行手部关键点的检测。如图9所示,本申请实施例中一种手部关键点检测方法的一个实施例可以包括:
[0112]
步骤s901、获取待检测的目标图像。
[0113]
一般地,对于一张待检测的原始图像而言,可以首先从该原始图像中定位手部的位置,即进行手部的目标检测,所述目标图像可以为从原始图像中截取的手部区域检测框中的图像,或者为将该手部区域检测框中的图像进行归一化处理后的图像。
[0114]
步骤s902、使用所述手部关键点检测模型对所述目标图像进行处理,得到所述目标图像的输出热图集合。
[0115]
优选地,在本申请实施例中可以使用ncnn、openvino、tensorrt等推理框架来加速处理过程。
[0116]
步骤s903、根据所述输出热图集合确定各个手部关键点的位置。
[0117]
对于每个手部关键点,可以从所述输出热图集合中选取该手部关键点对应的输出热图,并确定该输出热图中的关键点轮廓区域,具体地,首先对该输出热图进行高斯模糊,过滤掉较小的干扰点;然后对高斯模糊后的图像进行二值化处理,将像素值小于预设阈值的像素点设置为白色像素点(对应的像素值为255),将像素值大于或等于该阈值的像素点设置为黑色像素点(对应的像素值为0);接着对二值化处理后的图像进行轮廓分割,每个关键点如果出现都会有一个轮廓对应,也即关键点轮廓区域。在得到关键点轮廓区域之后,则可以将关键点轮廓区域对应到初始的热图中,在热图中的关键点轮廓区域寻找像素值的峰值,将该峰值对应的像素点记为峰值像素点,这一峰值像素点所在位置即为该手部关键点的位置。进一步地,还可以将这一位置对应回待检测的原始图像中,从而得到该手部关键点在原始图像中的位置。
[0118]
综上所述,本申请实施例获取待检测的目标图像;使用以手部分割掩码为监督信息的手部关键点检测模型对所述目标图像进行处理,得到所述目标图像的输出热图集合;根据所述输出热图集合确定各个手部关键点的位置。通过本申请实施例,同时将手部分割掩码和手部关键点位置均作为对手部关键点检测模型进行训练的监督信息,基于这一模型所得到的检测结果具有较高的准确度,能够在各种实际应用场景中进行广泛应用。
[0119]
此外还需要说明的是,本申请实施例中这里使用手部分割掩码作为监督信息,而没有采用手部区域检测框作为监督信息,这样可以较好地将手部区域分割出来,使得背景的干扰更小,进而对后续关键点的定位准确度有促进作用。在定位手部关键点时,本申请实施例没有使用直接回归点坐标的方法,而采取热图的方法,这是由于直接定位点坐标并要求一定的准确度对神经网络是较为困难的,但是预测热图是对关键点及其附近区域的概率值进行预测,鲁棒性更强,比单点回归更易拟合。而且,由于使用了掩码信息,因此不需要由粗到精多阶段的热图预测,进一步减少了模型的计算量,大大提高了网络推理的速度,具有很大的使用前景。
[0120]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0121]
对应于上文实施例所述的一种手部关键点检测方法,图10示出了本申请实施例提供的一种手部关键点检测装置的一个实施例结构图。
[0122]
本实施例中,一种手部关键点检测装置可以包括:
[0123]
目标图像获取模块1001,用于获取待检测的目标图像;
[0124]
模型处理模块1002,用于使用以手部分割掩码为监督信息的手部关键点检测模型对所述目标图像进行处理,得到所述目标图像的输出热图集合;
[0125]
关键点确定模块1003,用于根据所述输出热图集合确定各个手部关键点的位置。
[0126]
进一步地,所述手部关键点检测装置还可以包括:
[0127]
样本图像获取模块,用于获取样本图像以及所述样本图像的第一标注信息和第二标注信息;所述样本图像为对所述手部关键点检测模型进行训练的图像;所述第一标注信息为手部分割掩码的标注信息,所述第二标注信息为手部关键点位置的标注信息;
[0128]
模型训练处理模块,用于使用所述手部关键点检测模型对所述样本图像进行处理,得到所述样本图像的手部分割掩码和输出热图集合;
[0129]
第一训练损失计算模块,用于根据所述样本图像的手部分割掩码和所述第一标注信息计算所述手部关键点检测模型的第一训练损失;
[0130]
第二训练损失计算模块,用于根据所述样本图像的输出热图集合和所述第二标注信息计算所述手部关键点检测模型的第二训练损失;
[0131]
模型参数调整模块,用于根据所述第一训练损失和所述第二训练损失对所述手部关键点检测模型的模型参数进行调整。
[0132]
进一步地,所述第二训练损失计算模块可以包括:
[0133]
基准热图集合生成子模块,用于根据所述第二标注信息生成所述样本图像的基准热图集合;
[0134]
训练损失计算子模块,用于根据所述样本图像的输出热图集合和基准热图集合计算所述手部关键点检测模型的第二训练损失。
[0135]
进一步地,所述训练损失计算子模块可以包括:
[0136]
第一计算单元,用于根据所述样本图像的输出热图集合和基准热图集合分别计算各个手部关键点的训练损失;
[0137]
第二计算单元,用于根据各个手部关键点的训练损失计算所述第二训练损失。
[0138]
进一步地,所述第一计算单元具体用于:
[0139]
从所述基准热图集合中选取目标关键点对应的基准热图,并从所述输出热图集合中选取所述目标关键点对应的输出热图,所述目标关键点为任意一个手部关键点;
[0140]
根据所述基准热图和所述输出热图计算所述目标关键点的训练损失。
[0141]
进一步地,所述基准热图集合生成子模块可以包括:
[0142]
位置确定单元,用于根据所述第二标注信息确定所述目标关键点的位置;
[0143]
高斯模糊单元,用于以所述目标关键点的位置为中心进行高斯模糊,得到所述目标关键点对应的基准热图;
[0144]
热图添加单元,用于将所述目标关键点对应的基准热图添加入所述基准热图集合中。
[0145]
进一步地,所述关键点确定模块可以包括:
[0146]
热图选取子模块,用于对于每个手部关键点,从所述输出热图集合中选取该手部关键点对应的输出热图;
[0147]
轮廓区域确定子模块,用于确定所述输出热图中的关键点轮廓区域;
[0148]
关键点确定子模块,用于将所述关键点轮廓区域中的峰值像素点所在位置确定为该手部关键点的位置。
[0149]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0150]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0151]
图11示出了本申请实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。
[0152]
如图11所示,该实施例的终端设备11包括:处理器110、存储器111以及存储在所述存储器111中并可在所述处理器110上运行的计算机程序112。所述处理器110执行所述计算机程序112时实现上述各个手部关键点检测方法实施例中的步骤,例如图9所示的步骤s901至步骤s903。或者,所述处理器110执行所述计算机程序112时实现上述各装置实施例中各模块/单元的功能,例如图10所示模块1001至模块1003的功能。
[0153]
示例性的,所述计算机程序112可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器111中,并由所述处理器110执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序112在所述终端设备11中的执行过程。
[0154]
所述终端设备11可以是手机、平板电脑、桌上型计算机、笔记本、掌上电脑及机器人等计算设备。本领域技术人员可以理解,图11仅仅是终端设备11的示例,并不构成对终端设备11的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备11还可以包括输入输出设备、网络接入设备、总线等。
[0155]
所述处理器110可以是中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0156]
所述存储器111可以是所述终端设备11的内部存储单元,例如终端设备11的硬盘或内存。所述存储器111也可以是所述终端设备11的外部存储设备,例如所述终端设备11上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器111还可以既包括所述终端设备11的内部存储单元也包括外部存储设备。所述存储器111用于存储所述计算机程序以及所述终端设备11所需的其它程序和数据。所述存储器111还可以用于暂时地存储已经输出或者将要输出的数据。
[0157]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的
功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0158]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0159]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0160]
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0161]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0162]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0163]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
[0164]
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实
施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1