王雅婷,劉建業,2,熊 智,2,楊 闖
(1.南京航空航天大學導航研究中心,南京 211106;2.先進飛行器導航、控制與健康管理工業和信息化部重點實驗室,南京 211106)
現階段,同步定位與地圖構建(Simultaneous Localization and Mapping,SLAM)是無人機在動態復雜環境下進行導航與定位的主要方法之一。其原理是通過建立模型感知周圍環境的信息,完成自定位并構建環境地圖,進而解決機器人在未知環境中的自主運動問題。經過多年研究,視覺SLAM成為解決無人機SLAM問題的經典方法之一,視覺傳感器成本低廉,應用廣泛,但容易受光照和天氣等環境因素影響且智能化水平較低。同時,現有的視覺SLAM后端處理主要采用基于概率模型的方法,需要建立真實世界和載體運動的準確模型,算法復雜度高。在此情況下,亟需發展能適應無人機復雜飛行環境的魯棒性強、智能化水平高的新型定位建圖方法[1]。
動物擁有記憶目標與適應環境的導航能力,這為解決上述問題提供了較好的生物模型,其中構建認知地圖是動物導航能力的核心[2]。近年來,動物構建認知地圖的神經機制得到了研究,哺乳動物大腦海馬區和內嗅皮層中頭朝向細胞、網格細胞、位置細胞等關鍵生物導航細胞被神經學家們陸續發現。對生物導航細胞編碼建立的類腦導航細胞神經網絡模型,模擬了類腦細胞的部分特性,有潛力實現無人機在復雜動態環境下的準確定位并構建認知地圖[3]。
目前,已有學者研究出一些基于生物導航細胞神經網絡模型的類腦認知地圖構建方法:M.J.Milford及其團隊研發了RatSLAM模型,成功實現了大規模的持續2周[4]導航和在二維空間中繪制認知地圖的功能[5]。基于RatSLAM模型,研究者們又研發了許多擴展模型,例如Steckel等開發了運用聲吶感知的BatSLAM模型;Silveira等將RatSLAM與位置細胞三維模型結合,能夠探索水下三維環境;F.Yu等開發了能夠表示機器人在三維空間四自由度位姿信息的NeuroSLAM模型,并在模擬場景和真實場景下進行了試驗[6]。
從現有類腦認知地圖構建方法研究來看,建立細胞二維模型并構建二維類腦認知地圖的研究較多,而針對導航細胞構建三維模型的研究相對匱乏;傳感輸入主要采用掃描線強度剖面法,較難準確解算三維位姿,導致最終構建的認知地圖誤差較大。為解決上述問題,本文在上述文獻研究的基礎上,提出了一種基于雙目視覺的類腦三維認知地圖構建方法:闡述了類腦三維認知地圖系統的工作原理,研究了基于雙目視覺的類腦三維認知地圖精度優化方法,設計了基于視覺數據集的類腦三維認知地圖構建試驗,并對比分析了不同視覺里程計精度對認知地圖精度的影響。
類腦三維認知地圖構建系統的基本框架如圖1所示。流程如下:首先通過視覺傳感器如相機等采集圖片作為視覺前端輸入數據,再對圖像進行預處理(裁剪、正則化等),通過視覺里程計模塊算出四自由度(三維位置以及航向角)的位姿信息并繪制里程計地圖,同時在視覺模板模塊處理視覺信息,生成或激活位置細胞。接著對頭朝向細胞、網格細胞以及位置細胞進行建模,并將里程計解算得到的位姿信息輸入至導航細胞神經網絡,在頭朝向細胞神經網絡中解碼出當前航向角,在網格細胞神經網絡中激活細胞并執行三維路徑積分,然后更新神經網絡中的細胞活性,最后通過網格細胞和頭朝向細胞得到當前四自由度位姿,創建空間經歷點并繪制三維認知地圖。
1.2.1 視覺模塊組織構架
圖2展示了認知地圖構建系統的視覺模塊組織架構。首先利用相機等視覺傳感器采集圖片作為視覺模塊的輸入數據。視覺里程計能夠將圖片信息通過計算轉化成相機的自運動信息,包括平移速度、高度速度和角速度。除此之外,視覺模板能夠激活位置細胞,記憶視覺圖片及其對應的自運動信息,當出現熟悉場景時進行回環校正。

