張 琳,張冬雯,易卿武,黃 璐*,王新健
(1.河北科技大學 信息科學與工程學院,河北 石家莊 050018;2.衛星導航系統與裝備技術國家重點實驗室,河北 石家莊 050081)
近年來,隨著智能化移動設備的普及,基于位置的服務迅速興起,準確的定位信息顯得尤為重要。為了解決由于建筑物的遮擋導致GPS信號衰減嚴重,無法穿透建筑物的問題,研究人員進行了廣泛的探索,例如基于WiFi的定位技術[1]、射頻識別技術[2]、基于超寬帶[3]和藍牙[4]的定位方法等。然而,這些基于無線定位技術的方法往往依賴于安裝昂貴的硬件基礎設施,且消耗大量時間進行預訓練。隨著低成本慣性傳感器技術的發展,基于智能手機的行人航位推算(Pedestrian Dead Reckoning,PDR)算法獲得了越來越多研究者的關注[5]。它可以通過利用慣性傳感器和航向參考系統[6]所采集的信息計算出步頻、步長和航向,從而解算出行人航跡。但由于傳統的PDR技術仍然存在誤差較大的問題,當行人持有手機進行跑步、跳躍和上下樓等復雜的活動時,會使步頻、步長和航向角產生較大的累積誤差,進而導致定位結果的精度較低。因此,如何以較低的成本獲取穩定、便捷、連續的室內位置服務仍然是一個具有挑戰性的難題。
鑒于深度學習在自然語言處理、圖像識別、語義分類等領域的成功應用,將其轉移到人類活動識別(Human Activity Recognition,HAR)領域是模式識別的一個新的研究方向[7-10]。文獻[11]采用注意力機制與多層卷積神經網絡(Convolutional Neural Network,CNN)結合的方法來識別步行、站立、坐著和慢跑等人類活動。事實上,智能手機中的傳感器不僅可以感知用戶的移動行為信息,還可以通過分析計算獲得行人當前的位置信息。但由于PDR算法易產生誤差,故使用其他技術來糾正軌跡是一種常用的手段。文獻[12]提出了一種融合PDR,WiFi和地圖信息來實現室內行人追蹤的方法,但該方法需要預先收集WiFi信號的強度數據。對于一個魯棒性和準確性高的PDR系統來說,能夠準確識別不同條件下用戶的運動狀態至關重要[13-14]。文獻[15]提出了一個基于決策樹(DT)的系統來識別電話姿勢中的8項活動,但只關注了HAR,并沒有提出優化傳統PDR算法的方法。
綜上所述,上述研究大都使用機器學習算法進行識別人類活動來減少由于用戶活動切換導致的步數檢測、步長估計和航向角錯誤的問題,然而很少有研究關注與利用人類活動來優化PDR軌跡,以減少累積誤差,達到更高的實時定位精度和提高PDR的魯棒性。因此,本文通過在典型和復雜的人類活動中進行識別并優化現有的步數檢測和步長估計方法,提出一種基于深度學習進行HAR輔助PDR的定位方法來提高傳統PDR算法的精度。此外,還在智能手機端進行實時數據的采集,來實現用戶實時的室內軌跡定位。
本文提出一種基于深度學習進行HAR輔助PDR的定位方法,并在智能手機端進行實時定位和軌跡推算,如圖1所示。首先,在離線階段,利用智能手機中的MEMS傳感器(如加速度計和陀螺儀)采樣,并對采樣數據進行缺失填補、窗口滑動和濾波等預處理操作。然后,使用基于小波變換(Wavelet Transform,WT)和CNN結合的新型深度學習網絡用于進行HAR。最后,在線實時定位階段,提出了一種基于HAR輔助PDR的定位算法,通過HAR與PDR算法結合,可以自適應地輔助PDR算法進行步數檢測和步長估計,并在智能手機端實時推算和更新復雜人類活動模式下的行人位置軌跡。

圖1 系統架構Fig.1 System architecture
在數據采集過程中,可能會由于無意識的身體抖動等原因導致丟失部分數據,所以對采樣數據進行預處理的目的即為填補缺失數據,并消除干擾和噪聲影響。綜合考慮智能手機的能耗負擔和系統精度,本文將傳感器采樣頻率設置為100 Hz,用線性插值算法來填補缺失值。
智能手機內置的低成本MEMS傳感器測量精度較低,輸出的原始信號噪聲偏大,從而影響后續HAR模型的分類能力。因此,在進行HAR和PDR定位之前,應對傳感器原始數據進行預處理以消除干擾噪聲的影響。本文采用截止頻率為wc=0.2π的四階巴特沃斯數字低通濾波器[16],用于濾除原始信號的高頻干擾噪聲,其濾波效果如圖2所示。

