吳建超,劉 昱
(天津大學微電子學院 天津 300072)
隨著微機電系統MEMS(Micro-Electro-Mechanical System)的迅速發展,組合了加速度計和陀螺儀的慣性傳感單元IMU(Inertial Measurement Unit)被學者建議固定在人體的不同位置來進行人員航位推算PDR(Pedestrian Dead Reckoning)[1]。其中的一種步長-航行系統SHSs(Step-and-Heading Systems)已經被學者廣泛用于對行人進行運動軌跡的追蹤。SHSs的主要基礎包括:識別單步數據子集、估計單步步長、估計單步航向或航向變化[2]。由于人員運動速度與步長呈正相關,且相關性十分顯著[3]。所以人員運動速度無疑是SHSs系統中的一個重要參數,識別運動單步的速度對于提高SHSs系統的精度有重要作用。
由于人員在行進過程中下肢會經歷一個周期性變化[4],所以許多利用IMU進行速度估計的方法建議將IMU固定在人員下肢,利用步態周期中的關鍵階段,例如腳掌著地、小腿豎直等來估計相應的行進速度[5]。當前利用固定在下肢的IMU進行速度估計的方法主要有兩類:①利用人體步態模型[6];②直接積分[7]。利用預先定義好的人體步態模型來估計速度是一種被廣泛采用的速度估計方法,這種方法根據固定在下肢的IMU獲得的慣性數據來確定下肢的運動學信息,結合人體步態模型間接的獲得步長。例如根據固定在下肢的IMU獲得一條腿的臀部前后擺動的周期,采用倒立擺模型估計速度[8],該方法的速度估計結果嚴重依賴于步態模型的設計,并未被學者廣泛采用。第2種直接積分的方法是首先利用固定在下肢的IMU獲得IMU坐標系的慣性數據,然后將IMU坐標系下的加速度轉換到地面坐標系下,最后通過直接積分地面坐標系下的加速度獲得估計速度[9]。該方法近年來也被廣泛用于室內定位與導航之中[10]。
基于腳部慣性傳感數據對人員運動時的速度進行估計主要采用的是直接積分的方法,采用該方法針對低速行走的行人可以獲得較高的速度估計準確性。當行人以0.6m/s至1.6m/s的速度慢速行走時,速度估計的最大均方誤差RMSE(Root Mean Square Error)為0.14m/s[5]。但當人員運動速度增加,處于快速行走以及跑步狀態下時,人體的步態模型會發生改變[11],腳掌著地的時間會隨著速度的增加而減小,加之消費級IMU自身存在的傳感誤差[12],繼續采用直接積分的方法估計人員運動速度會產生較大誤差。所以,當行人運動速度增加至快速行走后,運動速度的估計需要采用其他方法。
由于同一人員行走(Walking)、慢速跑步(Jogging)、快速跑步(Running)3種狀態的步長會產生顯著差異[13]。所以本文的主要研究范圍需要覆蓋快速行走、慢速跑步、快速跑步。針對這3種狀態進行速度區間細分,識別不同運動狀態下的單步運動速度。識別結果可用于進一步探究行人運動速度與步長之間的關系,并可用于進一步提高SHSs的精度。
本文提出了一種基于單步統計特征進行速度識別方法。此方法首先利用固定在腳部的IMU獲取人員在跑步機上以1.5 m/s~4 m/s的不同的速度運動的慣性傳感數據,其次采用峰值檢測的方法對采集到的大量慣性傳感數據進行單步數據單元劃分,然后從每個單步數據單元中提取指定的65維統計特征,最后采用機器學習分類算法對每種速度的特征進行學習,使用訓練獲得的模型識別不同的單步慣性傳感數據所對應的速度。
本文提出的識別方法整體流程如圖1所示。首先利用腳部IMU采集人員運動時IMU坐標系下的三軸加速度和三軸角速度數據。其次根據三軸加速度信息使用峰值檢測的方法對運動過程進行單步的劃分,定義每兩個峰值之間的數據為一個單步[14],獲得每一個單步的起始位置和終止位置。然后取出每一個單步起始位置和終止位置之間的三軸加速度和三軸角速度信息即為單步慣性數據。接著我們從每個單步慣性數據中提取選定的65維統計特征用來表征當前單步的速度,將65維統計特征輸入到利用大量單步統計特征-速度數據訓練好的識別模型之中即可以獲得速度識別結果。

圖1 基于腳部慣性傳感數據的人員運動速度 識別方法流程圖
關于識別模型的訓練方法,該方法要求制作一個足夠大的單步統計特征-速度數據集。即采集不同人員在不同速度下的慣性數據,利用加速度數據峰值檢測單步劃分之后,將從單步慣性數據中提取的65維統計特征與該單步對應的實際速度對應,利用該數據集訓練速度識別模型。采用最小二乘法(LS)分類器、支持向量機(SVM)分類器、k近鄰(KNN)分類器、線型貝葉斯正態分類器(LDC)4種常見機器學習分類算法對以上數據集進行訓練并驗證其識別準確性,尋找其中最佳的識別方法。
本文的數據采集選取Xsens公司的MTw組件作為獲取慣性數據的IMU。