圖2 視覺模塊組織架構
1.2.2 視覺里程計
認知地圖構建系統通過視覺里程計模塊,將解算得到的自運動信息和視覺圖像信息輸入至導航細胞神經網絡,驅動頭朝向細胞、網格細胞和位置細胞的路徑積分過程。本文選取了掃描線強度剖面法、單目視覺里程計和雙目視覺里程計等三類較為代表性的視覺里程計,對比分析了其運動精度以及不同里程計對類腦認知地圖精度的影響。
(1)掃描線強度剖面法
現有認知地圖構建方法如NeuroSLAM模型[6],采用掃描線強度剖面法提取自運動信息。它以相鄰圖片的剖面差乘上固定經驗值作為無人機的真實速度,是一種簡單高效的算法。但其不足之處有:1)此算法實際上與光流法(直接法)原理類似,在光照變化比較大的環境下魯棒性較差;2)計算速度和角速度的公式都需要乘上固定的經驗值,但是圖像中包含的信息在復雜環境下并不一致,導致經驗值實際不固定,使得計算的速度在動態環境下精度較差。因此,掃描線強度剖面法一般適用于路徑簡單、干擾較少的視覺場景,建圖路徑稍微復雜便可能難以保證認知地圖的拓撲一致性。
(2)單目視覺里程計算法
單目視覺里程計采用單目相機作為傳感器,成本低、環境適應性較強。本文試驗部分采用單目視覺里程計算法,首先對三維地標初始化,再跟蹤相鄰兩幀圖片間的關鍵點,最終利用建立的二維到三維坐標對應關系進行姿態估計[7]。但單目視覺算法最大的問題是無法確定目標的絕對深度,存在無法自主確定運動軌跡尺度的情況,一般需要已知空間中某兩點間距離,或者結合其他傳感器[8]。因此,僅依賴單目視覺里程計一般較難進行長時間的定位與建圖,時間越長,認知地圖的漂移率會越高。
(3)雙目視覺里程計算法
在視覺里程計領域,雙目相機利用固定的內參矩陣,通過匹配獲得場景深度,解決了單目里程計尺度模糊的問題,適合長時間、大范圍穩定工作[9]。為提高系統的導航定位能力,優化視覺前端自運動信息提取算法,本文重點研究了一種基于特征匹配、選擇與跟蹤的雙目視覺里程計算法,通過如圖3所示的四邊形閉環方法匹配特征點[10],利用基于隨機抽樣一致(Random Sample Consensus, RANSAC)的異常值排除方案移除獨立移動對象上的特征點[11],并跟蹤相鄰幀之間的特征點關聯[12]。

(a)匹配成功示意圖
將前一時刻圖像的特征點云三角化,基于式(1)重新投影到當前時刻平面圖像上
(1)

1.2.3 視覺模板
視覺模板模塊通過SAD算法計算圖像的像素強度剖面,對比視覺信息,完成回環檢測與校準。圖4中,每個位置細胞都有視覺模板剖面強度圖與其相匹配,如圖中的PC1和PC2。將當前時刻新計算得到的剖面圖與歷史視覺模板進行比較,如果強度差小于依據經驗設定的閾值,系統就會判定經歷回環,將當前圖片與之前的視覺模板相匹配,并激活第一次經歷該場景的位置細胞,調用其存儲的位置信息為輸出以減少累計誤差,例如圖中的PC3;如果計算得到的強度差大于設定的閾值,系統就會判定在探索新場景,生成新的視覺模板并創建對應的新位置細胞,例如圖中的PC4。

圖4 視覺模板剖面強度匹配流程圖
連續吸引子神經網絡通過編碼吸引子表示位姿信息,僅當吸引子嚴格沿流形連續移動時,外部輸入才能驅動吸引子移動,更新信息編碼,具有較強的魯棒性[15],因此本文選擇吸引子神經網絡模型對生物導航細胞進行建模。
文本提出的類腦三維認知地圖構建系統,在細胞建模部分采用F.Yu等提出的方法[6]:使用二維連續吸引子神經網絡模型建模頭朝向細胞,用于表示高度和航向角;三維連續吸引子神經網絡模型建模網格細胞,用于表示三維位置。此外,系統還利用視覺模板匹配模擬的位置細胞,對頭朝向細胞和網格細胞進行回環檢測與校正,提高了導航定位的精度。
1.3.1 多層頭朝向細胞建模
多層頭朝向細胞神經網絡如圖5所示。它是由一組具有固定加權連接值的單元組成的神經網絡,主要通過更改在0~1之間的數值更新神經細胞的活性。細胞活性更新的步驟如下:首先,根據雙目視覺里程計計算得到的信息,將激勵輸入至頭朝向細胞網絡中,頭朝向細胞的活性將通過吸引子動力學方程,按照局部興奮、局部抑制和全局抑制步驟變化;接著,頭朝向細胞神經網絡將接收網格細胞神經網絡路徑積分得到的高度變化速度、水平變化速度和角度變化速度等信息,實現位姿信息的更新;最后,當出現熟悉的視覺場景時,頭朝向細胞神經網絡會調用位置細胞存儲的之前的位姿信息,實現校準。

