一种基于主发力关节点的人体运动数据压缩方法及设备转让专利

申请号 : CN201910799491.3

文献号 : CN110517336B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄天羽黄晓舟

申请人 : 北京理工大学

摘要 :

本发明涉及一种基于主发力关节点的人体运动数据压缩方法及设备,其中方法包括以下步骤:从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;确定位置变化最大的关节点及该关节点的主要运动方向;将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;将压缩后的数据持久化到存储设备或进行网络传输;本发明针对人体运动数据文件的数据特点,在保留运动语义特征的基础上对数据进行大幅压缩,极大地减少了数据存储空间,提高了存储和传输效率。

权利要求 :

1.一种基于主发力关节点的人体运动数据压缩方法,其特征在于,包括以下步骤:

从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;

确定位置变化最大的关节点及该关节点的主要运动方向:分别设定震荡因子Sx、Sy、Sz,用以记录人体骨骼架构中每个关节点在世界坐标系下X、Y、Z方向的最大位移;求出Sx、Sy、Sz的最大值,即可确定位置变化最大的关节点及该关节点的主要运动方向;

将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;

将压缩后的数据持久化到存储设备或进行网络传输;

其中,将两个次要方向上的位置进行合并处理的具体方法为:假设X轴方向为该运动的主要运动方向,则对于各关节点在Y轴方向和Z轴方向的位置进行合并处理,将第i个关节点第j帧在世界坐标系中的位置表示从x(ij)、y(ij)、z(ij)转换为x(ij)、mergeyz(ij):其中,y(ij)为第i个关节点第j帧在世界坐标系中的Y轴坐标值,z(ij)为第i个关节点第j帧在世界坐标系中的Z轴坐标值。

2.根据权利要求1所述的人体运动数据压缩方法,其特征在于,计算出每一帧每个关节点在世界坐标系下的位置后,进行关键帧的判别与提取,使用关键帧数据进行后续处理。

3.根据权利要求2所述的人体运动数据压缩方法,其特征在于,在进行关键帧提取后,根据每一帧每个关节点的位置判断运动周期,并选取一个运动周期内的关键帧确定位置变化最大的关节点及该关节点的主要运动方向。

4.根据权利要求3所述的人体运动数据压缩方法,其特征在于,对降维后的数据进行滤波处理,比较每一关节点每一数据帧的当前位置与该关节在整个运动中最大变化位置或最小变化位置的差,若其差值大于该关节点的动态变化平均值则被视为干扰信息,即把该关节点在这一数据帧下的位置信息删除。

5.一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行:

从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;

确定位置变化最大的关节点及该关节点的主要运动方向:分别设定震荡因子Sx、Sy、Sz,用以记录人体骨骼架构中每个关节点在世界坐标系下X、Y、Z方向的最大位移;求出Sx、Sy、Sz的最大值,即可确定位置变化最大的关节点及该关节点的主要运动方向;

将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;

将压缩后的数据持久化到存储设备或进行网络传输;

其中,将两个次要方向上的位置进行合并处理的具体方法为:假设X轴方向为该运动的主要运动方向,则对于各关节点在Y轴方向和Z轴方向的位置进行合并处理,将第i个关节点第j帧在世界坐标系中的位置表示从x(ij)、y(ij)、z(ij)转换为x(ij)、mergeyz(ij):其中,y(ij)为第i个关节点第j帧在世界坐标系中的Y轴坐标值,z(ij)为第i个关节点第j帧在世界坐标系中的Z轴坐标值。

6.根据权利要求5所述的存储设备,其特征在于,所述指令计算出每一帧每个关节点在世界坐标系下的位置后,进行关键帧的判别与提取,使用关键帧数据进行后续处理。

7.根据权利要求6所述的存储设备,其特征在于,所述指令在进行关键帧提取后,根据每一帧每个关节点的位置判断运动周期,并选取一个运动周期内的关键帧确定位置变化最大的关节点及该关节点的主要运动方向。

8.根据权利要求7所述的存储设备,其特征在于,所述指令对降维后的数据进行滤波处理,比较每一关节点每一数据帧的当前位置与该关节在整个运动中最大变化位置或最小变化位置的差,若其差值大于该关节点的动态变化平均值则被视为干扰信息,即把该关节点在这一数据帧下的位置信息删除。

说明书 :

一种基于主发力关节点的人体运动数据压缩方法及设备

技术领域

[0001] 本发明涉及一种数据压缩方法,特别涉及一种基于主发力关节点的人体运动数据压缩方法。

背景技术