圖2 IMU固定位置
如圖2所示,將IMU固定在右腳腳背上進行數據采集,并通過配套的軟件實時記錄獲取的慣性數據。固定時注意將IMU坐標系的x軸指向運動前方,y軸指向人員正右側,z軸指向地心。設定IMU的采樣頻率為100 Hz。獲取到的數據主要包括三軸加速度信息:
(1)
三軸角速度信息:
(2)
式中:k代表采樣點的樣本,k=1,2,3,…N。B代表IMU坐標系。

(3)
圖3展示的是行人在跑步機上以4 m/s的速度前進時第2 000個采樣點至第2 500個采樣點(第20 s到第25 s)之間的峰值檢測效果。每兩個星號之間定義為一個單步。從峰值檢測的結果中獲取每一步的起始位置和終止位置,返回慣性數據中取出每一步的三軸加速度數據和三軸角速度數據。不同速度下的單步慣性數據均按照上述方法獲得。

圖3 峰值檢測分步效果樣例
由于當人員以不同的速度前進時其步頻會發生變化,即使人員以相同的速度前進,其每一步的持續時間也會發生變化[16]。為了保證人員以不同的速度前進時能夠獲得相同維度的特征以表征其速度特性,該方法需要從每一單步中提取指定維度的統計特征。
特征選取的目標在于選擇最小數目的特征來獲取最佳的識別準確性。這就要求我們設計的特征提取模塊不要使用過多過于復雜的特征量,這樣才能夠盡量降低計算復雜度,同時減小內存、能量的消耗。本文選取的65維特征如表1所列。表1中的特征,均值、最大值、最小值表征數據的集中度趨勢,理論上來講,隨著行人運動速度的增加,加速度和角速度的單步均值、最大值、最小值會相應的增加;標準偏差、平均絕對偏差、四分位距表征數據的分散規律,也就是用來分析數據是相互接近還是分散,理論上來講,隨著行人運動速度的增加,其數據分散程度會增加;信號幅度區域、平方和(也稱之為能量)的特征類似于均值特征,隨著行人運動速度的增加,其數據的能量、信號幅度區域將會增加。總體來講,使用統計特征進行速度估計是因為它們的計算復雜度較低[15],對內存的需求不高,可以滿足我們對特征提取模塊的要求,同時提高速度估計的效率。

表1 速度識別的統計特征
注:①四分位距:用于確定信號中第三四分位數與第一四分位數的區別,具體定義如下:
IQR=Q3-Q1
(4)
②信息熵:將待求信息熵的單步信號均勻等分,求出每段出現的概率,利用信息熵的定義求出單步信號的信息熵。
③自回歸系數:采用4階Burg算法求出AR模型的各階系數。注意此特征僅對三軸加速度信號進行提取。
④相關系數:用于確定信號之間的線性線性相關程度,注意此特征僅對三軸加速度信號進行提取。具體定義如下:
(5)
隨著近些年來機器學習技術的發展,機器學習中的分類方法已經越來越多的被用于各種識別問題。常見的機器學習分類技術由兩部分組成:訓練階段和評估階段。訓練階段利用訓練集產生離線的分類模型,評估階段利用另外獨立的數據集進行性能評估。所以在進行分類識別之前,有必要將通過之前步驟制作的單步統計特征-速度數據集隨機劃分兩個相互獨立的數據集,按照機器學習中傳統的測試集-訓練集劃分方法,首先將其中80%劃分為訓練集,其余20%劃分為測試集。為了進一步的驗證識別方法的可靠性,進一步擴大測試集數量同時降低訓練集數量,將單步統計特征-速度數據集的70%劃分為訓練集,其余30%劃分為測試集進行識別性能驗證。
常見的有監督機器學習分類算法有KNN、SVM、決策樹、隨機森林、樸素貝葉斯等方法。針對相同的數據集,每種分類方法擁有不同的準確性性能。本文采用LS分類器、SVM分類器、KNN分類器、LDC4種常見分類算法進行對比驗證,對比各自分類器的識別準確性,從中尋找出識別率最高的分類算法用于基于腳步慣性傳感數據的人員運動速度識別。
該文章將通過一組實驗來獲得單步統計特征-速度數據集。12位志愿者(年齡23~28周歲,身高168cm~182cm)參加了此次數據集的制作。每位實驗者均按照圖2所示的固定位置將IMU固定在右腳腳背上進行實驗,然后依次按照表2所示的要求在跑步機上進行實驗。實驗過程中參與實驗人員均采用自己的鞋進行實驗,且每次實驗前IMU人為的固定在指定位置。
由于同一人員行走、慢速跑步、快速跑步3種狀態的步長會產生顯著差異,對應的單步步長分別為0.74m、1.01m、1.70m,相對于行走狀態,單步步長的改變程度分別為0%、36%、130%[13]。所以本文的主要研究范圍包括快速行走、慢速跑步、快速跑步。當運動速度增加至2m/s后,行人開始跑步狀態。我們將行人以1.5m/s和1.75m/s運動表征快速行走狀態,以2m/s~2.75m/s表征行人慢速跑步狀態,以3m/s~4m/s表征快速跑步狀態。
由于實驗人員的運動速度會逐漸加快,當運動速度大于3m/s后,每組之間安排休息時間,在休息時間內停止跑步機,使實驗者在跑步機上站立休息。每種速度下持續運動120s,截取第2min內的慣性數據作為該速度對應的有效慣性數據存儲。因為跑步機的加速需要一個過程,應當記錄的是實驗者運動速度穩定后的數據。每位實驗者的實驗時長大概40min。從每位實驗者數據中獲取的有效數據時長660s左右。經過以上過程,12位實驗者共獲取的有效數據時長為11 071s,約184.52min。

