一种引入运动学约束的3D网络进行手部姿态估计的方法及系统与流程

文档序号:21733158发布日期:2020-08-05 01:28阅读:165来源:国知局
一种引入运动学约束的3D网络进行手部姿态估计的方法及系统与流程

本发明涉及一种引入运动学约束的3d网络进行手部姿态估计的方法及系统,涉及一般的图像数据处理或产生g06t领域,尤其涉及g06t7/20运动分析领域。



背景技术:

手部姿态估计任务分为两步,第一步是从深度图中定位出手部区域,第二步则是从手部区域中预测出各个关节点的坐标。目前表现比较优秀的手部区域定位方法分为两步,第一步是基于深度图中距离摄像机越近深度值越低这一特点,假设手是距离摄像机最近的物体,通过设置深度阈值来获得粗略的手部定位结果;第二步则是将粗略的手部定位区域输入到如图1所示的手部区域定位网络(com-refinenet)中,预测出手掌心的坐标,然后再根据预设的手部大小来获得最终的手部定位结果。

手是一个结构化物体,各个关节点通过骨骼连接形成的手部姿态需要满足物理学约束。所以在手部姿态估计任务中,除了要考虑预测的关节点位置的准确性,还需要考虑预测出的关节点所形成的手部姿态是否合理。



技术实现要素:

发明目的:一个目的是提出一种引入运动学约束的3d网络进行手部姿态估计的方法,以解决现有技术存在的上述问题。进一步目的是提出一种实现上述方法的系统。

技术方案:一种引入运动学约束的3d网络进行手部姿态估计的方法,包括以下步骤:

步骤1、将原始的深度图中定位出的手部区域转化成体素化的输入;

步骤2、引入运动学约束的3d手部姿态估计网络;

步骤3、评估预测的关节点位置的准确性、并评估预测出的关节点所形成的手部姿态的合理性。

在进一步的实施例中,所述步骤1进一步包括:

步骤1-1、利用手部区域定位网络从深度图中定位出手部区域;

步骤1-2、将深度图中定位出的手部区域投影到3d空间;

步骤1-3、针对投影到3d空间的数据,根据预设的体素大小进行离散化处理;

步骤1-4、根据该位置是否被离散的点所覆盖来判断体素各个位置的值,被覆盖则值设为1,未被覆盖则值设为0。

在进一步的实施例中,所述步骤2进一步包括:

该网络以体素化的手部区域作为输入,经过3d卷积神经网络,预测表示关节点概率分布的3dheatmap;通过对3dheatmap进行处理,获得各个关节点的坐标以及对应的骨骼长度,从而可以利用修改损失函数的方式对预测的结果添加运动学约束。

在进一步的实施例中,对预测的结果添加运动学约束需要对3dheatmap进行处理,网络预测出的3dheatmap代表了单个关节点的概率分布,heatmap中最大值的位置也就是关节点的位置;利用3dheatmap获得关节点的位置然后根据关节点之间的对应关系计算出骨骼的长度;提出一个soft-argmax函数,以一种可导的方式来从3dheatmap中获得关节点的坐标:

其中,x代表的是尺寸为大小的3dheatmap;代表的是soft-max函数;代表的是3dheatmap最大值所在的位置。

在进一步的实施例中,获得3dheatmap对应的各个关节点的坐标后对预测结果添加运动学约束:

步骤3-1、根据训练数据为每个骨骼长度设定一个标准的范围,即该骨骼的最大长度和最小长度;

步骤3-2、将从3dheatmap中得到的骨骼长度和设定的标准范围进行比较,高于最大长度或者低于最小长度都会受到惩罚,从而为预测结果添加运动学约束,添加了运动学约束的手部姿态估计网络的损失函数如下:

其中,l是整体的损失函数,一共包括三个部分,分别代表了3dheatmap的约束、骨骼长度超过最大长度的约束、骨骼长度低于最短长度的约束;n代表了关节点的数目,n-1代表了骨骼的数目,以及分别代表了预测和真实的3dheatmap,是由预测的关节点坐标计算得到的骨骼长度,代表了预设的最长和最短的骨骼长度,则代表了损失函数各个成分的权重。