圖2 經過濾波后的傳感器信號Fig.2 Filtered sensor signal
為了在保持原始數據不變的情況下實現端到端的HAR模型,并最大限度地減少前期的預處理工作,本文提出的基于深度學習網絡的HAR模型的輸入由經過濾波處理后提取的時間序列數據組成。由于每個活動的記錄僅持續較短的時間,因此需要使用短的滑動窗口來分割獲取更多的測試數據。本文實驗使用的滑動窗口固定長度為64,重疊率為50%,以此進行分割智能手機收集的采樣數據,獲取更多含有深層特征的樣本數據,如圖3所示。

圖3 窗口滑動分割Fig.3 Sliding window for data splitting
小波(Wavelet)信號是能量有限且相對集中在局部區域衰減較快的波動信號,WT的含義是把某一被稱為基本小波的函數做位移后,在不同尺度下與原始信號做內積,即:
(1)
式中,a>0為尺度因子,其作用是對基本小波φ(t)作伸縮;τ表示位移。
小波變換的思想是利用尺度函數表示原始信號,實現空間(時間)和頻率的局部變換,從而有效地從信號中提取時間關系的特征[17]。隨著尺度級的下降,尺度越來越大,對原始信號的反映更加模糊和粗糙,使用WT的優勢是能對時間(空間)頻率進行片段分析,使用伸縮平移運算從不同尺度對信號逐漸細化,最終達到時間細分在高頻處,頻率細分在低頻處。其參數較少,具有優質的視頻窗口特性,且不進入網絡訓練階段,因此有助于提高模型的測試精度。本實驗將預處理后經過滑動窗口分割的波形數據使用Haar小波[18]進行變換分解為高頻和低頻分組,然后將二者組合作為網絡的輸入。Haar小波的尺度函數為:

(2)
CNN擅長提取具有空間關系的特征,可以在降低信息的維度同時擴展信息的維度,通過卷積層(Convolutional Layer)對輸入數據進行多次卷積運算,得到想要的代表性特征[19]。因此,本文使用小波變換和CNN相結合的深度學習模型,能夠充分利用來自智能手機傳感器的復雜數據流,有效提取多維特征并識別人類活動。
智能手機內置的MEMS傳感器在固定窗口滑動上的測量如下:
(3)
(4)
(5)
(6)
(7)
(8)
(9)
式中,M表示滑動窗口的大小;Zi表示時間上的輸入向量;ax,ay,az和gx,gy,gz分別代表三軸加速度計和三軸陀螺儀的輸出。
本文將濾波預處理后經過滑動窗口分割的數據經過Haar小波提取時間序列特征后,作為CNN的輸入數據,再次通過卷積層對提取的時間特征進行多次卷積運算:
(10)

本文提出的利用來自智能手機MEMS傳感器數據來進行HAR的深度學習Wavelet-CNN 網絡模型如圖4所示,整體網絡架構共有7層。首先,將濾波預處理后經過滑動窗口分割的數據使用小波變換提取時間序列特征。然后,依次通過3個卷積層提取空間特征,在第1個卷積層中使用128個卷積核進行特征提取,在第2個卷積層中使用256個卷積核對上層輸出的特征進行更深層次的特征提取操作,后面緊跟著一個步長為2的最大池化層(Max-pooling Layer)用于執行下采樣操作,以幫助網絡更好地消除噪聲的干擾。最后一個卷積層包含64個卷積核,3層中的卷積核大小均為1×3,步長均為1。在Wavelet-CNN模型的最后,通過全局平均池化層(GAP)、批量歸一化層(BN)和全連接層(FC)最終獲得模型的輸出,實現HAR。

圖4 Wavelet-CNN網絡模型Fig.4 Wavelet-CNN network model
PDR中常見的步數檢測方法有峰值檢測法和過零統計法,本文將對其結合并提出基于HAR的自適應步數檢測的方法,實現不同人類活動下的準確計步。
為了消除重力的影響,獲得真實運動加速度,在數據預處理階段利用式(11)對重力加速度進行濾除:
az(t)=az-ρg(t-1)-(1-ρ)az,
(11)
式中,az為t時刻包含重力的加速度;g(t-1)為t-1時刻的重力加速度。
(12)
本文通過式(12)計算三軸加速度計的合成加速度值,不僅減輕了不同人類活動對步數檢測造成的影響,而且最大化減弱了噪聲的影響。處理后的合成加速度如圖5所示,其中紫色、紅色和黃色的波形表示三軸加速度計的加速度值,綠色加粗的曲線表示合成加速度。

