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

人体姿态数据处理方法及系统

2022-09-01 03:26:47 来源:中国专利 TAG:


1.本发明涉及一种人体姿态数据处理方法及系统,属于数据处理技术领域。


背景技术:

2.远程健康管理对人体健康状态进行评估需要获取用户相关数据,涉及到人类在一段时间内的活动和行为。规律和适当的运动是改善身体状况和保持健康的必要条件。研究发现,人体姿态是组成运动和行为的基本要素。除去环境信息,人体运动和行为可以看作是一个时间顺序的姿态序列。通过对姿态进行数据处理可以帮助描述和分析人体运动、行为。
3.传统的远程医疗中,人的行为活动信息是由医生或者管理者通过观看监控录像得到的。这个过程耗时且花费精力。利用健康设备记录患者的活动,能够有效提高姿态信息采集效率,减轻相关人员工作负担。目前主流方法是使用各种传感器件和计算机视觉技术来简单快速地获取人体姿态数据。但不同动作捕捉设备根据其获取捕捉原理,获取的数据格式也不一样,后续需要特定的处理程序对其进行还原为姿态。而在医疗远程数据传输中为了尽量减少数据处理时间,获得统一的数据输出,需要对人体姿态数据使用统一格式的进行传输。
4.目前的人体姿态数据格式大多关注于还原姿态的准确性,强调人体关节点在空间中的位置,直接或间接采用关节点的坐标,或者是使用相对各坐标轴的平移、旋转分量来表示。如bvh格式记录每个关键点相对于自身坐标系的旋转角度,通过父节点到子节点逐一计算来还原姿态。目前已有的姿态表示方式的仅仅只有各个关节点的位置信息或旋转信息,无法直观地从数据上分辨出具体姿态。在动作判定和相似度计算等操作中,也需要在关节点坐标的基础上计算关节夹角来进行分析,而目前已有的数据格式都不能直观反映姿态,也不便于姿态的后续处理和计算。
5.有鉴于此,确有必要对现有的人体姿态数据处理方法提出改进,以解决上述问题。


技术实现要素:

6.本发明的目的在于提供能直观反应人体姿态且简单易于理解的人体姿态数据处理方法及系统。
7.为实现上述目的,本发明提供了人体姿态数据处理方法,包括以下步骤:
8.步骤1:定义一个初始姿态并根据所述初始姿态确定姿态序列的初始姿态数据;
9.步骤2:使用动作捕捉设备捕捉人体瞬时姿态,获取瞬时姿态捕捉数据;
10.步骤3:将所述步骤2的所述瞬时姿态捕捉数据进行简化,获取简化数据;
11.步骤4:将所述步骤3的所述简化数据与所述步骤1的所述初始姿态数据进行对比处理,获取与所述初始姿态数据之间的差异数据;
12.步骤5:将所述步骤4的所述差异数据进行姿态基数据处理,得到姿态基数据;
13.步骤6:将所述姿态基数据输出,得到姿态基数据表。
14.作为本发明的进一步改进,所述步骤1中的所述姿态序列具体为:对人体姿态进行
划分,定义头、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿和左右脚踝的姿态为姿态基本单元,按照连接顺序对所述姿态基本单元进行分级,按照姿态等级由小到大的顺序排列所述姿态基本单元,在所述姿态等级相同时,按照先上后下,先右后左的顺序进行排列所述姿态基本单元,得到所述姿态序列。
15.作为本发明的进一步改进,按照连接顺序对所述姿态基本单元进行分级具体为:所述躯干姿态为0级姿态基,对应关节为0级关节;所述左右上臂和所述左右大腿的姿态为1级姿态基,对应关节为1级关节;所述左右前臂和所述左右小腿的姿态为2级姿态基,对应关节为2级关节;所述头、所述左右手掌和所述左右脚踝的姿态为3级姿态基,对应关节为3级关节。
16.作为本发明的进一步改进,所述步骤2中的所述瞬时姿态捕捉数据的格式为bvh格式。
17.作为本发明的进一步改进,所述步骤3中的所述瞬时姿态捕捉数据简化具体为提取所述瞬时姿态捕捉数据中的头部、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿及左右脚踝的数据,得到所述简化数据。
18.作为本发明的进一步改进,所述步骤4中的所述差异数据为所述步骤3中所述简化数据与所述初始姿态数据的差异数值,即所述步骤2中所述人体瞬时姿态相对于所述步骤1中所述初始姿态之间各个所述姿态基本单元的旋转角度。
19.作为本发明的进一步改进,所述步骤5中所述姿态基数据处理为采用经过量化后的旋转角度来描述所述差异数据中的各个所述姿态基本单元。
20.作为本发明的进一步改进,所述步骤5中对所述差异数据进行姿态基数据处理时,所述差异数据在0-10度的量化精度范围内不会失真。
21.作为本发明的进一步改进,所述步骤6中所述姿态编码数据表不经过软件还原姿态就能直观的反应一个姿态。
22.为实现上述目的,本发明还提供了一种人体姿态数据处理系统,包括采集单元、处理单元和输出单元,所述采集单元用于采集人体运动时的瞬时姿态捕捉数据;所述处理单元用于将所述瞬时姿态捕捉数据简化处理后进行对比处理,然后再进行姿态基数据处理,得到所述姿态基数据;所述输出单元用于将所述姿态基数据输出为所述姿态基数据表。
23.本发明的有益效果是:
24.1.本发明通过对瞬时姿态数据的处理,将姿态数据变为统一格式的姿态基数据,便于对大量数据进行进一步处理;
25.2.本发明的姿态基数据的量化精度对姿态的影响较小且能极大的压缩数据量,不容易失真;
26.3.本发明通过姿态基数据表不经过软件还原就能够直观的反应一个姿态,简单明了。
附图说明
27.图1是本发明的流程图。
28.图2是本发明的人体骨架图。
29.图3是本发明的人体姿态分解图。
30.图4是本发明的关节点分级、初始姿态及大地坐标系图。
具体实施方式
31.为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
32.请参阅图1所示,本发明揭示了一种人体姿态数据处理方法,具体包括以下步骤:
33.步骤1:对人体姿态进行划分,定义头、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿和左右脚踝的姿态为姿态基本单元,按照连接顺序对姿态基本单元进行分级,躯干姿态为0级姿态基,对应关节为0级关节;左右上臂和左右大腿的姿态为1级姿态基,对应关节为1级关节;左右前臂和左右小腿的姿态为2级姿态基,对应关节为2级关节;头、左右手掌和左右脚踝的姿态为3级姿态基,对应关节为3级关节,按照姿态等级由小到大的顺序排列姿态基本单元,在姿态等级相同时,按照先上后下,先右后左的顺序进行排列姿态基本单元,得到姿态序列,定义一个初始姿态并根据初始姿态确定姿态序列的初始姿态数据;
34.步骤2:使用动作捕捉设备捕捉人体瞬时姿态,获取瞬时姿态捕捉数据,瞬时姿态捕捉数据的数据格式bvh格式;
35.步骤3:将步骤2的瞬时姿态捕捉数据进行简化,提取瞬时姿态捕捉数据中的头部、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿及左右脚踝的数据,得到简化数据;
36.步骤4:将步骤3的简化数据与步骤1的初始姿态数据进行对比处理,获取与初始姿态数据之间的差异数据,差异数据为步骤3中简化数据与初始姿态数据的差异数值,即步骤2中人体瞬时姿态相对于步骤1中初始姿态之间各个姿态基本单元的旋转角度;
37.步骤5:将步骤4的差异数据进行姿态基数据处理,采用经过量化后的旋转角度来描述差异数据中的各个姿态基本单元,得到姿态基数据;
38.步骤6:将姿态基数据输出,得到姿态基数据表。
39.其中步骤5中对差异数据进行姿态基数据处理时,差异数据在不高于10度的量化精度范围内不会失真。步骤6中姿态编码数据表不经过软件还原姿态就能直观的反应一个姿态。
40.以下说明书部分将针对步骤1~6进行详细描述。
41.步骤1中为对姿态基本单元进行坐标系的初始设定。具体的,步骤1包括:
42.s11、定义姿态基本单元,对人体姿态进行划分,定义头、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿和左右脚踝的姿态为姿态基本单元;
43.s12、定义姿态等级,按照连接顺序对姿态基本单元进行分级,躯干姿态为0级姿态基,对应关节为0级关节;左右上臂和左右大腿的姿态为1级姿态基,对应关节为1级关节;左右前臂和左右小腿的姿态为2级姿态基,对应关节为2级关节;头、左右手掌和左右脚踝的姿态为3级姿态基,对应关节为3级关节,按照姿态等级由小到大的顺序排列姿态基本单元;
44.s13、获取初始姿态数据,在姿态等级相同时,按照先上后下,先右后左的顺序进行排列姿态基本单元,得到姿态序列,定义一个初始姿态并根据初始姿态确定姿态序列的初始姿态数据;
45.s14、建立姿态基本单元的坐标系,按照姿态基本单元的姿态序列建立姿态基本单
元的坐标系。
46.进一步的,步骤14为对每个姿态基本单元进行坐标系的建立;以躯干、手臂、大腿以及头部的坐标系建立为例;具体的,0级姿态基躯干位置的坐标系;躯干位置经过简化后,可由左右肩部和腰部进行表示,其中,以左肩到右肩的矢量方向为躯干部x轴的方向矢量;腰部到左右肩中点为为躯干部z轴方向矢量;躯干部z轴和躯干部x轴方向矢量的外积(叉乘)为躯干部部y轴的方向矢量,以此建立躯干位置的坐标系。
47.1级姿态基中手臂位置的坐标系建立为:以手肘到肩部的矢量为手臂部z轴的方向矢量;手肘到手腕的矢量为辅助矢量u;以手臂部z轴方向矢量与辅助矢量u的外积为手臂部x轴方向矢量;以手臂部z和手臂部x轴方向矢量的外积为手臂部部y轴的方向矢量。
48.1级姿态基中大腿位置的坐标系建立为:以膝盖到髋部的矢量为大腿部z轴的方向矢量;以膝盖到脚踝的矢量为辅助矢量v;以辅助矢量v与大腿部z轴方向矢量的外积为大腿部x轴方向矢量;以大腿部z和x轴方向矢量的外积为大腿部y轴的方向矢量。
49.3级姿态基中头部位置的坐标系建立包括对关键点进行选定及坐标系建立。具体的,头部坐标系的建立需要考虑需要转换的bvh数据中是否有眼睛这一关键点(某些数据中对其进行简化,不含有眼睛关键点)。如果有眼睛关键点,则以脖子到头部的矢量方向为头部z轴的方向矢量;以脖子到双眼中点矢量方向为辅助矢量m;以辅助矢量m与头部z轴方向矢量的外积为头部x轴方向矢量;以头部z和头部x轴方向矢量的外积为头部y轴的方向矢量。
50.如果头部位置的坐标系建立中没有眼睛这一关键点,则默认头没有左右旋转(即,绕头部z轴的旋转),此时,以脖子到头部的矢量方向为头部z轴的方向矢量;以全局y轴方向矢量为头部y轴方向矢量;以头部y轴和头部z轴方向矢量的外积为头部x轴方向矢量。
51.步骤2为获取瞬时姿态捕捉数据。具体的,步骤2具体为使用动作捕捉设备捕捉人体瞬时姿态,获取瞬时姿态捕捉数据;进一步的,将采集到的瞬时姿态捕捉数据进行格式更改,以使得获取的瞬时姿态捕捉数据呈bvh格式。
52.步骤3为对瞬时姿态捕捉数据进行简化。具体的步骤3为对捕捉到的瞬时姿态捕捉数据进行划分,以使得瞬时姿态捕捉数据按照定义的姿态基本单元进行分类,同时保留姿态基本单元对应的瞬时姿态捕捉数据,即,提取瞬时姿态捕捉数据中的头部、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿及左右脚踝的数据,并将其余数据进行删除,实现对瞬时姿态捕捉数据进行简化,获取简化数据。
53.步骤4为将简化数据与初始姿态数据进行对比处理,获取与初始姿态数据之间的差异数据。具体的,步骤4为将步骤2中人体瞬时姿态与步骤1中初始姿态之间各个姿态基本单元进行旋转比较,并获取旋转角度。
54.在本发明的一较佳实施例中,步骤2中人体瞬时姿态相对于步骤1中初始姿态之间各个姿态基本单元的旋转角度按照由上至下、由近至远的顺序进行角度的调整,并获取各个姿态基本单元的旋转角度。具体的,步骤4包括:
55.s41、将躯干自当前姿态旋转恢复至初始姿态,记录躯干在每个方向(如x轴、y轴以及z轴)上的旋转角度,且记录旋转角度。
56.s42、将上半身中包含的各姿态基本单元左右肘、左右手、头的关键点分别绕其局部的坐标系中的z、y、x轴旋转,使得当前姿态的左右肘、左右手、头在转动后与初始姿态重
合,分别计算出各姿态基本单元的旋转角度。
57.s43、依次还原左右手臂、左右腿的姿态,使得左右手臂、左右腿的当前姿态分别绕其局部的坐标系中的z、y、x轴旋转到初始姿态,记录左右手臂、左右腿在各轴上的旋转角度。
58.s44、将当前姿态下的左右小臂、左右小腿旋转恢复至初始姿态,并计算左右小臂、左右小腿在其局部的坐标系的x轴上的转转夹角,并对夹角计算获取旋转角度。
59.经步骤s41~s44旋转变换后,当前姿态与初始姿态重合,将获取的旋转角度进行整理得到的旋转数据,获取步骤2中人体瞬时姿态相对于步骤1中初始姿态之间各个姿态基本单元的旋转角度,并将该旋转角度记作当前姿态与初始姿态之间的差异数据,即,步骤3中简化数据与初始姿态数据的差异数值。
60.定义多个姿态基本单元组成的人体姿态模型所在坐标系为全局坐标系,各个姿态基本单元所在的与各个姿态基本单元的相对位置始终不变的坐标系为局部坐标系;则在本发明中,步骤s41~s43通过局部坐标系计算旋转角度的具体步骤如下:
61.步骤a、计算对应姿态基本单元的局部坐标系,其中,绕旋转轴射出的方向看,顺时针旋转为正,逆时针旋转为负;
62.步骤b、将每个姿态基本单元的坐标系绕自身z轴旋转,使得姿态基本单元的坐标系y轴方向矢量旋转到全局坐标系下yoz平面内,记录此时的旋转角度为y轴的旋转角度rz;
63.步骤c、将每个姿态基本单元的坐标系绕自身y轴旋转,使得姿态基本单元的坐标系z轴方向矢量旋转到全局坐标系下yoz平面内,记录此时的旋转角度为z轴的旋转角度ry;
64.步骤d、将每个姿态基本单元的坐标系绕自身x轴旋转,使得姿态基本单元的坐标系x轴方向矢量旋转到全局坐标系下zox平面内,记录此时的旋转角度为x轴的旋转角度rx。
65.此时,即可获得每个姿态基本单元绕其自身坐标系的x、y、z轴旋转的旋转角度rx、ry、rz。
66.在步骤s44中,由于2级姿态基中左右前臂和左右小腿只能绕其自身坐标系的x轴旋转,即,前臂只能绕其自身坐标系的x轴逆时针旋转,小腿只能绕其自身坐标系的x轴顺时针旋转;则在步骤s44中左右前臂的旋转角度为手肘到肩部的矢量和手肘到手腕的矢量的夹角,且方向为负;左右腿的旋转角度为膝盖到髋部的矢量和膝盖到脚踝的矢量的角度,且方向为正。
67.步骤5为将步骤4的差异数据进行姿态基数据处理,采用经过量化后的旋转角度来描述差异数据中的各个姿态基本单元,得到姿态基数据。步骤5具体为:
68.s51、将步骤4计算得到差异数据正负取反;
69.s52、判断各个姿态基本单元对应的差异数据的正负得到编码的前缀,其中,非负为1,负为0;
70.s53、将步骤s52中得到数据除以预设的精度值,并将其转化为二进制编码数据,作为姿态基数据的后缀;
71.s54、将对应各个姿态基本单元的前缀和后缀连接,组成最终的姿态基数据。
72.需要说明的是,步骤5中对差异数据进行姿态基数据处理时,差异数据在不高于10度的量化精度范围内不会失真。
73.步骤6为将步骤s5中的姿态基数据输出,得到姿态基数据表。
74.进一步的,本发明还提供了一种人体姿态数据处理系统,包括采集单元、处理单元和输出单元,采集单元用于采集人体运动时的瞬时姿态捕捉数据;处理单元用于将瞬时姿态捕捉数据简化处理后进行对比处理,然后再进行姿态基数据处理,得到姿态基数据;输出单元用于将姿态基数据输出为姿态基数据表。
75.对于一个人体姿态,假定人体各结构部分受外力和内力作用下形状和大小不发生改变,是一种刚体系统,因此只要确定人体各关节点的位置和姿态,将其组合就可以确定人体的姿态。
76.人体姿态由各部分肢体绕对应的关节点旋转而成,其中最能反映姿态的肢体是头部、躯干和四肢。因此,我们首先选择相应的关节点组成人体骨架模型(如图2所示),为了更好处理不同人体之间的姿态数据,对人体骨架模型尺寸进行归一化,通过查阅资料,将人体姿态分解为头部姿态、躯干姿态、上肢姿态和下肢姿态,头部姿态由头部和脖子组成;躯干姿态由胸部到髋骨组成;上肢姿态由肩部到手腕组成;下肢姿态由髋部到脚踝组成。定义头、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿和左右脚踝的姿态为姿态基本单元。然后按连接顺序将关节点分为0、1、2、3个级别,躯干姿态为0级姿态基,对应脊椎关节为0级关节;左右上臂和左右大腿的姿态为1级姿态基,对应肩关节、髋关节为1级关节;左右前臂和左右小腿的姿态为2级姿态基,对应肘关节、膝关节为2级关节;头、左右手掌和左右脚踝的姿态为3级姿态基,对应颈椎关节、腕关节、踝关节为3级关节。
77.1级关节点绕0级关节点局部坐标轴旋转;2级关节点绕1级关节点局部坐标轴旋转;3级关节点绕2级关节点局部坐标轴旋转。当下级(级数较高)关节点绕上级(级数较低)关节点进行旋转时,其二者的局部坐标系也要跟着旋转。各个姿态基本单元的姿态的确立需要明确旋转的旋转轴、旋转方向和旋转角度。而当所有姿态基本单元组合为一个完整姿态时,由于各个姿态基本单元都可能进行移动,而有些姿态基本单元又是其他关节的上级关节点,联动起来较为复杂。为了方便旋转和后续处理,以人体水平向右的方向为x轴方向(位于冠状面),人体水平向前为y轴(位于矢状面),竖直向上为z轴(冠状面和矢状面的交线)在各个关节建立局部坐标系,局部坐标系既用来表示关节点的姿态,又是后续与其连接关节点的旋转轴。
78.请参阅图3所示,头部移动是绕颈椎关节的局部坐标系进行旋转,因为有3个方向的自由度,即可绕其上级关节点即颈椎关节的x、y、z轴旋转,对应动作为头的前屈后伸、左倾右倾、左右旋转。躯干的移动是绕脊椎关节的局部坐标系进行旋转,有3个方向的自由度,可绕其上级关节点脊椎关节的x、y、z轴旋转,对应动作为前屈后伸、左倾右倾、左右旋转;手臂/大腿的移动是绕肩关节/髋关节的局部坐标系进行旋转,有3个方向的自由度,可绕上级关节点的x、y、z轴旋转,对应动作为臂/腿的屈伸、外展内收、内旋外旋;前臂/小腿只有一个方向的自由度(x轴),对应动作为前臂/小腿的屈伸。
79.为了保证结果的统一和准确性,我们规定旋转的顺序为先绕x轴旋转,再绕y轴旋转,最后再绕z轴旋转。
80.各个部位的姿态,由相应的关节点绕上级关节点局部坐标轴的旋转角度来确定。整体的姿态由单个的姿态基本单元组合而成。如手臂的姿态就是由三个姿态基本单元的姿态组合而成,即手掌、前臂、上臂依次绕上级关节点的局部坐标轴旋转。
81.按照姿态基等级由小到大的顺序排列姿态基本单元,在姿态等级相同时,按照先
上后下,先右后左的顺序进行排列姿态基本单元,得到姿态序列,姿态序列为一个完整姿态的各姿态基本单元的姿态的组合。
82.将人体竖直站立,双手自然下垂时的姿态定义为初始姿态,此时人体各个关节的局部坐标系与大地坐标系重合(如图4所示)。确定初始姿态的姿态序列的姿态数据,即为初始姿态数据。
83.然后使用动作捕捉设备捕捉人体瞬时姿态,获取瞬时姿态捕捉数据,本发明中瞬时姿态捕捉数据的格式为bvh格式,但不应以此为限,瞬时姿态捕捉数据的格式可以为asf、amc、bvh、htr等其他格式。
84.bvh格式的瞬时姿态捕捉数据中包括了人体眼睛,手指脚趾等多个未使用的关节数据,在使用瞬时姿态捕捉数据之前先对其进行简化,提取瞬时姿态捕捉数据中的头部、躯干、左右上臂、左右前臂、左右手掌、左右大腿、左右小腿及左右脚踝的数据,得到简化数据。
85.将简化数据与初始姿态数据进行对比处理,获取与初始姿态数据之间的差异数据,即人体瞬时姿态相对于初始姿态之间各个姿态基本单元的旋转角度。
86.将差异数据进行姿态基数据处理,对差异数据中的每一个姿态基本单元,通过0/1_0000/1111的形式进行数据处理,得到姿态基数据。其中0/1为前缀,前缀由1位二进制数组成,用于说明旋转轴的旋转方向。0为顺时针旋转方向,1位逆时针旋转方向。0000/1111为后缀,后缀由4位2进制数组成,取值范围:0000-1111,用于说明绕坐标轴旋转的角度大小,1表示10度,如0011表示旋转角度为30度,“_”并没有在实际使用中,只是为了方便区分前后缀。以下为姿态基数据处理的对照表。
87.88.依次将所有姿态基本单元进行数据处理后,按照姿态序列的顺序组合,然后输出为姿态基数据表,下表为一个姿态基数据表的示例,姿态编码数据表不经过软件还原姿态就能直观的反应一个姿态。
89.某时刻的姿态基数据表(量化精度10度)
[0090][0091][0092]
在对差异数据进行姿态基数据处理的过程中,后缀0000/1111为2进制,1表示10度,经过实验表明,1表示1度、1表示2度、1表示5度和1表示10度的量化精度,在姿态基数据处理后,进行逆变换,将其还原为姿态,比较还原姿态数据与初始姿态数据的差异大小,即计算还原姿态数据与初始姿态数据的对应关节点坐标的平均误差和方差,通过对平均误差和方差的分析,确定在1度、2度、5度、10度的不同精度下,姿态基数据处理后的结果差异度小于10%,差异较小,即可知差异数据在不高于10度的量化精度范围内不会失真。
[0093]
综上所述,本发明通过对瞬时姿态数据的处理,将姿态数据变为统一格式的姿态基数据,便于对大量数据进行进一步处理;本发明的姿态基数据的量化精度对姿态的影响较小且能极大的压缩数据量,不容易失真;本发明通过姿态基数据表不经过软件还原就能够直观的反应一个姿态,简单明了。
[0094]
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

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

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

相关文献