[0002] 随着信息技术的高速发展,人们对使用数据驱动的动画技术、仿真技术进行了广泛的探索与研究。这些技术主要是通过穿戴运动捕捉设备来实现人体运动数据的实时数据采集,同时使用相对比较成熟的运动重构技术对采集的人体运动数据进行三维重现。
[0003] 人体运动数据记录了每一时刻人体骨骼及其关节的位置信息或旋转信息。人体骨骼通常包含很多关节,每个关节都包含有不同的运动属性,且每一个运动属性可能由多维向量来表示,如三元组欧拉角或四元数,则每一个简化的人体姿态就会包含几十个数据,而人体运动数据的采集频率至少为每秒钟几十次。很多情况下人体运动数据采集还会面临规模较大、时间较长的问题,使得采集数据规模进一步增加。如何对这些人体运动数据进行数据压缩以及高效存储成为一个亟待解决的问题。

发明内容

[0004] 本发明的目的在于针对现有技术的不足,提供一种基于主发力关节点的人体运动数据压缩方法,在保留主要运动信息的同时实现人体运动数据压缩,以便高效存储和传输。
[0005] 为达到上述目的,本发明提供了一种基于主发力关节点的人体运动数据压缩方法,包括以下步骤:
[0006] 从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;
[0007] 确定位置变化最大的关节点及该关节点的主要运动方向:分别设定震荡因子Sx、Sy、Sz,用以记录人体骨骼架构中每个关节点在世界坐标系下X、Y、Z方向的最大位移;求出Sx、Sy、Sz的最大值,即可确定位置变化最大的关节点及该关节点的主要运动方向。
[0008] 将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;
[0009] 将压缩后的数据持久化到存储设备或进行网络传输;
[0010] 其中,将两个次要方向上的数据进行合并处理的具体方法为:假设X轴方向为该运动的主要运动方向,则对于各关节点在Y轴方向和Z轴方向的位置进行合并处理,将第i个关节点第j帧在世界坐标系中的位置表示从x(ij)、y(ij)、z(ij)转换为x(ij)、mergeyz(ij):
[0011]
[0012] 其中,y(ij)为第i个关节点第j帧在世界坐标系中的Y轴坐标值,z(ij)为第i个关节点第j帧在世界坐标系中的Z轴坐标值。
[0013] 优选地,计算出每一帧每个关节点在世界坐标系下的位置后,进行关键帧的判别与提取,使用关键帧数据进行后续处理。
[0014] 优选地,在进行关键帧提取后,根据每一帧每个关节点的位置判断运动周期,并选取一个运动周期内的关键帧确定位置变化最大的关节点及该关节点的主要运动方向。
[0015] 优选地,对降维后的数据进行滤波处理,比较每一关节点每一数据帧的当前位置与该关节在整个运动中最大变化位置或最小变化位置的差,若其差值大于该关节点的动态变化平均值则被视为干扰信息,即把该关节点在这一数据帧下的位置信息删除。
[0016] 本发明还提出了一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行:
[0017] 从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;
[0018] 确定位置变化最大的关节点及该关节点的主要运动方向:分别设定震荡因子Sx、Sy、Sz,用以记录人体骨骼架构中每个关节点在世界坐标系下X、Y、Z方向的最大位移;求出Sx、Sy、Sz的最大值,即可确定位置变化最大的关节点及该关节点的主要运动方向。
[0019] 将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;
[0020] 将压缩后的数据持久化到存储设备或进行网络传输;
[0021] 其中,将两个次要方向上的数据进行合并处理的具体方法为:假设X轴方向为该运动的主要运动方向,则对于各关节点在Y轴方向和Z轴方向的位置进行合并处理,将第i个关节点第j帧在世界坐标系中的位置表示从x(ij)、y(ij)、z(ij)转换为x(ij)、mergeyz(ij):
[0022]
[0023] 其中,y(ij)为第i个关节点第j帧在世界坐标系中的Y轴坐标值,z(ij)为第i个关节点第j帧在世界坐标系中的Z轴坐标值。
[0024] 优选地,所述指令计算出每一帧每个关节点在世界坐标系下的位置后,进行关键帧的判别与提取,使用关键帧数据进行后续处理。
[0025] 优选地,所述指令在进行关键帧提取后,根据每一帧每个关节点的位置判断运动周期,并选取一个运动周期内的关键帧确定位置变化最大的关节点及该关节点的主要运动方向。
[0026] 优选地,所述指令对降维后的数据进行滤波处理,比较每一关节点每一数据帧的当前位置与该关节在整个运动中最大变化位置或最小变化位置的差,若其差值大于该关节点的动态变化平均值则被视为干扰信息,即把该关节点在这一数据帧下的位置信息删除。
[0027] 有益效果
[0028] 本发明提出的基于主发力关节点的人体运动数据压缩方法,针对人体运动数据文件的数据特点,在保留运动语义特征的基础上对数据进行大幅压缩,极大地减少了数据存储空间,提高了存储和传输效率。