圖5 多層頭朝向細胞神經網絡
1.3.2 網格細胞三維模型
與建立頭朝向細胞模型方法類似,本文使用三維連續吸引子神經網絡建模網格細胞,表示各個三維區域中位置和方向等度量信息。圖6所示為三維網格細胞神經網絡,三維環境中的每個區域均由網絡中特定的吸引子神經元編碼,再根據自運動信息進行路徑積分,更新位姿信息。網格細胞活性更新的步驟與多層頭朝向細胞類似,同樣地,當出現熟悉的視覺場景時,網格細胞神經網絡會調用位置細胞存儲的歷史位姿信息,實現回環校準。

圖6 三維網格細胞神經網絡
1.3.3 位置細胞建模
在構建認知地圖的過程中,僅依賴頭朝向細胞以及網格細胞進行定位比較容易造成誤差累積,因此需要利用位置細胞重置地圖的可塑性進行回環校正。為了簡化模型計算,本文采用SAD算法創建視覺模板,匹配模擬的位置細胞。系統判定經歷回環后,位置細胞被激活,通過連接權值矩陣將活性映射到關聯的頭朝向細胞與網格細胞中,進行回環校準,從而改善認知地圖的精度。頭朝向細胞和網格細胞的活性變化ΔUθ和ΔUx,y,z依照如下公式計算
(2)
(3)
其中,npc表示當前活躍的位置細胞數量;λ表示位置細胞常值校準強度。
1.4.1 認知地圖建立

(4)
每個空間經歷都存儲了特定的三維空間狀態,當空間狀態更新且較歷史空間狀態信息有所改變時,系統會創建一個新的三維空間經歷存儲該空間狀態,同時創建從前一時刻經歷鏈接到新經歷的新過渡矩陣,存儲2個經歷空間狀態的改變信息。
1.4.2 回環校正
當系統經歷熟悉場景時,空間狀態信息會與歷史空間狀態信息一致,位置細胞被激活,調用其與頭朝向細胞以及網格細胞的關聯。為了減小累積誤差,在回環事件發生之后,系統會在回環路徑范圍內,將當前經歷關聯的空間狀態信息更換為第一次經歷該熟悉場景創建的歷史經歷的空間狀態信息,更新四自由度位姿信息?;丨h校正后的位姿變化δpi依照如下公式計算[6]


(5)
其中,ψ表示調整率,是根據新舊過渡矩陣間位姿變化設定的經驗值;Nf為經歷Ei轉換到其他經歷的數量;Nt為其他經歷轉換到經歷Ei的數量。
為分析本文提出的基于雙目視覺的類腦三維認知地圖構建方法的具體性能,采用Matlab2018a軟件作為試驗驗證平臺。
首先開展了基于雙目視覺的認知地圖構建試驗。同時,本文會對前文提及的基于原NeuroSLAM掃描線強度剖面法、單目視覺里程計和雙目視覺里程計的建圖精度進行對比,分析不同視覺里程計算法對認知地圖精度的影響。其中,掃描線強度剖面法僅適用于路徑簡單、干擾較少的靜態模擬場景數據集[16],使用真實場景數據集時調參困難且結果較差;而單、雙目視覺里程計利用相機拍攝的圖像作為輸入數據,需要使用相機校準后的內參矩陣作為計算位姿的前提數據,也不適用于模擬場景數據集。為了準確地顯示出視覺系統的優化情況,本文在使用掃描線強度剖面法時選擇了結果最優的模擬場景數據集。
對于真實場景數據集,本文使用KITTI數據集Odometry目錄下的序列05作為視覺輸入,包含2670張圖片,圖像分辨率為1226×370,數據集的三維軌跡以及不同路徑段對應的典型場景如圖7所示,藍色序號表示在運動過程中只經歷過一次的路徑,綠色序號表示經歷過兩次的路徑。

圖7 KITTI序列05數據集真實軌跡以及典型場景
具體的試驗思路如下:本文驗證試驗是以圖片數據集為輸入,最終輸出視覺里程計地圖和三維認知地圖等,同時記錄里程計地圖和認知地圖每一幀對應的位姿值,用于之后的精度分析與對比。
在定性分析系統精度方面,本文通過展示視覺里程計地圖、三維認知地圖分別與真實軌跡地圖在相同二維或三維坐標系下的拓撲對比圖,分析試驗結果。為了更直觀地顯示拓撲一致性,本文還設定了恰當值以調整地圖的比例。
在定量分析系統精度方面,除了使用傳統的誤差平均值分析精度以外,本文還使用了一種定量評估估計軌跡質量的原則性方法,即絕對軌跡誤差(Absolute Trajectory Error,ATE)和相對誤差(Relative Error,RE)。
ATE依照如下公式計算[17]
(6)
RE依照如下公式計算
(7)
其中,Δpi1為同一關鍵幀對應不同地圖下三維坐標的差值;Δpi2為在設定相同幀數差時兩關鍵幀對應三維坐標的差值,再與同一情況下真實軌跡的位姿差值相減得到的值;n表示關鍵幀個數。本文在整體路徑上隨機選取m組關鍵位置,每組包含里程計地圖、認知地圖和真實軌跡地圖中相鄰n個關鍵幀,最終計算m組均方根的平均值。設定m=20,n=20,為提高可信度,共進行200次評估。
(1)定性分析結果
圖8展示了雙目視覺里程計地圖、認知地圖以及真實軌跡地圖的三維以及二維拓撲對比情況。

