当前位置: 首页 > 专利查询>中北大学专利>正文

一种基于Kinect骨骼节点位置追踪的人体姿势比较方法技术

技术编号:19860406 阅读:24 留言:0更新日期:2018-12-22 12:21
本发明专利技术具体涉及一种基于Kinect骨骼节点位置追踪的人体姿势比较方法,主要解决了现有骨骼节点位置定位和用户姿势比较方法中存在的数据稳定性和数据实时性不可兼得的缺点。本发明专利技术首先利用动态帧数替换算法保存靠近此时刻的一批数据,作为节点滤波的数据源,然后用改进的中位值均值滤波算法对数据源中自适应截取出的数据进行滤波与偏移预测,输出稳定且实时性高的滤波点,以用于后续计算用户骨骼角度和骨骼向量积角度,最后平滑骨骼角度和骨骼向量积角度,作为评价用户动作的依据。该方法适用于滤波和平滑与时间相关的连续性变化的变量,也可应用于虚拟现实游戏中对用户姿态的追踪,以及工程中对器件角度动态变化的监控和测量。

【技术实现步骤摘要】
一种基于Kinect骨骼节点位置追踪的人体姿势比较方法
本专利技术属于多用户肢体动作实时比较方法
具体提出了一种基于Kinect骨骼节点位置追踪的人体姿势比较方法。此方法也可应用于虚拟现实游戏中对用户姿态的追踪,以及工程中对器件角度动态变化的监控和测量。
技术介绍
虚拟现实技术(VirtualReality,VR)是一种可以创建和体验虚拟世界的计算机技术,是以沉浸性(Immersion)、交互性(Interaction)和构想性(Imagination)为基础特征的计算机高级人机界面。它利用计算机生成一种虚拟环境,通过模拟实际情况从而对人的触觉、听觉、视觉等感觉器官进行影响,使人能沉浸在计算机生成的虚拟世界中。同时还可借助传感头盔、运动捕捉系统、数据手套等专业设备,使用户进入虚拟空间,实时感知和操作虚拟环境中的对象。随着虚拟现实技术的快速发展及其在各行业中广泛的应用,虚拟现实系统中对用户动作和姿态的追踪计算在实际的应用中起着越来越重要的作用,计算的精度和结果的稳定程度影响着用户对虚拟系统的实时操控性和操控精确度,而虚拟界面的实时交互性影响着用户的沉浸感和真实感。三维空间中用户的动作,具有连续性和速度变化的特性,在处理用户动作数据的时候既要考虑对用户数据的滤波和平滑处理,又要求系统的延迟不能太低,这对于算法是有很高的要求的,但在现有的动作变化处理方法中,没有根据用户动作变化的速度计算的相关方法,现有方法中没有加入预测偏移量,也没有合理利用最近产生的数据,导致在用户动作连续变化时要么算法平滑数据很好但是系统延迟很高,要么实时性很好但是平滑和滤波效果不理想,在虚拟系统的人机交互中极大地影响了用户体验。
技术实现思路
本专利技术的目的是解决虚拟动作学习系统中对用户的动作追踪不准确、计算结果不稳定的情况,兼顾了对用户动作的平滑处理和实时性要求,从而提高系统中对用户动作的实时计算的精确性和稳定性,提高用户体验。为解决上述技术问题,本专利技术采用的技术方案为:一种基于Kinect骨骼节点位置追踪的人体姿势比较方法,包括以下步骤:步骤1,将KinectV2和笔记本的USB3.0接口相连接,确保设备扫描得到的深度数据和彩色数据能够正常传输,通过KinectSDKWrapper脚本在Unity3D中对KinectV2识别并自动计算得到的骨骼节点数据进行接收并存储;步骤2,通过动态帧数替换算法保存从KinectSDKWrapper脚本接收到的最近N帧人体全身的20个特征骨骼节点数据,并实时更新;步骤3,依据中位值平均滤波算法对步骤2中实时更新的骨骼节点数据进行抖动偏差处理,并加入偏移预测,之后得出稳定的骨骼节点数据;步骤4,依据步骤3中稳定的骨骼节点数据,求出与骨骼节点相连的18个对应人体全身各主要部位骨骼的骨骼向量,并计算这18个骨骼向量旋转连接处的两相邻骨骼向量的角度值,以及连接这个骨骼节点的两骨骼向量的向量积;步骤5,利用步骤4得出的实时骨骼角度值和向量积,计算同一时刻两个用户的所有对应骨骼关节处骨骼向量所形成的角度的差值的绝对值,以及该骨骼关节处两段骨骼所组成的向量积的角度,通过动态帧数替换算法动态记录从现在时刻起往前N帧的每一帧中两用户的骨骼角度差值和骨骼向量积角度值;步骤6,通过EWMA算法平滑同一骨骼关节位置的不同帧数下骨骼向量角度值和骨骼向量积角度值,用平滑后的骨骼向量角度值作差值和设定的阈值角度作比较,用平滑后的骨骼向量积角度值作差值和设定的阈值角度作比较,依据不同身体部位影响整体身体姿态的权重,给符合阈值约束的关节位置一个分数值并记录,然后统计当前分数总和并显示,即完成了两个用户基于Kinect骨骼节点位置追踪的人体姿势比较。首先利用动态帧数替换算法保存靠近此时刻的一批数据,作为节点滤波的数据源,然后用改进的中位值均值滤波算法对数据源中自适应截取出的数据进行滤波与偏移预测,输出稳定且实时性高的滤波点,以用于后续计算用户骨骼角度和骨骼向量积角度,最后平滑骨骼角度和骨骼向量积角度,作为评价用户动作的依据。该方法适用于滤波和平滑与时间相关的连续性变化的变量,也可应用于虚拟现实游戏中对用户姿态的追踪,以及工程中对器件角度动态变化的监控和测量。进一步,所述步骤2)中通过动态帧数替换算法保存从KinectSDKWrapper脚本接收到的最近N帧人体全身的20个特征骨骼节点数据,并实时更新,动态帧数替换算法需要实时采集当前最近N帧的骨骼点位置信息,即需要在新的一帧开始时,把采集到的新一帧中20个骨骼节点的位置信息保存下来,这就需要先把距离当前帧N-1帧的数据抛弃,保证滤波时使用的数据是实时更新的最近N帧的数据,其步骤包括:2.1、当前总运行帧数不大于m帧时,把此刻此位置的数据按顺序保存在预设好的二维数组FramePos[m,i]的第0到第m-1行中;2.2、总运行帧数大于m帧时,丢弃最早一帧的数据,所有数据前移一位,把此刻的最新数据下载到数组的第m-1行中;2.3、每帧都对全身的20个骨骼节点循环一次步骤2.1和2.2。通过以上步骤2.1到2.3实时更新用户骨骼节点数组,保证之后数据处理时用到的是实时更新的数据。再进一步,所述步骤3)中,依据中位值平均滤波算法对步骤2中实时更新的骨骼节点数据进行抖动偏差处理,并加入偏移预测,之后得出稳定的骨骼节点数据,系统运行时根据不同动作过程中人体不同骨骼节点位移速率的不同,依据自适应帧数计算方法计算出20个关节点各自适合的帧数数量,用于滤波和计算预测偏移量,其步骤包括:3.1、计算此刻此节点的位移速率v和加速度a;速率v和加速度a的计算方法为:v=d/t,a=Δv/t其中d为此节点最近两帧的位置,t为帧间间隔,△v是此节点最近两帧的速度差;3.2、把位移速率v带入调节函数中,计算出此刻此节点的位移速率对应适合的帧数数据的数量M;其中,函数φ(v)为由先验方法拟合的四参数方程,A0、B0、C0、D0为常数;3.3、从帧数替换算法获取到的此节点最近N帧数据中,取靠近此刻的M帧数据下载到新的数组AutoArray中,并采用冒泡排序算法从小到大排序;3.4、去掉数组A中队首和队尾元素后取平均值;3.5、根据步骤3.1中计算出的位移速率v和加速度值a,计算预测值,以及预测值在X、Y、Z三个方向的偏移量Px、Py、Pz,预测值的计算方法:P=v0*t+0.5*a*t2偏移量:其中,angle_x,angle_y,angle_z分别为偏移量与X、Y、Z抽的夹角,把它们分别加入步骤3.4计算出的平均值的X、Y、Z分量中,作为最后的滤波预测位置;3.6、每帧都对所有骨骼节点重复一次以上步骤,保存此刻这20个节点的稳定位置。通过以上步骤3.1到3.6,滤波并预测出所有骨骼节点的当前位置,保证在节点相对静止或运动时都有较好的滤波预测效果。更进一步,所述步骤4)中,依据步骤3中稳定的骨骼节点数据,求出与骨骼节点相连的18个对应人体全身各主要部位骨骼的骨骼向量,并计算这18个骨骼向量旋转连接处的两相邻骨骼向量的角度值,以及连接这个骨骼节点的两骨骼向量的向量积,其步骤包括:4.1、根据步骤3中实时计算出的用户全身20个骨骼节点的位置,对应于用户不同骨骼所连接的两个节点做向量差,得到对应于用户全身18个本文档来自技高网
...

