几种常用步态检测典型算法的设计比较
2018-07-24韩勇强
余 佩,韩勇强
(北京理工大学 自动化学院,北京 100081)
0 引言
步态是用来描述行人行走方式的一个词语,对不同的人而言,步态虽会因人而异有所差别,但是整体上来说,运动本身就是连续周期性的,因而步态也具有总体性的一般规律[1]。行人步态检测主要就是根据这种一般规律进行检测从而实现计步的。行人的行走过程就是一种周期性运动过程 ,这时,行人的身体重心在水平方向上会大致维持着一个恒定的速度,同时在垂直方向上会产生具有一定规律性的变速运动。因此,通过三轴加速度计感知行人的运动加速度就可以对其行走过程进行步态分析。
目前为止,已经有许多研究者在行人导航的研究中选择不同步态检测算法对步态进行识别和记步,文献[2-5]选用了峰值检测法进行步态检测,文献[6-9]选用了过零检测法,文献[10]选用了一种改进了的自适应峰值检测算法,文献[11-12]选用了一种自相关分析算法。除此之外,还有很多种不同的步态检测方法,如站立期检测法、快速傅里叶变换(Fast Fourier Transform, FFT)法、步频探测传感器等。
本次实验研究,在各种步态检测算法中,选择了三种应用比较广泛的基础算法,峰值检测算法、过零检测算法和自适应峰值检测算法。针对这三种不同的步态检测算法,在相同的环境下,分别进行设计实验,比较它们的实验数据和测量效果,对其可靠性和精确性进行分析,总结了三种算法各自的优缺点。
1 步行建模
行人的行走是一个双脚交替前进的过程,因此行人的步态模型通常有两种,单步和复步[13],如图1所示。
单步模型是指1个周期里只包含1次跨步动作,其步长等于运动时左右两脚的脚后跟相邻落地点间的距离;复步模型是指1个周期里包含2次跨步动作,其步长等于运动时同1只脚的脚后跟相邻落地点间的距离。一般来说,将加速度计置于行人腰部通常得到的是单步所对应的步态周期信号;而置于腿部的加速度计得到的是复步所对应的步态周期信号。
以一个复步为例,行人的步态周期可以分为站立期和摆动期。站立期指从右脚跟接触地面开始到右脚脚趾离开地面结束,其余时间为摆动期。同时,站立期又可以分为脚触地期、站立中期、站立后期和脚离地期,具体的步态划分示意图如图2所示。
以图2所示的复步模型为例,触地期是行人右脚脚后跟接触地面开始到其左脚即将完全离开地面为止,离地期是左脚脚后跟刚接触地面开始到右脚即将完全离开地面为止。因此,触地期和离地期里,行人的身体是由双脚支撑的,其余时间则都为单脚支撑。
根据上面对行人步态周期的详细划分,可以分析行人行走过程中加速度的变化。起始时刻为右脚脚后跟触地时,随后左脚运动,蹬地前进,因为蹬地反作用力的存在,垂向加速度和前向加速度会增大,直到右脚站立中期达到最大值。之后,左脚向前跨步,垂向加速度开始减小,行人的重心下降,直到左脚脚后跟触地,垂向加速度减小到最小值。至此,一个单步过程完成,行人进入到下一个单步过程。
这样将步态周期进行清晰的划分有利于分析行人在行走时加速度的变化,尤其是针对垂向加速度的变化。起始时刻为右脚脚后跟触地时刻,随后左脚起步,借助蹬地时的反作用力,垂向加速度和前向加速度会增大并在右脚的站立中期达到最大值,而后随着左脚继续向前跨步,垂向加速度会开始减小,行人重心下降,到左脚脚后跟触地时的垂向加速度达到最小值。然后进入下一个单步过程,行人的行走过程就是这样一个重复周期性的过程,腰部垂向加速度计的输出信号图如图3所示,输出信号基本近似于正弦波。
2 三种步态检测算法
2.1 峰值检测法
由于行人在行走时加速度计输出的信号可以近似于正弦波波形,根据正弦波的特点,通过检测加速度计输出信号的波峰或者波谷可以识别行人步数,2个连续波峰之间即为一步。
峰值检测法的原理可以简单地描述为式(1),其中,xi为当前时刻采样点,xi-1和xi+1分别为上一时刻和下一时刻的采样点。
xi-1
(1)
但是外界干扰的作用下,加速度计信号输出存在伪波峰和伪波谷。所以在具体的实现过程中需要消除极值带来的影响,以保证使用真实极值实现步态检测。通过对行人的行走特征分析可以知道,行人行走频率在1~2.5Hz之间,即使是跑步阶段也不会超过5Hz,同时行人的加速度一般在0.2~2g之间。考虑到行人行走过程中,行走速度过快会因为步频较大而丢失步态信息,选择采样频率为100Hz对加速度计输出信号进行检测和数据采集。
算法具体步骤流程如下:
1)选取40个数据点作为滑动窗口以获得可能的峰值,并以[1.2g, 3g]作为阈值做峰值检测的初判,过滤数据波动。
2)计算可能峰值与前一个峰值相隔时间,保持在行人正常走路时间[0.4s,1s]之间。
3)峰值前后领域各取20个数据点比较,过滤伪波峰。通过判断的峰值点视为真波峰并将步数加计一步;否则返回重新滑动窗口选取采样点。
2.2 过零检测法
行人行走的垂直向加速度计输出信号可以近似于一个正弦波信号,即加速度先增后减存在着重复上升与下降的过程。在过滤掉重力加速度之后,垂向加速度计的输出信号波形有正有负。并且,由负变正的过程对应于抬脚,由正到负的过程对应于落脚。因此,可以通过检测信号的零点实现步态检测[6-9]。
算法开始之前,要将垂直方向的加速度计输出减去静止时垂向加速度计输出再进行检测。算法的具体步骤流程如下:
1)取采样点进行判断,若此点的值恰好为0,或者当前采样值与下一时刻采样值的乘积小于0,则记为潜在零点。
2)判断潜在零点是否处于下降阶段。
3)排除噪声波形产生的错误零点,取潜在零点左右邻域的20个采样点,选择邻域内最小值小于-g的点。
4)通过行走时的步频阈值排除错误零点。
2.3 自适应峰值检测法
在普通的峰值检测算法中,一般都采用固定阈值以及固定长度的滑动窗口完成行人的步态检测。但是当行人运动速度由慢变快时,由于行人脚部触地时用力程度和步频不同,加速度模值会随之逐渐增大,输出峰值的频率也会增大,导致步态检测精度的下降[14-15]。因此,对于不同的运动状态,应该给出不同的阈值进行判断。基于加速度输出模值的分布特点,可以将运动分为静止、行走、跑步三种状态,在普通峰值检测算法的基础上设置行人行走时间阈值为[0.1s,0.3s],跑步时间阈值为[0.2s,0.5s],以此来过滤伪波峰及其他错误信息。
3 实验及分析
针对三种不同的步态检测算法,设计在北京理工大学东操场实验检验算法的优越性和普适性。实验选择的设备为MTi-G-710 GNSS/INS,将实验设备固定于腰带上,佩戴在实验员腰部,设备通过一个USB接口与电脑相连接,实验员手持电脑采集相关数据,如图4和图5所示。
3.1 步态算法优越性对比
为了更直观地比较三种不同算法在恒定速度、变化步速以及不同运动状态下的测量精确度,在相同环境下,设置了6大组实验进行对比。实验由同一实验员完成,每次行走100步,为了避免算法的偶然性,每大组实验测试2次,共采集12组实验数据。其中,1~2组为匀慢速行走、3~4组为匀速行走、5~6组为匀快速行走、7~8组为匀速跑步、9~10组为由慢到快变速行走、11~12组为前50步行走后50步跑步。实验数据结果如表1所示。
表1 步态检测算法优越性对比实验数据结果
由实验结果可以看到,在行人的行走实验中,三种算法对行人步数检测的准确率都可以达到100%,这说明,在行人处于匀速行走状态下时,加速度输出信号变化的确呈现近似正弦波形式。但是,当行人行走步速变快时,由于步频和加速度峰值的变化超出了峰值检测算法的检测范围,所以只能测出91步和94步,精度有所下降。这种情况在实验员处于跑步状态时更加明显,此时的检测率只有大约50%;而在50步行走和50步跑步的实验中,峰值检测结果为75步,行走的50步基本全部被检测到,而跑步状态下的步数只被检测到一半。相比之下,自适应峰值检测法和过零检测法在步速过快,步频过高的情况下的检测结果更加精确。
针对检测步数不完全准确有所波动的情况分析可知,行人行走的整个过程通常并不是一个完整的步态周期,当加速度计输出具备算法检测条件时会计一步,然而实际情况中是以脚落地一次为一步,因此会出现多计一步和少计一步的现象,都属于正常的步数计量误差。所以说,普通的峰值检测法适用于匀速行走的情况,对于步频较快的情况误差较大,相比之下,自适应检测算法和过零检测算法整体的优越性良好。
3.2 步态算法普适性对比
鉴于对每种算法精确度的分析结果,由于基础峰值检测算法对于不同运动状态下行人的步态检测率并不高,所以只针对自适应的峰值检测算法和过零检测算法进行算法普适性的分析,让2个实验者(身高与体重均有一定差距)在与上述实验相同的条件下完成实验测试,每名实验者以同一步速进行2组实验,数据和检测结果如表2所示。
表2 步态检测算法普适性对比实验数据结果
由实验结果对比分析可知,自适应峰值检测和过零检测两种算法对于不同的实验者检测的结果大致相同,在行走条件下都可以达到相当的准确率,在跑步检测时更容易出现如上面分析的检测步数大于实际步数的情况,但总体上,基本都可以满足行人步态检测的精度要求。
3.3 组合系统中步态算法检测精度对比
针对优越性比较良好的自适应检测算法和过零检测算法,设计组合相同步长估计算法的组合实验,比较两种算法在组合算法环境下的检测情况。在相同的环境中,由同一实验员步行100m的方式进行对比实验,选择同一种非线性步长估计算法分别与两种检测算法组合。为了避免偶然错误,每种组合方式测量2次数据。将自适应峰值+非线性步长算法定义为方案一,将过零检测+非线性步长算法定义为方案二。其中,方案一的2组实验序号记为1和2,方案二的2组实验序号记为3和4,实验结果如表3所示。
表3 含不同步态算法的组合系统实验测量数据结果
从实验数据结果中可以得到,方案一的行走距离误差为10%,方案二的行走距离误差仅为1%,可见尽管在单独的步态检测中两种步态算法得到的结果都有较高的精度,但是组合测量系统中,数据精度存在较大的差别。这主要是因为单步步长的计算结果有所不同,实验采用的非线性步长估计算法中,步长的计算公式与一步内加速度模值的最大值和最小值有很大的关系。而自适应峰值检测算法截取的行人步态周期是从一个峰值到下一个峰值间的加速度模值,所以,加速度模值最大值的获取会因为前后相邻峰值的不同造成重复获取同一峰值的结果,这就会造成单步步长的计算整体变大,从而使得检测出的行走距离变大。
4 结论
本次研究设计了相同环境下的实验,从算法的优越性和普适性2个角度对三种步态检测算法进行设计和比较。实验结果可以看出,自适应峰值检测算法和过零检测算法,相对于普通峰值检测算法而言具有明显的优越性,测量精确度基本可以达到100%,而且适应的运动状态范围更广,普适性更强。随后,将这两种算法结合相同的步长估计算法,测试行人直线行走的距离,对比了两种算法在组合算法中的检测精确度。结果表明,由于所选步长估计算法工作流程的原因,两种步态检测下的组合算法表现出了不同的测量精度。分析知道,组合不同的步长估计算法,两种步态检测算法会表现出不同的优越性能,需要考虑所组合算法的工作原理进行更具体的选择。