附图说明

[0029] 图1为本发明所述方法的流程图;
[0030] 图2为BVH文件头的文件结构;
[0031] 图3为BVH文件数据段的文件结构。
[0032] 图4为以Hips关节为根节点的人体骨骼层次模型。
[0033] 图5为人体运动基本平面示意图。

具体实施方式

[0034] 下面结合附图,具体说明本发明的优选实施方式。
[0035] 传统的惯性运动捕捉设备采集人体运动数据时,通常会将原始运动数据存储为BVH文件,其遵循的思想为基于父子节点关系的数据转换。由于BVH文件存在父子节点关系,因此文件通常可划分为两个部分,其一为存储人体骨骼层次结构的文件头,如图2所示,通常以HIERARCHY为文件起始标识、以ROOT为人体骨骼层次结构的起始点的标识,能够清晰的把人体骨骼层次结构所存在的内部联系通过简洁的形式呈现出来,也能够把人体骨骼节点所需要使用的数据种类及数据范围给标定好;其二为存储具体运动数据的数据段,如图3所示,通常以MOTION为数据段的起始标识、以Frames为包含多少运动序列的长度标识,能够将特有的人体骨骼层次结构与具体运动数据区分开来。
[0036] 从图2和图3的示例中可知,该人体骨骼层次以Hips作为根节点,如图4所示。每个骨骼关节点相对于父节点在局部坐标系下的平移量在BVH文件中人体骨骼架构定义部分中获取,相对于父节点的旋转分量在每一数据帧中获取。数据帧中的根节点数据包含六个维度的信息,分别为世界坐标系下根节点的位移以及局部坐标系下旋转角信息。图3中的数据(-195.76,92.90,76.64)是根节点起始帧的位移信息,而数据(6.83,-1.04,91.45)是根节点起始帧的旋转角信息。除根节点数据以外,任意骨骼节点的数据都只由三个旋转角数据构成,分别为每一个骨骼关节点相对于父节点的俯仰角、翻滚角、航偏角数据。由这些数据,可以得到每一帧每个关节点在世界坐标系下的位置。
[0037] 无论是日常生活中的常见运动还是田径赛场上的竞技类运动,人体骨骼的各重要的关节点都呈现有规律的时空特征及运动频率,构成了人体运动的语义特征。人体运动的一个重要时空特征就是位置变化最大的关节点及该关节点的主要运动方向,通过该语义特征可以对大多数运动类型进行区分。本发明的思想就是利用人体运动的该语义特征,在保留主要运动信息的同时,通过有损压缩的方式删除人体运动数据中的冗余信息,从而缩小人体运动数据的体量,提高数据存储和传输效率。
[0038] 在人体运动数据处理时,通常可以将人体的基本平面定义为水平面、额状面、矢状面三个平面,其中水平面为直立状态下横切身体与地面平行的切面,将身体分为上、下两部分;额状面为以身体左右径为切线所作的纵切面,将人体分为前、后两部分;矢状面为以身体前后径为切线所作的纵切面,将人体分为左、右两部分;将人体的基本轴定义为额状轴、垂直轴、矢状轴,其中额状轴为X轴,垂直于矢状面,方向为左右朝向,是额状面与水平面的交线;垂直轴为Y轴,垂直于水平面,方向为上下朝向,是额状面与矢状面的交线;矢状轴为Z轴,垂直于额状面,方向为前后朝向,是矢状面与水平面的交线。
[0039] 以最常见人体的运动跑步为例,如图5所示,人体在矢状面有明确位移。其中,躯干部分在水平面、额状面无明显大幅度晃动;四肢在矢状面有明显且有规律性的摆动,并且下肢摆动幅度远大于上肢,由此判断下肢为主发力部分;同时根据四肢摆动频率与位置交换速度可判断具体运动强度。因此,保留人体骨骼模型各关节点在矢状面的位置信息,就可以确定其主要语义特征。
[0040] 基于此思想,本发明实施例1实现了一种基于主发力关节点的人体运动数据压缩方法,包括以下步骤:
[0041] 1)从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;
[0042] 2)确定位置变化最大的关节点及该关节点的主要运动方向;
[0043] 在本实施例中,分别设定震荡因子Sx、Sy、Sz,用以记录人体骨骼架构中每个关节点在世界坐标系下X、Y、Z方向的最大位移;求出Sx、Sy、Sz的最大值,即可确定位置变化最大的关节点及该关节点的主要运动方向。
[0044] 3)将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;
[0045] 在本实施例中,合并处理所采用的方法为:
[0046] 假设X轴方向为该运动的主要运动方向,则对于各关节点在Y轴方向和Z轴方向的位置进行合并处理,将第i个关节点第j帧在世界坐标系中的位置表示从x(ij)、y(ij)、z(ij)转换为x(ij)、mergeyz(ij):
[0047]
[0048] 其中,y(ij)为第i个关节点第j帧在世界坐标系中的Y轴坐标值,z(ij)为第i个关节点第j帧在世界坐标系中的Z轴坐标值。
[0049] 4)将压缩后的数据持久化到存储设备或进行网络传输;
[0050] 实施例2在实施例1的基础上,进行了进一步的优化,包括:
[0051] 1)计算出每一帧每个关节点在世界坐标系下的位置后,进行关键帧的判别与提取,使用关键帧数据进行后续处理。人体运动的连贯性使得在较小的单位时间内人体骨骼架构中各关节点位置变化量具有极强的相似性,这直接导致了人体动作数据信息的冗余。为了提高数据的有效利用率、降低冗余度,需要对人体动作数据进行关键帧的判别与提取。
对于关键帧的提取重点在于,将不具有代表性的干扰帧以及运动中特殊情况下的无效帧过滤剔除,与此同时仍需保持与原人体运动三维数据文件中人体运动的整体一致性。
[0052] 2)在进行关键帧提取后,根据每一帧每个关节点的位置判断运动周期,并选取一个运动周期内的关键帧进行后续处理。由于不同运动周期内的数据具有极强的相似性,因此选取一个运动周期数据进行计算即可,简化了处理过程。
[0053] 3)对降维后的数据进行滤波处理。对在穿戴动作捕捉设备对人体运动数据进行采集的过程中,参与样本采集的不同个体之间存在着无可避免的个人运动习惯与肢体姿态的差异,这导致了实验数据在某一程度上的特例性,即有小部分无效信息或有较强干扰性的信息存在于人体运动数据中。实施例2采用的滤波方法为:比较某一关节点每一数据帧的当前位置与该关节在整个运动中最大变化位置或最小变化位置的差,若其差值大于该关节点的动态变化平均值则被视为干扰信息,即把该关节点在这一数据帧下的位置信息删除,以此实现对无效数据及干扰数据的过滤。
[0054] 实施例3实现了一种存储设备,其中存储有多条指令,所述指令适于由处理器加载并执行如图1所示的方法步骤:
[0055] 从人体运动文件中提取每一帧每个关节点信息,计算该关节点在世界坐标系下的位置;
[0056] 确定位置变化最大的关节点及该关节点的主要运动方向:分别设定震荡因子Sx、Sy、Sz,用以记录人体骨骼架构中每个关节点在世界坐标系下X、Y、Z方向的最大位移;求出Sx、Sy、Sz的最大值,即可确定位置变化最大的关节点及该关节点的主要运动方向;
[0057] 将每个关节点每帧两个次要方向上的位置进行合并处理,从而将三维运动数据转换为二维运动数据;
[0058] 将压缩后的数据持久化到存储设备或进行网络传输;
[0059] 其中,将两个次要方向上的数据进行合并处理的具体方法为:假设X轴方向为该运动的主要运动方向,则对于各关节点在Y轴方向和Z轴方向的位置进行合并处理,将第i个关节点第j帧在世界坐标系中的位置表示从x(ij)、y(ij)、z(ij)转换为x(ij)、mergeyz(ij):
[0060]
[0061] 其中,y(ij)为第i个关节点第j帧在世界坐标系中的Y轴坐标值,z(ij)为第i个关节点第j帧在世界坐标系中的Z轴坐标值。
[0062] 实施例3中的指令计算出每一帧每个关节点在世界坐标系下的位置后,进行关键帧的判别与提取,使用关键帧数据进行后续处理。
[0063] 实施例3中的指令在进行关键帧提取后,根据每一帧每个关节点的位置判断运动周期,并选取一个运动周期内的关键帧确定位置变化最大的关节点及该关节点的主要运动方向。
[0064] 实施例3中的指令对降维后的数据进行滤波处理,比较每一关节点每一数据帧的当前位置与该关节在整个运动中最大变化位置或最小变化位置的差,若其差值大于该关节点的动态变化平均值则被视为干扰信息,即把该关节点在这一数据帧下的位置信息删除。
[0065] 虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入本发明权利要求所限定的范围之内。