圖5 處理后的合成加速度Fig.5 Synthetic acceleration after data processing
通過截止頻率為5 Hz的六階低通濾波器對得到的a(t)avg數據進行平滑和去噪處理,使用更高階的濾波器會產生更小的衰減,濾波數據更加平滑。為了在不同活動狀態模式下實現準確的步數檢測,設計了一種基于HAR的自適應步數檢測方法,表現出較強的魯棒性。該算法通過設置窗口滑動檢測峰值的方式,自適應地調整不同活動狀態下的閾值,動態閾值檢測結果如圖6所示,并根據以下條件最終得到步數檢測結果:

圖6 動態閾值檢測Fig.6 Dynamic threshold detection
①設置滑動窗口長度為K,不同活動狀態給定閾值δother,動態閾值diffthreshold。
②a(t)avg≥δother,確保a(t)avg為滑動窗口局部最大值。
③連續的波峰和波谷之間的時間間隔必須大于等于ΔTthreshold。
④當檢測到相鄰的波峰波谷差值大于diffthreshold時,步數+1。
動態閾值diffthreshod偽代碼如下:

算法 自適應動態閾值偽代碼Input:Acceleration:a(1)avg,a(2)avg,…,a(t)avg[],window_size=12Output:The next moment diffthreshold1.diffthreshold=0;2.FOR each moment t in 1,2,3,…,(K-window_size):3. IFapeakavg-avalleyavg>δother4. diffa=apeakavg-avalleyavg;5. diffa.add();6. ENDIF7. Setdiffthreshold=average(difft)8.ENDFOR
一般來說,影響人類步長的因素有很多種,比如年齡、性別和身高等。即使是同一個人在同樣狀態下,行走過程中的步幅也有所不同。尤其是當行人切換不同的行走狀態時,步長會明顯發生改變。例如,當行人處于站立狀態時,步長應為零;當行人處于慢走狀態時應比跑步狀態下的步長小。因此,提出了一種結合人類活動狀態的步長估計算法來自適應地調整不同人類活動下的步長:
(13)
式中,amax和amin分別代表當前活動狀態加速度的最大值和最小值;fs,vs和ws分別代表行人的活動頻率、加速度的標準差和方差;α,β,γ和η分別表示不同人類活動狀態下通過深度學習模型訓練數據確定的步長參數,隨人類活動的不同而變化,每項活動對應一組步長參數。毫無疑問,站立的步長是0,因此,在站立的活動中,α,β,γ和η均為0。利用深度學習模型訓練,并使用最小均方算法可以得到其他活動中的步長參數。
在航向角估計中,對智能手機內置的多傳感器數據進行融合,得到預估的航向角[pitchangle,rollangle,yawangle],由于陀螺儀的角速度G=[gx,gy,gz]會隨時間產生累積誤差,因此采用準靜態約束的方法來減少航向角累積誤差。本文以陀螺儀角速度矢量的大小作為判斷標準:
(14)
準靜態約束方程為:
(15)

本節對基于HAR輔助的PDR定位方法進行驗證,并對實驗結果評估和討論。首先,使用智能手機的內置傳感器進行收據采集和預處理,并使用Wavelet-CNN深度學習模型進行訓練。然后,采用Accuracy和F-score對HAR模型進行評估,并與傳統的機器學習方法比較。最后,從三方面驗證和討論基于HAR輔助的PDR方法的定位性能。
本文用于訓練神經網絡的數據集由4名志愿者使用Galaxy Note20智能手機進行數據采集,采樣頻率為100 Hz,表1為4名測試人員的個人信息。

