?

一種波峰波谷檢測的智能手機計步算法

2020-10-17 02:11畢京學汪云甲曹鴻基齊紅霞姚國標寧一鵬
中國慣性技術學報 2020年3期
關鍵詞:波谷波峰步數

畢京學,汪云甲,曹鴻基,齊紅霞,姚國標,寧一鵬

(1.山東建筑大學 測繪地理信息學院,濟南 250101;2.中國礦業大學 環境與測繪學院,徐州 221116)

室內定位與導航作為位置服務領域的研究熱點,受到了公司和機構的大量關注。受室內環境動態多變、結構復雜和成本等因素的影響,單一的室內定位技術難以滿足普適、高精度、連續、無縫的定位需求,融合慣性導航的多源混合定位技術成為必然[1-2],其中,基于智能手機的行人航位推算技術(Pedestrian Dead Reckoning,PDR)是一種低成本、持續性好、廣泛應用的室內定位手段[3]。PDR 由步態探測、步長估計和航向估計組成。步態探測通常依據傳感器信息的周期性變化識別步數,識別到一步則利用估計的步長和航向推算當前位置,步態探測算法的準確性決定了PDR的優劣,因此,如何利用行人運動特征和傳感器信息精確地識別步數成為PDR 的關鍵。

計步算法主要包括自相關分析法[4-5]、有限狀態機法[6-7]、零速檢測法[8-9]、譜分析法[10-11]以及波峰檢測法[3,12]等。自相關分析法以相關性分析為基礎,通過計算兩個周期內加速度序列的相關系數以及預設閾值判定有效步數,計步準確率為98%以上[4],易受干擾動作的影響。有限狀態機法將步行過程分為多種狀態,通過設定多個閾值實現狀態識別與轉移實現計步,準確率約為98.8%[7]。零速檢測法包含零速修正法和零角速度修正法以及兩種方法的組合,通過探測滑動窗口內速度或角速度零值區間識別計步,由于需準確感知零值區間,零速檢測法多用于較高精度慣性測量單元(Inertial Measurement Units,IMU),且需要初始對準。譜分析法需將加速度或角速度時域信息轉換至頻域,根據頻域特征完成計步,準確率約為87%[8]和94%[9]。波峰檢測法通常利用加速度信號與閾值的關系識別步數,由于算法復雜度低,實現簡單,研究成果較多。文獻[12-13]分別通過設定不同加速度閾值實現多種運動方式下的精確計步,準確率都在98%以上。文獻[14]利用固定時間內加速度和角速度均值自適應設定多個閾值,當多個閾值條件都滿足時步數加1,準確率約為98%?,F有計步方法對于單一步行活動以及多運動方式尚不能完全準確計步,無法滿足更高精度室內定位需求,而且多數方法需設定多個閾值,勢必會降低計步方法的準確性和適用性。

針對上述問題,提出了一種移動平均法濾波處理合加速度模值,通過設定波峰和波谷識別條件以及滑動窗口實現計步的波峰波谷檢測手機計步算法,在減少閾值個數的同時保證算法準確性和適用性。

1 數據預處理

智能手機內置的IMU 為消費級產品,精度低、噪聲多、穩定性差,長時間運行會產生累積誤差??紤]到傳感器精度和信號穩定性,采用50 Hz 頻率獲取三軸加速度,并用fs表示。如圖1所示為左手/右手打電話時三軸加速度和合加速度模值的變化情況,紅、綠、藍線表示三軸加速度,黑線表示合加速度模值,當分別使用左手和右手打電話時,三軸加速度均有一定程度變化,其中,x軸加速度變化最大,而合加速度模值變化較小。因此,為了減小智能手機在相同活動不同擺放位置或方向下輸出三軸加速度對計步算法的影響,采用合加速度模值,計算如式(1)所示,A表示合加速度模值,ax、ay和az表示三軸向加速度。

圖1 左/右手打電話時加速度變化情況Fig.1 Change in acceleration when making a left/right call

為了減小傳感器噪聲對計步算法的影響,考慮到智能手機電量和數據處理能力等方面不足,采用窗口大小為5 的移動平均法對合加速度模值進行濾波處理,如式(2)所示,其中,Ai和Aif分別表示濾波前后的第i個合加速度模值。計算當前時刻的合加速度模值使用了后續兩個合加速度模值,使用移動平均法進行濾波處理具有0.04 s 的時間延遲。

2 波峰波谷檢測計步算法

圖2 濾波后的合加速度模值變化情況Fig.2 The change of the acceleration modulus after filtering

