陳懷宇,尹達(dá)一,張 泉
(1.中國(guó)科學(xué)院 紅外探測(cè)與成像技術(shù)重點(diǎn)實(shí)驗(yàn)室,上海 200083;2.中國(guó)科學(xué)院 上海技術(shù)物理研究所,上海 200083;3.中國(guó)科學(xué)院大學(xué),北京 100039)
車(chē)輛的導(dǎo)航定位主要是依靠車(chē)載微機(jī)電慣導(dǎo)(MEMS)和全球衛(wèi)星定位系統(tǒng)(GPS)組成的組合導(dǎo)航系統(tǒng),具有導(dǎo)航精度高,連續(xù)全天候工作等性能特點(diǎn)。但是在實(shí)際使用過(guò)程中,需要接收至少4顆衛(wèi)星的信號(hào)才能進(jìn)行定位解算。由于多徑效應(yīng)[1]、衛(wèi)星數(shù)目和外界干擾等實(shí)際因素,或是行駛到被遮擋的道路、隧道、地下等區(qū)域時(shí),GPS不能接收到足夠的衛(wèi)星信號(hào)來(lái)保證全程連續(xù)的穩(wěn)定定位,此時(shí)可以利用MEMS慣導(dǎo)輸出的角增量和速度增量來(lái)進(jìn)行推算定位。然而MEMS的誤差不受抑制的快速發(fā)散,其定位誤差會(huì)隨著時(shí)間的增加而快速的累積[2],因此研究在無(wú)GPS輸出時(shí)的高精度慣導(dǎo)定位具有重要的實(shí)際應(yīng)用價(jià)值。經(jīng)典廣泛采用的方法是建立適當(dāng)?shù)恼`差狀態(tài)系統(tǒng)模型,再通過(guò)卡爾曼(Kalman)濾波等數(shù)據(jù)融合方法進(jìn)行誤差估計(jì),最后根據(jù)誤差估計(jì)對(duì)姿態(tài)、速度和位置進(jìn)行校正[3]。近些年來(lái),隨著深度學(xué)習(xí)模型和無(wú)人駕駛等應(yīng)用結(jié)合的不斷加深,不需要任何先驗(yàn)知識(shí)的人工智能導(dǎo)航定位方法得到了快速的發(fā)展。L.Semeniuk[4]等率先使用單隱藏層的反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)來(lái)預(yù)測(cè)定位和速度誤差,Chen Xiyuan[5]等人將小波神經(jīng)網(wǎng)絡(luò)和強(qiáng)跟隨器相結(jié)合,利用位置信息提出慣導(dǎo)誤差補(bǔ)償方法。Saadeddin K[6]等人總結(jié)了很多基于人工智能的定位誤差抑制算法,提出了自適應(yīng)模糊神經(jīng)網(wǎng)絡(luò)。李宇寰[7]等研究人員將 BPNN作為基模型,引入了Bagging集合模型的方法進(jìn)一步提高定位預(yù)測(cè)效果。
上述研究算法都是基于反向傳播神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),僅對(duì)某一時(shí)刻分析建模來(lái)獲取慣導(dǎo)輸入和位置的關(guān)系,模型沒(méi)有對(duì)慣導(dǎo)誤差的時(shí)序特性進(jìn)行分析的能力,在進(jìn)一步抑制慣導(dǎo)誤差上還有提升空間。在實(shí)際系統(tǒng)中,MEMS陀螺通過(guò)測(cè)量轉(zhuǎn)角的角速度,并對(duì)時(shí)間積分輸出角增量,根據(jù)前一刻的方向來(lái)確定當(dāng)前行駛方向,因此在計(jì)算當(dāng)前車(chē)輛行駛方向時(shí),必將引入前一刻的陀螺儀漂移誤差,形成了累積誤差[8]。本文將時(shí)間序列建模的長(zhǎng)短期記憶網(wǎng)絡(luò)預(yù)測(cè)應(yīng)用到傳統(tǒng)組合導(dǎo)航系統(tǒng)中,以提高M(jìn)EMS慣導(dǎo)定位精度。
對(duì)于通過(guò)加速度計(jì)和陀螺儀進(jìn)行解算的捷聯(lián)慣導(dǎo)(SINS)系統(tǒng),由比力方程[8]:

其中,b、n、e、i分別是載體坐標(biāo)系、導(dǎo)航坐標(biāo)系、地球坐標(biāo)系、地心慣性坐標(biāo)系;vn是相對(duì)于地球的速度矢量;wie是地球自轉(zhuǎn)角速度,wen是載體在地球表面做圓周運(yùn)動(dòng)的角速度矢量,g是重力加速度;bf由捷聯(lián)加速度計(jì)測(cè)量獲得;是姿態(tài)矩陣,即載體捷聯(lián)坐標(biāo)系到導(dǎo)航坐標(biāo)系的轉(zhuǎn)換矩陣;為哥氏加速度,由運(yùn)載體相對(duì)地球運(yùn)動(dòng)(相對(duì)運(yùn)動(dòng))和地球旋轉(zhuǎn)(牽連運(yùn)動(dòng))引起;是運(yùn)載體在地球表面運(yùn)動(dòng)(圓周運(yùn)動(dòng))的向心加速度。

載體位置的更新方程:

其中,P是載體的位置矢量,ξ是載體線速度到經(jīng)緯角速度的轉(zhuǎn)換矩陣。

陀螺儀和加速度計(jì)的輸出為角增量和速度增量,用來(lái)直接計(jì)算得到的位置、速度和姿態(tài)都含有誤差[9]:其中 δP為位置誤差矢量,由式(3)得到位置的誤差傳播方程:



由式(2)得到姿態(tài)誤差矢量角的傳播方程為:

其中,εg為陀螺儀的測(cè)量誤差。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一類(lèi)用于處理序列問(wèn)題的神經(jīng)網(wǎng)絡(luò),相比經(jīng)典的反向傳播神經(jīng)網(wǎng)絡(luò)有非常大的提升,例如參數(shù)共享和構(gòu)建長(zhǎng)期依賴(lài)關(guān)系等。此外循環(huán)網(wǎng)絡(luò)會(huì)有一個(gè)記憶機(jī)制,即當(dāng)前隱藏層的輸入不僅包括輸入層的輸出還包括上一時(shí)刻隱藏層的輸出。而在全連接網(wǎng)絡(luò)中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節(jié)點(diǎn)是無(wú)連接的,所有的輸入(以及輸出)都各自獨(dú)立[10]。RNN的結(jié)構(gòu)如圖1。
1)x(t)為序列索引號(hào)t時(shí)訓(xùn)練樣本的輸入。同樣的,x(t-1)和x(t+1)代表在時(shí)間t-1和t+1時(shí)訓(xùn)練樣本的輸入。

圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structure of Recurrent Neural Network
2)h(t)為時(shí)間 t時(shí)模型的隱藏狀態(tài)。h(t)由x(t)和上一時(shí)刻的狀態(tài)h(t-1)共同決定。
3)o(t)為時(shí)間t時(shí)模型的輸出。o(t)只由模型當(dāng)前的隱藏狀態(tài)h(t)決定。
4)L(t)為時(shí)間t時(shí)模型的損失函數(shù)。
5)y(t)為時(shí)間t時(shí)訓(xùn)練樣本序列的真實(shí)輸出。
6)U、W、V這三個(gè)矩陣是模型的線性關(guān)系參數(shù),它在整個(gè)RNN網(wǎng)絡(luò)中是共享的。
RNN的前向傳播算法:隱藏狀態(tài)h(t)由t時(shí)刻輸入x(t)和上一時(shí)刻隱藏狀態(tài)h(t-1)得到如式(9)所示[11]:

σ為激活函數(shù),一般為sigmoid函數(shù),b為線性偏置。預(yù)測(cè)輸出如式(10)所示:

通過(guò)損失函數(shù)L(t),可以量化模型在當(dāng)前時(shí)刻的損失,即和y(t)的差距。利用誤差反向傳播訓(xùn)練參數(shù),使模型損失函數(shù)最小,得到最終的權(quán)值參數(shù)。
為避免RNN訓(xùn)練過(guò)程中重復(fù)使用W、U帶來(lái)的梯度爆炸或梯度消失的問(wèn)題,提出了長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM),它與RNN一樣都具有一種重復(fù)的網(wǎng)絡(luò)模塊,但LSTM的內(nèi)部單元結(jié)構(gòu)進(jìn)行了改進(jìn),增加了遺忘機(jī)制和保存機(jī)制,網(wǎng)絡(luò)的單元傳播結(jié)構(gòu)如圖2。

圖2 長(zhǎng)短期記憶網(wǎng)絡(luò)單元內(nèi)傳播結(jié)構(gòu)Fig.2 Structure of cell in LSTM
LSTM使用門(mén)控機(jī)制控制前一時(shí)間步隱藏層保留的信息和當(dāng)前時(shí)間步輸入的信息,并選擇性地輸出一些值而作為該單元的激活值。
四個(gè)控制門(mén)分別是:i為輸入門(mén);f為遺忘門(mén);o為輸出門(mén);g為門(mén)限門(mén)。
LSTM單元的傳播公式如(11)所示:

對(duì)于定位預(yù)測(cè)模型,作為輸出的位置增量為東向和北向位置增量,而輸入為不同時(shí)刻下MEMS慣導(dǎo)輸出增量的序列:
訓(xùn)練部分的詳細(xì)流程如圖 3所示。當(dāng) GPS定位信號(hào)存在時(shí),利用定位誤差,通過(guò)反向傳播的隨機(jī)梯度下降法來(lái)計(jì)算神經(jīng)網(wǎng)絡(luò)參數(shù)的梯度gt。

圖3 訓(xùn)練模式Fig.3 Training mode
訓(xùn)練集的數(shù)據(jù)量是模型訓(xùn)練的關(guān)鍵,本次通過(guò)實(shí)際行駛試驗(yàn)采集的數(shù)據(jù)量達(dá)到了70萬(wàn)以上,每條數(shù)據(jù)包含MEMS慣導(dǎo)輸出和GPS位置信息。
最后使用自適應(yīng)時(shí)刻估計(jì)(ADAM)優(yōu)化方法來(lái)更新網(wǎng)絡(luò)參數(shù)。本質(zhì)上是帶有動(dòng)量項(xiàng)的參數(shù)更新算法,它利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率。優(yōu)點(diǎn)主要在于經(jīng)過(guò)偏置校正后,每一次迭代學(xué)習(xí)率都有個(gè)確定范圍,使得參數(shù)比較平穩(wěn)。
算法步驟如下:
1)先計(jì)算對(duì)梯度的一階矩估計(jì)和二階矩估計(jì)mt、nt:

其中,μ=0.9、ν=0.999分別為一階矩估計(jì)和二階矩估計(jì)的衰減率。
2)再計(jì)算無(wú)偏估計(jì)的校正值:
3)最后計(jì)算梯度更新值,η=0.01為學(xué)習(xí)率:

訓(xùn)練的硬件平臺(tái)為 CPU:i7-7700k,顯卡1080Ti,使用 Python3.6和 Tensorflow1.1框架來(lái)編程搭建,前10次ADAM優(yōu)化訓(xùn)練結(jié)果與無(wú)優(yōu)化的隨機(jī)梯度下降(SGD)結(jié)果比較如圖4所示,收斂速度和精度都有很大的提高。

圖4 前10次迭代更新的損失Fig.4 Losses from the previous 10 iterations
將訓(xùn)練完成之后的參數(shù)保存,對(duì)測(cè)試集的數(shù)據(jù)進(jìn)行驗(yàn)證,如圖5所示。

圖5 預(yù)測(cè)模式Fig.5 Prediction mode
為了驗(yàn)證本文提出的在 GPS信息丟失條件下的MEMS定位方法,在上海市虹口區(qū)中科院上海技術(shù)物理研究所周邊,使用搭載 SBGSYSTEM 公司的ECLLIPSE-N系列MEMS慣導(dǎo)產(chǎn)品和GPS接收天線的汽車(chē)進(jìn)行試驗(yàn),MEMS內(nèi)置三軸加速度計(jì)和陀螺儀,安裝在車(chē)輛后輪軸中間的上方,GPS接收天線安裝在車(chē)頂。x軸正方指向汽車(chē)前進(jìn)的方向,y軸正方向與前進(jìn)方向垂直指向水平右向,z軸正方向垂直指向地面。
MEMS慣導(dǎo)中陀螺儀和加速度計(jì)輸出頻率為50 Hz。GPS接收的采樣率為 5 Hz,在訓(xùn)練階段與MEMS進(jìn)行組合導(dǎo)航,在預(yù)測(cè)階段計(jì)算定位誤差。
車(chē)輛在靜止情況下完成初始對(duì)準(zhǔn)并在時(shí)速達(dá)到10 km/h的時(shí)候自動(dòng)轉(zhuǎn)入導(dǎo)航模式。
在中科院上海技術(shù)物理研究所周邊如圖6地圖上所標(biāo)示的路線上行駛10次作為本次實(shí)驗(yàn)的數(shù)據(jù)集,因?yàn)槊看涡旭偁顩r各有不同,如不同時(shí)刻加減速、車(chē)道變換等,導(dǎo)致每次行駛的慣導(dǎo)序列數(shù)據(jù)也都有很大的差別,所以每次行駛都是互相獨(dú)立的。訓(xùn)練和驗(yàn)證采用機(jī)器學(xué)習(xí)中的交叉驗(yàn)證方法[12]:隨機(jī)選取數(shù)據(jù)集中7次作為訓(xùn)練集,慣導(dǎo)輸出和GPS數(shù)據(jù)一起作為訓(xùn)練數(shù)據(jù);1次作為驗(yàn)證集,用于模型的調(diào)參;2次作為GPS信號(hào)丟失的測(cè)試集,利用訓(xùn)練得到的最優(yōu)模型,輸入 MEMS慣導(dǎo)數(shù)據(jù)來(lái)預(yù)測(cè)定位,并與實(shí)際的 GPS定位數(shù)據(jù)進(jìn)行比較計(jì)算。

圖6 行駛路線Fig.6 The driving routes
通過(guò)驗(yàn)證集對(duì)網(wǎng)絡(luò)的參數(shù)進(jìn)行確定,在序列長(zhǎng)度大于100以及隱藏層大于50模型訓(xùn)練緩慢,且容易出現(xiàn)過(guò)擬合的情況,因此把序列長(zhǎng)度[10, 20, 30, 40, 50, 60,70, 80, 90]和隱藏層神經(jīng)元數(shù)[5, 10, 15, 20, 25, 30, 45, 50]自由組合,進(jìn)行訓(xùn)練得到的模型在驗(yàn)證集上進(jìn)行評(píng)估,得到以上組合最優(yōu)的網(wǎng)絡(luò)參數(shù)如表1所示。

表1 神經(jīng)網(wǎng)絡(luò)參數(shù)Tab.1 Parameters of the neural network
繪制訓(xùn)練過(guò)程的學(xué)習(xí)曲線如圖7所示,觀察驗(yàn)證集誤差曲線一直在有效地減小,在訓(xùn)練樣本數(shù)大于5次時(shí)驗(yàn)證集誤差和訓(xùn)練集誤差已經(jīng)趨于接近,即此時(shí)訓(xùn)練樣本數(shù)可以滿足模型訓(xùn)練需求,沒(méi)有欠擬合現(xiàn)象,模型在驗(yàn)證集上的預(yù)測(cè)效果已經(jīng)基本達(dá)到了模型的最佳性能。

圖7 訓(xùn)練學(xué)習(xí)曲線圖Fig.7 Curves of learning
試驗(yàn)結(jié)果通過(guò)三種方法來(lái)進(jìn)對(duì)比分析:1)使用MEMS慣導(dǎo)輸出的數(shù)據(jù)(加速度計(jì)和陀螺儀的輸出增量)直接推算;2)使用反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)訓(xùn)練之后進(jìn)行預(yù)測(cè);3)使用長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)進(jìn)行訓(xùn)練之后來(lái)預(yù)測(cè)定位。三種方法計(jì)算的路線結(jié)果和地圖路線如圖8所示,車(chē)輛總行駛時(shí)間為1400 s。

圖8 三種定位方法的路線計(jì)算結(jié)果Fig.8 Route results of the three methods
使用交叉驗(yàn)證的方法重復(fù)3次可以得到3個(gè)預(yù)測(cè)模型和對(duì)應(yīng)的3個(gè)測(cè)試結(jié)果,對(duì)所有結(jié)果取平均來(lái)驗(yàn)證模型的最終性能。采用定位誤差的累積值:來(lái)度量比較計(jì)算三種定位方法的東向和北向的誤差,如圖9所示。
通過(guò)試驗(yàn)結(jié)果分析得出,通過(guò)MEMS的輸出數(shù)據(jù)直接推導(dǎo)的誤差非常大,在出發(fā)之后出現(xiàn)了快速的發(fā)散,在1400 s時(shí)誤差率達(dá)到了156.42%。相比于直接推導(dǎo)的計(jì)算方法,另外兩種使用神經(jīng)網(wǎng)絡(luò)進(jìn)行定位的結(jié)果在整個(gè)行駛過(guò)程中準(zhǔn)確性較好。
反向傳播神經(jīng)網(wǎng)絡(luò)無(wú)法利用 MEMS慣導(dǎo)輸出的時(shí)序特性,在車(chē)輛運(yùn)動(dòng)狀態(tài)發(fā)生較大變化時(shí)(如航向變化和大加速度情況)會(huì)產(chǎn)生較大的誤差,因此相較于反向傳播神經(jīng)網(wǎng)絡(luò)算法,LSTM網(wǎng)絡(luò)的定位誤差率進(jìn)一步降低到了 2.45%。三種方法行駛過(guò)程中的誤差值如表2所示。

圖9 三種方法的定位誤差比較Fig.9 Positioning errors of the three methods

表2 三種方法的定位誤差Tab.2 Positioning errors
把訓(xùn)練好的模型參數(shù)儲(chǔ)存好,以上海金科路地鐵站為起點(diǎn)進(jìn)行65 min的行駛試驗(yàn)。使用前面行駛實(shí)驗(yàn)已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型對(duì)導(dǎo)航定位進(jìn)行預(yù)測(cè),行駛路線如圖10所示。
行駛定位誤差結(jié)果如表3所示,可以看出在40 min內(nèi)LSTM網(wǎng)絡(luò)定位保持在較高的精度,相較于直接慣導(dǎo)輸出的東向定位差提高 97.65%,比全連接網(wǎng)絡(luò)提高78.02%。在1 h之后由于長(zhǎng)期沒(méi)有GPS標(biāo)準(zhǔn)定位信號(hào)的校正,模型的定位誤差都開(kāi)始有一定的發(fā)散,本文訓(xùn)練的 LSTM 網(wǎng)絡(luò)較傳統(tǒng)全連接網(wǎng)絡(luò)仍有73.3%的提高。

表3 三種方法的定位誤差Tab.3 Positioning errors

圖10 三種方法的計(jì)算結(jié)果和行駛路線Fig.10 Results of the three methods and the driving route
在車(chē)輛行駛到信號(hào)被嚴(yán)重遮擋區(qū)域,此時(shí) GPS無(wú)法進(jìn)行有效定位,需要借助車(chē)載MEMS慣導(dǎo)來(lái)導(dǎo)航定位,然而MEMS慣導(dǎo)的直接測(cè)量測(cè)量誤差很大,無(wú)法直接用于車(chē)輛的導(dǎo)航定位。
針對(duì)此問(wèn)題,研究了在 GPS/MEMS組合導(dǎo)航上加入人工智能算法輔助定位的方法,本質(zhì)上是在GPS信號(hào)強(qiáng)時(shí)利用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)學(xué)習(xí) MEMS慣導(dǎo)輸出與實(shí)際定位信息的誤差關(guān)系,在GPS信號(hào)丟失短期內(nèi)可以準(zhǔn)確預(yù)測(cè)定位。人工智能輔助定位的方法主要是有訓(xùn)練開(kāi)銷(xiāo)大的缺點(diǎn),針對(duì)不同型號(hào)的慣導(dǎo)器件需要重新訓(xùn)練,也可以采用遷移學(xué)習(xí)[13]的方法,將已經(jīng)訓(xùn)練好的模型參數(shù)作為新模型的起始參數(shù)加快訓(xùn)練。本文采用交叉驗(yàn)證的方法來(lái)劃分?jǐn)?shù)據(jù)集以提高模型的泛化能力,同時(shí)使用 ADAM 方法來(lái)加速訓(xùn)練過(guò)程。與全連接深度網(wǎng)絡(luò)不同的是,有記憶能力的LSTM能學(xué)習(xí)慣導(dǎo)信息之間的整體邏輯序列。實(shí)際行駛表明基于LSTM的MEMS慣導(dǎo)定位方法可以有效地提高定位精度,本文實(shí)現(xiàn)的LSTM定位模型在短期的1400 s的實(shí)際行駛測(cè)試中達(dá)到了2.45%的誤差率,在60 min較長(zhǎng)的無(wú)GPS輔助定位預(yù)測(cè)中相比于MEMS慣導(dǎo)直接推算定位精度提高了94.62%,相較于BPNN定位模型提高了73.03%,能夠?qū)崿F(xiàn)高精度的導(dǎo)航定位。