一种引入运动学约束的3d网络进行手部姿态估计的系统,包括用于将原始的深度图中的手部区域转化成体素化的输入的第一模块;用于引入运动学约束的3d手部姿态估计网络的第二模块;以及用于评估预测的关节点位置的准确性、并评估预测出的关节点所形成的手部姿态的合理性的第三模块。

在进一步的实施例中,所述第一模块进一步利用手部区域定位网络从深度图中定位出手部区域,并将深度图中的手部区域投影到3d空间;针对投影到3d空间的数据,根据预设的体素大小进行离散化处理;根据该位置是否被离散的点所覆盖来判断体素各个位置的值,被覆盖则值设为1,未被覆盖则值设为0。

所述第二模块进一步用于利用引入运动学约束的手部姿态估计网络以体素化的手部区域作为输入,得到关节点的预测结果;该网络以体素化的手部区域作为输入,经过3d卷积神经网络,预测表示关节点概率分布的3dheatmap;通过对3dheatmap进行处理,获得各个关节点的坐标以及对应的骨骼长度,从而可以利用修改损失函数的方式对预测的结果添加运动学约束。

所述第二模块进一步用于对预测的结果添加运动学约束需要对3dheatmap进行处理,网络预测出的3dheatmap代表了单个关节点的概率分布,heatmap中最大值的位置也就是关节点的位置;利用3dheatmap获得关节点的位置然后根据关节点之间的对应关系计算出骨骼的长度;提出一个soft-argmax函数,以一种可导的方式来从3dheatmap中获得关节点的坐标:

其中,x代表的是尺寸为大小的3dheatmap;代表的是soft-max函数;代表的是3dheatmap最大值所在的位置。

所述第三模块进一步根据训练数据为每个骨骼长度设定一个标准的范围,即该骨骼的最大长度和最小长度;将从3dheatmap中得到的骨骼长度和设定的标准范围进行比较,高于最大长度或者低于最小长度都会受到惩罚,从而为预测结果添加运动学约束,添加了运动学约束的手部姿态估计网络的损失函数如下:

其中,l是整体的损失函数,一共包括三个部分,分别代表了3dheatmap的约束、骨骼长度超过最大长度的约束、骨骼长度低于最短长度的约束;n代表了关节点的数目,n-1代表了骨骼的数目,以及分别代表了预测和真实的3dheatmap,是由预测的关节点坐标计算得到的骨骼长度,代表了预设的最长和最短的骨骼长度,则代表了损失函数各个成分的权重。

有益效果:本发明提出了一种引入运动学约束的3d网络进行手部姿态估计的方法及系统,利用引入运动学约束的手部姿态估计网络以体素化的手部区域作为输入,得到关节点的预测结果;该网络以体素化的手部区域作为输入,经过3d卷积神经网络,预测表示关节点概率分布的3dheatmap;通过对3dheatmap进行处理,获得各个关节点的坐标以及对应的骨骼长度,从而可以利用修改损失函数的方式对预测的结果添加运动学约束。利用3dheatmap获得关节点的位置然后根据关节点之间的对应关系计算出骨骼的长度;提出一个soft-argmax函数,以一种可导的方式来从3dheatmap中获得关节点的坐标。通过上述操作,本发明能够更好地判断出预测结果的骨骼长度的合理性以及预测出的手部姿态的合理性。

附图说明

图1为本发明手部区域定位网络com-refinenet的示意图。

图2为本发明体素化后的手部区域。

图3为本发明合理和不合理的手部姿态示意图。

图4为本发明整体预测结构示意图。

图5为本发明引入运动学约束的手部姿态估计网络示意图。

图6为本发明关节点分布图示意图。

图7为本发明不同的手部姿态预测结果示意图。

具体实施方式

手部姿态估计任务分为两步,第一步是从深度图中定位出手部区域,第二步则是从手部区域中预测出各个关节点的坐标。目前表现比较优秀的手部区域定位方法分为两步,第一步是基于深度图中距离摄像机越近深度值越低这一特点,假设手是距离摄像机最近的物体,通过设置深度阈值来获得粗略的手部定位结果;第二步则是将粗略的手部定位区域输入到如图1所示的手部区域定位网络(com-refinenet)中,预测出手掌心的坐标,然后再根据预设的手部大小来获得最终的手部定位结果。

