远程康复中穿戴式传感器的运动捕获算法设计及应用
2021-11-30董梁屈云
董梁,屈云
1. 华南师范大学 数据科学与工程学院,广东 汕尾 516600;2. 四川大学华西医院 康复医学科,四川 成都 610041;3. 四川大学 华西康复医学院,四川 成都 610041 ;4. 四川省康复医学重点实验室,四川 成都 610041
引言
人类个体的日常运动能力直接反映了其健康状态和生活质量,运动能力的量化表达既可以作为身体状态和疾病严重程度的衡量指标,也可以作为某些医学介入手段的评价标准[1-4]。在康复医学里,日常运动能力可以通过多个量表进行人工评定,但这些量表里的很多内容都是定性分类,不同选项之间差距模糊,被评估者的现场表现和康复医生的主观观感都会导致分类误差。如果被评估者可以通过设备进行长时间运动捕获形成统计数据,再由康复医生根据统计值进行评定,其结果对于康复医学的发展、介入治疗效果的评估具有重大意义[5-8]。
基于设备的人体运动捕获始于20世纪70年代。Johansson[9-10]使用光学摄像设备和反射标记物对人体运动进行分析。在此之后,基于光学和非光学的人体运动捕获与分析技术飞速进展。目前,已经有大量商业化用途的运动捕获设备出现[11-14]。其中,由磁力计与惯性传感器相结合的6轴、9轴微机电系统(Micro-Electro-Mechanical System,MEMS)以其便携性和价格优势在近二十年里得到了广泛的应用[15-18]。
本文所探讨的运动捕获对象是位于普通居家环境的自由行动个体,考虑到居家场景中背景复杂且不可控,同时也会出现照明不足,跟踪对象被墙壁、家具遮挡的情况,光学跟踪设备难以发挥作用。因此在本项目里,我们研发了一种基于磁力计和惯性传感器的MEMS设备和动作捕获算法来实现自由运动居家康复患者的运动捕获。
1 设备组成
本文所述穿戴式传感设备的核心组件是四川大学华西医院康复科和百年旭康医疗器械有限公司共同研发的YD122型号传感器[19],这是一种MEMS传感器。每个传感器集成有9轴MPU9250芯片,可以测量3个轴向的加速度、角速度和磁场强度,传感器内部的STM32微处理器将测量的加速度、角速度和磁力值滤波后转变为表征当前姿态的四元素或欧拉角。此外,YD122主传感器自带电池与蓝牙模块,可单独使用,也可与一个YD122从传感器级联使用。使用时,单个主传感器通过绑带固定于受试者胸口处,4套主+从传感器分别绑定于左右大腿外侧、左右小腿外侧、左右上臂外侧和左右前臂外侧,共9个,见图1。
图1 穿戴式传感器的佩戴位置
除传感器外,设备还包含一个通用型移动终端,用于获取9个传感器的数据并重建运动状态。在本项目的实际部署中,我们选用华为荣耀9X Pro手机作为移动终端。
2 运动捕获算法
人体的姿态变化可以分解为躯干、头部、四肢的滚转角、航向角和俯仰角变化。佩戴传感设备后,传感器与人体运动同步,所量测到的磁场、加速度、角速度变化可用于重建运动状态。在本实验里,主要跟踪受试者躯干、四肢大关节两侧肢体的运动(通常在关节两侧的肢体会有明显的运动模式差异),而忽略头部、四肢末端的运动。此外,躯干部分也假设为一个整体,不考虑脊柱的屈伸变化。
在多传感器数据融合的运动捕获算法里,传感器的佩戴位置对算法设计有很大影响。前臂和上臂可以在3个自由度里自由变化,且速度较快,方向无法预测;大腿和小腿的运动主要是屈伸方向和朝向的变化,向两侧的偏转(滚转)较少出现且幅度较小;躯干部分则是以平动为主,大幅度的前倾、后仰、侧向弯曲较少出现,且动作较慢。这里以放置于大腿部位的传感器为例介绍本设备中所实施的动作捕获算法。
大腿部位的传感器佩戴于身体侧向平面,见图2。启动时,测量x、y、z轴三个方向的加速度、角速度和磁力,其中z方向为垂直纸面向外。髋关节所允许的大腿运动方向包括屈伸方向(俯仰角)和外展/内收方向(滚转角)。此外,由于人体朝向可任意变化,大腿的航向角也会随时变化。在这三个角度里,航向角可以在大腿伸直状况下由y轴磁力计直接读取,无需滤波计算。对于导致滚转角变化的外展/内收方向的运动,康复医生提出此类动作的幅度较小,且速度很慢,无需特别跟踪。在本研究的算法里通过重力在y轴的分量进行三角运算得出。大腿最主要的运动是屈伸,屈伸将导致俯仰角发生的变化,我们采用卡尔曼滤波对其进行计算。
图2 大腿处传感器的坐标轴方向与参数定义
如图2所示,大腿的屈伸角θ定义为y轴与重力反方向的夹角,大腿的摆动速度(角速度)为v=dθ/dt。图2中c表示水平方向加速度,a表示竖直方向加速度,θ、v、a、c都作为卡尔曼滤波跟踪的变量。考虑到大腿的摆动速度较慢,传感器采样率为25 Hz,在采样间隔内,角速度的变化很小(变化值可通过系统噪声模拟),因此滤波器使用常角速度模型进行推演。状态更新方程如式(1)所示。
其中,下标表示k时刻和k-1时刻,ts为采样间隔,wθ、wv、wa和wc分别为各个状态变量的系统噪声。可以假设它们为独立0均值高斯噪声,其分布函数如式(2)所示。
其中,Q计算方法如式(3)所示。
Qθ、Qv、Qa和Qc是各个状态变量的方差。传感器的测量值为x轴方向加速度d和y轴方向加速度b,观测值和状态变量的关系(观测方程)见式(4)。
其中,wd和wb是观测噪声,r是髋关节到传感器之间的距离。同样假设观测噪声是独立0均值的高斯噪声,见式(5)。
局部线性化按式(8)进行。
其中,和是dk和bk的估计值,、、、分别是θk、vk、ak、ck的估计值。获取状态变量后验预测值后,按式(9)更新状态变量估计值的协方差矩阵。
以上步骤是卡尔曼滤波的递归推导[20]。在实际使用时,需预估状态变量、系统噪声、观测噪声和协方差矩阵(初始化参数设置及递归计算实例可参阅[21])。以k-1时刻为例,根据状态方程对k时刻的先验预测如式(10)所示,等式右侧带有波浪线的参数为k-1时刻的滤波估计值,下标(k|k-1)表示从k-1到k时刻的单步预测。
同时对协方差矩阵进行单步预测,如式(11)所示:
卡尔曼增益由多个协方差矩阵和经局部线性化处理的观测函数导出,如式(13)所示。
如式(14)所示,k时刻状态变量的估计值由两部分估测值经卡尔曼增益加权后得出。
最后,对状态变量估计值的协方差矩阵进行更新,为k+1时刻的滤波做准备,见式(15)。
以上是对大腿俯仰角跟踪的算法,此算法同样适用于运动模式类似的小腿。根据康复医师的建议,躯干部位的俯仰运动和滚转运动幅度较小,且变化较慢,系统根据重力分量在各个轴上的分量经三角运算获得,躯干的方位角也由磁力计分量的三角运算获取。前臂和上臂的动作较为复杂,设备中使用了与上面类似的卡尔曼滤波进行跟踪,原理相同,但状态更新方程和观测方程里的变量和矩阵的维度都大幅增加。跟踪算法中所采用的卡尔曼滤波是一种无系统延迟的滤波算法,在k时刻获得新的测量值后即可获取当前状态参数的滤波值,对于目前运算能力较为强大的微处理器,数据滤波可在一个采样间隔内完成。
3 数据融合与运动重建
本设备的移动终端是一个运行运动重建APP的载体,此APP通过蓝牙与5个主传感器连接并接收数据。对于图1中胸部位置单独工作的主传感器,在40 ms的采样间隔内完成数据采集、滤波和发送;对于主从连接的传感器组合,两个传感器同步采样运动数据,在40 ms内进行滤波和发送。APP的数据读取频率与传感器采样率同为25 Hz,每隔40 ms从蓝牙接收缓冲里读取最新数据,如未收到某一(组)传感器的最新数据,则以40 ms前的数据作为当前值,在此工作模式下,APP数据读取的最大延迟为80 ms。
随后APP通过3D模型实现动作重建与可视化,重建的过程就是把传感器输出的滚转角、航向角和俯仰角与其所对应的模型肢体绑定并驱动模型同步运动。在任意时刻,使用者可左右滑动模型转换至不同的视角,如图3所示。使用这种方法,患者的动作细节还原度很高,方便观察运动过程中关节在各个方向的活动度,判断是否出现异常运动模式。
图3 左右滑动3D模型后呈现不同视角的身体姿态
除以3D模型进行可视化显示外,运动重建APP还将同一关节两侧的传感器输出角度融合,计算出各个关节的实时活动度,以及一段时间的平均活动度、最大活动度等,供康复医生进行运动功能评估。
4 实验结果
本研究设备交付华西医院康复科进行学科研究。考虑到该设备是一种监控设备,而非治疗或诊断设备,设备也不会对患者施加辅助运动效果,病例的选择主要根据以下两点:① 患者需具备较好的运动能力,且在监控过程中进行较大幅度的运动;② 患者具备较好的依从性和认知能力,可以长时间佩戴设备完成监控。病种、药物治疗等因素不作为病例选择的依据。根据以上考虑,本研究选取了3名认知能力正常的居家康复患者进行初步实验,3名患者在离院时上、下肢Brunnstrom分期都在4期以上,具备相似的转移和日常生活能力,且能按照要求完成设备的穿戴和使用。本系统在患者家中部署完毕后,每位患者在上午、下午分别佩戴传感器进行2 h的运动捕获。实验期间,患者根据医生要求进行总计1 h的康复训练,其中包含20 min的跑步机步行训练,其他时间均可在室内自由活动,实验为期4周。
为确保实验的可重复性,我们选取了相似度高的步行训练进行测试,患者在步行时,跑步机速度设置在3 km/h。除佩戴传感器进行监控外,也采用以往研究[10]所述的光学跟踪方法作为参照,以25 Hz的帧率同步录制步行视频,对所得的视频逐帧测量大腿中线与垂直方向的夹角(如图2中θ所示),形成如图4虚线所示的俯仰角曲线。同时,按卡尔曼滤波算法得到步行过程中大腿的俯仰角曲线以实线绘制于图4。
图4 行走过程中大腿俯仰角曲线
图4中两条曲线显示了相同的变化趋势,两种方法所监测到的大腿俯仰角最大值平均偏差为0.063弧度(≈3.6 °)、最小值平均偏差为0.067弧度(≈3.8 °),两条曲线的角度平均差异为0.072弧度(≈4.1 °)。除以上片段外,在对3名患者为期4周的步行测试结果进行统计后,光学和卡尔曼滤波两种算法得到的大腿俯仰角平均差异分别为3.7 °、4.3 °和 4.0 °,平均为 4.0 °。
图4中TD表示光学方法和卡尔曼滤波算法在跟踪肢体到达某一角度峰值(大腿俯仰角最大处)的时间差,因为光学方法是实时的逐帧测量,最大延迟仅为40 ms(25 Hz帧率),因此TD可以表征设备的延迟。本研究中,设备在数据传输上的最大延迟为80 ms,而图4所示TD为320 ms,延迟的增大与滤波算法有关。文中所述卡尔曼滤波采用了常角速度模型,当出现角速度突变时,如此例中大腿的摆速突然增加或降低,角速度值和相应协方差矩阵都需经过几个迭代才能匹配当前运动,在滤波结果上表示为滞后一段时间,这也是导致上面光学和卡尔曼滤波两种算法对同一时刻角度值的测量和计算的差异。在对3名患者的步行测试结果进行统计后,系统的最大延迟为480 ms,平均为297 ms。
康复医生对设备的使用评价也作为实验的一部分,由康复医生面对患者使用此设备观察实际动作和移动终端所显示的模型动作,评价结论为:① 模型动作相对于患者实际动作的还原度很高,动作准确且连续,可以取代人工监控,且不使用摄像头,不侵犯患者的隐私;② 运动重建APP所显示的关节活动度与手工测量值在5°以内,达到康复医学对运动功能评定和训练指导的需求;③ 系统延时在0.5 s以内,具备良好的实时性,突发事件可迅速响应,确保了患者院外康复的安全性。
5 结论与展望
在本文所提出的运动捕获设备中,本研究采用了定制的穿戴式传感器和通用型移动终端作为硬件,在此基础上开发了运动捕获算法和运动重建算法。在初期的试验性应用里证明了这一设备可以提供稳定准确的实时运动捕获结果,提供有助于康复医生进行功能评定的统计数据,是“物联网+康复医疗”领域一次有意义的尝试。后期的工作将着重围绕两点展开:① 设备的网络化,目前移动终端只能在蓝牙通讯范围内对目标进行跟踪,下一步将开发一套支持多终端的通讯协议,实现跟踪对象在跨越不同终端覆盖范围时自动切换;② 重点是远程化,本团队将设计基于云服务的运动数据存储中心,开发远程客户端APP,使得康复医生可在远程随时查看康复患者的居家运动状态。