【技术保护点】
1.一种基于Kinect骨骼节点位置追踪的人体姿势比较方法,其特征在于:包括以下步骤:步骤1,将Kinect V2和笔记本的USB3.0接口相连接,确保设备扫描得到的深度数据和彩色数据能够正常传输,通过KinectSDKWrapper脚本在Unity3D中对KinectV2识别并自动计算得到的骨骼节点数据进行接收并存储;步骤2,通过动态帧数替换算法保存从KinectSDKWrapper脚本接收到的最近N帧人体全身的20个特征骨骼节点数据,并实时更新;步骤3,依据中位值平均滤波算法对步骤2中实时更新的骨骼节点数据进行抖动偏差处理,并加入偏移预测,之后得出稳定的骨骼节点数据;步骤4,依据步骤3中稳定的骨骼节点数据,求出与骨骼节点相连的18个对应人体全身各主要部位骨骼的骨骼向量,并计算这18个骨骼向量旋转连接处的两相邻骨骼向量的角度值,以及连接这个骨骼节点的两骨骼向量的向量积;步骤5,利用步骤4得出的实时骨骼角度值和向量积,计算同一时刻两个用户的所有对应骨骼关节处骨骼向量所形成的角度的差值的绝对值,以及该骨骼关节处两段骨骼所组成的向量积的角度,通过动态帧数替换算法动态记录从现在时刻起往前N帧的每一帧中两用户的骨骼角度差值和骨骼向量积角度值;步骤6,通过EWMA算法平滑同一骨骼关节位置的不同帧数下骨骼向量角度值和骨骼向量积角度值,用平滑后的骨骼向量角度值作差值和设定的阈值角度作比较,用平滑后的骨骼向量积角度值作差值和设定的阈值角度作比较,依据不同身体部位影响整体身体姿态的权重,给符合阈值约束的关节位置一个分数值并记录,然后统计当前分数总和并显示,即完成了两个用户基于Kinect骨骼节点位置追踪的人体姿势比较。...

