李 鋼,鄭鑫博,陽召成
深圳大學信息工程學院,廣東深圳 518060
計步器可以幫助人們記錄步數(shù),在有效治療和預防肥胖及肥胖引發(fā)的并發(fā)癥方面發(fā)揮積極的作用[1-4]. 計步算法是實現(xiàn)計步的核心關鍵.當前計步算法均是針對加速度傳感器展開的.文獻[5]通過設置動態(tài)谷值閾值,滿足閾值的波谷記為1步,并引入閾值校正因子和延時機制,提高算法準確性,但該算法對于低步頻計步,準確性較低,僅為87.43%.文獻[6]提出加速度差分有限狀態(tài)機算法,使用加速度差分作為特征量,將有限狀態(tài)機設置為3個狀態(tài),表示1個單步過程,完成3個狀態(tài)后,計步結果加1.該算法可有效排除干擾,但狀態(tài)機閾值無法自適應分配,導致不同運動類型計步準確率有明顯差異.文獻[7]介紹了自相關分析法,利用人物連續(xù)運動產(chǎn)生加速度序列之間的相似性進行計步,通過對標準差和自相關系數(shù)設置經(jīng)驗閾值,判斷空閑和行走兩種狀態(tài),對行走狀態(tài)計步準確率達99%,但當人變速運動時,每步周期發(fā)生變化,算法的性能明顯下降.文獻[8]將動態(tài)峰谷值之差與固定閾值比較,但由于人的運動狀態(tài)不同,步幅差別很大,所以該算法對不同運動狀態(tài)沒有普適性.文獻[9]提出一種基于加分減分策略的計步算法,在固定時間窗內(nèi),通過比較相鄰兩個采樣點幅值的大小關系統(tǒng)計分數(shù),分數(shù)達到一定要求,則計為1步.但當人物步頻變化時,采用固定時間窗往往不能精確計步[10].
針對現(xiàn)有算法對不同運動狀態(tài)適應性差的問題,本研究提出多級自適應門限計步算法.該算法先對人物運動狀態(tài)進行判別,再對不同運動狀態(tài)分配相應的時間差閾值和動態(tài)峰谷值差值閾值.考慮置于不同部位傳感器所采集的加速度信號幅值不同,但體現(xiàn)的步頻特征卻一致,所提算法選取步頻特征作為判斷運動狀態(tài)的特征量.此外,動態(tài)峰谷值差值閾值是根據(jù)前一段時間的運動特征自適應得到的.基于以上3點,本算法可有效適應不同運動狀態(tài)和傳感器不同姿態(tài)的高精度計步.
建立合適的人體坐標系如圖1,加速度信號由前向軸、垂直軸和側向軸3個方向的加速度合成.當人正常行走時,由于蹬地,一只腳抬起至最高處,此過程中垂向加速度增大至最大值;當腳落回地面過程中,垂向加速度減少至最小值.在此單腳抬起落回過程中,垂向加速度做近似正弦波的周期性變化[11].
圖1 人體行走分量示意圖[12]Fig.1 Human walking components[12]
傳統(tǒng)峰谷值檢測法利用人體行走過程中,加速度的峰值點和谷值點進行計步.該算法選取三軸加速度數(shù)據(jù)中變化最明顯的一軸為有效軸,將出現(xiàn)的相鄰2個波峰或2個波谷記為1步.由于僅選取一軸加速度數(shù)據(jù),計步結果易受傳感器的擺放位置影響,且不能排除手腕抖動或轉身等干擾造成的偽波峰波谷的影響.
由于僅選取三軸加速度中的一軸加速度數(shù)據(jù),易導致計步結果不穩(wěn)定.為解決這個問題,考慮選擇1-范數(shù),如式(1),或2-范數(shù),如式(2),進行三軸合一[13-15].
a=|ax|+|ay|+|az|
(1)
(2)
其中,a為加速度;ax、ay和az分別為x軸、y軸和z軸的加速度.本研究采用式(2)進行加速度合成.
為解決傳統(tǒng)峰谷值檢測法不能排除非行走因素(起立、坐下及身體轉動等)問題的干擾,本研究所提出的多級自適應門限計步算法,先后設置3級門限:波峰波谷檢測門限、步頻特征檢測門限和時間/幅值差門限.該算法的具體流程如圖2.其中,Ωωs、Ωωf和Ωωr分別為慢走、快走和跑步對應的步頻特征;ωs1、ωf1和ωr1分別為3種運動狀態(tài)對應的步頻下限;ωs2、ωf2和ωr2分別為其對應的步頻上限;Ωts、Ωtf、Ωtr分別為慢走、快走和跑步對應的時間差;ts1、tf1和tr1分別為3種運動狀態(tài)對應的時間差下限;ts2、tf2和tr2分別為其對應的時間差上限;Ωas、Ωaf、Ωar分別為慢走、快走和跑步對應的峰谷值差值;as1,af1和ar1分別為3種運動狀態(tài)對應的峰谷值差值下限;as2,af2和ar2分別為其對應的峰谷值差值上限.波峰波谷檢測門限可以確定波峰波谷的位置;步頻特征檢測門限通過計算步頻,判斷出人物的運動狀態(tài),如慢走、快走或跑步;時間/幅度差門限可以去除偽波峰波谷的干擾.通過以上3 級門限得到的峰值點和谷值點記為目標峰值點和目標谷值點,目標峰值點或目標谷值點的個數(shù)作為人物的運動步數(shù).
圖2 計步算法流程圖Fig.2 Flowchart of pedometer method
對三軸合一后的加速度數(shù)據(jù)進行平滑濾波等預處理操作,以去除高頻噪聲產(chǎn)生的毛刺[16-18].
設預處理后的三軸加速度數(shù)據(jù)為ax(k)、ay(k)和az(k), 合成后的加速度為a(k),tk=k×Δt(k為采樣點數(shù), Δt為采樣周期),通過滑窗的方式判斷峰谷值點.設滑動窗口大小為2N+1, 即在tk時刻左右兩邊各取N個點.當滑動窗內(nèi)加速度數(shù)據(jù)大小滿足
a(k-N+1)-a(k-N)>0 &…&
a(k)-a(k-1)>0 &
a(k)-a(k+1)>0 &…&
a(k+N-1)-a(k+N)>0
(3)
可認為t時刻的采樣點為滑動窗口內(nèi)的峰值點,同理,當滿足
a(k-N+1)-a(k-N)<0 &…&
a(k)-a(k-1)<0 &
a(k)-a(k+1)<0 &…&
a(k+N-1)-a(k+N)<0
(4)
可認為t時刻的采樣點為窗口內(nèi)的谷值點.預置的滑動窗口大小N的取值會影響判斷的準確性,如果窗口設置過大,由于存在干擾,會有很多峰谷值無法找到;如果窗口設置過小,就會把干擾引起的尖刺誤判為峰谷值,導致查找到的波峰和波谷遠多于實際存在.通過試驗數(shù)據(jù)分析,發(fā)現(xiàn)當采樣率為100 Hz,N取3或4時,計步準確率最高.
由峰谷檢測得到的波峰波谷中包含了轉身和手腕抖動等非運動因素造成的偽波峰波谷,所測得的波峰波谷個數(shù)可能大于實際步數(shù).需再次判斷相鄰波峰或波谷間的時間間隔和波峰波谷幅值差是否滿足正常步行規(guī)律.但對于慢走、快走和跑步等不同運動類型,往往相鄰波峰或相鄰波谷間的時間間隔及波峰波谷的幅值差等特性并不相同,因此,需準確判斷出運動狀態(tài),根據(jù)不同運動狀態(tài)自適應地設置相應的閾值.
文獻[12]提出的算法將加速度峰值與固定閾值比較,從而判斷出運動狀態(tài),峰值小于1.2g為空閑狀態(tài),不進行計步;峰值在[1.2g, 2.0g]內(nèi),判斷為行走;峰值大于2.0g, 判斷為跑動.圖3和圖4分別為一位男性慢走不擺臂(手機在手中使用)和擺臂(正常行走)時,手中的手機測得的加速度波形.
圖3 男性慢走不擺臂波形圖Fig. 3 Waveform of a man’s slow walk without hand-swing
圖4 男生慢走擺臂波形圖Fig. 4 Waveform of a man’s slow walk with hand-swing
由圖3和圖4可見,在實際行走時,擺臂和不擺臂兩種情況下,手中手機測得的加速度信號幅值差異較大,擺臂的峰值主要集中在1.50g~1.60g, 而不擺臂的峰值主要集中在1.05g~1.20g. 所以,峰值不是判斷運動狀態(tài)的最有效特征量.但在慢走時,無論擺臂還是不擺臂,每50個采樣點中均有2個波峰,即步頻特征非常穩(wěn)定,所以,步頻特性可作為區(qū)分運動狀態(tài)的有效特征量.
步頻可定義為單位時間內(nèi)的行走步數(shù).通常人體行走頻率為0.5~5.0 Hz[16],對應到步頻,即0.5~5.0步/s.本算法通過滑窗的方式統(tǒng)計峰谷值對的個數(shù)(滑窗大小記為Nd), 作為步頻特征.通過試驗發(fā)現(xiàn),Nd=200是判斷運動狀態(tài)的一個很好選擇.設M0=2Ndfs-1為基準步頻,其中,fs為三軸加速度傳感器的固有采樣頻率,一般fs≥50 Hz.例如,當fs= 50 Hz時,M0=8, 在時間Ndfs-1(4 s)內(nèi)有8個波峰和波谷,即步頻為1.將基準步頻乘以一定的比例系數(shù),可得到3類基準運動類型的步頻范圍,如表1,比例系數(shù)k的大小由大量試驗數(shù)據(jù)分析得到.若不屬于這些預置步頻范圍,則確定該人物的運動類型為靜止或干擾類型.
表1 基準運動狀態(tài)對應的步頻范圍
2.3.1 時間差門限
通過檢測相鄰2個峰值點或谷值點之間的時間間隔是否在預設門限范圍內(nèi),可排除部分偽波峰波谷.時間門限范圍可由采樣點個數(shù)來表示,比較相鄰峰值點和谷值點間的采樣點數(shù)與預設的相應門限范圍, 不滿足時間門限范圍的峰值點和谷值點將被舍去.慢走類型對應的時間差門限范圍為[0.3×fs/2, 2×fs/2]; 快走類型對應的時間門限范圍為[0.26×fs/2, 0.8×fs/2]; 跑步類型對應的時間門限范圍為[0.2×fs/2, 0.55×fs/2].fs/2表示當步頻為1時,相鄰波峰波點間的采樣點數(shù),前面的比例系數(shù)由具體試驗測得.
考慮到不同運動狀態(tài)間的過渡性,設置時間差閾值的公共區(qū)間以適應不同運動狀態(tài)變化的場景.如當人從跑步變?yōu)樾凶郀顟B(tài)時,運動狀態(tài)判斷沒有及時記錄此改變,依然分配的是跑步對應的時間差區(qū)間,但因為跑步和行走的時間差區(qū)間有公共區(qū)域,所以這些運動狀態(tài)變化時的步伐仍會被記錄.此外,當人處于兩種運動狀態(tài)之間的臨界狀態(tài)時,也不會發(fā)生漏計步的情況.
2.3.2 幅度差門限
人在行走時,因受手腕抖動影響,加速度波形的峰值有時可能變得較小,但這種情況卻是有效的一步,所以應當選取峰谷值之差作為特征量,判斷相鄰峰值和谷值之差是否滿足門限要求.其中,預置門限值為前n個目標峰值點和目標谷值點之差的最小值乘以比例系數(shù).該比例系數(shù)的取值范圍為[0.50,0.90],若該人在運動時手部抖動劇烈,則該比例系數(shù)的取值為0.50,若該人在運動時手部無抖動,則該比例系數(shù)的取值為0.90.實際試驗發(fā)現(xiàn),當慢走、快走和跑步分別對應0.50,0.60和0.75的比例系數(shù)時,計步最準確.由于波峰和波谷總是成對出現(xiàn),第k個波峰值和波谷值之差滿足
Ωas= 0.50×(min(Δak-1,Δak-2,…,Δak-n))
(5)
Ωaf= 0.60×(min(Δak-1,Δak-2,…,Δak-n))
(6)
Ωar= 0.75×(min(Δak-1,Δak-2,…,Δak-n))
(7)
其中, Δak-n表示第(k-n)個峰值和谷值之差.在初始狀態(tài)下,不執(zhí)行判斷相鄰的峰值點和谷值點的數(shù)值之差是否大于預置門限值的過程;若當前峰谷值窗口時刻之前的時間段內(nèi)包括了n個目標峰值點和n個目標谷值點,則執(zhí)行判斷條件.試驗發(fā)現(xiàn),當n=10時,計步結果最佳.
為驗證算法的有效性,測試人處于不同運動狀態(tài)時該算法的精度.由于男性和女性行走時,擺臂幅度等特性會存在一定差異,為驗證該算法適用于不同性別,本次試驗由4名被測試者(2男2女)來完成.測試4名被測試者慢走、快走、跑步和上下樓梯的計步準確率.為驗證算法的實用性,將傳感器放置在日常習慣位置,如單肩包、雙肩包、上衣或褲子口袋中,并模擬智能手機在手中使用和戴著智能手環(huán)走路的場景,測試傳感器不同姿態(tài)時,該算法的計步精度.
試驗采用stm32開發(fā)板(圖5)外接MPU6050 三軸加速度傳感器(圖6)完成三軸加速度數(shù)據(jù)的采集.試驗中, MPU6050傳感器固定在開發(fā)板背面,同時開發(fā)板連接電腦,由PC端的匿名4軸上位機實時接受傳感器采集到的加速度數(shù)據(jù).加速度傳感器采樣頻率設為100 Hz,每次試驗實際步數(shù)均為100步.
圖5 Stm32開發(fā)板Fig. 5 (Color online) Stm32 development board
圖6 MPU6050傳感器Fig. 6 (Color online) MPU6050 sensor
對于人物的不同運動狀態(tài),采集到20組數(shù)據(jù),運用多級自適應門限計步算法計步,結果如表2.以下測試中的實際步數(shù)均為100步.可見,本算法計步準確率最高為100%,最低為92.00%;跑步時的計步準確率平均為95.00%,上樓梯的計步準確率為97.75%,下樓梯的計步準確率為96.50%,快走的計步準確率為97.75%,慢走的計步準確率95.50%,各種運動狀態(tài)的平均計步準確率達到96.50%.
表2 不同運動狀態(tài)計步結果
對于傳感器的不同姿態(tài),分別采集到1名男性和1名女性被測試者的6組數(shù)據(jù),利用所提算法計步,結果如表3.分析表3試驗結果可得,本算法對于不同的傳感器姿態(tài),計步準確率均達到95.00%以上,平均準確率為98.17%.達到上述結果的原因在于:本算法一方面根據(jù)步頻特征來判斷不同運動狀態(tài),另一方面,動態(tài)峰谷值的差值閾值不是固定閾值,而是由前一段時間的運動特征自適應得到.所以該算法適用于智能穿戴設備和智能手機拿在手中,佩戴于手臂、腰部,或放置于雙肩包、單肩包和口袋等不同位置中.
表3 傳感器不同姿態(tài)的計步結果
以上兩個試驗的被測試者均是年齡處于18~30歲的青年人,為驗證該算法適用于不同年齡段的人群,對兩位年齡處于50~60歲的中年人進行測試.計步結果如表4,平均準確率為98.50%.
表4 中年測試者的計步結果
從上述試驗結果可以看出,所提計步算法對于人物的不同運動狀態(tài)和傳感器的不同姿態(tài),均有穩(wěn)定性好、計步準確率高的特點,且適用于不同性別和年齡段,證明該算法具有一定實用性和有效性.
如前面分析,本算法相比文獻[12]以峰值為特征量更有效.能夠適用于不同姿態(tài)放置的智能穿戴設備和智能手機.
文獻[19]提出一種波峰檢測法,該算法未對人物的運動狀態(tài)進行區(qū)分,而采用統(tǒng)一的時間窗口[0.2 s,2.0 s],不滿足該時間間隔的波峰將被舍去.若行走過程中有短暫靜止,靜止后第1個波峰與靜止前最后1個波峰之間的時間間隔已經(jīng)超過門限范圍,所以,靜止后第1個波峰被舍去;同理,靜止后第2個波峰也因時間間隔不滿足被舍去,導致靜止后的運動無法被計步.這種情況的計步結果如圖7(a)(帶圓圈的峰值點為有效計步點).
圖7 文獻[19]和本算法比較Fig. 7 Comparison of algorithms in reference[19] and this article
圖7方框中波形表示時長為1 s的靜止狀態(tài).本算法對偽波峰波谷后的第1對波峰波谷,不執(zhí)行時間差門限的判斷.對于相同情況,計步結果如圖7(b). 可見,本算法可有效解決此類問題.
因為對智能穿戴設備和智能手機,計算復雜度對能量消耗有較大影響,所以,考察本算法與文獻[11,19]中算法的時間效率.計算在Win10操作系統(tǒng),CPU為2.6 GHz,8 GB內(nèi)存的環(huán)境下,3個算法用Matlab 2016b運行相同的一組5 500歷元數(shù)據(jù)的運行時長.與文獻[11,19]中算法相比,本算法的門限級數(shù)增多,且峰谷值差值閾值是由計算得到的動態(tài)閾值,但由圖8的算法效率統(tǒng)計結果可以看出,運行時間(時間效率)為0.499 s,仍然較高.
圖8 算法時間效率比較Fig. 8 Comparison of computation-time efficiencies of the algorithms
本文對智能穿戴設備和智能手機中的計步功能進行研究,提出一種多級自適應門限計步算法,通過設置3級門限,根據(jù)人物的步頻特征準確判斷出慢走、快走或跑步3種狀態(tài),對于每種狀態(tài)設置相應的時間差閾值和動態(tài)峰谷值差值閾值,有效排除了偽波峰波谷的干擾.分析試驗結果表明,相比現(xiàn)有的計步算法,本算法對于人的不同運動狀態(tài)和傳感器的不同放置姿態(tài),都有更高的計步準確率.
/
[1] 崔 妍.肥胖癥及其相關并發(fā)癥的臨床研究以及肥胖癥患者不同糖代謝狀態(tài)下血清相關因子變化的研究[D].北京: 北京協(xié)和醫(yī)學院, 2013.
CUI Yan. Clinical study of obesity and its complications and the study of the change of related serum factors in obese patients with different glucose metabolism status[D]. Beijing: Peking Union Medical College, 2013.(in Chinese)
[2] 李世成,邵雄杰,甄達文, 等.運動對肥胖大鼠血清脂聯(lián)素、血脂及體脂水平的影響[J].中國運動醫(yī)學雜志, 2009, 28(1): 41-44.
LI Shicheng, SHAO Xiongjie, ZHEN Dawen, et al. Effects of exercise on serum adiponectin, blood lipids and body fat in obese rats[J]. Chinese Journal of Sports Medicine, 2009, 28(1): 41-44.(in Chinese)
[3] 胡 丹.對肥胖中年人個體運動處方的制定試驗研究[D].武漢:武漢體育學院, 2014: 52.
HU Dan. Case study of the development of the middle-aged obese individuals exercise prescription[D].Wuhan: Wuhan Institute of Physical and Education, 2014: 52.(in Chinese)
[4] SAI R P, BAPANAPALLE S, PRAVEEN K, et al.Pedometer and calorie calculator for fitness tracking using MEMS digital accelerometer[C]// International Conference on Invention Computer Technologies.Coimbatore, India: IEEE, 2016: 1-6.
[5] 梁久楨,朱向軍,陳 璟.基于手機加速度傳感器的高精低采樣計步算法設計[J].西北大學學報自然科學版,2015, 45(5):938-744.
LIANG Jiuzhen, ZHU Xiangjun, CHEN Jing. A high-accuracy and low-sampling-rate step counting algorithm design based on smartphone’s accelerometer[J]. Journal of Northwest University Natural Science Edition, 2015, 45(5):938-744.(in Chinese)
[6] 王革超,梁久楨,陳 璟, 等.加速度差分有限狀態(tài)機計步算法[J].計算機科學與探索,2016, 10(8): 1133-1142.
WANG Gechao, LIANG Jiuzhen, CHEN Jing, et al. Step counting algorithm based on finite state machine using acceleration differential[J]. Journal of Frontiers of Computer Science and Technology, 2016, 10(8): 1133-1142.(in Chinese)
[7] 陳國良,張言哲,楊 洲.一種基于手機傳感器自相關分析的計步器實現(xiàn)方法[J].中國慣性技術報,2014, 22(6): 794-798.
CHEN Guoliang, ZHANG Yanzhe, YANG Zhou. Realization of pedometer with auto-correlation analysis based on mobile phone sensor[J]. Journal of Chinese Inertial Technology, 2014, 22(6): 794-798.(in Chinese)
[8] CHIEN J C, HIRAKAWA K, SHIEH J S, et al.An effective algorithm for dynamic pedometer calculation[C]// International Conference on Intelligent Informatics and Biomedical Sciences.Okinawa, Japan: IEEE, 2015: 366-368.
[9] 王文杰,李 軍.基于手機加速度傳感器的計步算法設計[J].工業(yè)控制計算機,2016, 29(1): 75-79.
WANG Wenjie, LI Jun. Algorithm design of counting steps based on mobile acceleration sensor[J]. Industrial Control Computer, 2016, 29(1): 75-79.(in Chinese)
[10] TANG Zihao, GUO Yao, CHENG Xiangqun.Self-adaptive step counting on smartphones under unrestricted modes[C]// The 40th of Annual Computer Software and Application Conference.Atlanta, USA:IEEE, 2016: 788-797.
[11] 樓喜中, 陟 力, 方 ?。甅EMS傳感器的計步算法研究[J].中國計量大學學報,2017, 28(1): 81-86.
LOU Xizhong, ZHI Li, FANG Jun. Algorithm of MEMS sensor step counting[J]. Journal of China University of Metrology, 2017, 28(1): 81-86.(in Chiese)
[12] 陳國良,李 飛,張言哲.一種基于自適應波峰檢測的MEMS計步算法[J].中國慣性技術學報,2016, 23(3): 315-321.
CHEN Guoliang, LI Fei, ZHANG Yanzhe. Pedometer method based on adaptive peak detection algorithm[J]. Journal of Chinese Inertial Technology, 2016, 23(3): 315-321.(in Chinese)
[13] 謝如花. 步數(shù)檢測方法及在手腕式計步器中的應用研究[D]. 蘭州:蘭州交通大學, 2013.
XIE Ruhua. A step detection method and the research of its application on the wrist-type pedometer[D]. Lanzhou: Lanzhou Jiaotong University, 2013.(in Chinese)
[14] RYU U J, AHN K, KIM E, et al. Adaptive step detection algorithm for wireless smart step counter[C]// Procee-ding of International Conference on Information Science and Applications. Suwon, South Korea:IEEE, 2013:1-4.
[15] SUSI M, RENAUDIN V, LACHAPELLE G. Motion mode recognition and step detection algorithms for mobile phone users[J]. Sensors, 2013, 13(2): 1539-1562.
[16] 劉 程,陽 洪.自適應計步檢測算法研究[J].壓電與聲光,2015, 37(2): 258-261.
LIU Cheng, YANG Hong. Study on adaptive pedometer detection algorithm[J]. Piezoelectrics & Acoustooptics, 2015, 37(2): 258-261.(in Chinese)
[17] 黃 政,韓立新,肖 艷. 一種基于移動終端的新型計步方法[J]. 計算機學報,2017,40(8): 1856-1871.
HUANG Zheng, HAN Lixin, XIAO Yan. A new step detection approach based on mobile termination[J]. Chinese Journal of Computer, 2017, 40(8):1856-1871.(in Chinese)
[18] 趙 陽,婁小平,劉 鋒, 等. 自適應MEMS加速度計濾波算法[J]. 傳感器與微系統(tǒng),2017, 35(11): 120-127.
ZHAO Yang, LOU Xiaoping, LIU Feng, et al. Adaptive filtering algorithm of MEMS accelerometer[J]. Transducer and Microsystem Technologies, 2017, 35(11): 120-127.(in Chinese)
[19] 盧 文,陳慈發(fā).基于STM32和LIS3DSH的高精度計步器設計[J].單片機與嵌入式系統(tǒng)應用,2015(3): 70-73.
LU Wen, CHEN Cifa. High precision pedometer based on STM32 and LIS3DSH[J]. Microcontrollers & Embedded Systems, 2015(3): 70-73.(in Chinese)