鄧 平,吳明輝
(西南交通大學 信息編碼與傳輸重點實驗室,成都 610097)
隨著慣性傳感器件的發(fā)展,基于慣性傳感器的室內(nèi)定位技術(shù)研究受到了越來越多學者的關(guān)注[1]。目前基于慣性器件的定位技術(shù)主要建立在正常行走的基礎(chǔ)上,行人側(cè)步、倒退等運動姿態(tài)均會被視為正常前進行走,在實際多運動姿態(tài)場景應(yīng)用中會產(chǎn)生極大定位誤差。為此,需要在傳統(tǒng)基于慣性器件的定位技術(shù)中融入人體復(fù)雜運動姿態(tài)識別方法。
近年,機器學習算法蓬勃發(fā)展,部分學者嘗試將其應(yīng)用于基于慣性器件的運動姿態(tài)識別上。特征篩選的意義在于以最少的特征表征最全的分類信息,從而優(yōu)化機器學習效果。文獻[2]針對現(xiàn)有特征篩選方式進行了歸納整理,闡述了各種算法的優(yōu)缺點,為后續(xù)分類理論和應(yīng)用研究帶來便捷。文獻[3]提出了一種基于互信息的多級特征選擇算法,通過相關(guān)性和冗余性對特征進行了三級選取,以較大的復(fù)雜度來換取了較好的篩選結(jié)果。文獻[4]通過閾值限定來選取相關(guān)特征集,再通過馬爾可夫毯原理去除冗余特征。文獻[5]通過加速度分析,利用三種特征選擇算法與層次分類方法相結(jié)合選擇出特征子集,采用支持向量機進行了分類驗證。上述學者均在特征選擇方面進行了深入研究,對于特定應(yīng)用場景下的特征選擇都取得了較好效果。
對于姿態(tài)識別方法研究,文獻[6]結(jié)合支持向量機和Adaboost 算法對站立、側(cè)躺、仰臥等靜止姿態(tài)進行識別,能夠達到較好效果,但在人體運動姿態(tài)的檢測上缺乏研究。文獻[7]提取了加速度時域特征,后續(xù)通過模糊模式識別對走、跑、上下樓等人體姿態(tài)進行了分類,整體識別率達90%左右,該算法可能導(dǎo)致數(shù)據(jù)堆積。文獻[8]通過主成分分析與線性判決分析相結(jié)合的方式提高特征健壯性,再通過深度信念網(wǎng)訓練特征集,將識別準確率提高至90%左右,對于后續(xù)的姿態(tài)研究具有啟發(fā)意義。文獻[9]將姿態(tài)識別與捷聯(lián)式慣性導(dǎo)航相結(jié)合,以更貼合實際應(yīng)用場景的角度完善了航位推移(PDR)算法,實現(xiàn)了二維軌跡重構(gòu)。
因此,為促進人體多運動姿態(tài)下的定位技術(shù)發(fā)展,本文基于慣性傳感器數(shù)據(jù)采集,針對人體常用的7 種運動姿態(tài)進行了特征提取、篩選、姿態(tài)識別以及修正算法研究。
本文主要針對MEMS 慣性傳感器在人體運動姿態(tài)識別應(yīng)用上的研究?,F(xiàn)有研究特征提取方式大有不同,相比提取固定時長數(shù)據(jù)的特征[9],本文將針對單個步態(tài)的具體數(shù)據(jù)進行特征提取。
原始數(shù)據(jù)基于MEMS 九軸傳感器采集,采樣頻率100 Hz,傳感器佩戴人員腰部,行人采用正常行走方式,將采集的三軸加速度數(shù)據(jù)按下列公式求得其合加速度:
其中:at為t時刻合加速度;atx、aty、atz分別為t時刻x軸、y軸、z軸加速度。
通常慣性傳感器受自身以及環(huán)境因素影響存在較大噪聲,需要進行預(yù)處理。常用減小加速度噪聲的濾波技術(shù)有低通濾波、均值濾波、卡爾曼濾波等。本文基于加速度波形的連續(xù)性采用均值濾波處理,為了方便后期研究進行去中心化處理剔除重力加速度及噪聲影響。采用的均值濾波可由式(2)表示:
式中,at表示均值濾波后第t個數(shù)據(jù)點的值,N表示濾波窗口大小。實驗表明,當N取值為7 時,加速度數(shù)據(jù)能被有效剔除噪聲毛刺并最大程度保留實際運動波形。
本文考慮到各地重力加速度值g的差異,故通過傳感器靜止時合加速度均值作為去中心化基礎(chǔ):
鑒于本文采樣頻率100 Hz,M取50 即0.5 s 數(shù)據(jù),不影響正常使用,保證了合加速度最終回到零點。預(yù)處理后得到合加速度數(shù)據(jù)波形如圖1所示。
圖1 數(shù)據(jù)預(yù)處理效果圖Fig.1 Data preprocessing effect diagram
由圖1可見,經(jīng)過預(yù)處理后的合加速度波形大致呈現(xiàn)出光滑、周期性變化、以縱軸為零的位置對稱波動等特點。預(yù)處理算法在剔除噪聲毛刺和重力加速度的基礎(chǔ)上較好地保留了實際運動的波形特征,為后續(xù)的步頻識別以及特征提取提供便利。
鑒于本文所研究運動姿態(tài)較多、數(shù)據(jù)波形差異性較大,并且在實際應(yīng)用中需要對數(shù)據(jù)進行實時處理以保證時效性,本文提出以單步為基礎(chǔ)的基于滑動窗口的數(shù)據(jù)特征提取方式,具體邏輯如圖2所示。
圖2 樣本特征提取流程Fig.2 Sample feature extraction process
1)峰值檢測改進
傳統(tǒng)步態(tài)檢測通過波峰-波谷雙峰檢測,針對多姿態(tài)檢測適應(yīng)性較弱,文獻[9]基于閾值的波峰檢測可能導(dǎo)致選取點為次波峰。因此,本文針對各姿態(tài)波形差異性采用單峰值步態(tài)檢測法,通過波形求導(dǎo)進行波峰檢測,再通過波峰閾值以及近鄰數(shù)據(jù)比較進行次波峰剔除,從而改善選取次波峰的現(xiàn)象。根據(jù)波形規(guī)律,本文波峰閾值取2 m/s2,近鄰比較范圍設(shè)置為前后各15 個采樣點,能對峰值進行有效檢測。將本文算法與現(xiàn)有算法[9]進行峰值檢測對比,結(jié)果如圖3所示。如圖3中黑框標記,當波峰和波峰附近極值引起的次波峰同時存在時,現(xiàn)有算法會誤將次波峰判定為波峰,而本文算法在保證波峰不漏檢的基礎(chǔ)上剔除次波峰并準確識別波峰位置。
圖3 峰值檢測算法對比Fig.3 Comparison of peak detection algorithms
2)零點檢測
現(xiàn)有基于滑動窗口的步態(tài)檢測采用雙峰多閾值算法,該算法針對行走有較好效果,但是不適用于多運動步態(tài)檢測。本文采用基于單波峰雙零點的滑動窗口進行步態(tài)檢測,并根據(jù)基于動態(tài)均值去中心化的零點回歸特性,簡化了前后零點閾值約束。
3)特征提取
批量的樣本特征提取是機器學習的基礎(chǔ)。本文采用步態(tài)定位的方式提取各步態(tài)主要波形數(shù)據(jù)(單峰前后零點間數(shù)據(jù))作為樣本數(shù)據(jù),進行特征提取。針對提取的特征值較少導(dǎo)致特征評估不全面的現(xiàn)象。本文特征值分別從合加速度(acc_he)、x 軸加速度(acc_x)、y 軸加速度(acc_y)、z 軸加速度(acc_z)提取出有量綱特征值以及引入無量綱特征值、自定義特征值組成69 個特征值,并按照1~69 進行編號。
表1 特征列表Tab.1 Feature list
本文針對行人常用運動姿態(tài):走、跑、后退、左側(cè)步、右側(cè)步、上樓梯、下樓梯等,并對單個姿態(tài)的69 種特征值進行了提取。特征篩選過程主要用于降低特征維度。特征篩選算法主要分為兩類[10]:一種是依賴分類器模式(wrapper 方法),一種是不依賴分類器模式(filter 方法)。本文主要研究filter 方法。
常用filter 類型特征篩選算法主要包括Relief-F、信息增益(information gain,IG)、最小冗余最大相關(guān)特征搜索(Minimal Redundancy Maximal Relevance Criterion,mRMR)算法。
ReliefF 算法[11]在處理多類問題時,選擇樣本集中的一個隨機樣本R,比較每個特征下R與同類k個近鄰樣本的距離和R與異類k個樣本的距離,同類距離小的特征則增加權(quán)重,反之,則降低該特征的權(quán)重。重復(fù)多次迭代以更新權(quán)重。權(quán)重迭代公式如下:
其中,W表示權(quán)重,A表示單個特征,k為近鄰樣本數(shù),R為單個隨機樣本,C為需要劃分的樣本類別數(shù),H與R屬于同類的樣本集,M(C)為與R異類的類別C中樣本集,重復(fù)迭代次數(shù)m,diff表示距離,p表示單類樣本占全部樣本的比率。
IG 算法[11]則是采用各特征對于實際分類提供的信息量大小進行衡量特征優(yōu)劣。如果引入一個特征對于原始數(shù)據(jù)集的分類消除的不確定性越大,表示該特征對于數(shù)據(jù)集的準確分類能提供更大的信息量,特征越好。其表達式可以作如下表示:
式中,g(D,)A代表特征A給數(shù)據(jù)集D帶來的信息增益,H(D)表示信息熵,代表條件熵。
Peng 等人提出了mRMR 算法[12],基于互信息值對特征與類標簽集的相關(guān)性以及特征子集的冗余性進行打分排序。mRMR 算法將待選特征與所選特征子集中特征間的平均相關(guān)性表示為該特征與所選子集之間的冗余度。
ReliefF 算法采用距離去衡量同類、異類數(shù)據(jù)中特征的聚集、離散程度,而IG 算法則采用特征值為依據(jù)對標簽分類的信息量進行特征評估。mRMR 算法對相關(guān)性和冗余性均采用互信息進行衡量,導(dǎo)致過分依賴互信息。該類特征排序算法均表現(xiàn)出對數(shù)據(jù)信息應(yīng)用的單一性。結(jié)合以上分析,本文提出多信息融合的特征篩選算法。
分析可見,以上算法存在權(quán)重評估依賴信息單一現(xiàn)象,對此本文提出多信息融合篩選算法(RFIGP),多信息融合主要體現(xiàn)在以下三點:首先,通過ReliefF算法評估特征在同類與異類數(shù)據(jù)中的分布規(guī)律;其次,利用信息增益衡量特征與分類標簽之間的關(guān)聯(lián)程度;最終,使用Pearson 系數(shù)[13]計算特征與特征之間的冗余程度,將高于閾值的特征視為冗余特征進行剔除。結(jié)合以上各算法可構(gòu)建出特征權(quán)重表達式如下:
式中,W為ReliefF 算法所得特征權(quán)重,G為IG算法所得特征權(quán)重,min、max 代表該向量中最小、最大值,Wmix為融合權(quán)重。
特征之間冗余度通過Pearson 系數(shù)標定,其計算公式如下:
其中,A、B表示待求相關(guān)系數(shù)的兩列特征向量,N是樣本個數(shù),r的大小代表相關(guān)程度。
RFIGP 算法詳細描述如表2所示。
表2 RFIGP 算法Tab.2 RFIGP algorithm
本文主要采用以下兩種經(jīng)典算法探討特征篩選的有效性,具體說明如下。
支持向量機(Support Vector Machine,SVM)[14,15],通過低維樣本向高維空間映射,將低維空間的線性不可分問題轉(zhuǎn)化為高維空間線性可分的問題。本文SVM采用徑向核函數(shù),通過粒子群算法(PSO)參數(shù)擇優(yōu),c設(shè)置為100,g設(shè)置為2.2978。
K 近鄰(K-Nearest Neighbor,KNN)算法,通過將一個樣本與特征空間中最近鄰的K個樣本作比較,將該K個樣本的大多數(shù)所屬的類作為該樣本的類別。KNN 算法是最為經(jīng)典的分類算法之一。通過近鄰數(shù)與分類準確率關(guān)系探索實驗,本文KNN 算法近鄰數(shù)設(shè)置為4,在保證分類準確度的情況下有效防止過擬合。
1)運動連貫性探索
在此提出基于人體運動連貫性的設(shè)想:人體在保持同一姿態(tài)運動過程中存在動作的連貫性,運動規(guī)律保持相對穩(wěn)定,若發(fā)生運動姿態(tài)的切換則會存在短暫的停頓或單一步態(tài)周期差異。
提取正常運動以及多運動姿態(tài)切換加速度數(shù)據(jù),分析運動過程時長以及兩類運動之間的時長間隔。定義相鄰兩次運動的峰峰距離為相鄰兩次運動的時間間隔,提取包含所有運動姿態(tài)的數(shù)據(jù),進行相鄰運動間隔提取、做差并繪圖。圖4為相鄰兩個步態(tài)時間間隔的差值示意圖。
圖4 運動連貫性檢測Fig.4 Motion coherence detection
由圖4可見,在同一運動姿態(tài)下,間隔差值在0附近小范圍波動,當存在運動的切換或者停止等非連貫性運動時,會出現(xiàn)明顯間隔差值,該差值的突變可用來判定是否存在運動姿態(tài)的切換。通過多次仿真分析,該閾值可設(shè)為35 個采樣點。
2)姿態(tài)識別誤判分析
如圖5所示,根據(jù)姿態(tài)識別結(jié)果顯示,姿態(tài)識別錯誤主要存在于以下兩種情況:在一組連貫性運動始末位置由于姿態(tài)特征不明顯導(dǎo)致;在同組連貫性運動中遇到突發(fā)情況時的個別運動差異導(dǎo)致。為此,本文通過建立修正模型以及融入連貫性檢測進行姿態(tài)修正。
圖5 姿態(tài)誤判分析Fig.5 Posture misjudgment analysis
根據(jù)以上分析,本文在同一組連貫性姿態(tài)中建立以下姿態(tài)誤判模型:
① 1+2 模型:前一個運動姿態(tài)與后兩個同類運動姿態(tài)不同。
② 2+1 模型:后一個運動姿態(tài)與前兩個同類運動姿態(tài)不同。
3)運動姿態(tài)修正算法
基于各分類算法的運動姿態(tài)識別都會存在誤判現(xiàn)象,因此本文提出基于運動連貫性及修正模型的修正算法。根據(jù)上述姿態(tài)連貫性分析,融合以上模型,通過包含三個相鄰姿態(tài)的滑動窗口,本文建立如圖6所示的姿態(tài)修正算法。
圖6 姿態(tài)修正流程圖Fig.6 Posture correction flow chart
修正算法的主要過程如下:判別符合2+1 模型或1+2 模型的三個相鄰姿態(tài),如果是前者則判斷是否滿足前連貫性,若滿足則判定第三姿態(tài)為前面姿態(tài)的誤判,如果是后者則判斷是否滿足后連貫性,若滿足則判定第一姿態(tài)為后者的誤判。從而對局部姿態(tài)進行糾正,也避免了累積誤判出現(xiàn)的可能性。
實驗采用Lenovo-XiaoXinPro13 筆記本電腦,配置:AMD Ryzen 7 4800U 處理器,1.80 GHz,內(nèi)存16GB,Windows 1064 位操作系統(tǒng),仿真環(huán)境Matlab R2016a。數(shù)據(jù)采集設(shè)備為MEMS 傳感器,采樣頻率100 Hz,安裝位置為實驗人員腰部前方。
實驗所涉及人體運動姿態(tài)主要包含行走、奔跑、左側(cè)步、右側(cè)步、上樓梯、下樓梯、后退等7 類,原始數(shù)據(jù)特征69 維。選擇12 個不同人員按照以上運動姿態(tài)進行了數(shù)據(jù)采集,隨機挑選6 組編號①-⑥作為實驗分析。通過不排序特征組(NoSort)、IG、ReliefF、MRMR、RFIGP 等算法進行特征排序,再使用SVM、KNN 算法進行分類測試并保留計算得到的分類準確率達到最大時所選的特征數(shù)。為了說明實驗的有效性,整個實驗采用K 折交叉驗證[16]。本文將K設(shè)置為6,使得測試樣本數(shù)足夠大的情況下,分類樣本數(shù)略多于測試樣本數(shù),以較小的計算開銷驗證分類算法的穩(wěn)定性。實驗結(jié)果如表3、4所示。
表3 基于SVM 分類器的所選特征集及分類準確率Tab.3 Selected feature sets and classification accuracy based on SVM classifier
表4 基于KNN 分類器的所選特征集及分類準確率Tab.4 Selected feature sets and classification accuracy based on KNN classifier
本文采用特征個數(shù)和分類準確率衡量特征排序算法的優(yōu)劣,并比較了在SVM 和KNN 分類器中的分類效果。表中數(shù)據(jù)①-⑥行為各樣本集在各篩選算法下的特征選取數(shù)目,以及達到的最高分類準確度。最后一行數(shù)據(jù)為各實驗結(jié)果平均值。表3、4 實驗數(shù)據(jù)表明,本文RFIGP 算法在特征篩選方面相比其它算法較為穩(wěn)定,針對各數(shù)據(jù)集所選特征個數(shù)無較大波動,平均篩選結(jié)果個數(shù)相比其它算法均有所降低。在分類準確率方面,RFIGP 算法以較高且穩(wěn)定的準確率領(lǐng)先其它算法,尤其在SVM 分類器中該特點尤為明顯。綜上分析可見,本文RFIGP 算法在特征篩選過程中能夠以更少的特征數(shù)目讓分類器達到更優(yōu)的分類效果,并且本文特征排序算法結(jié)合SVM 使用效果更佳。
本實驗人員選自上述特征篩選實驗中,并以上述實驗數(shù)據(jù)作為樣本庫進行分類器訓練,通過實際測試數(shù)據(jù)驗證分類器的泛化性以及修正算法的有效性。
首先,實驗人員模擬本文所研究的7 類運動姿態(tài)正常行走采集數(shù)據(jù)作為測試數(shù)據(jù)。其次,通過特征篩選實驗建立的訓練庫以及篩選的特征組進行測試數(shù)據(jù)分類實驗。最后,通過修正算法修正姿態(tài)。通過上節(jié)實驗比較,本次實驗采用支持向量機作為測試分類器,實驗結(jié)果如表5所示。
表5 基于SVM 的姿態(tài)識別及修正對比Tab.5 Posture recognition and correction comparison based on SVM
由實驗數(shù)據(jù)表明,本文的特征篩選以及姿態(tài)分類過程具有較好的泛化性能,實測數(shù)據(jù)分類檢測與K 折交叉驗證下分類相比效果相近,并以平均特征數(shù)少于8 個的特征集達到了較好的姿態(tài)分類效果。從修正前后姿態(tài)分類準確度比較看出,本文提出的姿態(tài)修正算法在原始分類效果的基礎(chǔ)上能進一步提升,最后甚至能超過99.6%的分類準確率。
本文通過分析現(xiàn)有經(jīng)典特征篩選算法,針對實際數(shù)據(jù)特征提出了基于多信息融合的特征排序算法RFIGP。它不僅考慮到特征內(nèi)部的分布特性、特征與類別標簽的相關(guān)性,還考慮到了特征與特征之間存在的冗余性。文中給出了RFIGP 對特征排序的詳細過程,比較了在不同數(shù)據(jù)集及分類器下的作用效果。并且針對本文的實際應(yīng)用場景,基于人體運動的連貫性以及姿態(tài)識別的誤判模型,提出了姿態(tài)識別修正算法。在實驗數(shù)據(jù)比較下,本文提出的篩選算法和姿態(tài)修正算法均能取得較好的效果,為后續(xù)推動基于姿態(tài)識別的慣性傳感器應(yīng)用上起到了促進作用。