严金戈,郭延锐
(1.合肥工业大学 工业与装备技术研究院, 安徽 合肥 230000;2.合肥工业大学 计算机与信息学院, 安徽 合肥 230000)
随着智能穿戴设备的普及,使用加速度传感器感知人体加速度变化并计步的方案日渐成熟。一方面,利用智能手机内置加速度传感器[1-3]的方案因其开发成本低,显示方便的特性而为研究者普遍使用。另一方面,使用专业的惯性测量单元放置[4]于身体某部位的方案因其在步数检测具体分析中更强的针对性而受到高度关注。
在基于人体加速度数据的计步算法中,波峰检测算法[5,6]的复杂度较低,检测步数的关键在于识别并去除由于噪声影响而产生的伪波峰和伪波谷,对于滤波算法滤波效果要求较高,不适合检测剧烈运动;自相关分析法[7]的适用范围较广,通过对比前后加速度序列之间的相似性,可以很好地区分空闲和行走两种状态,相似性可通过序列比对[8]等方法计算,但均需要结合之前的运动状态进行相关性判断,累积误差无法避免;动态阈值法[9]采用时间窗内最大值与最小值所确定的中阈值设定计步规则,无法分辨由非行走行为引起的加速度周期性波动,容易出现多计步现象。
结合当前计步设备和计步算法的研究现状,使用基于加速度传感器的计步鞋垫方案在计步的准确度上具有更好的优势。首先,足部作为人体行走行为的主体部位,其运动状态变化最为明显,加速度特征改变最为显著。其次,鞋垫与足平面平行的特性可以赋予传感器加速度分量相应的物理意义。最后,行走时足部与地面接触时存在相对静止状态,此时对加速度数据的校准可有效降低计算的累积误差。
计步鞋垫构成如图1所示。
图1 计步鞋垫构成
本文所用的计步芯片集成了LIS3DH三轴加速度传感器和nRF51822信号收发模块,传感器采样率为100 hz,采样数据由nRF51822内置运算单元即时处理后与用户手机通信。芯片尺寸为0.8×0.8 mm,由3v 230mah锂电池供电,水平放置于图2所示的鞋垫中,对应于足部的足弓位置。当使用者穿戴鞋垫设备在平地站立时,加速度传感器的X,Y,Z三轴加速度方向分别对应于侧方向、前进向和垂直向(误差5%以内)。
图2 芯片所处位置和参考系
系统架构如图3所示。
图3 系统架构
为了降低用户的使用成本,系统采用微信公众平台方案,芯片中的数据由无线模块通过Airsync协议与手机进行通信。数据上传到微信服务器后,由微信服务器转发至数据服务器进行处理和存储,用户可以在手机端通过html请求调用和查看数据。
由加速度传感器采集到的数据中包含X,Y,Z三轴的加速度数据,考虑到人体运动的复杂性,当传感器相对于人体位置无法确定时,多数文献采用三轴加速度的取模运算公式
(1)
以降低由于运动方向和放置位置不确定因素的造成的影响。此举虽然避免了使用单轴数据时可能存在的关键性运动数据丢失,但将具有不同特征的三轴加速度数据混合计算则有可能导致运动特征的重叠,从而降低运动曲线的识别度。在鞋垫中,加速度传感器相对于人体脚平面的位置是固定的,静止站立时传感器的3个方向分别对应前进向、侧方向和垂直向,运动时传感器自身坐标系会与人体坐标系产生不同程度的夹角,形成周期性变化的数据。
图4为走路时传感器X,Y,Z轴的原始加速度数据,不难看出:Y轴的加速度数据较为平滑,相对于X轴和Z轴有更高的识别度和稳定性。为了验证观察的准确性,我们使用鞋垫采集了一段混合了走、跑、上楼、下楼4种日常运动状态总共180 s的运动数据,以5 s为时间窗,统计出36组数据中每组数据的方差、极值点个数以及传感器量程利用率3种参数,并求其均值,数据对比参数见表1。
方差反应了一组数据波动性的强弱,实验结果中Y轴方差明显高于其它两轴,说明行走时前进向加速度变化更明显,其数据特征也更容易被检测。在无噪声干扰的理想行走状态下,加速度数据是一组平滑的曲线,曲线的极值点仅仅出现在足部运动状态发生变化的时候。在实际实验中,足部受到地面静摩擦力、压力反作用力、空气阻力等不稳定因素的影响,使得加速度数据发生抖动,抖动越明显,单位时间段内数据极值点个数就越多。此外,传感器的最大量程的利用率也在一定程度上影响到数据的准确度,量程利用率越高的数据精确度越高。综上所述,计步算法将选用变化特征最明显、噪声干扰最小且精确度最高的Y轴加速度数据。
图4 三轴原始加速度数据对比
表1 数据对比参数
加速度的原始数据由重力、人体加速度数据以及噪声组成,所以直接从原始数据提取加速度数据并不准确,需要进行数据的滤波。合理的选择滤波算法可以有效地去除噪声干扰,让数据更易分析。在滤波方式的选择上,有采用卡尔曼滤波法[10]和FFT滤波法[11]处理原始数据的方案,两种滤波算法在处理连续周期性的信号时滤波效果较好,但都会从一定程度上改变原始信号的波形。为了在取得良好滤波效果的同时保证数据的完整性,本文采用三点中值滤波+五点均值平滑滤波二次滤波处理方案
y(n)=mid(x(n-1),x(n),x(n+1))
(2)
(3)
其中,x(n)为Y轴加速度信号,y(n)为中值滤波后的信号,z(n)为五点平滑滤波后的信号,中值滤波对脉冲噪声具有良好的滤波作用,在过滤噪声的同时,能够保护噪声的边缘,使之不被模糊,但容易造成信号的不连续性。均值平滑滤波可以减弱原始信号中高频信号的影响,使信号更加平滑,易于分析。图5中从上到下依次为原始信号、中值滤波后的信号、均值平滑滤波后的信号,滤波取得了较好的效果。
图5 滤波效果
人体行走状态如图6所示,在人体行走模型中,一个完整的步态周期可以分为支撑期和摆动期,图7反映了一个步态周期中单只脚的行走状态变化。状态①时单腿直立于地面,脚底与地面相对静止,Y轴加速度处于初始值状态;从状态①到状态②,脚跟开始以脚尖为圆心缓缓离开地面;状态②到状态③时,足底向前倾斜,足平面受到重力加速度的分量慢慢增加,Y轴加速度值增大;状态③到状态④时,足部在腿部肌肉的拉动下向上提升,向反方向运动,Y轴加速度减小;状态④时足部提升动作完成;状态④、⑤时,腿部以大腿根部为圆心开始前伸,同时小腿以膝盖为圆心开始前伸,带动足部运动,Y轴加速度增加;状态⑤到状态⑥时,脚尖着地,Y轴加速度恢复初始状态。其中状态①~③、⑤~⑥为支撑期,状态③到⑤为摆动期。
图6 行走状态分解
图7 Y轴加速度曲线与行走状态对应
支撑期时,足部与地面直接接触,状态间变化历时较短。同时,在地面摩擦力以及支持力作用下,加速度数据受到噪声干扰较大,有可能出现局部的抖动现象。摆动期时足部悬空,人体发生位移且历时较长。结合图8中的加速度变化曲线,得知状态④~⑤的摆动期占据了40%以上的行走周期,加速度变化范围较大且曲线平滑,辨识度高。因此,计步算法的关键在于识别状态④~⑤的摆动期。
图8 穿越点和信号幅值面积
算法的本质是通过检测行走周期中摆动期的个数来统计步数,在接受到Y轴滤波后的加速度数据后,检测连续上升的加速度数据并记录其区间和数值。为了准确地识别此段加速数据是否是属于摆动期,首先需要确定Y轴加速度的平衡阈值,并以是否穿越此平衡阈值为条件做第一次筛选。其次计算此时间段内加速度值与初始阈值围成区域的信号幅值面积,以此量化摆动期足部的速度改变量。最后结合当前运动强度确定合适的阈值用于划分幅值面积,进行第二次筛选,去除小于阈值的干扰。
(1)划分采样时间窗
在连续不断更新的加速度数据中,将采集到的加速度数据划分时间窗有利于特征的统计和分析。使用固定时间窗的主要缺点在于破坏了时间窗边缘加速度数据的连续性,为了防止时间窗边缘出现丢步,算法以5 s为基准,在此时间窗的末尾检测加速度是否连续增加。若不是,将时间窗固定为5 s,若是,继续接受数据直到检测到第一个极大值时刻,以此作为时间窗的结束。
(2)动态更新平衡阈值TR
如图8所示,平衡阈值TR是一条贯穿加速度数据的水平线,其数值等同于静止站立时Y轴加速度的数值和走动时支撑期①状态下的Y轴加速度数值。静止站立时,鞋跟与鞋尖的高度差导致Y轴加速度方向与水平方向产生夹角,在重力分量的影响下,加速度值发生正向偏移,此时TR位于零点上方。运动时,考虑到路况中可能存在的坡度对平衡阈值TR的影响,算法使用动态更新的平衡阈值,通过检测当前时间窗内持续时间超过0.1 s、波动范围小于0.01 g的加速度数据,取其均值作为平衡阈值。若无满足此条件的数据,使用上一个时间窗内的平衡阈值。
(3)检测穿越点
在一段正常的步行周期中,Y轴加速度值从初始值开始经历了加速、减速、再加速,最后回到平衡阈值的过程。由3.1节的行走状态分析可知,状态④到状态⑤之间Y轴加速度必然会经过平衡阈值TR。因此,算法首先检测从阈值下方穿越到阈值上方的穿越点。图8检测到的穿越点中,圆形标注的点为状态④~⑤加速期正常穿越阈值的点,其余的点则是由于噪声影响产生的伪穿越点:
第一类伪穿越点:如图中三角形标注所示,此类点在状态⑤之后脚跟落地的时候产生,由于落地时脚跟与地面的突然接触,地面对足部的反作用力使加速度数值产生波动,即时通过滤波也无法过滤此类抖动。
第二类伪穿越点:如图中菱形标注所示,此类点产生于足部对于地面的支撑期。由于本文使用的加速读传感器精度较大(±32 678),在支撑期时,加速度一些微小的波动也会被误判为上穿越阈值的点。
(4)计算信号幅值面积
计步算法的关键在于合理的去除两类伪穿越点,对此,我们可以通过求解穿越点的信号幅值面积的方式来量化区分。信号幅值面积的单位为g·t,其物理意义相当于沿传感器Y轴方向加速度的改变量,在行走周期中,摆动期④~⑤之间加速度改变量远远大于伪穿越期间的加速度改变量。算法检测加速度连续增加的区间T1、T2,当其对应的加速度值AT1
(4)
(5)根据运动强度划分信号幅值面积阈值TD
图9为一段行走时检测到的信号幅值面积数据,可以看出加速度上升区间的信号幅值面积被明显的划分成了两个部分,合理的设置阈值TD可以很好地区别伪穿越点。在设定阈值TD的过程中,需要考虑到运动剧烈程度对于D1+D2的影响。通常情况下,运动越剧烈,加速期间速度改变量越大,同时,一二类伪穿越点附近加速度受到的干扰也会增大。在此,定义运动强度
(5)
图9 信号幅值面积分布
定义幅值面积阈值与运动强度的比值
α=TD/P
(6)
最后,通过实验,确定合理α的值,使得在D1+D2>αP时计步判定有效。
为了探究在不同运动强度下信号幅值面积的阈值设定对于计步准确率的影响,实验设计了P1~P5这5种不同的运动强度分级,见表2,实验数据由同一人佩戴计步鞋垫多次测量完成。
表2 运动分级对应
如图10所示,当α=0时,算法将正常的步伐和误判的第一类和第二类穿越点都统计为一步,此时,运动强度最大的P5状态识别率最低;当α开始增加,P1~P5这5种运动强度下的识别率都开始向最大值逼近,通常情况,当某种运动强度下分类效果良好时,其保持较高识别率的α区间也会越长,实验中P3状态下表现出了较高的阈值接受范围,P1和P5阈值接受范围较低。为了保证总体识别率较高,算法选择5种运动强度下计步准确率均值最高点时的α值。当α=0.093时,总计步识别率最高(98.3%)。综合计步识别率达到95%以上的α值区间为[0.064,0.142],具有较大的区间跨度,因此,此α值所确定的判定阈值TD具有较高的鲁棒性,适用于各种运动强度下的计步统计。
图10 5种运动强度下计步识别率与α的关系
实验分为两部分:①在计步鞋垫平台中,将幅值判定法与峰值检测法和动态阈值法两种较有代表性的计步算法作对比;②在同样的运动模式下,将计步鞋垫的计步准确率与智能手机和智能手环的计步准确率作对比。
实验中所使用的智能手环是市面上较为成熟的小米手环一代;使用的智能手机型号为MEIZU PRO5,安装了3款常用的计步软件(咕咚运动、悦跑圈、魅族计步)。实验由9名检测人员(7男2女)以及一名记录人员完成,实验者左手佩戴智能手环,右手手持智能手机,左脚鞋内放置计步鞋垫,分别进行常态运动下的走路、跑步、上楼、下楼、上坡、下坡以及非常态状态下的抖动干扰实验。每个阶段完成后,记录人员分别记录手环显示的步数、3款手机计步软件显示步数的均值以及鞋垫芯片通过微信公众号显示的步数。将计步结果汇总后取均值得到表3。
表3 计步准确率对比
表3为7种运动状态下使用不同计步算法的计步鞋垫与智能手机、智能手环的计步准确度对比,实验数据分析如下:
(1)平地实验
走路时运动变化较为平稳,总体计步准确率较高,其中使用计步鞋垫的幅值判定法准确率最高,达到99.2%。跑步时运动变化较为剧烈,由于部分时刻加速度最大值超越了最大量程(4 g)导致峰值处于水平状态,此时峰值检测失效,使用计步鞋垫的峰值检测法计步准确率最低(78.6%)。
(2)楼梯实验
上下楼实验中足部运动状态改变较为频繁,实验者的行走状态在楼梯与平台之间相互交替,实际检测到的加速度数据是平台运动步数和上楼运动步数的混合体。此时基于计步鞋垫的3种计步算法准确率都收到了不同程度的影响,其中动态阈值法计步准确率最低(68.4%,74.8%)。由于手部摆动受到足部运动变换影响较小,此时手环的计步准确率相对较高(97.2%,96.4%)。
(3)坡度实验
上下坡实验中,Y轴的基准值在重力加速度分量的影响下发生了一定程度的偏移,得益于动态纠正的平衡阈值,此时幅值判定法计步准确率最高,分别为97.5%和95.5%。
(4)非常态实验
非常态的干扰实验中人体并没有进行实际行走活动,而是进行腿部和手部的抖动。其中幅值判定法在抖腿运动中完全没有判定计步,但是动态阈值法和峰值检测法几乎都将腿部的抖动误判为行走运动。小米手环和智能手机在此实验中也有一定程度的误判。
综上所述,使用智能鞋垫的动态阈值法、峰值检测法、幅值判定法和智能手机、智能手环的计步识别率分别为84.7%、83.1%、97.1%、93.2%、89.5%,其中使用智能鞋垫的幅值判定法综合识别率最高。
基于鞋垫内置加速度传感器的计步鞋垫方案法通过分析足部加速度变化的本质,提出了使用摆动期加速度信号幅值面积区分行走行为和干扰的计步方案,解决了复杂运动模式下计步准确率低的问题,在综合计步准确率达到97.1%的同时也能很好地排除非常态运动的干扰。
不同于手环、手机等智能设备,鞋垫在使用过程中携带成本低,其独特的放置位置可以做到真正意义上的无感穿戴,在运动健身以及老人健康照护场景中可以长时间监测和记录人体活动,具有重要意义。