潘婉苏,李晓风,许金林,李皙茹,程龙乐
(1.中国科学院 合肥物质研究院,安徽 合肥 230026;2.中国科学技术大学,安徽 合肥 230031)
人体运动姿态的准确解算是人体运动行为辨识与理解的基础,其在人机交互、康复医学及体感游戏等研究领域扮演着十分重要的角色。而人体运动非常复杂,受到很多内在因素或者外在环境的影响,如生理、人体结构、环境等。目前研究人体姿态识别的方法主要基于两种识别[1]:基于图像分析的人体姿态识别[2]和基于运动传感器的人体姿态识别[3]。基于图像分析的识别方法能清晰看见人体运动姿态,准确性高,但对设备要求较高,应用场景特殊且不便携带[4-6]。但基于运动信号并加以识别具有更好的实时性、适用性。随着MEMS技术和无线传感器网络技术的快速发展,运动传感器逐渐微型化、智能化,由加速度传感器、陀螺仪和磁阻传感器组成的惯性测量模块被广泛应用于姿态识别[7-9]。Li等在静态环境下利用体域网系统采集多组加速度信号,提出了1种基于DS证据理论的数据融合算法[10],对人体常见的4种基本姿势进行识别(坐姿、站姿、平躺、蹲坐),但无法动态跟踪人体姿态。
针对上述问题,文中提出了一种基于MEMS惯性传感器的行为活动方式反演系统,由MEMS惯性传感器感测人体行为数据,通过无线通信模块,将采集的信息交由终端进行运算处理,使用量化的姿态数据作为输入数据,重建身体的运动状态模型,反演出人体行为状态并即时反馈给用户。系统跟踪记录人体一天或长时期的活动状,用以评估用户的能量消耗和能量代谢当量,在人体运动能耗的检测领域有广泛的应用前景。
利用MEMS传感器感测人体运动信号,把采集到的数据随机分为训练样本和测试样本,对其进行加窗、平滑、滤波等归一化处理。由于采集的原始数据信息比较多(包括加速度、角速度、磁场、气压、角度等),计算也会变得越来越复杂,空间维数也会越来越高,影响了识别效果。因此,利用主成分分析法[11](principal components analysis,PCA)对数据进行降维处理,再把运动信号数据依次送入姿态解算模块、特征提取模块和选择模块,具体的工作流程如图1所示。
图1 系统测量流程
其中系统姿态解算模块利用四元数法来表示旋转角度和方向,求解姿态角,并通过四元数微分方程更新四元数的方式来更新姿态角。解算出的数据经过特征提取模块,提取后的特征向量送入选择模块,选择后的特征向量可作为表征相关运动特点的训练样本。系统通过分类模型对样本数据进行训练,最后获得可用于行为分类的参考模型。再以训练完成的参考模型为基础,采用KNN分类算法将未知样本与参考模型进行逐一匹配计算,匹配程度最高的模型类别即被认为是该未知样本的所属类别,也就是识别结果。系统跟踪记录人体一天或是长时期的运动信号,最终反演出人体行为轨迹。
人体运动状态反演系统分为数据采集模块、数据处理模块、显控模块和无线通信模块。系统通过MEMS惯性传感器MPU9250感测出身体运动信号,该信号经滤波调理电路后进入微处理器STM32,通过自带的A/D转换器,将模拟信号转换成数字信号,微处理器负责将采集到的信息进行数据分析处理,通过蓝牙通信模块把数据上传到云平台中进行存储,另一方面微处理器给显控模块发送控制指令执行相应操作。系统总体结构框图如图2所示。
图2 系统总体架构
文中采用的核心处理器是基于高性能ARM Cortex-M4 32位RISC内核的超低功耗微控制器(MCU)STM32L4xx器件,工作频率高达80 MHz。Cortex-M4内核具有单精度浮点单元(FPU),支持所有ARM单精度数据处理指令和数据类型。它还实现了全套DSP指令和存储器保护单元(MPU),加强了应用安全。
文中选择用于感测人体行为信号的模块是MEMS惯性传感器MPU9250,该模块集成三轴加速度传感器,三轴陀螺仪和三轴地磁计,解决了三轴加速度传感器中存在的Z轴漂移问题,性能稳定可靠。同时内部集成高精度的卡尔曼滤波姿态融合算法[12],并将经纬度、高度、航向、速度等信息数据传输到终端。
系统分为两部分,一部分是底层信息采集,另一部分是信息处理中心。底层信息采集是基于MEMS惯性传感器进行人体运动信号的采集,采集的原始信号波形如图3所示。
(a)加速度曲线
(b)角速度曲线
(c)角度曲线
传感器通过I2C通信,把采集到的数据发送到信息处理中心。信息处理中心基于STM32微处理器接收数据并匹配使其重新组合成准确的信息,通过基于四元数的互补滤波算法进行数据姿态解算,求出一个包含载体全部姿态信息的3*3矩阵,通过计算姿态矩阵可以得出所需要的全部的姿态信息,如俯仰角θ(pitch)、航向角φ(yaw)和横滚角γ(roll),根据气压信息求出海拔高度,耦合得到目标人体的运动信息。对运动信息进行长时间的跟踪测量,分析云端数据服务器存储的数据,反演人体一天甚至更长时间的行为活动方式。
系统选择四元数法进行姿态解算分析[13]。四元数可以描述一个坐标系或一个矢量相对某一个坐标系的旋转,其标量部分表示了转角的一半余弦值,而其矢量部分则表示瞬时转轴的方向、瞬时转动轴与参考坐标系轴间的方向余弦值[14]。因此,一个四元数既表示了转轴的方向,又表示了转角的大小。利用四元数姿态矩阵微分方程式求解4个一阶微分方程式组,这种方法比方向余弦姿态矩阵微分方程式计算量明显减少,同时能满足工程实践中对实时性的要求,弥补通常描述刚体角运动的3个欧拉角参数在设计控制系统时的不足。所以利用四元数法将加速度传感器、地磁计和陀螺仪的数据进行融合,解算出θ、γ和φ[15-16]。
具体解算步骤如下:
(1)确定初始四元数(q0,q1,q2,q3),采用二阶龙格库塔法对四元数标量部分与矢量部分进行实时计算;
(2)确定姿态矩阵,由四元数转换成姿态矩阵中的几个元素,如式1:
QT=
(1)
(3)计算人体姿态角,用这几个元素转换为欧拉角,最终求出姿态角,计算公式为:
(2)
系统采用最简单有效的KNN分类算法[17-19],利用测量不同特征值之间的距离方法进行分类。KNN分类算法依赖距离判别计算一个点A与其他所有点之间的距离,取出与该点最近的K个点,然后统计这K个点中所属分类比例最大的,则点A属于该分类。该系统先进行受试者训练样本数据的采集,根据所属类别判断训练样本数据的类别。再将试验样本中的待分类样本与训练数据进行比较,先计算待分类样本与已知类别的训练样本之间的距离,找到距离与待分类样本数据最近的K个邻居,即选取与当前待分类样本数据距离最小的K个点,统计前K个邻居中4种类别(坐、躺卧、行走和跑步)的样本出现的频率,然后返回最近的K个邻居的多数类别作为当前类别的预测分类。
为验证系统测试的准确性,选取64名实验者,男性志愿者32名,女性志愿者32名,年龄分布在21~60岁之间。志愿者按年龄段分为四组,分别为20~30岁,30~40岁,40~50岁和50岁以上,其中每组16名志愿者,男性志愿者和女性志愿者各8人。以上志愿者通过问卷的形式确认他们无慢性疾病及心血管疾病。让实验者佩戴检测装置,让他们分别完成4种动作:坐、躺卧、行走,跑步。每种行为的持续时长全部大于4分钟,数据采集完成后,首先提取信号特征,并对这些数据信息进行分类,作为训练样本集。再记录志愿者1天,15天,30天的活动情况进行后续的统计分析。从实验样本集中提取一名实验者(男,26岁)的运动信息进行分析,如表1所示。发现随着时间的增加,样本数据量有所增加,测量值与实际值较为接近。
表1 识别结果分析
采用适当的问卷方法,记录64名志愿者30天的实际运动状况。把实验者日常运动状况和该运动反演系统测试结果进行对比,以评估系统准确性。由表2可知,随着时间的增加,系统测量相对准确度有所提高,其中静坐的准确性达到了96.7%,长时间的躺卧的准确性达到了99.97%。而且通过该表发现,男女之间的运动识别准确度差别不是很明显,说明系统对性别没有十分严格的要求,同一种运动情况,每个年龄段的准确度存在一定的差别,但误差小于1%,关于这个原因,还有待进一步研究。故该系统的总体精度较高,具有很大的可实施性,评估结果可以代表该实验者的运动习惯,并且可以根据对受试者的运动习惯分析反演出人体行为方式。
表2 识别结果准确性对比 %
文中设计了基于MEMS惯性传感器便携式人体运动反演系统,集成了高性能ARM4和低功耗的STM32L4xx器件,并结合MEMS惯性传感器芯片MPU9250,具有测量准确、功耗低的特点。对系统所用的硬件系统和人体运动识别检测算法进行了系统分析和验证,并在实验中对比了男女性别、年龄因素对系统的差异。该系统为人体运动识别提供了技术基础,实现了对人体行为方式的反演和评估,使用户通过可穿戴式智能设备更加全面、及时、专业地感知自身运动状况成为可能。最后,系统将进一步改进算法,构建运动方式与能量代谢当量的关系模型,实现对用户动态能量消耗的检测。