表1 測試人員信息Tab.1 Tester information
收集的數據集包含長達6 h的活動記錄,采集的原始數據共有461 450條。本研究考慮了更詳細的人類活動的行走模式,并定義了6種基本活動狀態,如表2所示。為了更容易對數據進行標注,4名測試人員分別使用6種不同運動狀態進行數據采集,并使用Standing狀態進行各項活動間的切換。將采集到的原始數據完成狀態標注后,訓練集和測試集的比例為7∶3,并對順序進行了隨機打亂,以此來提高模型的魯棒性。深度學習模型是基于Python中的Pytorch框架編寫,進行訓練和測試的電腦配置為i7-8565U,CPU2.00 GHz,16 GB RAM。為了提高效率,在訓練階段,batchsize=256,Dropout=0.5,epoch=100。此外,采用0.001的學習率來提高擬合能力,并設置策略為每間隔5次迭代,學習率衰減為原來的0.75倍。日常生活中,行人為了使用智能手機的導航功能,最常用的姿勢即把手機放在身體前方,如圖7所示。復雜的人類活動給PDR帶來了挑戰,尤其是步數檢測和步長估計。

表2 基本活動狀態Tab.2 Human activity states
實驗使用傳統的機器學習方法和基于深度學習網絡的HAR模型進行對比,討論不同方法對HAR性能的影響,機器學習方法包括研究者使用較為廣泛的幾種:K近鄰(KNN)、隨機森林(RF)、樸素貝葉斯(NB)、支持向量機(SVM)和梯度提升決策樹(GBDT)。實驗使用總體分類準確率(Accuracy)和F-score作為評價指標,結果如表3所示。

表3 不同算法進行HAR的結果Tab.3 Results of HAR by different algorithms 單位:%
(16)
(17)
式中,Pretruth表示預測正確的樣本數;N表示總樣本數;R和P分別表示Recall和Precision。
由表3可以看出,傳統的機器學習方法中只有SVM和NB具有較高的識別精度,而本文提出的Wavelet-CNN模型精度和F-score可以達到99.50%和99.29%,遠遠超過傳統的機器學習方法。圖8以混淆矩陣的形式更具體地展示了Wavelet-CNN模型的識別精度。其中,主對角線為每種活動預測正確分類的樣本,列表示實際的人類活動狀態,行代表預測的活動狀態。總而言之,無論用戶處于哪種活動狀態,基于Wavelet-CNN的HAR方法都能正確分類出99.32%以上的步行模式。

圖8 混淆矩陣Fig.8 Confusion matrix
為了更具體地評價本文所提出的基于HAR技術輔助的行人航位推算方法,實驗進行PDR定位性能方面的測試。
首先,使用Galaxy Note20智能手機重新收集了幾組數據,這些數據是在不同的人類活動狀態(Walking,Jogging,Jumping和Standing)下按照預先規劃的路徑收集的。圖9顯示了本實驗預先規劃的2條預設路線X和Y。

(a) 預設路線X
4.3.1 HAR輔助步數檢測
針對本文設計的基于活動識別的自適應步數檢測方法進行評估,步數檢測結果如圖10和圖11所示。由圖10和圖11可知,由于傳統的PDR通常采用峰值檢測和過零點檢測等方法進行步態檢測,但由于行人的不同活動狀態,時常導致步數漏檢。而通過使用設置窗口滑動檢測峰值的方式,自適應地調整不同活動狀態下的閾值,可以盡可能地檢測到不同狀態的步數。

圖10 傳統PDR步數檢測Fig.10 Traditional PDR step number detection

圖11 自適應的動態閾值步數檢測Fig.11 Adaptive dynamic threshold step number detection
為了進行公平的比較,測試人員沿預設路線X和預設路線Y分別進行不同人類活動狀態的測試,每次都保持相同的行走方式和手機姿態,以驗證不同方法的性能。使用最大值(MAX)、平均值(MEAN)和均方根(RMS)評價不同活動狀態下的定位誤差,并使用式(18)計算步數檢測率(SDR),評估不同活動狀態下2種算法的步數檢測結果,如表4所示。由于Standing狀態的步數和軌跡均為0,故表中沒有列出。

表4 不同活動的誤差和步數檢測率對比Tab.4 Comparison of error and SDR of different activities
(18)
式中,K表示測試次數;N表示實際行走步數;Dstep表示不同方法檢測到的步數。
由步數檢測率的結果可知,本文提出的基于活動識別的自適應步數檢測方法在不同人類活動狀態下均達到91%以上的準確率,相對于傳統PDR方法提高了10.94%。在定位誤差上,本文提出的方法也明顯表現出優勢,證明基于活動識別的自適應步數檢測方法具有較強的魯棒性。
4.3.2 HAR輔助步長估計
針對提出的結合人類活動狀態的步長估計算法,測試人員按照預設路線X進行以下活動:開始為Standing狀態,從A點向南走12 m到B點(Walking)→從B點向東走12 m到C點(Jogging)→從C點向北走12 m到D點(Walking)→從D點向西走12 m回到A點(Jumping)。使用傳統的PDR方法、自適應步數檢測方法結合無人類活動狀態的PDR方法和本文提出的HAR輔助的PDR方法進行軌跡估計,并和真實軌跡對比計算定位誤差,生成誤差累積分布函數圖,如圖12和圖13所示。