移動平均法濾波后的合加速度模值變化情況如圖2所示,一步周期為邁出一步時合加速度模值從重力加速度大小開始變化至恢復到重力加速度大小的時間,也可以表示兩個相鄰波峰或波谷之間的時間,紅色虛線方框和藍色虛線橢圓分別標識了不同周期內出現的多個波峰和多個波谷。對于常用的波峰或波谷檢測計步算法而言,一步周期內出現多個波峰或多個波谷會干擾步數檢測,這些干擾檢測的波峰和波谷稱為偽波峰和偽波谷。為了消除偽波峰和偽波谷對計步的影響,文獻[15]采用巴特沃斯濾波對濾波后的合加速度模值進行再次濾波,雖然效果顯著,但波形變化較大,不利于后續行人航位推算。

波峰波谷檢測計步算法以濾波后合加速度模值的周期性變化為依據,基于前后兩個相鄰時刻濾波后合加速度模值識別波峰和波谷,利用識別的首個波峰和波谷以及滑動窗口法完成后續波峰和波谷檢測,并通過最小值函數實現步數統計,其原理如圖3所示。

圖3 波峰波谷檢測計步算法流程圖Fig.3 The flow diagram of step counting algorithm with peak-valley detection

1)波峰/波谷檢測條件

如式(3)所示,當且僅當k時刻的濾波后合加速度模值Akf分別大于k-1 時刻和k+1 時刻的濾波后合加速度模值和時,判定為波峰,波峰次數N+1;當且僅當k時刻的濾波后合加速度模值分別小于k-1 時刻和k+1 時刻的濾波后合加速度模值和時,判定為波谷,波谷次數M+1。

2)首次波峰/波谷檢測條件

起始階段,利用式(4)統計濾波后合加速度模值變大次數tin以及減小次數tde,若,則tin+1;若,則tde+1。

若tin≥5,且tde<3,同時滿足為波峰,則判定為首次波峰,波峰次數N+1,tin和tde重置為0;若tde≥5,且tin<3,同時滿足為波谷,則判定為首次波谷,波谷次數M+1。

3)滑動窗口

對于波峰檢測,假設識別的波峰索引為i,則后續w個濾波后合加速度模值(索引為從i+ 1至i+w)不作處理,其中,w為滑動窗口的大小,對應的是濾波后合加速度模值個數;同理,對于波谷檢測,假設識別的波谷索引為j,則索引為從j+ 1至j+w的濾波后合加速度模值不作處理。算法從索引為i+w+ 1和j+w+ 1的濾波后合加速度模值開始分別進行波峰與波谷檢測,忽略從i+ 1至i+w的濾波后合加速度模值中的峰值以及從j+ 1至j+w的谷值。

4)最小值處理

識別波峰后,波峰次數N+1;識別波谷后,波谷次數M+1。只有一步周期內波峰和波谷都識別后,才能計步,因此,取波峰次數和波谷次數的最小值作為輸出步數,如式(5)所示。

從計步開始到檢測到首次波峰,需對濾波后的合加速度模值進行逐個遍歷;當檢測到首次波峰后,滑動窗口忽略首次波峰后的w個濾波合加速度模值,然后逐個遍歷后續濾波后的合加速度模值試圖找到后續非首次波峰,即判斷索引為i+Sw+ 1的濾波合加速度模值是否大于和,若非波峰,則繼續判斷是否大于前后2 個相鄰時刻的濾波合加速度模值和,直至檢測到另一個非首次波峰,然后再滑動窗口重復上述過程。同理,波谷檢測也是如此。

提出的波峰波谷檢測計步算法僅利用前后兩個相鄰合加速度模值的大小關系識別波峰和波谷,沒有使用合加速度模值經驗閾值,唯一的參數為滑動窗口大小w。w取值是否合理在一定程度上影響計步算法的準確性,若w設置過大,則無法及時識別一步,且容易忽略部分步數;若w設置過小,將會增加算法的時間復雜度且識別到更多步數,過大或過小的w都將影響計步準確性。

3 實驗與分析

圖4 試驗場及實驗路線Fig.4 The testing ground and test route

圖4為中國礦業大學室內定位試驗場示意圖,實驗路線為4 段走廊,總長約211 m,由2 名實驗人員沿實驗路線分別平端智能手機步行2 次完成數據采集。實驗人員為男女各1 名,身高分別為1.77 m 和1.58 m。智能手機型號為小米6,三軸加速度的采樣頻率為50 Hz。采集過程連續,在走廊拐彎處無停留。同時,男性實驗人員以正常步速分別按照發短信、打電話、和擺臂活動以及智能手機在褲子口袋各采集20步數據,實驗過程中,智能手機與動作同步。行走的真實步數由實驗人員統計得到。

3.1 濾波處理實驗及分析