表2 實驗數據獲取過程
在進行分步之前,首先對原始數據使用截止頻率為20 Hz的3階巴特沃斯低通濾波器進行濾波處理,去除其中的高頻噪聲。之后采用峰值檢測方法對每位實驗者在每種速度下的有效數據進行單步劃分并存儲,共獲得11 739步的有效數據。然后對每一步的慣性數據進行65維的統計特征提取,將65維的特征與該單步所對應的真實速度一一對應保存在數據中。也就是通過以上步驟獲得了11 739×65維的速度特征數組,以及11 739×1維的速度標簽數組,且它們是一一對應的。那么單步統計特征-速度數據集就制作完成。
依據本文提出的方法,試驗前需要隨機將數據集劃分為訓練集以訓練識別模型,和測試集以測試模型的識別效果。據前所述,首先隨機將整體數據集的80%(9 391步)用來訓練識別模型,其余20%(2 348步)的數據用來測試模型的識別準確性。然后隨機將整體數據集的70%(8 218步)用來訓練識別模型,其余30%(3 521步)的數據用來測試模型的識別準確性。通過兩次互相獨立的測試,以此確保選定的方法可以有效的用來對人員運動速度進行識別。接下來分別采用LS分類器、SVM分類器、KNN分類器、LDC 4種分類算法對以上數據集進行速度識別測試。比較4種算法在兩種不同訓練集-測試集劃分情況下的識別準確性,識別準確性最高的算法即為最佳分類算法。
實驗采集到的數據的濾波處理、峰值檢測、特征提取、分類算法的實現均是由MATLAB R2014a編程實現。
根據以上提出的方法,在確定每種分類算法的最優參數之后,使用劃分好的兩種訓練集-測試集對每種算法分類準確性進行測試,準確性結果如表3所示。

表3 分類器的識別準確率
從表3中可以看出,4種分類算法中SVM分類器的識別準確性最高,在兩種訓練集-測試集劃分方法下其識別準確性均高于95%。為了進一步分析SVM對每種速度下的單步識別性能,表4展示的是以70%。

表4 70%∶30%情況下測試集識別結果
30%劃分訓練集和測試集的情況下SVM分類器對測試集的識別準確性分析,表5展示的是以80%:20%劃分訓練集和測試集情況下SVM分類器對測試集的識別準確性分析。

表5 80%∶20%情況下測試集識別結果
從表4以及表5中我們可以看到,采用SVM分類器識別單步運動速度時,針對人員行走狀態的識別準確性相對較高,采用本文提出的方法,可以將人員以1.5 m/s和1.75 m/s快速行走狀態的單步從數據集中區分出來。理論上分析是因為人員處于行走狀態時,即使是快速行走,腳部觸地的時間相對跑步狀態腳部觸底時間相對較長,其特征值相對較穩定。另外,從表4與表5中的數據我們還可以看到,當人員運動速度大于3 m/s后,其單步速度誤判相對低速運動出現顯著波動。理論上分析是因為當人員運動大于3 m/s后,腳部觸地的時間出現顯著地減少,數據的波動增大,本文所選取的特征出現波動,從而影響分類器的識別過程。
但是從整體上來講,無論是以80%∶20%劃分訓練集和測試集,還是以70%∶30%劃分訓練集和測試集,采用SVM分類器針對本文創建的數據集的速度識別準確率均高于95%,最高達到了96.3%。
目前基于腳部慣性傳感數據進行人員運動速度識別的方法大多采用直接積分的算法對慢速行走的行人進行速度估計。但是當行人運動速度增加至快速行走或者奔跑時,繼續使用該方法進行速度估計會出現顯著偏差。所以本文提出了一種基于腳部慣性傳感數據、利用單步統計特征對行人運動速度進行估計的方法。
本文的主要貢獻在于將IMU固定在腳部,采用SVM分類器識別單步運動速度,當行人在1.5 m/s~4 m/s內運動時,我們認為單步運動速度識別誤差將小于0.25 m/s。本文提出的方法存在一定的誤差。但是由于同一人員運動狀態改變時步長會發生顯著變化,且已證明運動速度與運動步長之間有強相關關系。本文提出的方法存在一定誤差,但是利用本文提出的方法,針對存在速度劇烈變化的運動過程,可以根據識別的單步運動狀態改變行人的運動步長,相對于用戶輸入步長固定值,將有助于提高SHSs的追蹤精度。