圖12 預設路線X軌跡對比Fig.12 Trajectory comparison of preset route X

圖13 預設路線X的CDFFig.13 CDF of preset route X
由圖12可以看出,傳統的PDR由于無法準確檢測步數和估計步長,在定位性能上表現最差,而自適應步數檢測方法結合無人類活動狀態的PDR方法由于僅能檢測步數,當人類切換狀態時無法準確估計下一種活動的步長,導致無法預估軌跡。由圖13可以看出,雖然在前35.7%的概率下,本文提出的HAR輔助的PDR方法表現效果略差,但累積誤差在1 m左右的表現明顯優于其他方法,最大累積誤差低于2.27 m,低于傳統PDR方法5.92 m,證明本文提出的結合人類活動狀態的步長估計算法性能表現優異。
4.3.3 HAR輔助PDR算法定位性能評估
為了進一步綜合評價HAR輔助的PDR方法定位性能,測試人員按照圖9(b)預設的路線Y進行實驗,活動軌跡為:開始為Standing狀態,從A點向南走12 m到B點(Jogging)→從B點向東走6 m到C點(Walking)→從C點向北走12 m到D點(Jumping)→從D點向東走6 m到達E點(Walking)→從E點向南走12 m到達F點(Jogging)。本文將傳統的PDR方法、文獻[20]提出的先進PDR方法和本文提出的HAR輔助的PDR方法進行比較,并在文獻[20]提出的先進PDR方法上增加HAR模型進行對比驗證。其中,文獻[20]提出的先進PDR方法通過使用無跡卡爾曼濾波和設置不同閾值條件進行步態檢測,并在行走過程中,針對步距誤差和航向角誤差的累積問題,采用零速度更新、零角速度更新和磁強計相結合的方法進行誤差修正。定位軌跡和誤差累積分布函數如圖14和圖15所示。

圖14 預設路線Y軌跡對比Fig.14 Trajectory comparison of preset route Y

圖15 預設路線Y的CDFFig.15 CDF of preset route Y
從圖中可以看出,傳統的PDR方法定位效果最差,文獻[20]提出的先進PDR方法由于無法針對不同活動狀態自適應地調整步數檢測和步長估計參數,對累積誤差抑制較差,而增加HAR模型后的定位性能明顯提升,最大誤差降低約16.2%。有效地證明本文提出的PDR方法在HAR的輔助下,可以有效地減少活動狀態切換時的位置誤差,實現了良好的定位精度,具有更強的魯棒性。
將本文提出的基于HAR輔助的PDR方法在智能手機Android端應用,采集智能手機內置的傳感器信號并實時顯示軌跡和定位結果,如圖16所示,界面中上方為地圖實時定位軌跡,下方為當前人類的活動狀態和內置傳感器的值。

圖16 Android端實時定位結果Fig.16 Android real-time positioning results
本文提出了一種基于HAR輔助的PDR定位方法,通過基于深度學習的神經網絡實現HAR,基于活動模式自適應地實現PDR算法中的步數檢測和步長估計,實現了較好的定位精度。首先,在離線階段使用小波變換和CNN相結合的深度學習網絡模型對智能手機內置傳感器的數據訓練和分類,實現HAR,識別精度高達99.50%。然后,基于上述HAR識別模型設計了一種改進的自適應PDR定位算法,分別從步數檢測、步長估計兩方面對傳統PDR算法進行了優化,提高了PDR算法的魯棒性和可靠性。最后,提出了一種基于HAR輔助的PDR方法,并在智能手機上實現實時定位,準確推算復雜人類活動模式下的行人軌跡。通過對比實驗表明,所提出的基于深度學習進行HAR輔助的PDR定位方法能夠準確識別多種復雜的人類運動狀態,減少了傳統PDR方法的累積誤差,提高了定位精度,較先進PDR方法最大定位誤差降低約16.2%,具有較強的魯棒性和有效性。本文所提出的基于HAR進行輔助PDR實現定位的方法并未涉及手機姿態,為了獲得更準確的定位服務,將在未來的研究中考慮更多的手機姿態,如手持模式和擺動模式等。