選取7 步周期共計193 個合加速度模值進行濾波處理,結果如圖5所示,黑線表示原始合加速度模值,綠線、藍線和紅線分別表示采用移動平均法、移動平均法加卡爾曼濾波[15]和巴特沃斯濾波加移動平均法[16]濾波后的合加速度模值。黑線所示的原始合加速度模值在同一步態周期內存在多個波峰或波谷,三種濾波方法都可以消除黑線中多余的波峰或波谷。從平滑效果來看,巴特沃斯濾波加移動平均法的平滑效果最優,移動平均法次之,移動平均法加卡爾曼濾波仍含有偽波峰,效果較差。巴特沃斯濾波可通過設定通帶和阻帶頻率更好地濾除噪聲,因而具有最佳平滑效果。

圖5 濾波效果Fig.5 Filtering effect

從波形變化方面來看,采用卡爾曼濾波和巴特沃斯濾波后的合加速度模值波形都存在較大變形和偏移??柭鼮V波后的合加速度模值波形變化較大,波峰位置發生較大右偏移;由于起始階段數據量不足,巴特沃斯濾波后的合加速度模值波形在起始階段由0不斷增大,波形變化程度小于卡爾曼濾波,波峰位置右偏移大于卡爾曼濾波;移動平均法的波形變化最小,波峰位置與濾波前基本一致。波峰位置右偏移表示波峰檢測存在時間延遲,雖然不影響計步精度,但是一步周期會發生變化。

如表1所示為三種濾波方法處理193 個合加速度模值消耗時間統計,在仿真平臺相同的情況下,移動平均法消耗時間為2.55×10-4s,而移動平均法加卡爾曼濾波以及巴特沃斯濾波加移動平均法的消耗時間分別約為移動平均法的3.1 倍和29.2 倍。仿真平臺為Matlab R2016a 64 位,處理器型號為i7-9700 k,主頻為3.6 GHz。盡管智能手機的數據處理能力有較大提升,但是相較于計算機還有較大差距,在進行濾波處理時智能手機消耗時間可能更長。

表1 三種濾波方法的消耗時間統計Tab.1 Consumption time statistics of three filtering methods

綜合考慮平滑效果、波形變化、消耗時間以及智能手機數據處理能力和電量水平,進行濾波處理時不建議采用多級濾波的方式,而是簡單且效果較好的移動平均法濾除合加速度模值中的偽波峰和偽波谷。

3.2 步數檢測實驗及分析

3.2.1 平端智能手機步行實驗

如表2所示為基于2 名實驗人員的4 次實驗數據分別采用自相關分析法[4]、加速度差分有限狀態機法[7](AD-FSM)、固定閾值波峰檢測法、傳統波峰檢測法和本文提出的算法識別步數統計。從表中可以看出:

1)由于傳統波峰檢測法將識別到的所有波峰都用于步數統計,而采用移動平均法濾波處理后的合加速度模值存在很多偽波峰,識別的步數大于實際步數,計步精度不高,平均計步準確率為61.85%;

2)當閾值設為12 m/s2時,固定閾值波峰檢測法具有最高精度,平均計步準確率為99.16%,當閾值設為較大值時,識別步數小于實際步數,當閾值設為較小值時,識別步數大于實際步數;

3)AD-FSM 法的平均計步準確率為98.99%,平均錯誤識別步數為3 步,該方法借助加速度差分和多個次數閾值實現計步,當一步周期內濾波后合加速度模值含有較多偽波峰時容易導致步數錯誤估計;

4)自相關分析法的平均計步準確率為98.57%,平均錯誤識別步數為4~5 步,該方法通過相鄰2 個周期的相關性及相關系數閾值識別步數,當第2 個周期內步速、步行方式或方向發生變化時會出現不滿足閾值條件的情形,導致步數錯誤估計,譬如:實驗過程中的拐彎;

5)本文所提出的算法在2 名實驗室人員不同步速下的計步準確率都為100%,相比于常用算法提高了1.01%~38.15%。

表2 多種計步算法識別步數統計Tab.2 Step detection statistics of several step counting algorithms

如圖6所示為采用本文提出的計步算法開展第1次和第4 次步數檢測實驗計步準確率隨著窗口大小w的變化情況,藍色星形線表示第1 次實驗,黑色十字線表示第4 次實驗,兩次實驗的計步準確率都隨著w的增大而由小變大然后變小,充分說明了w對計步準確性的影響,w過大或過小都將產生步數錯誤估計。第1 次實驗中w取值為13~20 時計步準確率為100%,而第4 次實驗中w取值為16~21 時計步準確率為100%,由此可知,當窗口大小w取值為16~20 時可保證2 名實驗人員100%計步準確。但是,為了讓所提計步算法更具普適性,建議將窗口大小w設為16。

