一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法与流程

2022-05-18 05:24:06 来源:中国专利 TAG:


1.本技术涉及计算机视觉技术领域,更为具体来说,本技术涉及基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法。


背景技术:

2.感知手部形状和手部运动的能力可应用到多个场景,实现设备的智能化。例如,它可以形成手语理解和手势控制的基础,并且可以在增强现实情景中实现物理世界的数字内容与信息叠加。
3.然而实际应用场景较为复杂,手部感知算法中的检测模型容易受到目标距离、光照、遮挡及背景对比度低等的影响,导致手部实时检测不稳定,进而导致下游应用出现问题。例如,在720p分辨率及使用轻量级手部检测模型下,检测目标距离摄像头距离超过2.5米,此时手部目标过小,而轻量手部检测模型无法稳定地胜任小目标检测的工作,从而导致手部检测出现大量漏检情况,进而无法完成基于手部的相关应用。因此稳定的手部实时检测是一项极具挑战性的计算机视觉任务。


技术实现要素:

4.基于上述技术问题,本发明旨在解决手部感知的不稳定情况,提出一种采用自适应手部区域粗定位及改进卡尔曼滤波的手部实时感知方法,方法中用到人体姿态估计模型、手部检测器和卡尔曼滤波跟踪器。
5.本发明第一方面提供了一种基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法,所述方法包括:
6.获取rgb图像并对所述rgb图像进行预处理;
7.将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;
8.在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;
9.若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;
10.利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;
11.若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
12.进一步地,所述方法还包括:若前臂关键点对为完整状态,且处于第一针图像中,则为前臂关键点对设置前臂关键点跟踪器,其中,所述前臂关键点跟踪器需初始化参数。
13.具体地,所述基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果,包括:
14.前臂跟踪器对前臂关键点对的t-1时刻状态预测t时刻状态记为预测值;
15.获取前臂关键点对在t时刻的观测状态记为观测值;
16.基于所述预测值和所述观测值获取前臂关键点对的最优匹配对记为第一预测结果。
17.进一步优选地,所述基于所述预测值和所述观测值获取前臂关键点对的最优匹配对记为第一预测结果之前,还包括:
18.分别计算手腕点和手肘点对应的欧式距离;
19.基于所述手腕点和手肘点对应的欧式距离计算平均距离,得到损失矩阵;
20.基于所述损失矩阵采用匈牙利算法得到最小损失。
21.再具体地,所述利用所述第一预测结果自适应生成手部局部区域,包括:
22.获取第一预测结果中的手腕点和手肘点;
23.根据所述手腕点和手肘点计算前臂二维向量模;
24.根据手肘点和肩膀点计算上臂二维向量模;
25.基于所述前臂二维向量模和所述上臂二维向量模的判定公式计算手部局部区域的坐标和长宽值;
26.自适应调整所述坐标和长宽值得到手部局部区域。
27.再进一步地,所述基于所述前臂二维向量模和所述上臂二维向量模的判定公式计算手部局部区域的坐标和长宽值,公式为:
[0028][0029][0030][0031]
其中,c
x
,cy分别表示手部局部区域的x轴坐标和y轴坐标,dist
af
表示前臂二维向量模,dist
au
表示上臂二维向量模,wi表示手腕点,ei表示手肘点,si表示肩膀点,l表示宽。
[0032]
进一步优选地,所述优化的卡尔曼滤波包括预测阶段和更新阶段及对更新阶段的修正;所述对更新阶段的修正基于卡尔曼增益进行修正,其中,卡尔曼增益乘以一个增强因子或乘以一个衰减因子。
[0033]
本发明第二方面提供了一种基于自适应定位及卡尔曼滤波跟踪的手部实时感知装置,所述装置包括:
[0034]
获取模块,用于获取rgb图像并对所述rgb图像进行预处理;
[0035]
预处理模块,用于将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;
[0036]
提取模块,用于在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;
[0037]
第一预测模块,若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;
[0038]
手部检测模块,用于利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;
[0039]
第二预测模块,若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0040]
本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0041]
获取rgb图像并对所述rgb图像进行预处理;
[0042]
将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;
[0043]
在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;
[0044]
若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;
[0045]
利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;
[0046]
若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0047]
本发明第四方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0048]
获取rgb图像并对所述rgb图像进行预处理;
[0049]
将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;
[0050]
在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;
[0051]
若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;
[0052]
利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;
[0053]
若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0054]
本技术的有益效果为:本技术利用优化的卡尔曼滤波前臂跟踪器及手部检测框跟踪器弥补了openpose人体姿态估计模型和blazepalm手部检测模型检测不足的状况,使对手部检测结果更加实时和精准。由于人体姿态估计模型存在预测误差,因此光照变化、遮挡、背景等因素都可能使手腕点的预测位置发生“漂移”,这也会让依赖于手腕点而生成的手部局部区域发生偏移,所以本技术通过自适应生成手部局部区域及优化的卡尔曼滤波使手部检测,使用上臂长度来决定手部区域框的大小及位置,从而摆脱了过度依靠手腕点的问题,使手部感知更加稳定,可以适用于多种不同的应用场景。
附图说明
[0055]
构成说明书的一部分的附图描述了本技术的实施例,并且连同描述一起用于解释本技术的原理。
[0056]
参照附图,根据下面的详细描述,可以更加清楚地理解本技术,其中:
[0057]
图1示出了本技术示例性实施例中的基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法之步骤示意图;
[0058]
图2示出了本技术示例性实施例的基于自适应定位及卡尔曼滤波跟踪的手部实时感知装置之结构示意图;
[0059]
图3示出了本技术示例性实施例所提供的一种电子设备的结构示意图;
[0060]
图4示出了本技术示例性实施例所提供的一种存储介质的示意图。
具体实施方式
[0061]
以下,将参照附图来描述本技术的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本技术的概念。对于本领域技术人员来说显而易见的是,本技术可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本技术发生混淆,对于本领域公知的一些技术特征未进行描述。
[0062]
应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本技术的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
[0063]
现在,将参照附图更详细地描述根据本技术的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
[0064]
下面结合说明书附图1-4给出几个实施例来描述根据本技术的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。相反,本技术的实施方式可以应用于适用的任何场景。
[0065]
实施例1:
[0066]
本实施例实施了一种基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法,如图1所示,包括:
[0067]
s1、获取rgb图像并对所述rgb图像进行预处理;
[0068]
s2、将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;
[0069]
s3、在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;
[0070]
s4、若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;
[0071]
s5、利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;
[0072]
s6、若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0073]
这里需要说明的是,卡尔曼滤波是一种基于线性系统的状态方程,通过系统输入输出观测数据,是对系统状态进行最优估计的算法;ssd是single shot multibox detector的简写,表示一种目标检测算法;blazepalm是由谷歌研发的一种手部检测模型;blazeface为由谷歌研发的一种人脸检测模型;blazeblock为由谷歌研发的一种子网络模块,blazeface和blazepalm则由多个该子网络模块组成;openpose为由卡耐基梅隆大学感知计算实验室(cmu perceptual computing lab)研发的一种开源人体姿态估计模型;匈牙利算法为一种在多项式时间内求解任务分配问题的组合优化算法;iou为intersection over union的缩写,是一种测量在特定数据集中检测相应物体准确度的一个标准。
[0074]
进一步地,方法还包括:若前臂关键点对为完整状态,且处于第一针图像中,则为前臂关键点对设置前臂关键点跟踪器,其中,前臂关键点跟踪器需初始化参数。
[0075]
具体地,基于优化的卡尔曼滤波前臂跟踪器为前臂关键点对取得第一预测结果,包括:
[0076]
前臂跟踪器对前臂关键点对的t-1时刻状态预测t时刻状态记为预测值;
[0077]
获取前臂关键点对在t时刻的观测状态记为观测值;
[0078]
基于预测值和观测值获取前臂关键点对的最优匹配对记为第一预测结果。
[0079]
进一步优选地,基于预测值和观测值获取前臂关键点对的最优匹配对记为第一预测结果之前,还包括:
[0080]
分别计算手腕点和手肘点对应的欧式距离;
[0081]
基于手腕点和手肘点对应的欧式距离计算平均距离,得到损失矩阵;
[0082]
基于损失矩阵采用匈牙利算法得到最小损失。
[0083]
再具体地,利用第一预测结果自适应生成手部局部区域,包括:
[0084]
获取第一预测结果中的手腕点和手肘点;
[0085]
根据手腕点和手肘点计算前臂二维向量模;
[0086]
根据手肘点和肩膀点计算上臂二维向量模;
[0087]
基于前臂二维向量模和上臂二维向量模的判定公式计算手部局部区域的坐标和长宽值;
[0088]
自适应调整坐标和长宽值得到手部局部区域。
[0089]
再进一步地,基于前臂二维向量模和上臂二维向量模的判定公式计算手部局部区域的坐标和长宽值,公式为:
[0090]
[0091][0092][0093]
其中,c
x
,cy分别表示手部局部区域的x轴坐标和y轴坐标,dist
af
表示前臂二维向量模,dist
au
表示上臂二维向量模,wi表示手腕点,ei表示手肘点,si表示肩膀点,l表示宽。
[0094]
进一步优选地,优化的卡尔曼滤波包括预测阶段和更新阶段及对更新阶段的修正;对更新阶段的修正基于卡尔曼增益进行修正,其中,卡尔曼增益乘以一个增强因子或乘以一个衰减因子。
[0095]
实施例2:
[0096]
本实施例提供了一种基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法,包括:获取rgb图像并对所述rgb图像进行预处理;将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0097]
在一种可能的实施方式中,获取rgb图像并对所述rgb图像进行预处理,可以从摄像设备读入rgb图像,对rgb图像进行预处理,将rgb图像大小调整到人体姿态估计模块的输入大小,对rgb图像像素值进行归一化等等。接着将预处理后的图像输入至openpose人体姿态估计模型,得到18个人体关键点位置信息。从18个人体关键点中提取出左右手腕,左右手肘,左右肩膀共6个点。左右手腕点和左右手肘点组成左右前臂,而左右手肘点和左右肩膀点组成左右上臂。考虑到openpose人体姿态估计模块存在不稳定性,此不稳定性有几率会导致上述人体关键点出现缺省情况即位置值回归失败,而处于缺省状态的人体关键点的xy轴位置信息均赋值为-1。因此,若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果。例如:第i个前臂关键点对afi包含对应的手腕点wi和手肘点ei,即afi={wi,ei}同样地,第i个上臂关键点对aui包含对应的手肘点ei和肩膀点si,即aui={ei,si},其中,前臂关键点对可分成缺省前臂关键点af
null
对和完整前臂关键点对af
vaild
两种。若某前臂关键点对中的手腕点手腕点wi或手肘点ei两者处于缺省状态(即xy轴位置信息均为-1),那么此前臂关键点归为缺省前臂关键点,否则归为完整前臂关键点对。
[0098]
作为可变换的实施方式,在一些实施例中,还包括:若前臂关键点对为完整状态,且处于第一针图像中,则为前臂关键点对设置前臂关键点跟踪器,其中,前臂关键点跟踪器需初始化参数。例如若输入为第一帧图像,则基于每个完整前臂关键点对的手腕点和手肘点位置信息作为初始化输入,初始化一个前臂关键点对跟踪器
假设当前有m个完整前臂关键点对,则可得m个前臂关键点对跟踪器,m个前臂关键点对跟踪器组成前臂关键点对跟踪器集其中,上标0指的是初始帧时间点。
[0099]
在具体实施中,基于优化的卡尔曼滤波前臂跟踪器为前臂关键点对取得第一预测结果,包括:前臂跟踪器对前臂关键点对的t-1时刻状态预测t时刻状态记为预测值;获取前臂关键点对在t时刻的观测状态记为观测值;基于预测值和观测值获取前臂关键点对的最优匹配对记为第一预测结果。
[0100]
进一步优选地,基于预测值和观测值获取前臂关键点对的最优匹配对记为第一预测结果之前,还包括:分别计算手腕点和手肘点对应的欧式距离;基于手腕点和手肘点对应的欧式距离计算平均距离,得到损失矩阵;基于损失矩阵采用匈牙利算法得到最小损失。
[0101]
再具体地,利用第一预测结果自适应生成手部局部区域,包括:获取第一预测结果中的手腕点和手肘点;根据手腕点和手肘点计算前臂二维向量模;根据手肘点和肩膀点计算上臂二维向量模;基于前臂二维向量模和上臂二维向量模的判定公式计算手部局部区域的坐标和长宽值;自适应调整坐标和长宽值得到手部局部区域。前臂二维向量模和上臂二维向量模计算公式为:
[0102]
dist
af
=||w
i-ei||2[0103]
dist
au
=||e
i-si||2[0104]
再进一步地,基于前臂二维向量模和上臂二维向量模的判定公式计算手部局部区域的坐标和长宽值,公式为:
[0105][0106][0107][0108]
其中,c
x
,cy分别表示手部局部区域的x轴坐标和y轴坐标,dist
af
表示前臂二维向量模,dist
au
表示上臂二维向量模,wi表示手腕点,ei表示手肘点,si表示肩膀点,l表示宽,由于手部检测框的宽高比都是1:1的正方形,因此手部区域框的长宽也是一样,设为l。以上公式中的0.33是通过统计人体手掌长度与前臂长度以及上臂长度的比值得到的,0.9是通过统计人体前臂长度和上臂长度的比值得到的,1.6是在实践中发现的最优的区域尺度因子。最后得到的手部区域框可用“(左上角x轴位置,左上角y轴位置,宽,高)”的形式表达,即表示如下:
[0109]
area
hand
=(cx-l*0.5,cy-l*0,5,l,l)
[0110]
通过以上公式,算法可根据目前手臂情况对手部区域框做自适应调整,例如手往前伸直的时候,在二维平面上手腕点和手肘点几乎重叠,两者距离非常小,而手肘点到肩膀点仍保持一定距离,因此算法可使用上臂长度来决定手部区域框的大小以及位置,从而摆脱了过度依靠手腕点的问题。
[0111]
需要说明的是,本技术中的前臂关键点跟踪器和手部检测框跟踪器是基于修正增强卡尔曼滤波实现的,其相对于传统的卡尔曼滤波,优化了修正阶段,即优化的卡尔曼滤波包括预测阶段和更新阶段及对更新阶段的修正;对更新阶段的修正基于卡尔曼增益进行修正,其中,卡尔曼增益乘以一个增强因子或乘以一个衰减因子。传统卡尔曼滤波的跟踪算法包括预测阶段和更新阶段,在预测阶段中,首先假设运动目标在t时刻的坐标(x
t
,y
t
),其运运速度为(v
x
,vy),则状态值stat
t
=(x
t
,y
t
,v
x
,vy)
t
,观测值系统状态预测方程中的状态转换矩阵a为:
[0112][0113]
一般跟踪算法默认没有控制变量的输入,所以状态方程可定义为:
[0114][0115]
除了需要状态预测方程,还需要一个观测方程,其中观测矩阵为h,其目的是将观测值矩阵形状转换到与状态矩阵的形状相对应,观测方程可定义为:
[0116][0117][0118]
基于以上定义,设为t时刻的先验状态估计值,是算法根据上一时间点的后验估计值所作出的不可靠估计。结合状态方程可得相应的预测方程为:其中,w
t
则表示为:
[0119][0120]
除此以外,设t时刻的先验估计协方差为其中q是激励噪声的协方差。
[0121]
在更新阶段,主要是对不可靠估计做一个修正,更新公式如下:
[0122][0123][0124][0125]
其中,表示不可靠估计,表示后验状态估计值,k
t
表示卡尔曼增益,表示后验估计协方差。修正增强卡尔曼滤波则主要对更新阶段进行优化,首先需计算上一个时间点后验估计状态值和观测值的误差,不同应用下误差计算方式不一样,前臂关键点跟踪器的误差计算是基于欧式距离,手部检测框跟踪器则是基于iou值。当误差值小于设定的弱合格阈值时,卡尔曼增益会乘以一个增强因子;若误差值大于设定的强合格阈值时,卡尔曼增益会乘以一个衰减因子;若误差值出于弱合格阈值和强合格阈值之间,则卡尔曼增益不改变。相应误差公式如下:
[0126][0127]
前臂关键点跟踪器的误差计算是基于欧式距离(对应公式下方),手部检测框跟踪器则是基于iou值(对应公式上方),相应的先验状态估计值修正公式如下:
[0128][0129]
其中φ为增强因子,实践中设置为2最优;γ为衰减因子,实践中优选设置0.9。
[0130]
卡尔曼增益实际上是在先验状态估计和观测值之间起平衡作用,若卡尔曼增益增强了,表示系统当前更“相信”观测值,因此增大了先验状态估计的修正力度;若卡尔曼增益衰减了,表示系统认为当前后验状态估计有可能过度拟合观测值,导致鲁棒性降低,若观测
值出现误差,则系统估计也会容易受到影响,因此减弱先验状态估计的修正力度。
[0131]
优化的卡尔曼滤波为前臂跟踪器和手部检测框跟踪器提供了支撑,使前臂跟踪器和手部检测框跟踪器均能得到最优的匹配对,通过优化的卡尔曼滤波对更新阶段的修正,使前臂跟踪器和手部检测框跟踪器得到的第一预测结果和第二预测结果清晰、稳定且达到了实时的技术效果。例如假设当前为第t帧且有m
t-1
个跟踪器,首先m
t-1
个跟踪器均需根据t-1时刻的状态值对当前时间点t的状态进行预测,得到手腕点先验预测值和手肘点先验预测值比如得到n个前臂关键点对,包括所有af
null
和af
vaild
两种,每个afi中的手腕点wi和手肘点ei需要与m
t-1
个跟踪器的手腕点先验预测值和手肘点先验预测值分别计算对应的欧式距离,得到dw
ij
和de
ij
然后计算平均距离得到损失矩阵再基于损失矩阵d使用匈牙利算法,以寻找最小损失组合,计算出当前所有前臂关键点对和当前所有跟踪器的最小损失配对集其中k表示有k对最优匹配对km
t
={af,kt
t-1
},k小于等于m
t-1
且k大于等于n。若出现无法配对的k