【技术特征摘要】
1.一种基于Kinect骨骼节点位置追踪的人体姿势比较方法,其特征在于:包括以下步骤:步骤1,将KinectV2和笔记本的USB3.0接口相连接,确保设备扫描得到的深度数据和彩色数据能够正常传输,通过KinectSDKWrapper脚本在Unity3D中对KinectV2识别并自动计算得到的骨骼节点数据进行接收并存储;步骤2,通过动态帧数替换算法保存从KinectSDKWrapper脚本接收到的最近N帧人体全身的20个特征骨骼节点数据,并实时更新;步骤3,依据中位值平均滤波算法对步骤2中实时更新的骨骼节点数据进行抖动偏差处理,并加入偏移预测,之后得出稳定的骨骼节点数据;步骤4,依据步骤3中稳定的骨骼节点数据,求出与骨骼节点相连的18个对应人体全身各主要部位骨骼的骨骼向量,并计算这18个骨骼向量旋转连接处的两相邻骨骼向量的角度值,以及连接这个骨骼节点的两骨骼向量的向量积;步骤5,利用步骤4得出的实时骨骼角度值和向量积,计算同一时刻两个用户的所有对应骨骼关节处骨骼向量所形成的角度的差值的绝对值,以及该骨骼关节处两段骨骼所组成的向量积的角度,通过动态帧数替换算法动态记录从现在时刻起往前N帧的每一帧中两用户的骨骼角度差值和骨骼向量积角度值;步骤6,通过EWMA算法平滑同一骨骼关节位置的不同帧数下骨骼向量角度值和骨骼向量积角度值,用平滑后的骨骼向量角度值作差值和设定的阈值角度作比较,用平滑后的骨骼向量积角度值作差值和设定的阈值角度作比较,依据不同身体部位影响整体身体姿态的权重,给符合阈值约束的关节位置一个分数值并记录,然后统计当前分数总和并显示,即完成了两个用户基于Kinect骨骼节点位置追踪的人体姿势比较。2.根据权利要求1所述的一种基于Kinect骨骼节点位置追踪的人体姿势比较方法,其特征在于:所述步骤2)中通过动态帧数替换算法保存从KinectSDKWrapper脚本接收到的最近N帧人体全身的20个特征骨骼节点数据,并实时更新,其步骤包括:2.1、当前总运行帧数不大于m帧时,把此刻此位置的数据按顺序保存在预设好的二维数组FramePos[m,i]的第0到第m-1行中;2.2、总运行帧数大于m帧时,丢弃最早一帧的数据,所有数据前移一位,把此刻的最新数据下载到数组的第m-1行中;2.3、每帧都对全身的20个骨骼节点循环一次步骤2.1和2.2。3.根据权利要求2所述的一种基于Kinect骨骼节点位置追踪的人体姿势比较方法,其特征在于:所述步骤3)中,依据中位值平均滤波算法对步骤2中实时更新的骨骼节点数据进行抖动偏差处理,并加入偏移预测,之后得出稳定的骨骼节点数据,其步骤包括:3.1、计算此刻此节点的位移速率v和加速度a;速率v和加速度a的计算方法为:v=d/t,a=Δv/t其中d为此节点最近两帧的位置,t为帧间间隔,△v是此节点最近两帧的速度差;3.2、把位移速率v带入调节函数中,计算出此刻此节点的位移速率对应适合的帧数数据的数量M;M=φ(v)=(A...

【专利技术属性】
技术研发人员:张元吕金泽韩燮高天一石倩
申请(专利权)人:中北大学
类型:发明
国别省市:山西,14

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1