一种基于自适应波峰检测的MEMS计步算法
2015-05-23陈国良张言哲
陈国良,李 飞,张言哲
一种基于自适应波峰检测的MEMS计步算法
陈国良,李 飞,张言哲
(中国矿业大学 环境与测绘学院,江苏 徐州 221116)
针对微机电测量系统(MEMS)波峰检测计步算法和自相关分析计步算法仅利用单轴加速度和固定阈值对传感器姿态和运动状态变化适应性较差的问题,提出了一种自适应波峰检测算法。该算法将行人运动状态分为正常状态与非正常状态,根据行人每一步的最大整体加速度与运动状态的内在相关性,获取不同运动状态的波峰检测经验阈值,实现不同运动状态下的自适应计步。通过实验对比分析,自适应波峰检测算法在传感器不同姿态和行人不同运动状态下的计步正确率均可达到99%以上,而常规波峰检测算法和自相关分析算法对正常态的计步精度虽然达到97%和99%以上,但对非正常状态下的计步精度仅有70%和50%,无法适应行人运动状态的变化。结果表明:自适应波峰检测算法对MEMS传感器姿态和运动状态的变化适应性较强,能够实现传感器不同姿态和不同运动状态下的可靠性计步。另外,自适应波峰检测、常规波峰检测、自相关分析算法的时间运算效率分别为0.036 s、0.046 s、0.131 s,自适应波峰检测算法时间效率明显优于其他两种算法。
MEMS;自适应波峰检测;常规波峰检测;自相关分析
随着导航定位技术不断发展,室内外无缝定位技术成为当前的研究热点。室外环境下全球卫星导航系统(GNSS)发展成熟,而在卫星信号受到多路径效应、建筑物遮挡等因素影响的GNSS盲区定位成为亟待解决的科学问题。陈伟等提出利用惯性传感器实现行人航位推算(PDR)为解决GNSS盲区定位提供了一个可行方案[1-3],PDR定位中步数检测是最基本的一步,计步结果的好坏直接影响到PDR定位的精度[4-5]。步行作为人类活动中最基础、最常见、最重要的运动形式[6],使得深入地研究计步算法有着重要的意义。我们可以通过步数和步幅计算来量化用户运动,实现用户自我监测[7]。计步算法主要包括波峰检测算法[8-9]和自相关分析算法[10-11]。文献[8]固定IMU于腰间,利用整体加速度的波峰检测算法实现正常行走状态下计步,但缺乏非正常态计步;文献[9]利用动态阈值波峰检测算法,研究手腕计步器,对非正常态计步准确率达到99%以上,但无法适应正常态下的不同用户行走特征。以上算法仅适用单一传感器姿态,对于位置随意变换的传感器如移动终端等并不适用[11-12]。文献[11]利用自相关分析算法,针对多种传感器姿态做了实验分析,计步精度可达99%以上,但是该算法需计算加速度序列的标准差和相关系数,大量的乘除运算降低了算法的时间效率,再者该算法未统计非正常态下的计步效果。
针对以上问题,本文提出一种自适应的波峰检测算法,基于每一步产生的最大加速度与运动状态的内在相关性,统计不同运动状态对应的每一步最大加速度分布,设置最大加速度阈值判断行人运动状态,针对不同运动状态采用不同的波峰检测算法参数进行步数的判别。利用整体加速度代替单轴加速度消除设备姿态对计步结果的影响,同时利用与邻域内加速度值比较去除伪波峰,提高了算法的计步正确率。通过在智能手机平台和高精度的IMU平台上测试表明,该算法不仅适应在不同的设备姿态下正常计步,而且在正常步态和非正常步态下都达到了很好的计步效果。
图1 人体行走分量示意图Fig.1 Pedestrian walking components
1 计步算法
常用的计步算法是基于人行走时所产生的加速度进行定量或定性分析来实现计步的。人的自然行走分为前向、垂向、侧向三个方向如图1所示。
图2为人体垂直向加速度的周期变化,在行走过程中,随着脚步交替人体重心会上下波动,行走模型分为单步和复步两种[13]。如图2中的单步过程,一只脚起步蹬地的反作用力使得垂直向和前向的加速度逐渐增大,在此过程中身体重心上移和前移,垂向加速度会达到最大值,随着脚继续向前迈,垂直向加速度减小,身体重心下降,垂向加速度达到最小值至脚落地。另一只脚重复上述单步过程则完成复步。图3为人体连续行走产生的垂直向加速度,加速度出现类似正弦波形(红色虚线)的明显周期性变化,其中一个标准的正弦波形对应一个单步。波峰检测算法和相似性分析算法都是根据这种加速度周期性变化来计算步数的。
图2 人体行走分解示意图Fig.2 Diagram of pedestrian walking
图3 连续行走垂直向加速度周期性正弦波形Fig.3 Periodic sinusoidal waveform of vertical acceleration
1.1波峰检测算法
根据人体行走时加速度出现的周期性正弦波的特性,可以通过检测加速度正弦波的波峰或波谷个数来识别步伐[14],波峰检测算法正是通过检测加速度波峰来实现计步,若连续检测到两个波峰则记为一步。由于运动规律或者身体的抖动等因素的影响加速度数据往往产生噪声,形成伪波峰和伪波谷,因此计步过程需要甄别伪波峰,获取真实的波峰来实现计步。
通过对人体行走特征进行分析,人行走频率一般在1~2.5 Hz范围内,跑步时频率不超过5 Hz,加速度在0.2g~2g之间。由于跑动时步频较大,15 Hz和20 Hz的加速度采样频率无法完整地记录步态信息,本文选取50 Hz采样频率采集加速度数据。
基于人体行走特征,波峰检测算法流程如图4。
① 计算整体加速度。实际行走过程中传感器三轴与人体分量偏离,无法正确反映垂直向加速度变化,通过计算整体加速度a来降低传感器姿态的影响。
式中,xa、ya、za 为采集的三轴加速度值。
② 选取20个历元的滑动窗口中获得潜在峰值,利用加速度阈值[1.2g, 3g]进行初次判断,避免因身体抖动以及传感器自身误差等造成的数据波动。
③ 计算潜在波峰与前一波峰时间差,利用行走一步时间阈值范围[0.4 s, 1 s]进行二次判断,该条件排除起坐、转身、基本手势造成的加速较大情况。
④ 利用潜在波峰处前后邻域10个历元比较,进行三次判断去除伪波峰,若潜在峰值点为最大值则算法记一步,否则不做计步处理。
图4 波峰检测算法流程图Fig.4 Flowchart of peak detection algorithm
1.2 自相关分析算法
自相关分析算法利用人体连续运动产生的加速度序列之间的相似性来进行状态判断和计步[10-11]。该方法将人体状态分为空闲和行走状态。当行人处于空闲状态时产生的动作无规律,而处于行走状态时整体加速度值有明显的周期性变化,该算法就是利用当前计步周期和上一计步周期的加速度序列的自相关系数大小判断行人是否完成一步行走动作。判别过程如下:
① 计算当前一步周期内整体加速度序列标准差:式中:u是该周期内整体加速度序列{a1,a2,……,aN}的均值。基于行人空闲和行走状态加速度数据标准差的差异,获得标准差经验阈值0.5判断人的运动状态。
② 对非空闲状态加速度序列,计算当前周期与前一计步周期整体加速度自相关系数:
式中:μ(m,t)和σ(m,t)表示当前加速度序列{a(k),a(k+1),...,a(k+t-1)}的均值和标准差。当采样周期t接近行人的行走周期时,自相关系数x(m,t)的值接近1。然而不同行人或者同一行人在不同时刻的行走周期是不一样的,所以t是一个变量。t的动态确定使用加框算法来实现,将t选定一个范围区间tmin-tmax,通过公式(4)计算自相关系数ρ(m,t),当ρ(m,t)达到最大值时的t值即为该次行走的周期。
统计空闲状态和行走状态自相关系数差异,获取经验阈值0.7进行计步判断。自相关算法流程如图5。
图5 自相关分析算法流程图Fig.5 Flowchart of self-correlation analysis algorithm
1.3自适应波峰检测算法
1.3.1算法原理
在常规波峰检测算法中,通常利用固定时间窗口、固定阈值实现行人正常态的步数统计,当行人行走速度变化较大或非正常态如奔跑等情况,由于运动状态变化较大,会导致计步检测的精度下降[15-16]。从图6慢速和快速各行走的加速度变化可以看出,行走速度由小增大时,加速度幅值增大,波形由稀疏变密集,加速度的变化同时表现在加速度幅值和步频两个方面,因此,对差异较大的运动状态,步伐检测的阈值应有不同。本文基于不同运动状态的自适应阈值判断和自适应邻域窗口检测的思想改进常规波峰检测算法,提高了对运动状态的适应性。
图6 行走快慢与加速度变化Fig.6 Relation between walking speed and acceleration
1.3.2阈值设置
基于运动状态与参数的对应关系,考察正常态与非正常态采样数据差异。将行走与跑步两种状态下采集到的加速度数据对比可知,两种状态加速度幅值有很大差异(图7)。对行走和跑动两种状态下采集的1000步数据,统计每一步加速度幅值的分布情况,由图8统计结果可知:行人正常态加速度幅值分布在[1.2g, 2g]的比重达到99%;跑动状态下加速度幅值大于2g比重占99%以上,因此加速度幅值可作为阈值区分行人运动状态。另外根据人正常行走频率设置正常态步频时间阈值为[0.3 s, 0.8 s],而跑步频率不超过5 Hz,可设置非正常态步频时间阈值为[0.2 s, 0.5 s]。
图7 行走与跑动加速度差异Fig.7 Difference of walking and running acceleration
图8 最大加速度分布图Fig.8 Distribution of maximum acceleration
1.3.3 自适应波峰检测算法
自适应波峰检测算法根据静止、行走、跑动三种状态对应的加速度幅值与步频的差异,利用相应的阈值区间判别运动状态,进而根据运动状态确定相应的邻域窗口大小,进行邻域内比较,实现不同运动状态下的自适应计步,算法流程如图9。
① 计算整体加速度,利用20历元滑动窗口查找加速度潜在峰值,限制加速度阈值进行初次判断,将状态划分成空闲和运动两类,峰值小于1.2g为空闲状态,不进行计步;峰值在区间[1.2g, 2g],判断为行走;潜在峰值大于2g,判断为跑动,进行下一步判断。
② 计算潜在峰值与前一峰值时间差,利用不同的时间阈值进行二次判断。时间差满足时间阈值[0.3 s, 0.8 s]为正常态;满足时间阈值[0.2 s, 0.5 s]为非正常态;其他作为由人体起坐、转身、基本手势造成的加速度过大的情况,不做计步处理。
③ 根据运动状态改变邻域窗口大小,将潜在波峰与邻域历元比较进行三次判断,去除伪波峰。正常态的前后邻域设置为 10个历元,非正常态设置为5个历元,若潜在峰值为邻域内最大值则记一步,否则不做计步处理。
图9 自适应波峰检测算法流程图Fig.9 Flowchart of adaptive peak detection algorithm
2 试验与结果分析
2.1试验设计
为增强计步算法实用性,传感器姿态不固定,放置于人们日常生活中习惯的位置,如在手中使用、口袋、背包中等。实验使用HUAWEI P6-U06智能手机(图10 a)和美国MicroStrain公司生产的3DM-GX3(图10 b)高精度IMU硬件平台,采集正常态下6种传感器姿态,非正常态下5种传感器姿态的50 Hz三轴加速度数据进行计步处理。
图10 试验硬件设备Fig.10 Hardware equipment
试验中将手机和3DM-GX3硬件设备捆绑在一起以保证二者采集数据的环境相同。影响计步结果的两个因素为传感器姿态和行人运动状态,对这两种因素进行如下分类。图11展示传感器的姿态分为固定姿态和不固定姿态:固定姿态为传感器正面朝上平放在手掌中,记为A;不固定姿态有5种,包括传感器拿在手中使用,记为B;拿在手中随手臂摆动,记为C;放于口袋中,记为D;放于双肩包中,记为E;放于单肩包中,记为F。采集两种行人运动状态:正常态指变速行走,记为1;非正常态指跑步,记为2。针对以上设备姿态与运动状态的11种组合(表1所述),使用手机惯性传感器和3DM-GX3采集22组数据进行步数统计和算法分析。
图11 设备放置位置示意图Fig.11 Diagram of equipment locations
表1 试验传感器姿态与运动状态组合Tab.1 Combination of test sensor attitudes and motion states
2.2试验结果与分析
针对以上采集的22组数据,分别用三种检测算法计步,对手机传感器和3DM-GX3采集数据处理结果如表2和表3。由统计结果可知,三种算法利用整体加速度对正常态计步的准确率均较高(图12),其中波峰检测正确率精度达到97%以上,自相关算法和自适应波峰检测算法正确率均可达到99%以上,可满足一般计步要求。由此可见,利用整体加速度对正常态进行计步,传感器的姿态适应性较好。对于非正常态,波峰检测算法计步正确率为70%,自相关算法正确率仅达到50%,这两种算法使用行走状态的固定阈值条件,仅能检测行人正常态下行走步数,无法适应非正常态跑步时运动特征的变化,造成对非正常态的计步效果差。自适应波峰检测对正常态和非正常态的计步准确率均可达到99%以上,主要由于该算法对不同运动状态使用不同的阈值条件判断和邻域。由图12的计步统计正确率结果可知,自适应波峰检测算法能够同时较好适应传感器姿态和运动状态变化,实现高准确率计步,证明了算法的有效性。
在研究算法计步准确率的基础上,考察三种算法时间效率。三种算法在Win7操作系统,CPU为2.27 GHz,内存2 GB的环境下应用Matlab运行,对同一
组5000历元数据统计用时。由图13的算法效率统计结果显示,自适应波峰检测与波峰检测用时分别为0.036 s和0.046 s,时间效率较高,自相关算法效率较低于前两种算法,用时0.131 s。这是由于自适应波峰检测算法和波峰检测算法只有加减和比较大小的运算,在计算机上并不耗时,而自相关算法在每一步计算时都含有大量的乘除运算相当耗时。综上表明,自适应波峰检测算法在计步正确率方面和时间效率上均是最优算法。
表2 手机惯性传感器50 Hz数据计步结果Tab.2 Step counting results of smartphone 50 Hz inertial data
表3 3DM-GX3 50 Hz数据算法处理结果Tab.3 Step counting results of 3DM-GX3 50 Hz inertial data
图12 三种算法对不同运动状态计步正确率Fig.12 Step counting accuracies of the three algorithms for different motion states
图13 三种算法运算时间效率比较Fig.13 Computation-time efficiencies of the three algorithms
3 结 论
针对常规波峰检测算法对传感器姿态和运动状态适应性差的问题,提出了一种自适应波峰检测算法对每一步产生的最大加速度进行阈值判断,实现运动状态的分类。根据正常态与非正常态对应的参数设置阈值,改变邻域窗口,实现不同运动状态的自适应判断和准确计步。算法对传感器姿态和行人运动状态的适应性很好,实现多种传感器姿态下正常态和非正常态计步准确率均达到99%以上,弥补了常规波峰检测和自相关算法无法进行非正常态计步的不足。该计步算法满足人们日常所习惯的传感器随意放置的要求,实现传感器放置随意情况下的精确计步,便于计步器的推广使用。在行人航位推算的室内定位技术中,自适应波峰检测算法的高准确率计步技术为实现传感器不固定姿态下的高精度室内定位及推广应用奠定了基础。
(References):
[1] Chen Wei, Chen Rui-zhi, Chen Xiang , et al. Comparison of EMG-based speed estimation methods in pedestrian dead reckoning[J]. The Journal of Navigation, 2011, 64(3): 265-280.
[2] Leh L. ZigBee-based intelligent indoor positioning system soft computing[J]. Soft Computing, 2014, 18(3): 443-456.
[3] Subramanian S P, Sommer J, Zeh F P, et al. PBIL-PDR for scalable bluetooth indoor localization[C]//The Third International Conference on Next Generation Mobile Applications, Services and Technologies. IEEE, 2009: 170-175.
[4] Massimo F, Francesco P, Aniello C. Hybrid indoor and outdoor location services for new generation mobile terminals[J]. Personal and Ubiqutous Computing, 2014, 18(2): 271-285.
[5] Jimenez A R, Seco F, Prieto C, et al. A comparison of pedestrian dead-reckoning algorithms using a low-cost MEMS IMU[C]//IEEE International Symposium on Intelligent Signal Processing. 2009: 37-42.
[6] Jin Y, Toh H S, Soh W S, et al. A robust dead-reckoning pedestrian tracking system with low cost sensors[C] //2011 IEEE International Conference on Pervasive Computing and Communications. 2011: 222-230.
[7] Kim J W, Jang H J, Hwang D H, et al. A step, stride and heading determination for the pedestrian navigation system[J]. Journal of Global Positioning Systems, 2004, 3(1-2): 273-279.
[8] Lee S, Kim B, Kim H, et al. Inertial sensor-based indoor pedestrian localization with minimum 802.15.4a configuration[J]. IEEE Transactions on Industrial Informatics, 2011, 7(3): 455-466.
[9] 谢如花. 步数检测方法及在手腕式计步器中的应用研究[D]. 兰州交通大学, 2013.
Xie Ru-hua. A step detection method and the research of its application on the wrist-type pedometer[D]. Lanzhou Jiaotong University, 2013.
[10] Rai A, Chintalapudi K K, Padmanabhan V N, et al. Zee: zero-effort crowdsourcing for indoor localization[C]// Proceedings of the 18th Annual International Conference on Mobile Computing and Networking. 2012: 293-304.
[11] 陈国良, 张言哲, 杨洲. 一种基于手机传感器自相关分析的计步器实现方法[J]. 中国惯性技术学报, 2014, 22(6): 794-798.
Chen Guo-liang, Zhang Yan-zhe, Yang Zhou. A realization method of pedometer with auto-correlation analysis based on mobile phone sensor[J]. Journal of Chinese Inertial Technology, 2014, 22(6): 794-798.
[12] 汪云甲, 张俪文, 曹新运. 基于盲源分离的脊柱波提取方法[J]. 中国惯性技术学报, 2014, 22(4): 426-431.
Wang Yun-jia, Zhang Li-wen, Cao Xin-yun. Extraction of spine wave from walking acceleration using blind source separation[J]. Journal of Chinese Inertial Technology, 2014, 22(4): 426-431.
[13] Wang J S, Lin C W, Yang Y T C, et al. Walking pattern classification and walking distance estimation algorithms using gait phase information[J]. IEEE Transactions on Biomedical Engineering, 2012, 59(10): 2884-2892.
[14] Lan KunChan, Shih WenYuah. Using smart-phones and floor plans for indoor location tracking[J]. IEEE Transactions on Human-Machine Systems, 2014, 44(2): 211-221.
[15] Liu Jing-bin, Chen Rui-zhi, Pei Ling, Guinness R, Kuusniemi H. A hybrid smartphone indoor positioning solution for mobile LBS[J]. Sensors, 2012, 12(12): 17208-17233.
[16] 李若涵, 张金艺, 徐德政, 等. 运动分类步频调节的微机电惯性测量单元室内行人航迹推算[J]. 上海大学学报(自然科学版), 2014, 20(5): 612-623.
Li Ruo-han, Zhang Jin-yi, Xu De-zheng, et al. Microelectro-mechanical system-inertial measurement unit indoor pedestrian dead reckoning based on motion classification and step frequency adjustment[J]. Journal of Shanghai University(Natural Science), 2014, 20(5): 612-623.
Pedometer method based on adaptive peak detection algorithm
CHEN Guo-liang, LI Fei, ZHANG Yan-zhe
(School of Environment Science and Spatial Informatics, China University of Mining and Technology, Xuzhou 221116, China)
In view that conventional peak detection algorithm and self-correlation analysis algorithm have poor adaptability to sensor attitudes and motion states of MEMS measurement system pedometer using single axis data and fixed threshold, an adaptive peak detection algorithm is proposed. According to inherent correlation of maximum acceleration and motion states, the algorithm gets peak detection experience thresholds of different motion states, and realizes adaptive step counting. Experiments show that the adaptive peak detection step counting accuracy reaches above 99% for both different sensor attitudes and pedestrians motion states. In contrast, the accuracies of conventional peak detection and self-correlation analysis algorithms reach 97% and 99% under normal state, but only 70% and 50% under abnormal state. The results show that the adaptive peak detection algorithm has strong adaptability to sensor attitudes and motion states, and achieves reliable step counting under various conditions of sensor attitudes and motion states. In addition, the time calculation efficiencies of the adaptive, conventional peak detection and self-correlation analysis algorithms are 0.036 s, 0.046 s and 0.131 s, respectively, which prove that the adaptive peak detection algorithm is significantly superior to the other two algorithms.
MEMS; adaptive peak detection; conventional peak detection; self-correlation analysis
TH72
A
1005-6734(2015)03-0315-07
10.13695/j.cnki.12-1222/o3.2015.03.007
2015-02-13;
2015-05-28
国家自然科学基金面上项目资助(41371423);国家高技术研究发展863 计划资助(2013AA12A201);校青年创新团队资助(2014QN004)
陈国良(1977—),男,博士,副教授,从事室内外无缝定位技术研究。E-mail:chglcumt@163.com