com-refinenet网络所采用的测试指标是,预测出的手掌心位置与真实位置的欧氏距离平均值。

传统的用于关节点预测的基于卷积神经网络的方法,是将深度图作为2d数据输入到2d卷积神经网络中,直接回归出关节点的位置。但是深度图实际上代表的是2.5d数据,直接将其视作2d数据并且采用2d卷积神经网络进行处理,并不能很好地提取到深度图中的关键信息。除此之外,以深度图作为输入直接回归关节点的位置是一个高度非线性过程,会增加网络的学习难度。

申请人认为,针对传统的手部姿态估计方法存在的问题,目前比较有效的方式是采用体素化的输入形式,使用3d卷积神经网络进行特征提取,预测表示关节点位置概率分布的3dheatmap,能够使得关节点预测达到较高的精度。将原始的深度图中的手部区域转化成体素化的输入,需要四步:第一步,深度图中的手部区域会被投影到3d空间;第二步,投影到3d空间的数据会根据预设的体素大小进行离散化处理;第三步,体素各个位置的值将根据该位置是否被离散的点所覆盖被设为1或者0。体素化后的手部区域如图2所示,其中蓝色的点表示该位置的值为1。

手是一个结构化物体,各个关节点通过骨骼连接形成的手部姿态需要满足物理学约束。所以在手部姿态估计任务中,除了要考虑预测的关节点位置的准确性,还需要考虑预测出的关节点所形成的手部姿态是否合理。如图3所示,右图拇指的关节点位置和左图十分接近,但是右图的拇指弯曲程度却是不合理的。所以我们采用的是对预测出的手部姿态添加骨骼长度约束,来保证手部姿态的合理性。

在本申请中,我们提出了一个引入了运动学约束的3d网络用于准确而合理的手部姿态估计。整个网络的预测流程可以被分为两步,第一步是利用如图1所示的手部区域定位网络(com-refinenet)从深度图中定位出手部区域,第二步则是利用引入了运动学约束的手部姿态估计网络(rvhe)以体素化的手部区域作为输入,得到关节点的预测结果,整体结构图如图4所示。

rvhe网络采用的测试指标是预测出的各个关节点位置与真实的位置之间欧氏距离的平均值。

引入了运动学约束的手部姿态估计网络结构与文章中的结构一致,整体流程如图5所示,该网络以体素化的手部区域作为输入,经过3d卷积神经网络,预测表示关节点概率分布的3dheatmap。通过对3dheatmap进行处理,可以获得各个关节点的坐标以及对应的骨骼长度,从而可以利用修改损失函数的方式对预测的结果添加运动学约束。

对预测的结果添加运动学约束需要对3dheatmap进行处理,网络预测出的3dheatmap代表了单个关节点的概率分布,heatmap中最大值的位置也就是关节点的位置。利用3dheatmap获得关节点的位置然后根据关节点之间的对应关系就可以计算出骨骼的长度。但是直接用argmax函数获得坐标是一个不可导的方式,会影响网络训练时端到端的反向传播链,所以我们提出了一个soft-argmax函数,以一种可导的方式来从3dheatmap中获得关节点的坐标。

soft-argmax函数提出的前提是,对于一个足够锋利的分布,最大值的位置可以近似地等价于这个分布的期望。考虑到一个3dheatmap对应一个关节点,所以每个heatmap的分布都接近于leptokurtic分布,并且在将heatmap的值经过soft-max之后,每个heatmap的分布会更加的锋利。因此可以使用soft-argmax函数来以一种可导的方式获得每个heatmap中关节点的坐标。soft-argmax函数如公式(1)所示:

(1)

其中,x代表的是尺寸为大小的3dheatmap;代表的是soft-max函数;代表的是3dheatmap最大值所在的位置。

通过公式(1)的操作,我们可以获得3dheatmap对应的各个关节点的坐标,然后就对预测结果添加运动学约束。首先,我们会根据训练数据,为每个骨骼长度设定一个标准的范围,即该骨骼的最大长度和最小长度;然后,从3dheatmap中得到的骨骼长度将会和设定的标准范围进行比较,高于最大长度或者低于最小长度都会受到惩罚,从而为预测结果添加了运动学约束。添加了运动学约束的手部姿态估计网络的损失函数如公式(2)所示。

