著录项信息
专利名称 | 一种基于惯性传感器的人体动作描述方法 |
申请号 | CN201910011119.1 | 申请日期 | 2019-01-07 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2019-05-10 | 公开/公告号 | CN109741371A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06T7/246 | IPC分类号 | G;0;6;T;7;/;2;4;6;;;G;0;6;V;4;0;/;2;0查看分类表>
|
申请人 | 西安理工大学 | 申请人地址 | 陕西省西安市金花南路5号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 西安理工大学 | 当前权利人 | 西安理工大学 |
发明人 | 李军怀;姬文超;徒鹏佳;王怀军;于蕾 |
代理机构 | 北京国昊天诚知识产权代理有限公司 | 代理人 | 杨洲 |
摘要
一种基于惯性传感器的人体动作描述方法,步骤为通过惯性传感器采集动作数据,定义骨骼层次结构,以运动捕捉数据BVH格式保存;对BVH欧拉角数据进行坐标转换,以相对世界坐标的形式表征各个肢体每一帧动作,组成数据帧序列,便于进行后续动作空间方位的分析;得到人体姿势帧序列后,采用关键帧提取技术提取关键帧;最后对人体运动空间方位分析,并计算动作关键帧其他运动特征参数,建立肢体坐标与人体空间方位之间的映射,确定描述语言对人体动作主题内容进行描述;通过动作描述语言对人体动作过程的时间、空间和力效三个主题内容进行详细描述,有利于非计算机相关人员应用于动作分析、识别领域,为人体动作解析与人体运动生物力学提供帮助。
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 腿部弯曲程度
一种基于惯性传感器的人体动作描述方法\n技术领域\n[0001] 本发明属于人体行为识别技术领域,具体涉及一种基于惯性传感器的人体动作描述方法。\n背景技术\n[0002] 在人体运动过程中,动作的一般原理是对人体运动中的走、跑、跳以及游泳、滑行、击打等动作结构进行分析,通过记录、分析动作实例来巩固和加深对动作理论的理解。专业的运动项目,都有一套基本的步骤和姿势。通常,基本步骤和姿势能够很快被学会,但需要更长时间才能掌握动作的力效,即“动作做到位”,因此对这些基本的步骤与姿势的识别是有必要的。目前,对动作姿势的分析与识别技术,大多采用角度、速度、加速度等数值特征进行动作对比,缺少自然语言的描述。因此,本发明设计了MDL(Movement data language)动作描述语言。\n[0003] 为了实现令人满意的复杂人体动作的语言模拟,需要尽可能简单的将复杂人体运动的必要过程进行描述。为了构建人体动作与动作描述语言之间的“桥梁”,通过惯性传感器采集人体运动数据,之后基于人体骨骼关节语义对运动捕捉数据进行动作解析;提取关键姿势,描述动作姿势及动作过程中的时空信息,将复杂的人体动作行为,转换为一般的描述性语言,通过描述性语言重现人体动作,进一步解析人体动作运动力学特征。\n发明内容\n[0004] 为克服上述现有技术的不足,本发明的目的是提供一种基于惯性传感器的人体动作描述方法,动作描述语言MDL(Movement data language),是基于惯性传感器采集的人体动作数据,对数据进行坐标系转换,提取关键帧,计算动作参数特征及动作空间方位判断,进行人体动作描述,\n[0005] 为实现上述目的,本发明采用的技术方案是:一种基于惯性传感器的人体动作描述方法,包括以下步骤:\n[0006] 步骤1,动作数据采集,通过惯性传感器采集舞蹈动作数据,定义骨骼层次结构,采集舞蹈动作数据并以运动捕捉数据BVH格式保存;\n[0007] 步骤2,空间坐标转换,由于运动捕捉数据BVH是按照肢体关节分别保存各自运动欧拉角数据,空间坐标转换后,以世界坐标的形式表征各个肢体的每一帧动作,便于后续进行坐标的人体空间方位方位分析;\n[0008] 步骤3,关键帧提取,步骤1中采集的运动捕捉数据BVH中包含人体姿势帧序列帧,采用关键帧提取技术提取姿势关键帧,记录以肢体坐标表示的当前姿势;\n[0009] 步骤4,动作语言描述MDL,计算动作关键帧数据运动特征参数并进行坐标的人体空间方位分析,建立肢体坐标与空间环境方位之间的映射,通过空间方位、时间划分和手臂、腿部弯曲角度,人体朝向运动特征参数确定描述语言,实现对人体动作信息的准确表达。\n[0010] 步骤1所述的动作数据采集,具体包括:使用惯性传感器绑定人体全身11个主要骨骼关节,11个主要骨骼关节包括头、胸、左臂、左前臂、右臂、右前臂、髋关节、左大腿、左小腿、右大腿、右小腿,并以具有骨骼结构的动作捕捉数据BVH存储,动作捕捉数据BVH中的骨骼层次结构,定义26个骨骼节点的人体骨骼层次,动作采集初始为立正姿势,运动捕捉数据BVH每一帧数据记录骨骼节点的欧拉角数据。\n[0011] 步骤2所述的空间坐标转换具体包括:矩阵转换,欧拉角数据的形式是旋转角度序列,旋转角度绕世界坐标的Z轴、X轴和Y轴旋转,转换为旋转矩阵后计算惯性坐标;转换世界坐标:获得所有骨骼节点的惯性坐标后,去掉其到根节点的所有前驱节点的旋转偏移量,依次求得骨骼节点的世界坐标;转换相对坐标:世界坐标由于坐标原点是动作采集初始位置,因此无法进行空间方位分析,所以在求得世界坐标后需要计算各坐标以根节点为参考点的相对坐标,最终得到运动捕捉数据BVH的每一帧数据中,每个骨骼节点的空间坐标数据。\n[0012] 步骤2所述的矩阵转换,欧拉角数据的形式是旋转角度序列,BVH文件中一般为zyx轴顺序,欧拉角分别绕世界坐标的Z轴、X轴和Y轴旋转,旋转角度数据转换成为矩阵,得到的旋转矩阵为:\n[0013]\n[0014]\n[0015]\n[0016] 式中:R、P、Y分别是roll、pitch、yaw的旋转矩阵,绕ZXY轴旋转,旋转角为r、p、y,依据正交矩阵的性质,可得到如下的旋转矩阵N;\n[0017]\n[0018] 世界坐标:在动作捕捉数据BVH中,数据的组织方式是按照层次结构进行组织的,在步骤1中定义的骨骼层次结构中,髋关节是层次结构的根节点,髋关节的子节点有脊椎一节点、左右髋节点,其中脊椎一节点又可以作为父节点,其子节点有脊椎二、脊椎三节点;脊椎三节点作为父节点,其子节点包含左右肩、颈部节点;左、右肩节点各自作为父节点有包含子节点左上臂、右上臂,而上臂节点又包含前臂节点,前臂节点又包含手节点;颈部作为父节点,包含头部节点;左、右髋作为父节点,其子节点为左、右大腿节点,大腿节点的子节点为小腿节点,小腿节点又包含子节点脚掌和后跟,在进行世界坐标计算中,任一节点的世界坐标需要节点之间的层次关系;\n[0019] 相对坐标变换,世界坐标由于坐标原点是动作采集初始位置,无法进行空间方位分析,所以在求得世界坐标后需要根据公式(6)计算各坐标以根节点为参考点的相对坐标:\n[0020] P=p0(x0,y0,z0)‑Root(xr,yr,zr) (6);\n[0021] 式中的P表示相对坐标,P0世界坐标,Root表示根节点坐标。步骤3所述的关键帧提取包括:运动数据降维,实际采集的运动捕捉动作数据维度高,通过降维减少骨骼节点数降低计算量,采集得到人体姿势帧序列在多维空间中表现为曲线,利用曲线简化方法,从曲线中提取关键帧。\n[0022] 步骤3所述的关键帧提取,包括以下步骤:\n[0023] Step1,读取动作姿势序列集合L;\n[0024] Step2,初始化误差阀值δ,且δ∈[0,1];\n[0025] Step3,设置曲线L起点和终点分别为Pstart=P1,Pend=PT,然后按照Step 4到Step6步获取候选关键帧K;\n[0026] Step4,计算曲线L上每个内点Pi到直线PStart‑PEnd的距离di组成集合D={di,i∈(start,end)};\n[0027]\n[0028] 式中:Pi为曲线L上的点,Pstart为曲线起点,Pend为曲线终点;\n[0029] Step5,从D中找出最大值dmax对应的点Pmax,如果Dmax<δ,剔除PStart‑PEnd直线段对应曲线上的所有点,否则将Pmax存入集合K;\n[0030] Step6,Pmax将L二分为L'和L”曲线,对曲线L'和L”反复递归执行Step3‑Step5步得到最终的候选关键帧集合K,其中,每次递归时,修改的PStart和PEnd分别为每个曲线段的起点和终点;\n[0031] Step7,输出候选关键姿势帧序列K,关键帧提取完毕;\n[0032] 步骤4所述的动作表达包括:根据关键帧中的坐标信息,判定动作方位,并计算手臂、腿部弯曲角度,人体朝向。\n[0033] 步骤4所述的动作描述语言MDL,具体做法是:\n[0034] 4.1)空间坐标方位映射,将以根节点坐标为坐标原点的坐标系进行空间方位划分,坐标空间的原点为人体初始T型站立姿势双脚中心点,初始T型姿势正面朝向为27;初始T型姿势左手方向为28;初始T型姿势正上方向29;空间方位在垂直方向上的划分,是通过计算运动捕捉数据BVH中头部(Head)节点的初始T型站立姿势坐标信息,并用该节点y坐标的六分之一作为偏移量,以髋关节(Hips)关节点为中心点,向上向下偏移,则空间在垂直方向上被划分为上中下三个分量;同时,对水平方位划分将上述上中下垂直分量中每个分量,再以45度为间隔,将空间划分为八个水平方位,再加上中心原位构成九个水平方位,以此构建新的空间坐标方位,九个方位以Z轴正方向开始顺时针顺序依次是,前,右前,右,右后,后,左后,左,左前,左,原位;最后根据每个关节点的坐标结合划分方位,对关键帧中每个关节的坐标进行空间方位判断;\n[0035] 4.2)其他运动特征参数计算:通过人体动作朝向的变化与肢体间的夹角变化详细描述人体动作,计算BVH原始关节中脊椎(Spine)、左肩(LeftCollar)和右肩(RightCollar)三个骨骼关节坐标组成的平面的法向量,再计算该法向量与坐标系y轴夹角,确定人体朝向;同时,计算人体前臂与上臂内侧夹角,计算人体大腿与小腿之间内侧夹角;\n[0036] 4.3)设计动作描述语言MDL对人体动作过程进行详细描述,动作描述语言为自然语言,描述人体动作过程中的时间、空间和力效三个主题内容,设计动作描述语言MDL数据结构,表1为数据变量的具体说明,人体动作的时间主题主要由动作时间参数start_time、end_time来描述;人体动作的空间主题主要由肢体关节BODY及肢体所在垂直方位VERTICAL和水平LEVEL方位描述,人体力效的空间主题主要由帧速率RATE、帧数FRAMES及手臂弯曲角度BEND_ARM、腿部弯曲角度BEND_LEG描述,\n[0037] 表1 MDL描述语言说明\n[0038]\n变量类型 变量名称 变量说明\nRATE m_rate 动作采集频率\nFRAMESE m_frames 动作总帧数\nDIRECTION m_direction 人体朝向方位\nBODY m_body 身体部位\nLEVEL m_level 水平方位\nVERTICAL m_vertical 垂直方位\nDouble start_time 动作起始时间\nDouble end_time 动作结束时间\nBEND_ARM m_armbending 手臂弯曲程度\nBEND_LEG m_legbending 腿部弯曲程度\n。\n[0039] 本发明的有益效果是:\n[0040] 本发明是一种基于惯性传感器传感器的人体动作描述语言,通过惯性传感器采集动作数据,按照定义的人体骨骼层次结构存储数据,经过矩阵转换计算关节相对坐标。然后使用关键帧提取技术,获取动作关键帧,随后计算关键帧中其他运动特征参数并对动作关键帧进行空间方位判定,最后以MDL语言描述动作时空信息。该方法具有较好的准确度和便捷性,能够将难以理解的动作捕捉数据转换为易于理解的动作描述语言,可用于各类非计算机行业的人体动作与运动力学分析。\n附图说明\n[0041] 图1是本发明基于惯性传感器的人体动作描述语言生成流程图。\n[0042] 图2是本发明定义的人体骨骼层次结构示意图。\n[0043] 图3是本发明人体空间朝向方位示意图。\n[0044] 图4是本发明垂直方位划分示意图。\n[0045] 图5是本发明水平方位划分示意图。\n[0046] 图6是本发明手臂骨骼关节夹角示意图。\n[0047] 图7是本发明腿部骨骼关节夹角示意图。\n[0048] 图中:1‑髋;2‑脊椎1;3‑脊椎2;4‑脊椎3;5‑左肩;6‑左臂;7‑左前臂;8‑左手;9‑右肩;10‑右臂;11‑右前臂;12‑右手;13‑颈部;14‑头部;15‑左髋;16‑左大腿;17‑左小腿;18‑左脚;19‑左脚掌;20‑左后跟;21‑右髋;22‑右大腿;23‑右小腿;24‑右脚;25‑右脚掌;26‑右后跟;27‑初始站立正面朝向;28‑初始站立左手方向;29‑初始站立向上方向;30‑垂直方位分割线;31‑手臂弯曲角度;32‑腿部弯曲角度;33‑肩部关节;34‑上臂关节;35‑前臂关节;\n36‑下髋关节;37‑大腿关节;38‑小腿关节。\n具体实施方式\n[0049] 下面结合附图和实施例对本发明作进一步的详细的说明。\n[0050] 本发明是一种基于惯性传感器的动作描述语言,流程如图1所示,具体按照以下步骤实施:\n[0051] 步骤1,动作数据采集,通过惯性传感器采集舞蹈动作数据,以人体全身共11处主要部位为采集节点(一个骨骼关节在构建骨骼层次结构时可能会建立多个骨骼节点),定义\n26个骨骼节点形成人体骨骼层次结构,骨骼层次结构存储初始T型姿势人体各个关节之间的初始偏移量,初始偏移量以x,y,z三个方向上的偏移距离表示,骨骼层次结构与动作数据一并以运动捕捉数据BVH格式保存,数据中骨骼结构如图2所示;26个骨骼节点具体为:髋1、脊椎一2、脊椎二3、脊椎三4、左肩5、左臂6、左前臂7、左手8、右肩9、右臂10、右前臂11、右手\n12、颈部13、头部14、左髋15、左大腿16、左小腿17、左脚18、左脚掌19、左后跟20、右髋21、右大腿22;右小腿23、右脚24、右脚掌25、右后跟26,参见图4;\n[0052] BVH(Biovision层次模型)是Biovision Hierarchy的缩写,是BioVision等设备对人体运动进行捕获后产生文件格式的文件扩展名,BVH文件包含人体骨骼层次结构和骨骼节点的旋转数据,BVH是一种通用的人体特征动画文件格式,广泛地被当今流行的各种动画制作软件支持,通常可从记录人类行为运动的运动捕获硬件获得;动作捕捉数据BVH中的骨骼层次结构如图2所示,定义了26个骨骼节点的人体骨骼层次,动作采集初始为立正姿势,运动捕捉数据BVH每一帧数据记录骨骼节点的欧拉角数据;\n[0053] 步骤2,空间坐标转换,由于BVH运动捕捉数据是按照肢体关节分别保存各自运动欧拉角数据,空间坐标转换后,以世界坐标的形式表征各个肢体每一帧动作,便于后续进行坐标的人体空间方位方位分析;本步骤的具体做法是:\n[0054] 2.1)矩阵转换,欧拉角数据的形式是旋转角度序列,BVH文件中一般为zyx轴顺序,因此欧拉角分别绕世界坐标的Z轴、X轴和Y轴旋转,旋转角度数据转换成为矩阵,得到的旋转矩阵为:\n[0055]\n[0056]\n[0057]\n[0058] 式中:R、P、Y分别是roll、pitch、yaw的旋转矩阵,绕ZXY轴旋转,旋转角为r、p、y,依据正交矩阵的性质,可得到如下的旋转矩阵N;\n[0059]\n[0060] 2.2)世界坐标,在动作捕捉数据BVH中,数据的组织方式是按照层次结构进行组织的,在步骤1中定义的骨骼层次结构中,髋关节是层次结构的根节点,髋关节的子节点有脊椎一节点、左右髋节点,其中脊椎一节点又可以作为父节点,其子节点有脊椎二、脊椎三节点;脊椎三节点作为父节点,其子节点包含左右肩、颈部节点;左、右肩节点各自作为父节点有包含子节点左上臂、右上臂,而上臂节点又包含前臂节点,前臂节点又包含手节点;颈部作为父节点,包含头部节点;左、右髋作为父节点,其子节点为左、右大腿节点,大腿节点的子节点为小腿节点,小腿节点又包含子节点脚掌和后跟,在进行世界坐标计算中,任一节点的世界坐标需要节点之间的层次关系。例如,计算某一节点M的世界坐标,需要要获得M节点的所有父节点的位置坐标信息,并且需去掉直到根节点的所有父节点的旋转偏移量。\n[0061] 求任一关节点M的世界坐标过程如下;首先,得到M节点旋转矩阵N和M节点直到根节点r的所有父节点Mr,Mr‑1,Mr‑2,...,M2,M1的旋转矩阵Nr,Nr‑1,Nr‑2,...,N2,N1,再由动作捕捉数据BVH中得到M节点的初始偏移(x0,y0,z0),则M相对于根节点的位置坐标(xc,yc,zc),则M节点在世界坐标空间中的世界坐标为:\n[0062]\n[0063] 例如,计算图2中关节8的世界坐标,则先求得骨骼关节8的旋转矩阵N,在计算关节\n8直到根节点1的所有父节点1、2、3、4、5、6、7、8的旋转矩阵N8,N7,...,N3,N2,N1,关节点N的初始偏移为(x0,y0,z0),则左手节点的世界坐标\n[0064] 2.3)相对坐标变换,上述步骤求得的世界坐标由于坐标原点是动作采集初始位置,因此无法进行空间方位分析,所以在求得世界坐标后需要计算各坐标以根节点为参考点的相对坐标:\n[0065] P=p0(x0,y0,z0)‑Root(xr,yr,zr) (6);\n式中的P表示相对坐标,P0世界坐标,Root表示根节点坐标;\n[0066] 步骤3,关键帧提取,步骤2中将步骤1得到人体骨骼节点角度数据转换为坐标帧序列之后,采用关键帧提取技术提取姿势关键帧,记录以肢体坐标表示的当前姿势;\n[0067] 关键动作特征序列提取,关键帧提取使用曲线简化,曲线简化的核心是Douglas‑Peucker(DP)算法,DP算法是一种常见的曲线矢量数据压缩方法,具有执行效率较高、平移和旋转不变的特性;\n[0068] 设动作姿势特征序列组成的多维空间曲线为L,即L={Pt|t=1,2,…,T},且P((1),(2),...,(26))\n[0069] 则对一个具有T帧的动作特征序列,候选关键帧提取过程如下:\n[0070] Step0.读取动作姿势序列集合L;\n[0071] Step1,初始化误差阀值δ,且δ∈[0,1],通常取一个很小的值;\n[0072] Step2,设置曲线L起点和终点分别为Pstart=P1,Pend=PT,然后按照第3到5步获取候选关键帧K;\n[0073] Step3,计算曲线L上每个内点Pi到直线PStart‑PEnd的距离di组成集合D={di,i∈(start,end)};\n[0074]\n[0075] 式中:Pi为曲线L上的点,Pstart为曲线起点,Pend为曲线终点;\n[0076] Step4,从集合D中找出最大值dmax对应的点Pmax,如果Dmax<δ,剔除PStart‑PEnd直线段对应曲线上的所有点,否则将Pmax存入集合K;\n[0077] Step5,Pmax将L二分为L'和L”曲线,对曲线L'和L”反复递归执行Step2‑Step4步得到最终的候选关键帧集合K,其中,每次递归时,修改的PStart和PEnd分别为每个曲线段的起点和终点;\n[0078] Step6,输出候选关键姿势帧序列K,关键帧提取完毕;\n[0079] 步骤4,动作描述语言MDL,计算动作关键帧数据运动特征参数并进行坐标的人体空间方位分析,建立肢体坐标与空间环境方位之间的映射,通过空间方位、时间划分和其他运动特征参数确定描述语言,实现对人体动作信息的准确表达;具体做法是:\n[0080] 4.1)空间坐标方位映射,将以根节点坐标为坐标原点的坐标系进行空间方位划分,图3中坐标空间的原点为人体初始T型站立姿势双脚中心点,初始T型姿势正面朝向为\n27;初始T型姿势左手方向为28;初始T型姿势正上方向29;图4空间方位在垂直方向上的划分,是通过计算运动捕捉数据BVH中Head(头部)节点的初始T型站立姿势坐标信息,并用该节点y坐标的六分之一作为偏移量,以髋关节(Hips)关节点为中心点,向上向下偏移,则空间在垂直方向上被划分为上中下三个分量;同时,图5中对水平方位划分将上述上中下垂直分量中每个分量,再以45度为间隔,将空间划分为八个水平方位,再加上中心原位构成九个水平方位,以此构建新的空间坐标方位,九个方位以Z轴正方向开始顺时针顺序依次是,前,右前,右,右后,后,左后,左,左前,左,原位;最后根据每个关节点的坐标结合划分方位,对关键帧中每个关节的坐标进行空间方位判断;\n[0081] 4.2),其他运动特征参数计算:通过人体动作朝向的变化与肢体间的夹角变化详细描述人体动作,计算BVH原始关节中Spine(脊椎)、LeftCollar(左肩)和RightCollar(右肩)三个骨骼关节坐标组成的平面的法向量,式中p1(x1,y1,z1),p2(x2,y2,z2),p3(x3,y3,z3),为平面法向量:\n[0082]\n[0083] 再计算该法向量与坐标系y轴夹角,从而确定人体朝向;\n[0084] 同时,计算人体前臂与上臂内侧夹角,计算人体大腿与小腿之间内侧夹角:\n[0085] bend=arccos(va·vb/(||va||×||vb||)) (9);\n[0086] 式中,bend在人体左右手臂内侧夹角计算中表示手臂弯曲角度,通过上式求得手臂弯曲角度31,其中va为左、右上臂指向左、右肩的向量,vb为左、右上臂指向左、右前臂的向量,向量所描述的关节如图6所示,由上臂关节34指向肩部关节33的向量为va,由上臂关节\n34指向前臂关节35的向量为vb;\n[0087] bend在人体左右腿部内侧夹角计算中表示腿部弯曲角度,通过上式求得腿部弯曲角度32,其中va为左、右大腿节点指向左、右髋关节的向量,vb为左、右大腿指向左、右小腿的向量,向量所描述的关节如图7所示,由大腿关节37指向下髋关节36的向量为va,由大腿关节37指向小腿关节38的向量为vb;\n[0088] 4.3)设计MDL描述语言对人体动作过程进行详细描述,本方案设计动作描述,以自然语言的方式,描述人体动作过程中的时间、空间和力效三个主题内容,设计MDL描述语言数据结构,表1为上述数据格式中变量的具体说明,人体动作的时间主题主要由动作时间参数start_time、end_time来描述;人体动作的空间主题主要由肢体关节BODY及肢体所在垂直方位VERTICAL和水平LEVEL方位描述,人体力效的空间主题主要由帧速率RATE、帧数FRAMES及手臂弯曲角度BEND_ARM、腿部弯曲角度BEND_LEG描述,\n[0089] 表1 MDL描述语言说明\n[0090]\n[0091]\n[0092] 以上所述为本发明较佳实施例,对于本领域的普通技术人员而言,根据本发明的教导,在不脱离本发明的原理与精神的情况下,对实施方式所进行的改变、修改、替换和变型仍落入本发明的保护范围之内。
法律信息
- 2022-10-14
- 2019-06-04
实质审查的生效
IPC(主分类): G06T 7/246
专利申请号: 201910011119.1
申请日: 2019.01.07
- 2019-05-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |