1.一种基于惯性传感器的人体动作描述方法,其特征在于,包括以下步骤:
步骤1,动作数据采集,通过惯性传感器采集舞蹈动作数据,定义骨骼层次结构,采集舞蹈动作数据并以运动捕捉数据BVH格式保存;
步骤2,空间坐标转换,由于运动捕捉数据BVH是按照肢体关节分别保存各自运动欧拉角数据,空间坐标转换后,以世界坐标的形式表征各个肢体的每一帧动作,便于后续进行坐标的人体空间方位方位分析;
步骤3,关键帧提取,步骤1中采集的运动捕捉数据BVH中包含人体姿势帧序列帧,采用关键帧提取技术提取姿势关键帧,记录以肢体坐标表示的当前姿势;
步骤4,动作语言描述MDL,计算动作关键帧数据运动特征参数并进行坐标的人体空间方位分析,建立肢体坐标与空间环境方位之间的映射,通过空间方位、时间划分和手臂、腿部弯曲角度,人体朝向运动特征参数确定描述语言,实现对人体动作信息的准确表达。
2.根据权利要求1所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
1所述的动作数据采集,具体包括:使用惯性传感器绑定人体全身11个主要骨骼关节,11个主要骨骼关节包括头、胸、左臂、左前臂、右臂、右前臂、髋关节、左大腿、左小腿、右大腿、右小腿,并以具有骨骼结构的动作捕捉数据BVH存储,动作捕捉数据BVH中的骨骼层次结构,定义26个骨骼节点的人体骨骼层次,动作采集初始为立正姿势,运动捕捉数据BVH每一帧数据记录骨骼节点的欧拉角数据。
3.根据权利要求1所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
2所述的空间坐标转换具体包括:矩阵转换,欧拉角数据的形式是旋转角度序列,旋转角度绕世界坐标的Z轴、X轴和Y轴旋转,转换为旋转矩阵后计算惯性坐标;转换世界坐标:获得所有骨骼节点的惯性坐标后,去掉其到根节点的所有前驱节点的旋转偏移量,依次求得骨骼节点的世界坐标;转换相对坐标:世界坐标由于坐标原点是动作采集初始位置,因此无法进行空间方位分析,所以在求得世界坐标后需要计算各坐标以根节点为参考点的相对坐标,最终得到运动捕捉数据BVH的每一帧数据中,每个骨骼节点的空间坐标数据。
4.根据权利要求3所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
2所述的矩阵转换,欧拉角数据的形式是旋转角度序列,BVH文件中一般为zyx轴顺序,欧拉角分别绕世界坐标的Z轴、X轴和Y轴旋转,旋转角度数据转换成为矩阵,得到的旋转矩阵为:式中:R、P、Y分别是roll、pitch、yaw的旋转矩阵,绕ZXY轴旋转,旋转角为r、p、y,依据正交矩阵的性质,可得到如下的旋转矩阵N;
世界坐标:在动作捕捉数据BVH中,数据的组织方式是按照层次结构进行组织的,在步骤1中定义的骨骼层次结构中,髋关节是层次结构的根节点,髋关节的子节点有脊椎一节点、左右髋节点,其中脊椎一节点又可以作为父节点,其子节点有脊椎二、脊椎三节点;脊椎三节点作为父节点,其子节点包含左右肩、颈部节点;左、右肩节点各自作为父节点有包含子节点左上臂、右上臂,而上臂节点又包含前臂节点,前臂节点又包含手节点;颈部作为父节点,包含头部节点;左、右髋作为父节点,其子节点为左、右大腿节点,大腿节点的子节点为小腿节点,小腿节点又包含子节点脚掌和后跟,在进行世界坐标计算中,任一节点的世界坐标需要节点之间的层次关系;
相对坐标变换,世界坐标由于坐标原点是动作采集初始位置,无法进行空间方位分析,所以在求得世界坐标后需要根据公式(6)计算各坐标以根节点为参考点的相对坐标:P=p0(x0,y0,z0)‑Root(xr,yr,zr) (6);
式中的P表示相对坐标,P0世界坐标,Root表示根节点坐标。
5.根据权利要求1所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
3所述的关键帧提取包括:运动数据降维,实际采集的运动捕捉动作数据维度高,通过降维减少骨骼节点数降低计算量,采集得到人体姿势帧序列在多维空间中表现为曲线,利用曲线简化方法,从曲线中提取关键帧。
6.根据权利要求5所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
3所述的关键帧提取,包括以下步骤:
Step1,读取动作姿势序列集合L;
Step2,初始化误差阀值δ,且δ∈[0,1];
Step3,设置曲线L起点和终点分别为Pstart=P1,Pend=PT,然后按照Step 4到Step6步获取候选关键帧K;
Step4,计算曲线L上每个内点Pi到直线PStart‑PEnd的距离di组成集合D={di,i∈(start,end)};
式中:Pi为曲线L上的点,Pstart为曲线起点,Pend为曲线终点;
Step5,从D中找出最大值dmax对应的点Pmax,如果Dmax<δ,剔除PStart‑PEnd直线段对应曲线上的所有点,否则将Pmax存入集合K;
Step6,Pmax将L二分为L'和L”曲线,对曲线L'和L”反复递归执行Step3‑Step5步得到最终的候选关键帧集合K,其中,每次递归时,修改的PStart和PEnd分别为每个曲线段的起点和终点;
Step7,输出候选关键姿势帧序列K,关键帧提取完毕。
7.根据权利要求1所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
4所述的动作表达包括:根据关键帧中的坐标信息,判定动作方位,计算和手臂、腿部弯曲角度,人体朝向。
8.根据权利要求1所述的一种基于惯性传感器的人体动作描述方法,其特征在于,步骤
4所述的动作描述语言MDL,具体做法是:
4.1)空间坐标方位映射,将以根节点坐标为坐标原点的坐标系进行空间方位划分,坐标空间的原点为人体初始T型站立姿势双脚中心点,初始T型姿势正面朝向为27;初始T型姿势左手方向为28;初始T型姿势正上方向29;空间方位在垂直方向上的划分,是通过计算运动捕捉数据BVH中头部(Head)节点的初始T型站立姿势坐标信息,并用该节点y坐标的六分之一作为偏移量,以髋关节(Hips)关节点为中心点,向上向下偏移,则空间在垂直方向上被划分为上中下三个分量;同时,对水平方位划分将上述上中下垂直分量中每个分量,再以45度为间隔,将空间划分为八个水平方位,再加上中心原位构成九个水平方位,以此构建新的空间坐标方位,九个方位以Z轴正方向开始顺时针顺序依次是,前,右前,右,右后,后,左后,左,左前,左,原位;最后根据每个关节点的坐标结合划分方位,对关键帧中每个关节的坐标进行空间方位判断;
4.2)其他运动特征参数的计算:通过人体动作朝向的变化与肢体间的夹角变化详细描述人体动作,计算BVH原始关节中脊椎、左肩和右肩三个骨骼关节坐标组成的平面的法向量,再计算该法向量与坐标系y轴夹角,确定人体朝向;同时,计算人体前臂与上臂内侧夹角,计算人体大腿与小腿之间内侧夹角;
4.3)设计动作描述语言MDL对人体动作过程进行详细描述,动作描述语言为自然语言,描述人体动作过程中的时间、空间和力效三个主题内容,设计动作描述语言MDL数据结构,表1为数据变量的具体说明,人体动作的时间主题主要由动作时间参数start_time、end_time来描述;人体动作的空间主题主要由肢体关节BODY及肢体所在垂直方位VERTICAL和水平LEVEL方位描述,人体力效的空间主题主要由帧速率RATE、帧数FRAMES及手臂弯曲角度BEND_ARM、腿部弯曲角度BEND_LEG描述,表1 MDL描述语言说明
变量类型 变量名称 变量说明
RATE m_rate 动作采集频率
FRAMESE m_frames 动作总帧数
DIRECTION m_direction 人体朝向方位
BODY m_body 身体部位
LEVEL m_level 水平方位
VERTICAL m_vertical 垂直方位
Double start_time 动作起始时间
Double end_time 动作结束时间
BEND_ARM m_armbending 手臂弯曲程度
BEND_LEG m_legbending 腿部弯曲程度