陳國良,李 飛,張言哲
一種基于自適應波峰檢測的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所示。
圖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.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
針對常規波峰檢測算法對傳感器姿態和運動狀態適應性差的問題,提出了一種自適應波峰檢測算法對每一步產生的最大加速度進行閾值判斷,實現運動狀態的分類。根據正常態與非正常態對應的參數設置閾值,改變鄰域窗口,實現不同運動狀態的自適應判斷和準確計步。算法對傳感器姿態和行人運動狀態的適應性很好,實現多種傳感器姿態下正常態和非正常態計步準確率均達到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