(2)

其中,l是整体的损失函数,一共包括三个部分,分别代表了3dheatmap的约束、骨骼长度超过最大长度的约束、骨骼长度低于最短长度的约束;n代表了关节点的数目,n-1代表了骨骼的数目,以及分别代表了预测和真实的3dheatmap,是由预测的关节点坐标计算得到的骨骼长度,代表了预设的最长和最短的骨骼长度,则代表了损失函数各个成分的权重。

现有的质量较高的手势数据集有三个,分别是nyu数据集,icvl数据集以及msra数据集。因为nyu数据集所包括的手势最多,标注的关节点位置最多,注释信息也最准确,所以使用nyu数据集进行训练和测试。网络一共被训练预测14个关节点的位置,包括手掌心位置,两个腕部关节点,大拇指的腕掌关节,五个手指的掌指关节以及指尖,关节分布图如图6所示。

为了测试网络的性能,在nyu测试集一共进行了三个实验。

(1)手部区域修正

为了测试com-refinenet对手掌心位置的修正能力,首先,利用粗略手部定位的方式(com),获得手掌心的粗略坐标,并计算定位误差;然后将粗略手部区域送入到com-refinenet中,得到修正后的手掌心位置,计算定位误差,两个计算结果可见表1,其中groundtruth代表的是真实的手掌心位置。

表1不同定位方法的误差

由表1可以看出,使用com-refinenet能够为后续的预测网络提供较为准确的手部区域定位结果。

(2)剥离实验

为了进一步地验证com-refinenet和所添加的物理约束为v2v-posenet所带来的提升,本文采取了剥离实验,提出了五种不同的预测结构。第一个是基础结构,是使用了粗略手部定位的且没有添加物理约束的v2v-posenet。第二个结构是在第一个的基础上,对v2v-posenet添加了骨骼长度约束。第三个结构是在第一个的基础上,将粗略的手部定位替换成了com-refinenet。第四个结构既将粗略定位换成了com-refinenet又添加了物理约束,即rvhe。第五个结构是利用真实的手掌心位置获取手部区域并对预测网络添加物理约束。本文对上述五个结构的全部关节点的平均预测误差做出计算,结果见表2。

表2不同结构的预测误差

在表2中,v2v表示没有添加物理约束的关节点位置预测网络,com表示粗略手部定位,comrn表示使用了com-refinenet,cs是添加的物理约束,gt真实的手部区域定位。通过表2可以看出,第一个结构的预测误差高达20mm。将使用了粗略定位的方法与使用com-refinenet相比较,即第一个结构与第三个结构相比,第二个结构与第四个结构相比,可以发现,使用修正的手部区域,分别将误差降低了6mm和5mm;将没有添加物理约束和添加了物理约束的方法相比较,即第一个结构与第二个结构相比,第三个结构与第四个结构相比,可以发现,添加物理约束,分别将误差降低了1mm和0.7mm。第五个结构利用没有偏差的手部区域定位,取得了最好的预测误差9.23mm。由此可以得出,精准的手部区域定位对网络的最终预测十分重要,在较为准确定位手部区域的基础上,添加一定的物理约束可以使预测结果更加合理、准确。

(3)综合实验

将com-refinenet与添加了物理约束的v2v-posenet串联起来,即rvhe,与在手势姿态估计领域其他先进的方法在两个测试指标上进行比较。一共选取了五个方法。分别是deepprior、deepprior++、feedback、ren、deepmodel。

通过在nyu数据集上进行测试,得到所有关节点的平均预测误差(见表3)。

表3不同方法的定位误差

通过表3可以得出,与其他先进的方法相比较,该方法已经达到了较为准确的水平,比deepprior减少了近6mm,与ren预测准确度相近。

(4)定性分析

将rvhe的输出结果转化成关节点的位置,并绘制在深度图上,以红色表示预测的关。

节点位置和骨骼连线,绿色表示真实结果,部分预测结果可见图7。可以发现,rvhe能够提供准确的手部姿态估计结果。

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