劉傲,修春娣
(北京航空航天大學(xué) 電子信息工程學(xué)院,北京 100191)
行人精確連續(xù)定位是復(fù)雜室內(nèi)環(huán)境下位置服務(wù)、應(yīng)急疏散、智能管理等應(yīng)用領(lǐng)域共同關(guān)注的問題。隨著智能便攜終端的普及,基于地磁、Wi-Fi、視覺、超寬帶及慣導(dǎo)等定位源的定位技術(shù)得到了廣泛應(yīng)用[1-3]。然而,單一定位源由于自身特征上的局限性,往往難以滿足行人連續(xù)定位的精度需求。例如,地磁在特征相似區(qū)域易產(chǎn)生誤匹配,Wi-Fi 動態(tài)定位可能產(chǎn)生信號堆積,行人航位推算(pedestrian dead reckoning, PDR)定位存在誤差累積[4-5]。因此,多源融合室內(nèi)定位逐漸成為研究熱點。
目前,國內(nèi)外在多源融合室內(nèi)定位方面展開了較多研究。文獻(xiàn)[6]提出基于雙層級聯(lián)架構(gòu)的濾波融合算法。在下層結(jié)構(gòu)中,利用卡爾曼濾波(Kalman filter, KF)獲取行人的航向及步長信息,并引入零速修正和非完全約束對慣導(dǎo)進(jìn)行初步校正。在上層結(jié)構(gòu)中,利用下層傳遞的信息進(jìn)行PDR 定位,并將定位結(jié)果和地圖利用輔助粒子濾波(particle filter, PF)進(jìn)一步融合。仿真結(jié)果顯示,當(dāng)PF 中設(shè)定的粒子數(shù)能夠使定位精度與計算負(fù)載兩者之間達(dá)到平衡時,行人的平均定位誤差為1.67 m。為了改善濾波性能,文獻(xiàn)[7]提出一種基于 改 進(jìn) 擴(kuò) 展 卡 爾 曼 濾 波(extended Kalman filter,EKF)的融合算法,利用Wi-Fi、PDR 與地磁間的相互關(guān)系建立三級質(zhì)量控制機(jī)制,對融合過程中的不可靠觀測量和不匹配搜索空間進(jìn)行濾除。該算法在一定程度上降低了定位誤差,但代價是算法復(fù)雜度的顯著提升。文獻(xiàn)[8]提出一種基于濾波與因子圖的融合方法,利用EKF 融合慣導(dǎo)與里程計信息實現(xiàn)位姿估計,隨后結(jié)合Kinect 傳感器數(shù)據(jù)送入即時定位與地圖構(gòu)建(simultaneous localization and mapping, SLAM)框 架 進(jìn) 行 融 合,實驗結(jié)果表明,該方法提高了導(dǎo)航系統(tǒng)的可靠性與實用性。除了濾波和因子圖融合方法,近年來,伴隨機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)在多源融合室內(nèi)定位中的應(yīng)用逐漸得到了更多關(guān)注。文獻(xiàn)[9]提出一種包含深度卷積神經(jīng)網(wǎng)絡(luò)的融合定位方法,采用神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像匹配定位,同時利用定位結(jié)果約束地磁匹配范圍,隨后利用PDR 對結(jié)果進(jìn)一步修正。該方法在普通光照場景下的平均定位誤差為1.46 m,但由于定位精度還受到相機(jī)分辨率影響,在低光照場景下該方法的定位性能較為受限。為了優(yōu)化定位性能,文獻(xiàn)[10]提出了一種基于粒子群優(yōu)化(particle swarm optimization,PSO)與 極 限 學(xué) 習(xí) 機(jī)(extreme learning machine,ELM)神經(jīng)網(wǎng)絡(luò)的雙層融合算法,同時引入靜態(tài)反饋對慣導(dǎo)進(jìn)行校正,該算法在一定程度上降低了定位誤差。
本文提出了一種基于分層優(yōu)化的多源融合定位方法。利用Wi-Fi 定位結(jié)果約束地磁匹配范圍,優(yōu)化地磁定位可能存在的誤匹配問題;將集成學(xué)習(xí)引入神經(jīng)網(wǎng)絡(luò),并利用PSO 減少算法耗時;為了降低Wi-Fi 信號堆積導(dǎo)致的定位誤差,利用PF 將上述融合結(jié)果與PDR 定位結(jié)果進(jìn)一步融合。由此,實現(xiàn)分層優(yōu)化的多源融合定位。
選用靜態(tài)采集方式構(gòu)建Wi-Fi 與地磁指紋庫。采用指紋法實現(xiàn)Wi-Fi 定位,進(jìn)一步利用Wi-Fi 定位結(jié)果約束地磁。
將定位場景劃分為若干網(wǎng)格,在各網(wǎng)格頂點重復(fù)采集多組Wi-Fi 信號強(qiáng)度(received signal strength indication, RSSI)數(shù)據(jù),計算信號強(qiáng)度均值并與對應(yīng)網(wǎng)格頂點的坐標(biāo)組合,構(gòu)成對應(yīng)點的Wi-Fi 指紋序列。地磁數(shù)據(jù)的采集利用手機(jī)內(nèi)置的磁傳感器完成,由于x,y,z三軸的磁場強(qiáng)度會隨著手機(jī)的位姿變化,但三軸的合磁場強(qiáng)度不會隨之改變,因此,將合磁場強(qiáng)度作為地磁指紋,進(jìn)行克里金插值獲得細(xì)粒度的地磁全局基準(zhǔn)圖。
室內(nèi)地磁特征相對穩(wěn)固,但不同區(qū)域的地磁特征可能相似,實際定位時可能存在較大的誤匹配概率。為有效解決這一問題,采用基于Wi-Fi 約束的地磁匹配定位方法,如圖1所示。圖中Ra為約束區(qū)域半徑,其值為Wi-Fi 的平均定位誤差,由定位場景中對大量坐標(biāo)已知的靜態(tài)測試點進(jìn)行k 鄰近(knearest neighbor,k-NN)算法定位的方式獲得。在約束區(qū)域內(nèi)進(jìn)行地磁匹配,有效降低了地磁定位的誤匹配概率。
圖1 基于Wi-Fi 約束的地磁定位方法Fig.1 Wi-Fi constraint-based geomagetic positioning method
后向傳播(back propagation, BP)神經(jīng)網(wǎng)絡(luò)屬于監(jiān)督式學(xué)習(xí)算法。進(jìn)行樣本訓(xùn)練時,通過反向傳播方式不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,最終達(dá)到設(shè)定迭代次數(shù)或誤差小于設(shè)定值時停止訓(xùn)練[11]。BP 神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)圖如圖2 所示。圖中 γi和 εj分別為神經(jīng)網(wǎng)絡(luò)的輸入值和預(yù)測值。在實際訓(xùn)練過程中,單一BP 神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu),可能導(dǎo)致預(yù)測值 εj的精度下降。
圖2 BP 神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖Fig.2 Topological structure of BP neural network
為提高任意學(xué)習(xí)算法的預(yù)測精度,F(xiàn)reund[12]將集成學(xué)習(xí)領(lǐng)域的Boosting 算法進(jìn)行改進(jìn),提出AdaBoost 算法。該算法的核心思想是,在迭代過程中更加關(guān)注預(yù)測錯誤的樣本,迭代結(jié)束后,將多個弱學(xué)習(xí)器按照某種結(jié)合策略生成強(qiáng)學(xué)習(xí)器,利用強(qiáng)學(xué)習(xí)器進(jìn)行預(yù)測并輸出預(yù)測結(jié)果。
將BP 神經(jīng)網(wǎng)絡(luò)作為AdaBoost 中的弱學(xué)習(xí)器,利用BP-AdaBoost 算法融合Wi-Fi 定位結(jié)果與約束后地磁的定位結(jié)果,其主要步驟如下。
步驟 1劃分?jǐn)?shù)據(jù)集與初始化
將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集。其中訓(xùn)練集包含s個訓(xùn)練樣本,將第i個訓(xùn)練樣本的初始權(quán)重wm,i設(shè)為
式中:m為弱學(xué)習(xí)器輪數(shù)。
BP-AdaBoost 的輸入與輸出分別為
式中:Xa和Ya為 Wi-Fi 定位結(jié)果;Xb和Yb為約束后地磁的定位結(jié)果;Xe和Ye為融合定位結(jié)果。
根據(jù)BP-AdaBoost 的輸入輸出維數(shù)確定弱學(xué)習(xí)器結(jié)構(gòu),并通過隨機(jī)設(shè)定的方式初始化弱學(xué)習(xí)器的權(quán)值和閾值。
步驟 2計算弱學(xué)習(xí)器的定位誤差率與權(quán)重
當(dāng)?shù)趍輪弱學(xué)習(xí)器Hm訓(xùn)練時,每個訓(xùn)練樣本的相對定位誤差為
式中:Xr和Yr分別為待定位點的真實位置坐標(biāo);Em為該輪訓(xùn)練中訓(xùn)練樣本的最大定位誤差,其表達(dá)式為
則第m輪弱學(xué)習(xí)器的定位誤差率為
由于BP 神經(jīng)網(wǎng)絡(luò)屬于樣本無法帶權(quán)重的弱學(xué)習(xí)器,因此,需利用wm+1,i對訓(xùn)練樣本進(jìn)行重采樣的方式實現(xiàn)實際更新過程。
步驟 4生成強(qiáng)學(xué)習(xí)器
達(dá)到設(shè)定迭代次數(shù)T后,將T輪弱學(xué)習(xí)器按照結(jié)合策略生成強(qiáng)學(xué)習(xí)器G。選取的結(jié)合策略為加權(quán)平均法:
式中:M為弱學(xué)習(xí)器總輪數(shù)。
G的輸出即為Wi-Fi 與約束后地磁的融合定位結(jié)果。
BP-AdaBoost 算法能夠有效提升定位精度,但迭代過程導(dǎo)致算法耗時相應(yīng)增加。為了減少集成學(xué)習(xí)算法耗時,進(jìn)一步利用PSO 對BP-AdaBoost 算法進(jìn)行優(yōu)化。
PSO 是一種通過搜索當(dāng)前最優(yōu)以獲取全局最優(yōu)的隨機(jī)搜索算法[13],優(yōu)化后的BP-AdaBoost-PSO算法主要步驟如下。
步驟 1參數(shù)初始化
將PSO 的初始位置向量設(shè)為BP-AdaBoost 的權(quán)值與閾值,同時對PSO 中的有關(guān)參數(shù)進(jìn)行初始設(shè)定。其中,將粒子維度設(shè)定為
式中:dinput和dhidden分別為輸入層與隱含層神經(jīng)元個數(shù)。
步驟 2更新粒子的速度與位置
對粒子的速度vh與位置ph進(jìn)行更新,其表達(dá)式分別為
式中:h=1,2,···,Q,Q為粒子總數(shù);f為慣性權(quán)重;c1和c2為 學(xué) 習(xí) 因 子;r1和r2為(0,1)之 間 的 隨 機(jī) 數(shù);pbesth為第h個粒子的個體極值;gbest為所有粒子的全局極值。
步驟 3更新個體與全局極值定義適應(yīng)度函數(shù)fit 為
式中:Esum為測試集所有點的定位誤差之和。
依據(jù)各粒子的適應(yīng)度對個體和全局極值進(jìn)行不斷更新。當(dāng)滿足PSO 終止條件時,將最優(yōu)個體作為權(quán)值和閾值賦給BP-AdaBoost。
運(yùn)動狀態(tài)下利用BP-AdaBoost-PSO 進(jìn)行連續(xù)定位時,仍可能存在由Wi-Fi 信號堆積導(dǎo)致的定位誤差。針對這一問題,在本層融合定位方法中,利用PF 將PDR 定位結(jié)果與BP-AdaBoost-PSO 算法結(jié)果進(jìn)一步融合。
PDR 通過智能便攜設(shè)備中的慣性傳感器信息實時解算出行人的步頻、步長與航向[14],再根據(jù)行人的上一位置推算出當(dāng)前的位置信息,其定位原理如圖3 所示。
圖3 PDR 定位原理Fig.3 Positioning principle of PDR
式中:Ln為 第n步的步長;θn為第n步的航向角。
采用文獻(xiàn)[15]中的基于三重約束的波峰波谷檢測計步模型,實現(xiàn)對步態(tài)的準(zhǔn)確檢測。步長估計采用Weinberg 在文獻(xiàn)[16]中提出的經(jīng)驗?zāi)P停?/p>
式中:η為 常數(shù);tk?1和tk分別為第k?1 步和第k步對應(yīng)的時刻;amax(t)和amin(t)分別為間隔t內(nèi)加速度的最大值和最小值。
利用陀螺儀積分計算航向時易產(chǎn)生誤差累積,利用加速度計和磁力計計算航向時易受鐵磁性物質(zhì)干擾[17]。為了提高航向估計精度,采用互補(bǔ)濾波對上述2 種方式解算出的航向角進(jìn)行融合。綜合利用檢測計步模型、步長估計和航向估計方法[15-17]解算出的步頻、步長與航向信息,經(jīng)推算可得PDR定位結(jié)果。
利用PF 將PDR 定位結(jié)果與BP-AdaBoost-PSO算法定位結(jié)果進(jìn)行融合。將第α個粒子的初始坐標(biāo)向量設(shè)定為
基于分層優(yōu)化的多源融合定位方法的總體框架如圖4 所示。第1 層優(yōu)化利用Wi-Fi 約束地磁匹配范圍,第2 層優(yōu)化利用PSO 降低BP-AdaBoost 算法耗時,第3 層優(yōu)化利用PF 融合減少Wi-Fi 信號堆積。進(jìn)一步利用真實定位場景中的實測數(shù)據(jù)對所提定位方法的定位性能進(jìn)行仿真驗證。
圖4 融合定位方法框架Fig.4 Framework of fusion positioning algorithm
在北京航空航天大學(xué)新主樓內(nèi)部選取2 個不同的定位場景。定位場景1 由封閉走廊和半露天走廊2 種環(huán)境特征構(gòu)成,長30.0 m,寬15.6 m。定位場景2 長48.0 m,寬22.2 m,沿線途經(jīng)走廊、大廳、天井等設(shè)施,環(huán)境特征較為豐富。在這2 個場景中分別選取原點O建立基準(zhǔn)坐標(biāo)系,如圖5 和圖6 所示。選用搭載自主開發(fā)APP 的小米6s 作為數(shù)據(jù)采集設(shè)備。Wi-Fi的采集頻率設(shè)為10 Hz,加速度計、陀螺儀與磁力計的采集頻率設(shè)為50 Hz。
圖5 定位場景1 平面圖Fig.5 Plan of positioning site 1
圖6 定位場景2 平面圖Fig.6 Plan of positioning site 2
離線階段,將2 個定位場景劃分為1.2 m × 1.2 m的網(wǎng)格,在各網(wǎng)格頂點采集Wi-Fi 信號強(qiáng)度和地磁強(qiáng)度數(shù)據(jù),經(jīng)預(yù)處理后建立指紋庫。
在線階段,分別采集行人靜止和運(yùn)動狀態(tài)下在2 個場景中的實驗數(shù)據(jù)。對于每個場景,在730 個真實坐標(biāo)已知的待定位點采集行人靜止?fàn)顟B(tài)下的數(shù)據(jù),用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)及獲取Wi-Fi 的平均定位誤差。行人運(yùn)動狀態(tài)下,為了便于對定位性能進(jìn)行分析,沿預(yù)先設(shè)定的坐標(biāo)已知的地標(biāo)行走,每行走一步觸發(fā)一次數(shù)據(jù)采集,沿O-A-B-C-O方向在定位場景1 中的不同路徑重復(fù)行走100 圈,沿O-E-F-GO方向在定位場景2 中的不同路徑重復(fù)行走100 圈。
地磁定位方法的定位誤差累積分布函數(shù)(cumulative distribution function, CDF)曲線如圖7 所示。當(dāng)CDF 為0.7 時,本文的約束方法和k-NN 算法的定位誤差在場景1 中分別為2.06 m 和7.11 m,在場景2 中分別為2.03 m 和7.43 m。結(jié)果表明,基于Wi-Fi 約束的地磁定位方法能夠有效降低行人運(yùn)動狀態(tài)下由地磁誤匹配導(dǎo)致的定位誤差。
圖7 不同地磁定位方法定位誤差的CDF 曲線Fig.7 CDF curves of position errors with different geomagnetic positioning algorithm
對應(yīng)的平均定位誤差如表1 所示??梢姡噍^于k-NN 算法,基于Wi-Fi 約束的方法的平均定位誤差在場景1 中降低了72.5%,在場景2 中降低了73.1%,定位精度得到了較大程度提升。
表1 不同地磁定位方法的平均定位誤差Table 1 Average position errors of different geomagnetic positioning algorithms m
1)定位精度
圖8 為神經(jīng)網(wǎng)絡(luò)融合算法的定位誤差CDF 曲線。當(dāng)CDF 為0.7 時,BP 算法、BP-AdaBoost 算法和BP-AdaBoost-PSO 算法的融合定位誤差在場景1中 分 別 為1.25,1.18,1.17 m,在 場 景2 中 分 別 為1.27,1.16,1.16 m。結(jié)果表明,集成學(xué)習(xí)算法能夠降低單一BP 易陷入局部最優(yōu)導(dǎo)致的定位誤差,提高Wi-Fi 與地磁的融合定位精度。而PSO優(yōu)化前后的算法定位精度基本保持不變。
圖8 神經(jīng)網(wǎng)絡(luò)融合算法定位誤差的CDF 曲線Fig.8 CDF curves of position errors of neural network fusion algorithms
對應(yīng)的平均定位誤差如表2 所示。相較于BP,BP-AdaBoost 和BP-AdaBoost-PSO 的平均定位誤差在定位場景1 中分別降低了6.5%和7.6%,在定位場景2 中分別降低了8.2%和9.3%,而BP-AdaBoost和BP-AdaBoost-PSO 兩者的平均定位誤差在2 個場景中均較為相近。
表2 神經(jīng)網(wǎng)絡(luò)融合算法的平均定位誤差Table 2 Average position errors of neural network fusion algorithms m
2)算法耗時
以平均執(zhí)行耗時作為評價指標(biāo),對神經(jīng)網(wǎng)絡(luò)融合算法耗時進(jìn)行比較分析。
在2 個定位場景下,分別執(zhí)行100 次融合算法并統(tǒng)計各自的平均執(zhí)行耗時,如表3 所示。為了更加直觀地顯示耗時情況,分別在各場景下隨機(jī)選取5 次統(tǒng)計結(jié)果,制成如圖9 所示的柱狀圖。由于BP-AdaBoost 和BP-AdaBoost-PSO 存在迭代過程,在定位場景1 中,其平均執(zhí)行耗時相較于BP 分別增加了49.4%和29.1%。但利用PSO 優(yōu)化后的執(zhí)行耗時較優(yōu)化前減少了28.6%。在定位場景2 中,其平均執(zhí)行耗時相較于BP 分別增加了49.8%和29.4%。但利用PSO 優(yōu)化后的執(zhí)行耗時較優(yōu)化前減少了28.9%。結(jié)果表明,利用PSO 對BP-AdaBoost進(jìn)行優(yōu)化,能夠降低平均執(zhí)行耗時,加快算法收斂。
表3 平均執(zhí)行耗時Table 3 Average execution time s
圖9 執(zhí)行耗時示意圖Fig.9 Diagram of execution time
在2 個定位場景中,分別比較了PDR、BPAdaBoost-PSO 和分層優(yōu)化融合定位方法的定位軌跡,如圖10 所示,圖中行人起始點的真實坐標(biāo)分別為(0.9 m, 1.8 m)和(0.6 m, 0.6 m)。可 以 觀 察 到,2 個定位場景下PDR 定位軌跡均在剛出發(fā)的6 m左右,與真實軌跡接近,隨著時間推移,累積誤差逐漸增大,行走結(jié)束時的坐標(biāo)與真實起始點坐標(biāo)存在較大偏離。
圖10 定位軌跡對比Fig.10 Comparison of positioning trajectories
利用BP-AdaBoost-PSO 算法進(jìn)行Wi-Fi/地磁融合定位時無誤差累積,其定位軌跡與真實軌跡較為貼合,但由于Wi-Fi 信號堆積等原因,BP-AdaBoost-PSO 的部分Wi-Fi/地磁融合定位軌跡與真實軌跡仍存在一定程度偏離。利用PF 進(jìn)一步融合PDR得到的定位軌跡與真實軌跡的偏離程度最小,定位精度得到了較大程度提升。
圖11 為不同定位法對應(yīng)的定位誤差CDF 曲線。當(dāng)CDF 為0.7 時,在定位場景1 中,PDR 和BPAdaBoost-PSO 融合定位誤差分別為2.46 m 和1.17 m,分層優(yōu)化融合定位方法為1.06 m。在定位場景2 中,PDR 和BP-AdaBoost-PSO 融合定位誤差分別為2.52 m 和1.16 m,分層優(yōu)化融合定位方法為1.03 m。結(jié)果表明,本文方法能夠降低由于Wi-Fi 信號堆積導(dǎo)致的定位誤差,同時降低PDR 誤差累積的影響,提高行人運(yùn)動狀態(tài)下的連續(xù)定位精度,進(jìn)一步提高系統(tǒng)整體定位性能。
圖11 定位誤差CDF 曲線對比Fig.11 Comparison of CDF curves of position errors
表4 為不同定位法的平均定位誤差。相較于PDR 和BP-AdaBoost-PSO,本文方法的平均定位誤差在定位場景1 中分別降低了50.4%和25.7%,在定位場景2 中分別降低了52.1%和24.7%,均具有更優(yōu)的定位性能。
表4 融合定位的平均定位誤差Table 4 Average position errors of fusion positioning algorithms m
1)基于Wi-Fi 約束的地磁定位算法的定位精度較傳統(tǒng)k-NN 算法大幅提升。
2)優(yōu)化后的BP-AdaBoost-PSO 算法能夠在保證定位性能的同時,降低算法耗時。
3)不同場景下的定位性能仿真結(jié)果顯示,本文方法能夠較好解決行人運(yùn)動狀態(tài)下定位的連續(xù)性和穩(wěn)定性問題。
本文方法有效降低了行人運(yùn)動狀態(tài)下由地磁誤匹配、Wi-Fi 信號堆積和PDR 誤差累積導(dǎo)致的定位誤差,實現(xiàn)了在復(fù)雜室內(nèi)環(huán)境下的精確連續(xù)定位,為解決行人室內(nèi)定位問題提供了一種新的思路。