劉 宇,王偉偉,邸 克,路永樂
(重慶郵電大學光電工程學院,重慶 400065)
隨著科學技術(shù)的快速發(fā)展,研究學者對行人導航定位技術(shù)進行了許多研究。目前較為成熟的行人導航定位技術(shù)主要有:GPS定位技術(shù)[1]、WiFi定位技術(shù)[2]、UWB(Ultra Wideband,超寬帶)定位技術(shù)[3]、地磁定位技術(shù)[4]、PDR定位技術(shù)[5]、藍牙定位技術(shù)[6]等。由于單一的定位技術(shù)無法實現(xiàn)行人室內(nèi)外無縫定位,因此,提供能夠連接室內(nèi)外環(huán)境的無縫定位服務(wù)已成為一個關(guān)鍵問題[7]。目前,針對室內(nèi)外無縫定位技術(shù),國內(nèi)外許多研究學者進行了相關(guān)研究。文獻[8]提出了一種基于GPS/WiFi的定位算法,該算法可以減少頻繁出入室內(nèi)外所導致的位置估計所需時間,但是WiFi定位信號不穩(wěn)定容易受到周邊環(huán)境的影響,并且WiFi定位需要耗費大量的采集工作。文獻[9]提出了一種基于GPS/UWB的融合定位技術(shù),該系統(tǒng)可以實現(xiàn)室內(nèi)外定位,但是需要提前部署基站,成本高,不易于大范圍的推廣。文獻[10]提出了基于自適應(yīng)加權(quán)算法的WLAN/MARG/GPS組合定位系統(tǒng),雖然能夠?qū)崿F(xiàn)室內(nèi)外無縫定位,但算法復雜度過大。文獻[11]提出了基于GPS與Wi-Fi的室內(nèi)外無縫定位原型系統(tǒng),通過引入alpha-count方法來增加室內(nèi)外切換的平滑性以及可靠性,但是WiFi指紋定位同樣存在數(shù)據(jù)庫采集工作量大。文獻[12]提出了GPS/PDR的組合定位濾波方法,利用無跡卡爾曼濾波算法對GPS和PDR數(shù)據(jù)進行融合,但是由于UKF濾波器采用的假定信號噪聲為高斯白噪聲,容易導致濾波結(jié)果出現(xiàn)偏差。
針對上述問題,本文結(jié)合GPS定位技術(shù)和PDR定位技術(shù)兩者的優(yōu)勢,提出了一種基于PDR和GPS的室內(nèi)外無縫定位系統(tǒng),并加以仿真驗證,從而實現(xiàn)室內(nèi)外無縫定位。
本文研究的基于模擬退火優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的室內(nèi)外無縫定位方法,整體方案如下:第一,針對GPS和PDR定位結(jié)果處于不同坐標系下難以進行融合的問題,在進行數(shù)據(jù)融合前進行坐標系的轉(zhuǎn)化;第二,建立算法模型,并對其進行仿真;第三,使用模擬退火優(yōu)化后的神經(jīng)網(wǎng)絡(luò)對PDR與GPS定位結(jié)果進行室內(nèi)外融合定位。該方案可以有效降低PDR定位隨時間而產(chǎn)生的累計誤差,并且解決GPS定位易受外界影響導致定位不連續(xù)的問題,實現(xiàn)為行人提供長時間高精度的室內(nèi)外無縫定位的效果。系統(tǒng)整體方案如圖1所示。
圖1 系統(tǒng)整體方案圖
PDR定位算法可以通過慣性測量單元測出的傳感器數(shù)據(jù)結(jié)合用戶上一時刻狀態(tài)的位置信息來推算出下一時刻狀態(tài)的用戶具體位置。該方法需要根據(jù)步態(tài)特征,建立相應(yīng)的步頻、步長估算數(shù)學模型。之后,再結(jié)合航向角及初始位置這兩項相關(guān)信息數(shù)據(jù)進行解算,便可完成位置的遞歸計算,進一步推算出行人的當前位置,從而進行定位。由于速度的航向信息和姿態(tài)信息在行進過程中會出現(xiàn)偏差,這也是導致PDR算法存在累積誤差的主要原因。PDR定位算法的原理如圖2所示。PDR定位算法的推導公式如式(1)所示。
(1)
圖2 PDR 算法原理圖
其中,(xk,yk)為第k步的位置坐標,(x0,y0)為初始位置坐標,Si代表第i步的步長,由步長估計模型獲得,θi為第i步的航向。
為了優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值,加快神經(jīng)網(wǎng)絡(luò)的收斂速度以及避免其陷入局部最優(yōu)解,本文提出了一種基于模擬退火優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的室內(nèi)外無縫定位算法,對PDR定位結(jié)果和GPS定位結(jié)果向真實位置坐標方向進行訓練,從而獲得最優(yōu)組合定位結(jié)果。
在使用BP神經(jīng)網(wǎng)絡(luò)對PDR定位結(jié)果坐標和GPS定位結(jié)果坐標進行訓練之前,必須先將GPS與PDR兩者的位置坐標轉(zhuǎn)換到同一坐標系下。本文采取將GPS所使用的WGS-84坐標系下的定位結(jié)果坐標轉(zhuǎn)換為PDR所使用的東北天坐標系坐標,然后作為BP神經(jīng)網(wǎng)絡(luò)的輸入。轉(zhuǎn)換方法為:先將GPS的坐標(L,B,H)轉(zhuǎn)換為地球直角坐標(X,Y,Z);再將地球直角坐標(X,Y,Z)轉(zhuǎn)換為東北天坐標(E,N,U)。具體轉(zhuǎn)換公式如下所示
(2)
(3)
其中,(X0,Y0,Z0)為行人起始點的地球直角坐標,(Xi,Yi,Zi)為第i時刻的地球直角坐標,(Xi0,Yi0,Zi0)為行人相對起始點的相對位移。
(4)
其中,(Ei,Ni,Ui)為第i時刻的東北天坐標。
4.2.1 BP神經(jīng)網(wǎng)絡(luò)建模
圖3是由輸入層、隱含層和輸出層組成的典型三層BP神經(jīng)網(wǎng)絡(luò)。
圖3 典型三層BP神經(jīng)網(wǎng)絡(luò)
其中,Wij為輸入層到隱含層的權(quán)向量,Wjl為隱含層到輸出層的權(quán)向量。
神經(jīng)網(wǎng)絡(luò)中各層節(jié)點的激活函數(shù)設(shè)置為最常用的ReLU(Rectified Linear Unit)函數(shù)
(5)
用大寫字母I、J、L分別表示輸入層、隱含層和輸出層,用上標in、out分別表示輸入和輸出,用下標i、j、l分別表示輸入層、隱含層和輸出層的第i、j、l個節(jié)點。
則各層的輸入輸出分別為
(6)
(7)
(8)
(9)
(10)
4.2.1 確定神經(jīng)元個數(shù)
將本文所研究的室內(nèi)外無縫定位中的PDR定位結(jié)果坐標(xpi,ypi)和GPS定位結(jié)果坐標(xgi,ygi)作為神經(jīng)網(wǎng)絡(luò)的輸入層,融合后的坐標作為神經(jīng)網(wǎng)絡(luò)的輸出層。因此,神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個數(shù)為4,輸出層神經(jīng)元個數(shù)為2。隱含層的神經(jīng)元個數(shù)根據(jù)經(jīng)驗式(11)確定。
(11)
式中,m為隱含層神經(jīng)元數(shù)量,n為輸入層神經(jīng)元數(shù)量,l為輸出層神經(jīng)元數(shù)量,a為1-10之間的常數(shù)。因此,神經(jīng)網(wǎng)絡(luò)隱含層的神經(jīng)元個數(shù)設(shè)置為8。
SA 算法模擬固體的退火過程,可以分為:加熱、等溫和降溫三個過程。SA算法在等溫過程中可以以一定概率接受部分惡化解,從而避免陷入局部最優(yōu)解,使得算法最終尋得全局最優(yōu)解。因此,本文利用模擬退火對神經(jīng)網(wǎng)絡(luò)的權(quán)值進行優(yōu)化,從而避免BP神經(jīng)網(wǎng)絡(luò)陷入局部極小值,達到對BP神經(jīng)網(wǎng)絡(luò)進行優(yōu)化。算法主要步驟為:
步驟1:算法初始化。
設(shè)置初始溫度T0,馬爾科夫鏈的長度L,構(gòu)建BP神經(jīng)網(wǎng)絡(luò),隨機設(shè)置神經(jīng)網(wǎng)絡(luò)的權(quán)值并得出初始解向量S0。
步驟2:擾動。
在第k步,根據(jù)如式(12)所示的擾動函數(shù)由前一個解向量Sk產(chǎn)生新解Sk+1。
f(k+1)=f(k)+ηξ
(12)
其中,η為擾動幅度,ξ為隨機擾動變量。
步驟3:計算增量。
計算Sk+1的增量dE=E(Sk+1)-E(Sk),其中E(Sk)為E(Sk)對應(yīng)的平方誤差。
步驟4:Metropolis接收判斷
根據(jù)如式(13)所示的Metropolis準則判斷是否接受新解。如果增量dE<0,則以概率1接收新解。否則首先在區(qū)間[0,1]產(chǎn)生一個均勻分布的隨機數(shù)ε,如果ε
(13)
步驟5:內(nèi)循環(huán)終止判斷
本文選用時齊模擬作為內(nèi)循環(huán)的判斷條件。即將每一溫度下的馬爾科夫鏈長度L遍歷完時在進行降溫操作。
步驟6:降溫
本文選用應(yīng)用較多的如式(14)所示溫度衰減函數(shù)進行降溫操作。
Tk+1=αTk(k=0,1,2,3…)
(14)
其中,Tk為溫度下降K次的溫度,Tk+1為經(jīng)過一次降溫后的溫度;α∈(0.5,0.99)中的任一常數(shù)。
步驟7:外循環(huán)終止判斷
本文選用循環(huán)總數(shù)控制法作為外循環(huán)的判斷條件。即設(shè)定溫度下降的總次數(shù),當循環(huán)次數(shù)達到總次數(shù)時,結(jié)束算法,否則跳回到步驟2。
最終得到SA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的算法流程圖如圖5所示。
圖4 SA-BP 算法流程圖
為了驗證模擬退火算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)的性能,本文使用事先采集好的一組PDR定位和GPS定位的Y軸坐標數(shù)據(jù)進行融合仿真分析。訓練樣本采集自場景為GPS信號良好的一條 550m長的直線區(qū)域,具體采樣規(guī)則如表1。仿真時使用的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為2-6-1,即輸入層的神經(jīng)元節(jié)點個數(shù)為2個,隱含層的神經(jīng)元節(jié)點個數(shù)為6個,輸出層的神經(jīng)元節(jié)點個數(shù)為1個。
表1 訓練數(shù)據(jù)采樣規(guī)則
1)未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)的訓練輸出及誤差
使用未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)得到的Y軸坐標訓練輸出和訓練誤差曲線分別如圖5和圖6所示。
圖5 未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)訓練輸出
圖6 未優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)誤差曲線
2)SA優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)訓練輸出及誤差
使用SA算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)得到的Y軸坐標訓練輸出和訓練誤差曲線分別如圖7和圖8所示。
圖7 SA優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)訓練輸出
圖8 SA優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)誤差曲線
從圖7和圖8可以看出,使用SA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的預測結(jié)果更加精確,并且優(yōu)化后的平均絕對誤差為0.568m,而未優(yōu)化的平均絕對誤差為1.837m,預測平均絕對誤差降低了約69%,驗證了該融合算法的可行性。
為了對本文提出的基于SA優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的室內(nèi)外無縫定位算法進行驗證,選取某室內(nèi)外場景進行了實驗。在進行實驗前,先從高德地圖獲取到實驗區(qū)域的衛(wèi)星圖,并在圖上標出實驗行走路線,實驗行走路線為A-B-C-D-E-F-G-H-A,其中A-B段和H-A段是室外環(huán)境,B-C-D-E-F-G-H為室內(nèi)環(huán)境。具體實驗行走路線和實驗使用的設(shè)備如圖9所示。實驗過程中,將PDR定位設(shè)備固定于行人后腰正中央,GPS固定于行人的右肩,設(shè)備采集的數(shù)據(jù)以txt保存在筆記本電腦上,最后使用MATLAB對采集得到的實驗數(shù)據(jù)進行處理分析,可以得到不同定位方式的結(jié)果對比圖如圖10所示。
圖9 實驗路線和實驗設(shè)備圖
圖10 不同定位方法的結(jié)果對比
從圖10可用看出,PDR定位方法在一開始擁有較好的精度,但是隨著時間的推移,誤差不斷變大,當回到原點的時候,定位精度已經(jīng)無法滿足定位需求。而SA-BP算法融合得到的定位精度誤差隨時間的推移變化不大,滿足定位需求。
通過對數(shù)據(jù)進行分析處理,可以得出不同定位方式的平均誤差如表2。從下表可以看出,使用 SA-BP 算法處理后得到的定位精度比單一PDR定位精度提升了約55.11%。
表2 不同定位方式的平均誤差
為了解決行人在室內(nèi)外移動定位不連續(xù)以及定位精度低的問題,本文提出了一種基于模擬退火算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的室內(nèi)外無縫定位算法。本文所提出的算法具有計算量小和簡單易實現(xiàn)的優(yōu)點。采用SA算法對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值進行優(yōu)化,從而避免其陷入局部最優(yōu)解,并通過仿真驗證得到其平均絕對誤差下降了約69%,通過實驗驗證其定位精度可以達到1.089%,較單一PDR定位精度提升了約55.11%。通過使用該算法,可以解決PDR定位累計問題以及GPS定位不連續(xù)問題,從而實現(xiàn)行人室內(nèi)外無縫定位。