微型运动传感器的动作捕捉技术分析及其应用
2018-08-21刘磊
刘磊
(西安工程大学, 西安 710048)
0 引言
人体运动捕捉的实质就是通过各种设备对肢体的运动数据甚至是面部表情进行采集和处理,实现各种动作的仿真模拟[1],其中应用了模式识别、虚拟现实及传感器网络技术。人体运动传感器是运动捕捉的关键设备,主要分为惯性式、光学式、声学式、电磁式、机械电动式等5种。随着MEMS(微机电系统)技术的发展,由MEMS器件构成的微型人体运动传感器显示出了更加突出的优点,因此,本文以微型运动传感器为研究对象对人体运动捕捉技术进行分析。
1 动作捕获技术
在进行运动捕捉时,除了使用运动传感器,还需将采集的数据通过无线网络上传至计算机,使用计算机实现运动传感器信号的预处理,及运动姿态的计算等,计算机获得数据计算之后,将计算结果虚拟映射角色的对应关节点上,并根据虚拟角色的环境条件和物理约束条件等进行动作调整,提高虚拟动作的精确性。在实施运动捕捉之前,首先需要在用户的关键部位布设多个微型运动传感器,如腰部、胸部、头部、腿部及手臂等。运动捕捉系统如图1和图2所示。
微型运动传感器包括三轴陀螺仪、三轴加速度计和三轴地磁传感器,在运动捕捉方面每种传感器各有优缺点,传感
图1 运动捕捉系统架构
器“融合”成为克服单个传感器弱点的有效方法,使运动检测结果更加精确。因此,本文在进行研究时使用了MEMS三轴加速度计、三轴陀螺仪和三轴磁力计,三轴加速度计可以得到载体三轴的加速度,三轴陀螺仪测量出旋转角速度,而三轴磁力计输出三个方向上的磁场感应量。
2 人体姿态运动捕捉算法
在进行人体运动捕捉时,将微型运动传感器(三轴磁力计、三轴陀螺仪、三轴加速度计)当成一个测量单元,并将测量单元采集的数据定义到一个坐标系中,将这个坐标系命名为人体坐标系b,取人体的重心为人体坐标系原点。与人体坐标系相对应的绝对坐标系命名为全局坐标系n。通过四元数法或欧拉角法可以实现人体坐标系和全局坐标系之间的坐标转换。由于四元数法的准确性较高,并且可以避免欧拉角的奇异问题,因此应用十分广泛[2-4]。采集的人体运动数据完成坐标系转换后,通过Kalman滤波器,降低误差。
2.1 异构传感器信号建模
每个运动传感器采集人体运动信号之后,可以采用向量的形式表示,获得传感器的向量数据。对各个运动传感器进行信号建模,具体如下所述:
三轴陀螺仪的角速度、陀螺仪偏移、白噪声干扰分别用ωi、bg,t、wg,t表示,三轴陀螺仪的测量信号用yg,t表示,如式(1)。
yg,t=ωt+bg,t+wg,t
(1)
三轴加速度计的运动加速度、重力加速度、加速度计偏移、白噪声干扰分别用at、gt、ba,t、wa,t表示,则三轴加速度计的测量信号ya,t表示,如式(2)。
ya,t=at+gt+ba,t+wa,t
(2)
三轴磁力计的地球磁场、地磁扰动、白噪声干扰分别用mt、dm,t、wm,t表示,则地磁测量信号ym,t表示,如式(3)。
ym,t=mt+dm,t+wm,t
(3)
其中陀螺仪,加速度计的偏移变化可以用高斯白噪声ug,t和ua,t的协方差矩阵的一阶Makove模型来表示,见如式(4)和式(5)。
bg,t=bg,t-1+ug,t
(4)
ba,t=ba,t-1+ua,t
(5)
2.2 位移解算
(1) 人体运动过程中根节点的位移解算
(6)
(7)
预测的速度和位移可以通过加速度积分得到式(8)。
(8)
(9)
式(10)、(11)中:
(10)
首先建立状态误差模型和测量模型,如式(11)—式(15)。
δxt=ptδxt+ut
(11)
δzt=Mδxt+nt
(12)
(13)
(14)
(15)
公式(11)—(15)中,ut、Pt分别代表的是协方差矩阵Q的过程噪声、状态转移矩阵。δxt、δzt、nt、MT分别代表人体某一节段的状态误差向量、测量误差、协方差矩阵R的测量噪声、测量矩阵。
⊗δQt
(16)
根据上述公式可以得到定位方向误差,速度误差和位移误差的实时更新值,如式(17)—式(19)。
δQt=I3+Δtyg,tδQt-1-0.5Δtbg,t-1-ug,t
(17)
(18)
δSt=δSt-1+Δtδvt
(19)
其中ug,t=0.5Δtωg,t-1,ua,t=CQtωa,t,I3为3×3阶单位矩阵,ya,t代表加速度计加速度去除偏移后的交叉乘积算子。
通过对加速度和地磁矢量的归一化处理,计算得到互补卡尔曼滤波的输入测量值,对t时刻对定位方向,速度和位移量进行校正,校正方程,如式(20)—式(22)。
(20)
(21)
(22)
(23)
(24)
εp,t=USt+μp,t
(25)
(26)
2.3 陀螺仪姿态解算
四元数Q与人体坐标系下的陀螺仪测量值存在如下关系,如式(27)。
(27)
MEMS三轴陀螺仪输出为角速率形式,采用二阶龙格库塔法求解四元数,如式(28)、式(29)。
(28)
k1=Qb(t)·Q(t)
k2=Qb(t+Δt)·Q(t)+k1·Δt
(29)
式中,Δt代表采样周期。
(30)
3 人体模型的建立
人体是一个比较复杂的系统,共包括209块骨骼,在进行运动捕捉时获得骨骼旋转角度,并将骨骼重新组合才可以重构人体运动学模型。根据生物解剖学原理,人体的主要动作部位包括腰部、头部、大腿、小腿、手臂、手肘和手腕[5],各部分关系如图3所示。
图3 骨骼关系图
图3在简化的模型中,除了根骨骼(腰)之外其它全部骨骼做旋转运动,而根骨骼(腰)做平移运动。为了更形象显示载体的动作状态,在求出载体的姿态后,还需要虚拟重绘载体姿态,实现运动姿态重现。载体姿态主要通过OpenGL技术根据解算后的载体姿态角进行虚拟重现。
头部、颈部、腰部、左臂、左手、右臂、右手、左腿、左脚、右腿、右脚等部分可以在一定程度上反映人运行的情况,人体的关节活动度如表1所示。
表1 人体关节活动度
4 应用分析
为了验证上述算法的有效性,开发了基于微型运动传感器三轴陀螺仪、三轴加速度计和三轴地磁仪的虚拟角色交互系统,硬件由三轴陀螺仪、三轴加速度计和三轴地磁仪、微控制器和无线射频芯片组成,微控制器选择MC56F8122,无线射频芯片选择MC13201通过ZigBee无线协议将采集到的人体运动数据发送至计算机进行位移、姿态角计算等,使用Open GL软件实现三维虚拟动作的绘制。运动传感器采样频率为每秒30帧。试验过程中,被测试者表演动作,动作数据后应用于虚拟角色,结果如图4所示。
(b)
图4 被测试者表演动作与合成动作
由图4可知,计算机生成的动作和被测试者的动作保持一致,效果教好。
为了对算法的准确性进行分析,以Xsens商业动作捕捉系统的姿态角测量结果作为真实参考值,将本文提出的算法与不采用自适应误差协方差算法的三个姿态角的均方根误差值进行比较,均方根误差值的计算方法,如式(37)。
(37)
其中n代表每次测量的动作解算出来的单轴姿态角个数,X解算值为每种算法解算出来的姿态解算角度值,XXsens为商业动作捕捉系统测量得到的姿态角度值,采集的4次基于左手快速运动实验数据,4次数据分别釆用两种不同解算算法计算载体翻滚角、俯仰角和偏航角的均方根误差,结果如表2所示。
表2 两种算法的RMSE值(°)
以实测结果作为真值参考标准,本文提出的算法计算值较小,说明该算法的性能更好。
5 总结
为了加深人体运动捕捉研究,文章对运动捕捉技术进行分析,通过微型运动传感器采集数据之后,对人体的姿态角及位移进行分析,实现了动作的精准还原,体现了运动捕捉技术的应用良好效果。此外,运动捕捉技术在电影拍摄、医疗康复、娱乐等的市场前景也十分广阔。