圖6 計步準確率與窗口大小的關系Fig.6 The relationship between step counting accuracy rate and window size

圖7為利用所提出的算法識別波峰和波谷的情況,數據為第1 次實驗濾波后的合加速度模值并用藍色實線表示,紅色星形表示波峰,黑色圓圈表示波谷,從圖中可以看出,所提出的算法可以準確識別波峰和波谷位置,換言之,該算法能夠準確識別步數。

圖7 識別的波峰和波谷Fig.7 The detected peaks and valleys

如表3所示為多種計步算法基于第1 次實驗濾波后合加速度模值的消耗時間統計,仿真平臺和處理器與3.1 節相同。從表中可以看出,AD-FSM 法消耗時間最短,傳統波峰檢測法消耗時間次之,固定閾值波峰檢測法和本文所提出算法的消耗時間較短且非常接近,自相關分析法消耗時間最長,約為本文所提出算法的11.4 倍。由于自相關分析法[4]可以在手機上運行,本文提出的波峰波谷檢測計步算法能夠在現有智能手機上流暢運行。

表3 多種計步算法消耗時間Tab.3 Consumption time of several step counting algorithms

3.2.2 多種活動步行實驗

如圖8所示,發信息、打電話、擺動、在褲子口袋中加速度變化趨勢各不相同,擺動和口袋時的合加速度模值波動頻繁且數值較大,傳統波峰檢測法和固定閾值波峰檢測法精度相對較低,因而,選擇AD-FSM和自相關分析法與本文所提出算法進行比較。

圖8 多活動下的加速度變化情況Fig.8 Acceleration modulus changes under several activities

表4為多種活動下各計步算法識別步數統計。發信息和打電話時,各計步算法都有較高精度,AD-FSM、自相關分析和所提出算法的錯誤識別步數分別為1、2 和0 步,提出算法的準確率為100%,自相關分析法的準確率最低,為95%;擺臂時,所提出算法錯誤識別步數為0 步,準確率為100%,AD-FSM的錯誤識別步數高達9 步,準確率僅為55%,準確率遠低于自相關分析和提出算法;智能手機放在褲子口袋時,AD-FSM、自相關分析和提出算法的錯誤識別步數分別為5、2 和1 步,所提出算法的準確率為95%,AD-FSM 的準確率最低,為75%;在多種活動下,AD-FSM、自相關分析和所提出算法的總體錯誤步數分別為16、8 和1 步,對應的準確率分別為80%、90%和98.75%??傮w而言,在多種活動下,相比于AD-FSM和自相關分析法,提出算法的準確率提高了8.75%~18.75%。

表4 多活動下各計步算法識別步數Tab.4 Step detection statistics of several step counting algorithms under several activities

4 結 論

本文提出了一種適用于智能手機的波峰波谷檢測計步算法,實驗結果表明該算法對于平端活動下不同行人和不同步速可以實現100% 準確計步,對于多種活動正常步行可以實現98.75%準確計步,具體結論如下:

1)針對智能手機采用何種濾波方法處理加速度的問題,從平滑效果、波形變化和消耗時間方面對比分析了三種濾波方法,考慮到智能手機數據處理能力和電量水平,應當選擇簡單且效果較好的濾波方法,如移動平均法,而非多級濾波或高級濾波的方式。

2)針對現有計步算法對于不同行人、步速和活動存在步數錯誤估計的問題,提出了利用波峰檢測、波谷檢測和滑動窗口法的計步算法,由2 名實驗人員在211 米走廊內平端智能手機開展步行實驗的計步準確率都為100%,與常用計步算法相比,精度至少提高了1.01%;對于多種活動步行而言,所提出算法的計步準確率為98.75%,與常用計步算法相比,精度至少提高了8.75%。

3)在相同仿真條件下,所提出算法的消耗時間僅為自相關分析法的8.7%,能夠在智能手機上流暢運行。

在后續研究中,將增加測試人員、測試場景和實驗路線,融合多源傳感器數據,結合機器學習算法,研究面向智能手機的多活動高精度計步算法以及行人航位推算方法。

猜你喜歡
波谷波峰步數
炮制工程騙錢的“甲方”
板厚與波高對波紋鋼管涵受力性能影響分析
楚國的探索之旅
梅緣稻
波峰焊接技術現狀及綠色化設計方向
中國、英國、美國、日本規范關于直墻波谷力計算方法的對比
作用于直立堤墻與樁柱的波峰高度分析計算
中空玻璃膠接結構界面脫粘缺陷的超聲與X射線檢測研究
微信運動步數識人指南
國人運動偏愛健走
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合