个前臂关键点对af
miss
,且k

个前臂关键点中有k

vaild
个完整前臂关键点对,则基于每一个完整前臂关键点对的手腕点和手肘点位置信息作为初始化输入,初始化前臂关键点对跟踪器并放入前臂关键点对跟踪器集kt
t
;若出现无法配对的k

个跟踪器则k

个跟踪器的寿命计数器自加1,寿命计数器到达清除阈值的时候,该跟踪器从kt
t
中剔除,假设共剔除了m
del
个跟踪器,那最终第t帧的前臂关键点对跟踪器集kt
t
中跟踪器数量更新为:m
t
=m
t-1
k

vaild-m
del

[0132]
手部检测框跟踪器与前臂跟踪器工作过程相信,不同的是基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果之前,还包括:分别计算手腕点和手肘点对应的iou值;基于iou值得到损失矩阵;基于损失矩阵采用匈牙利算法得到最小损失。其他与前臂跟踪器相似的工作过程在此不再赘述。另外,当跟踪器出现无法配对的情况时,大概率是因为相应缺失的关键点未能通过人体姿态估计预测得到即处于缺省状态的人体关键点,因此此时会将先验预测值补充到相应缺失的关键点上。
[0133]
本技术利用优化的卡尔曼滤波前臂跟踪器及手部检测框跟踪器弥补了openpose人体姿态估计模型和blazepalm手部检测模型检测不足的状况,使对手部检测结果更加实时和精准。由于人体姿态估计模型存在预测误差,因此光照变化、遮挡、背景等因素都可能使手腕点的预测位置发生“漂移”,这也会让依赖于手腕点而生成的手部局部区域发生偏移,所以本技术通过自适应生成手部局部区域及优化的卡尔曼滤波使手部检测,使用上臂长度来决定手部区域框的大小及位置,从而摆脱了过度依靠手腕点的问题,使手部感知更加稳定,可以适用于多种不同的应用场景。
[0134]
实施例3:
[0135]
本实施例提供了一种基于自适应定位及卡尔曼滤波跟踪的手部实时感知装置,如图2所示,所述装置包括:
[0136]
获取模块301,用于获取rgb图像并对所述rgb图像进行预处理;
[0137]
预处理模块302,用于将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;
[0138]
提取模块303,用于在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;
[0139]
第一预测模块304,若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;
[0140]
手部检测模块305,用于利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;
[0141]
第二预测模块306,若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0142]
下面请参考图3,其示出了本技术的一些实施方式所提供的一种电子设备的示意图。如图3所示,所述电子设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本技术前述任一实施方式所提供的基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法,所述电子设备可以是具有触敏显示器的电子设备。
[0143]
其中,存储器201可能包含高速随机存取存储器(ram:random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
[0144]
总线202可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本技术实施例任一实施方式揭示的所述基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法可以应用于处理器200中,或者由处理器200实现。
[0145]
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
[0146]
本技术实施例提供的电子设备与本技术实施例提供的基于自适应定位及卡尔曼
滤波跟踪的手部实时感知方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
[0147]
本技术实施方式还提供一种与前述实施方式所提供的基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法对应的计算机可读存储介质,请参考图4,图4示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法。
[0148]
另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0149]
本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的空分复用光网络中量子密钥分发信道分配方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
[0150]
本技术实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的基于自适应定位及卡尔曼滤波跟踪的手部实时感知方法的步骤,所述方法的步骤包括:获取rgb图像并对所述rgb图像进行预处理;将预处理后的rgb图像输入训练好的openpose人体姿态估计模型,得到第一预设数目的人体关键点;在第一预设数目的人体关键点中提取第二预设数目的手腕点、手肘点和肩膀点组成前臂关键点对和上臂关键点对;若前臂关键点对中存在缺省状态的点,则基于优化的卡尔曼滤波前臂跟踪器为所述前臂关键点对取得第一预测结果;利用所述第一预测结果自适应生成手部局部区域,将所述手部局部区域对应的rgb图像输入至训练好的blazepalm手部检测模型中,获得手部检测框;若手部检测框中存在缺省状态的点,则基于优化的卡尔曼滤波手部检测框跟踪器为所述手部检测框取得第二预测结果作为手部实时感知结果。
[0151]
需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本技术的内容,并且上面对特定语言所做的描述是为了披露本技术的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0152]
类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在上面对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
[0153]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地
改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0154]
本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0155]
以上所述,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献