圖8 三種三維以及二維地圖拓撲對比
由圖8可知,認知地圖和視覺里程計地圖與真實軌跡地圖按時序排列的一維拓撲基本一致。在整個運行過程中,視覺里程計整體沒有較大偏移,但運行過程后半段,由于視覺里程計的誤差累積,里程計地圖和基于里程計估計數據的認知地圖都出現了漂移。不過當相機經歷熟悉場景時,由于認知地圖的回環檢測和校正作用,認知地圖會調用第一次經過該場景時存儲的數據,從而減少漂移誤差。
(2)定量分析結果
圖9展示了雙目視覺里程計和認知地圖的定量分析結果:圖9(a)為每幀圖片對應的平均誤差絕對值;圖9(b)為各方向對應的誤差平均值百分比;圖9(c)為ATE;圖9(d)為RE。從這4幅圖中可以看出,定量分析誤差的結果與2.1節定性分析的結果基本相同。由于認知地圖的位姿也是基于里程計地圖的輸出,在大多數情況下,兩地圖誤差的變化趨勢也相近。特別地,圖9(a)中認知地圖的誤差曲線較里程計地圖存在兩處明顯尖峰。經仔細比對發現,誤差尖峰出現在數據集75幀和2445幀附近,為圖7路徑中的1號重復路段。在75幀左右,系統較少生成新模板,持續匹配舊模板,沿用其位姿信息導致計算時有幾幀偏差較大,造成第一次誤差尖峰;在2445幀附近,由于再次經歷75幀附近的路段,系統仍匹配舊模板,造成第二次誤差尖峰。因此,圖9(a)中兩次尖峰誤差是模板匹配定位誤差造成的,且由于匹配相同的模板,這兩次尖峰的誤差值相近。整體上,由于回環校正,認知地圖的誤差較小,而里程計地圖由于誤差累積,漂移會隨運動距離增加而增大。

(a)每幀圖片對應的平均誤差絕對值
前文提及為了更直觀地顯示拓撲一致性,設定了恰當值調整地圖的比例,在此情況下,利用兩種方法計算得到位姿結果的誤差平均值比較精度是不規范的。為了準確驗證,本文將使用各方向誤差平均值/各方向最大行進距離的方法對比原NeuroSLAM掃描線強度剖面法、單目視覺里程計和本文介紹的雙目視覺里程計算法的試驗精度,各方向誤差百分比具體情況如表1所示。

表1 各方向誤差百分比
從表1中可以看出,基于雙目視覺算法構建的里程計地圖和認知地圖的誤差百分比基本都是最小的,且在x和y方向上優化顯著。在z方向上精度較差的原因主要是模擬數據集在z方向上變化過于簡單,無人機僅在兩處存在高度變化,而KITTI數據集在三維方向一直持續變化,路徑比較復雜。不過從整體來看,本文提出的基于雙目視覺的無人機類腦三維認知地圖構建方法精度較優,視覺里程計地圖的三維位置誤差為2.14%,認知地圖的三維位置誤差為1.56%。而另一種單目視覺里程計算法,由于運動軌跡的尺度模糊,加上采用真實場景數據集進行驗證,精度最差。
針對現有類腦認知地圖構建精度不高的問題,本文開展了基于雙目視覺里程計的類腦三維認知地圖精度優化方法研究,提出了一種基于雙目視覺的類腦三維認知地圖構建方法,進一步研究了不同視覺里程計精度對類腦建圖精度的影響,試驗結果表明:
1)本文所提基于雙目視覺的類腦三維認知地圖構建方法,有效提高了認知地圖構建精度,為進一步研究基于類腦認知地圖的導航定位方法提供了較好參考;
2)里程計精度是影響類腦認知地圖精度的重要因素,優化里程計,認知地圖的精度也能得到提高;
3)基于模板匹配的回環檢測與校正,可以有效提高類腦認知地圖的構建精度,但直接匹配可能會引起誤差尖峰,需設置合適的匹配閾值和平滑度。