





摘 要:針對基于特征點法的視覺里程計中的特征點提取問題,提出一種基于互信息和語義分割不確定性的特征點選擇算法。算法依據特征點的語義信息和幾何信息,保留提取于潛在靜態物體的特征點。算法根據語義上下文信息對特征點的語義不確定性進行修正,并根據特征點的信息熵變化量對特征點進行篩選。最后,用公開的KITTI視覺里程計數據集評估上述算法,并與其他算法的實驗結果對比。結果表明,該算法能夠實現更準確的位姿估計,驗證了算法的有效性和可行性。
關鍵詞:視覺里程計;互信息;語義分割;同步定位與建圖
中圖分類號:TP242.6 文獻標志碼:A
文章編號:1001-3695(2022)03-052-0943-06
doi:10.19734/j.issn.1001-3695.2021.08.0313
基金項目:國家自然科學基金資助項目(61963017,61863013);江西省科技創新杰出青年人才項目(20192BCBL23004)
作者簡介:劉艷麗(1979-),女,湖北漢川人,教授,碩導,博士,主要研究方向為智能機器人、機器視覺;劉圣東(1996-),男,碩士研究生,主要研究方向為視覺SLAM;張恒(1979-),男(通信作者),教授,碩導,博士,主要研究方向為智能機器人、深度學習與計算機視覺(zhangheng@sdju.edu.cn);廖志芳(1968-),女,教授,碩導,博士,主要研究方向為開源軟件分析與研究.
Feature selection algorithm based on uncertainty of semantic segmentation
Liu Yanli1,2,Liu Shengdong1,Zhang Heng2?,Liao Zhifang3
(1.School of Information Engineering,East China Jiaotong University,Nanchang 330013,China;2.School of Electronic Information,Shanghai Dianji University,Shanghai 201306,China;3.School of Computer Science amp; Engineering,Central South University,Changsha 410083,China)
Abstract:Aiming at the feature extraction problem of feature-based visual odometry,this paper proposed a feature selection algorithm based on mutual information and semantic segmentation uncertainty.Based on semantic and geometric information of features,the algorithm points extracted from potential static objects.It corrected the semantic uncertainty of features based on the semantic context,and selected the features based on the information entropy changes of features.Finally,this paper used the public KITTI visual odometry dataset to evaluate the algorithm and compared the experiment results with other algorithms.The results prove that the proposed algorithm has better accuracy of pose estimation,which verifies the effectiveness and feasibility of the algorithm.
Key words:visual odometry;mutual information;semantic segmentation;simultaneous localization and mapping
0 引言
同步定位與地圖構建(SLAM)是機器人根據傳感器收集的數據估計自身運動并對未知環境建圖的方法。相機具有成本低、易于配置等優點,因此以相機作為傳感器的視覺SLAM具有很高的研究價值。近年來,視覺SLAM在機器人導航、自動駕駛以及增強現實等領域受到了廣泛關注[1,2]。
經典的視覺SLAM從圖像中提取具有顯著幾何特征的像素點進行匹配,進而實現位姿估計和地圖構建,因此特征點的質量直接影響到SLAM中視覺里程計、閉環檢測以及圖優化[3]等環節的性能。經典的特征點提取算法所提取的特征點對于旋轉、尺度以及視角的變化都具有一定的魯棒性,但實際場景中的動態物體還是給特征點的提取帶來了很大挑戰。
目前很多工作嘗試將深度學習方法與視覺SLAM相結合[4],利用神經網絡模型處理圖像,進而提取到除點線面等底層特征之外的高層特征(例如語義特征)。在估計位姿的過程中通過地標的語義標簽來剔除動態物體,實現更準確的位姿估計。Bescos等人[5]使用深度學習和多視圖幾何的方法檢測場景中的動態物體,并將提取于動態物體上的特征點作為外點剔除,以降低動態物體對SLAM系統的影響,并基于此提出了一種背景修復的方法。此外,語義信息也可以為地圖標注語義屬性,使得地圖能夠更好地服務于上層任務。
深度學習方法與SLAM的結合存在一個需要解決的問題是:SLAM本質上需要盡可能減小傳感器等因素帶來的不確定性,而深度學習方法引入了神經網絡模型的不確定性[6]。Sünderhauf等人[7]認為機器人的感知、決策、行動等方面都取決于不完整、不確定的先驗知識。因此,將神經網絡模型引入SLAM的同時,需要考慮網絡模型的不確定性,從而幫助機器人作出更好的決策。
基于信息論的特征點選擇方法能夠篩選出包含更多信息的特征點,從而在保持相當性能的情況下減少SLAM計算以及存儲的復雜度。Dissanayake等人[8]最早將信息論的方法引入到SLAM中, 根據特征點的方差矩陣計算出各個可見地標的信息量,從而剔除部分信息量較小的地標,當位姿變化量超過一定閾值后選擇新的特征點進行下一步位姿估計,這種方法可以使用更少的特征點實現準確性相當的位姿估計。
Davison[9]提出通過計算特征點與當前位姿的互信息來量化當前特征點對于減小位姿估計不確定性的貢獻,不斷選擇與位姿具有最大互信息的特征點來更新位姿估計以及相應的協方差矩陣,直到所有特征點的互信息最大值低于某個閾值時結束。這種方法每選擇一個特征點就需要對位姿進行更新,計算復雜度很難滿足SLAM的實時性要求。因此,Kaess等人[10]提出在每次觀測過程完成后,選擇所有與當前位姿的互信息高于某個閾值的特征點,用這部分特征點估計新的位姿,從而降低了基于互信息的特征點選擇方法的計算復雜度。Das等人[11]提出了一種基于信息熵的關鍵幀選擇方法,選取使得位姿熵減少量最大化的幀,并將其作為關鍵幀插入,實驗結果表明該方法能夠實現更準確的位姿估計。于雅楠等人[12]根據圖像幀中圖像塊的信息熵大小量化特征所含信息的多少,剔除信息量較少的圖像塊,從而減小特征點相關計算的復雜度,并提高位姿估計的精度。神經網絡模型的引入也帶來了一定的不確定性,為了考慮神經網絡模型引入的不確定性,SIVO(semantic informed visual odometry)[13]首先在基于信息熵的特征點選擇方法中融合了語義不確定性,在保證相當的位姿估計準確性的同時,大幅度減少了地圖點的數量,但是這項工作對于語義信息的處理忽略了一些潛在的靜態物體(例如停靠在路邊的車輛)以及特征點的語義上下文信息。本文在SIVO的基礎上對動態物體和潛在靜態物體加以區分,保留潛在靜態物體上的高質量特征點,并且通過一種基于語義上下文的啟發式算法解決位于邊界處的特征點難以被準確分類的問題。
1 基于互信息的特征點選擇方法
基于特征點法的視覺SLAM通過求解相鄰圖像間的運動,對當前的位姿進行估計并對周圍環境進行建圖。在位姿求解過程中,特征點的提取與匹配尤為重要。經典的特征點提取算法,例如ORB特征點提取算法[14]對于場景的變化具有一定的魯棒性,并且處理效率也能滿足SLAM的實時性要求。特征點提取算法的高效允許進一步篩選特征點,從中選取部分包含更多信息的特征點用于位姿估計,從而降低SLAM中圖優化等計算環節的復雜度。
1.1 基于互信息的特征點選擇模型
當前時刻機器人的六自由度位姿xt定義為
該變量的協方差矩陣反映了當前所有特征點與位姿的相關性。通過式(4)可以計算某個特征點與位姿的互信息I(xt;zi),其數值反映了該特征點對于當前位姿估計的貢獻,即觀測到某個特征點后,位姿不確定性的減少量。
其中:Σxtxt表示當前位姿xt的方差矩陣;Σzizi表示某個特征點的方差矩陣;Σi為位姿與特征點的協方差矩陣。在計算所有特征點與當前位姿的互信息后,參照Kaess等人[10]的觀點:在執行一次完整的觀測后,從所有特征點中選擇互信息高于預設閾值的特征點用于位姿估計,從而保留價值較高的部分特征點。這部分特征點不僅對旋轉、視角和尺度的變化有一定的魯棒性,而且對于當前的位姿估計而言包含更多信息。
1.2 語義不確定性的引入
為了應對實際場景中的動態物體,利用語義分割模型處理當前的圖像幀,參照SIVO將語義分割的結果整合到上述基于互信息的特征點選擇模型中,根據類別標簽和不確定性進一步處理當前幀所提取的特征點。語義分割模型能夠得到圖像中所有像素的類別預測結果,根據預測結果的不確定性估計可以計算得到相應的信息熵。如式(5)所示,在假設當前的位姿熵H(x|zi,Z)和特征點的分類熵H(ci|I,D)條件獨立的前提下,將視覺里程計的信息熵變化量定義為這兩項的差值:
其中:x表示當前位姿;zi表示觀測到的特征點;I(x;zi)表示位姿和該特征點的互信息;Z表示之前觀測到的所有特征點;D和I分別表示語義分割模型的訓練數據集和當前圖像;ci表示當前特征點的類別預測結果。計算由當前特征點引起的信息熵變化量ΔHi后,選擇信息熵變化量高于預設閾值的特征點更新位姿估計。互信息可以通過式(4)計算,而分類熵的計算參照Gal[15]的方法:
其中:c表示某一分類結果;I表示當前圖像;D表示語義模型的訓練集;特征點類別預測結果的概率分布p(c|I,D)通過貝葉斯神經網絡計算得到。如式(7)所示,貝葉斯神經網絡通過將神經網絡的權重參數設置為某種概率分布p(w|D),通過計算期望值實現對預測結果不確定性的度量。不同于歸一化指數函數(softmax)僅對已知的類別進行相對的不確定性估計,貝葉斯神經網絡的預測結果是一種絕對的不確定性估計,這更有利于機器人對未知場景的探索。
其中:c為像素的類別預測結果;I為當前圖像;w為神經網絡模型的權重參數。對于規模較大的神經網絡模型而言,式(7)的計算是難解的,本文采用的語義分割模型Bayesian SegNet[16]在文獻[17]的基礎上,通過在神經網絡的訓練和測試階段使用dropout[18]實現貝葉斯神經網絡,一定程度上避免了式(7)的難解性。
1.3 所提方法的框架
本文在上述基于信息熵的特征點選擇模型基礎上,通過檢測實際場景中存在的潛在靜態物體,并根據特征點的語義上下文信息對特征點的語義不確定性進行修正,從而保留更多具有穩定特征的特征點,以達到提升位姿估計準確性的目的。
如圖1所示,首先從相機收集到的RGB圖像中提取具有穩定幾何特征的ORB特征點[14],同時利用Bayesian SegNet處理圖像,并依據語義分割結果判定當前特征點是否屬于動態物體。若不屬于動態物體,則將該特征點歸為候選特征點;若屬于,則進一步判斷該點是否屬于潛在的靜態物體,若為潛在靜態物體,則將該特征點歸為候選特征點,否則將該特征點作為外點剔除。這一步判斷主要依賴于計算相鄰幀之間的基礎矩陣,然后通過對極幾何的方法篩選出潛在靜態特征點。根據特征點的語義上下文信息對其分類熵進行修正,并依據式(5)計算所有候選特征點的信息熵變化量。最后選擇所有信息熵變化量高于閾值的特征點用于位姿估計。
2 潛在靜態物體檢測
2.1 語義先驗信息處理
準確地判斷特征點運動與否有助于提升SLAM系統的穩定性和準確性。根據圖像中特征點的語義標簽,可以得到相應的運動先驗信息。例如某個特征點被標記為“行人”,那么該點可以被認為是運動的,同理被標記為“建筑物”的特征點可以被認為是靜止的。
但語義分割結果提供的語義先驗信息是獨立于應用場景的,僅憑特征點的語義標簽不能判斷它是否發生運動。例如某個特征點被標記為“汽車”,即使模型給出該點為“汽車”的可信度很高,也不能直接判斷該點是運動的。因為汽車既有可能停靠在路邊,也可能正處于行駛狀態。如果把提取于泊車上的特征點視為動態特征點而作為外點剔除,那么會損失很多高質量的特征點,導致從圖像中提取到的特征點分布不夠均勻。而且相較于遠處的建筑物等物體上的特征點而言,這部分近距離的特征點更有利于估計平移。但如果將被標記為“汽車”的特征點全部保留,在很多場景中又會引入過多的動態特征點,導致位姿估計的準確性降低。因此,不能僅憑語義分割的類別預測結果判斷特征點是否發生運動。
為了進一步區分這兩種情況,保留提取于靜止車輛上的特征點,并將其整合到上述基于信息熵的特征點選擇模型中。本文將機器人所處環境中的物體依據語義標簽和短期內運動與否將其分為絕對靜態物體(例如人行道、路燈等)、絕對動態物體(例如行人)以及語義標簽屬于動態物體但當前并未發生運動的潛在靜態物體(例如停靠在路邊的車輛)。SIVO僅從不確定性較低的絕對靜態物體上選取特征點來估計位姿,希望建立長期可用的地圖。這種方法忽略了潛在的靜態物體,會導致在一些光線、紋理等條件不理想的場景中難以提取到足夠的特征點,從而降低位姿估計的準確性甚至導致跟蹤丟失。
為了保留潛在靜態物體上的特征點,根據所有特征點的語義標簽提供的先驗信息,在位姿估計階段將屬于絕對動態物體的特征點作為外點剔除,保留提取于絕對靜態物體的特征點。對潛在靜態物體上的特征點進一步處理,保留部分可信的靜態特征點,從而增加可選特征點的數量,提升位姿估計的準確性。
2.2 極線限制
對于ORB-SLAM2[19]提取的具有穩定幾何特征且類別標簽屬于潛在靜態物體的特征點,通過極線檢驗來判定其是否發生運動。滿足極線限制的特征點將被認為是靜態的,并在位姿估計階段被保留。具體做法如下:首先利用Bayesian SegNet處理當前圖像幀,得到所有像素點的運動先驗信息;然后,依據所有特征點的類別標簽和不確定性結果對特征點的運動特征進行初步判斷,篩選出可信的絕對靜態特征點對并對其進行隨機一致性采樣處理,利用八點法計算相鄰幀之間的基礎矩陣F。
將當前特征點表示為p2=[u2,v2,1]T以及在上一幀中對應的特征點表示為p1=[u1,v1,1]T,其中u、v分別表示特征點在圖像中的橫縱坐標。如果當前特征點p2是靜態的,那么應該位于特征點p1在當前幀對應的極線上,即應滿足幾何關系:
其中:F為相應的幀間基礎矩陣,考慮到實際計算基礎矩陣等過程中難以避免的不確定性,當前的特征點對不一定能嚴格滿足式(8),因此通過計算該特征點到相應極線的距離來判斷是否滿足極線限制。首先利用基礎矩陣計算上一幀中與當前特征點p2匹配的特征點p1在當前幀的極線l為
其中:F為對應的基礎矩陣。然后計算該特征點p2到相應極線的距離d為
若該距離小于閾值(一個像素),則認為該特征點屬于潛在靜態物體,并將被用于當前幀的位姿更新。通過實驗結果的比較,距離閾值設置為一個像素能夠較好地保留潛在靜態物體上的特征點,同時拒絕盡可能多的外點。
算法1表明了如何實現潛在的靜態物體特征點的檢測,其中λ表示預先設定的閾值。
最終的特征點提取結果如圖2所示,提取于遠處泊車上的紅色特征點仍可以被選擇(見電子版),而在右側處于行駛狀態的汽車上沒有提取到特征點。通過檢測潛在的靜態物體,增加了可選特征點的數量,從而盡可能地使特征點分布均勻,進而提高視覺里程計的準確性。這種方法同時也對地圖中的潛在靜態物體進行了標記,使得地圖能夠提供更為豐富的信息。
3 語義不確定性修正
SIVO根據式(5)將神經網絡模型的不確定性整合到基于信息熵的特征點選擇方法中。這種處理分類熵的方式基于一個理想的假設,即圖像中所有特征點的語義不確定性是上下文無關的,然而這在實際應用場景中并不成立。經典的特征點提取算法所提取的特征點大部分是幾何特征顯著的角點,這部分特征點通常位于物體的邊界,而神經網絡卻很難準確地分類物體邊界處的像素點。如圖3的語義分割結果所示,綠點標記了若干處于物體邊界的特征點,這部分特征點是具有穩定幾何特征的高質量特征點,對位姿估計幫助很大。圖4為語義分割不確定性的結果,其中黑色代表神經網絡對于該像素點的分類結果有很高的置信度,白色則代表網絡模型對于該像素點的類別預測有很高的不確定性(見電子版)。可以看出,處于物體邊界處的像素點的類別預測結果通常都具有很高的語義不確定性。因此如果根據式(5)的特征點選擇策略,過高的分類熵會導致處于物體邊界的高質量特征點被舍棄。
為了解決這個問題,本文提出了一種方法,在計算式(5)中的分類熵H(ci|I,D)時,對特征點的語義不確定性進行修正,減小對邊界處的特征點的懲罰。通過具體分析當前特征點的語義上下文,決定是否對該點的語義不確定性進行修正:若當前特征點處于不同的靜態物體之間,且語義分割模型對這些靜態物體的類別預測給出很高的置信度,則對該特征點的語義不確定性進行修正,降低對于這部分特征點的語義不確定性懲罰。
具體方法如下:首先從水平方向、豎直方向以及主次對角線方向計算特征點兩側像素點的語義不確定性數值的梯度,目的是為了判斷當前特征點是否處于物體邊界處。若在一定距離(20個像素)內發現梯度變化明顯的像素點,則將其作為當前方向其中一側的參考點。距離閾值的設置因語義分割模型的泛化性能而異,本文根據語義分割的不確定性結果設置閾值初值,并根據實驗結果進行微調。將梯度定義為某個像素點的語義不確定性與該方向上前一像素點語義不確定性的差值,將梯度變化明顯定義為當前像素點的不確定性數值梯度大于前一像素點梯度的兩倍。如圖3所示,假設右下角的綠色標記點為當前待判斷的特征點,兩側的黃色標記點即為水平方向上,滿足上述要求的參考點(見電子版)。
如果在某個方向上特征點兩側均檢測到參考點,則進一步比較兩側參考點的語義標簽。如果以參考點為中心的3×3圖像塊的語義標簽均相同,且兩側參考點的類別標簽屬于不同類別的絕對靜態物體(如圖3中黃色標注的參考點分別屬于地面和植被,見電子版),則認為當前特征點處于不同靜態物體的交界處,并依據式(11)對該特征點的語義不確定性進行修正。
其中:φ為所有待檢測的方向;θ為當前檢測方向;ψθ為該方向的線性插值函數;m、n分別表示兩側的參考點;Umi,Uni分別表示兩側參考點附近3×3圖像區域的語義不確定性平均值。
修正方法主要依據兩側參考點的語義不確定性數值,對當前特征點的語義不確定性進行線性插值,從而得到當前特征點的修正語義不確定性。具體方法如式(12)所示。在滿足上述條件的所有方向上,計算兩側以參考點為中心的3×3圖像塊的語義不確定性平均值;然后根據兩側參考區域的語義不確定性平均值對當前特征點進行線性插值,得到該方向上特征點的修正不確定性;最后選擇所有方向上修正不確定性最低的插值結果作為該特征點的修正不確定性。 通過對邊界處的特征點的語義不確定性進行修正,保留更多穩定的高質量靜態特征點,進而提升位姿估計的準確性。
其中:s、sn、sm分別表示當前特征點和兩側的參考點在當前方向θ上的坐標;Umi、Uni分別表示兩側參考點附近區域的語義不確定性平均值。
算法2詳細闡述了如何根據特征點的語義上下文信息對其語義不確定性進行修正。
算法2 基于上下文的語義不確定性修正算法
輸入:Bayesian SegNet的預測結果SegRes,當前幀提取到的特征點集Pc。
輸出:當前特征點集的修正語義不確定性U。
4 實驗與結果分析
4.1 實驗設置
在公開的KITTI里程計數據集[20]中所有標注了真實值的11條序列上進行實驗,并將結果與真值、ORB-SLAM2[19]以及據本文所知此類方法中最先進的SIVO進行比較,以此評估所提方法的可行性和有效性。
KITTI數據集的序列涉及城市、鄉村以及高速公路等常見的自動駕駛場景,并且包含較多的行駛車輛和停泊車輛,適用于評估所提方法的性能。序列中的圖像分辨率為1 382×512,采樣頻率為10 Hz。
本文所有實驗均在計算機上完成,計算機配置為:Intel Xeon E5-2689,NVIDIA GeForce GTX 1070,32 GB內存。
所提方法使用目前較為成熟的ORB-SLAM2作為實現定位與地圖構建的框架,使用Basic Bayesian SegNet獲取帶有不確定性估計的語義分割結果。為了直觀地驗證所提方法的有效性,語義分割模型與SIVO保持一致,即用Cityscapes數據集[21]對模型進行訓練并用KITTI語義數據集[20]進一步優化。該語義分割模型相較于其他模型而言泛化能力較弱,后續實驗結果中的準確性提升在一定程度上也表明所提方法適用于泛化能力一般的語義分割模型。其中KITTI 06號序列場景中特征缺失較為嚴重,為避免跟蹤丟失,實驗中將信息熵閾值設置為3 bit,其余序列的閾值均設置為4 bit。
實驗中首先參照KITTI數據集的度量方法[20]量化三種方法的性能結果,即比較每百米的平移誤差(%)及旋轉誤差(deg/m),同時比較三種方法的關鍵幀和地圖點的數目;然后用絕對軌跡誤差進一步比較三種方法的平移估計性能;最后通過消融實驗評估兩個改進模塊各自的作用。
4.2 實驗結果
本文將三種方法以及真值的軌跡在KITTI 07號序列上進行直觀地比較。KITTI 07號序列是所提方法在所有序列中表現較好的一條序列。由圖5可以看出,三種方法的軌跡基本重合,這表明所提方法是可行的,能夠得到較為準確的位姿估計結果。從放大后的局部軌跡結果可以看出,所提方法相較于SIVO更接近真值的軌跡,表明該方法能夠得到更為準確的位姿估計。
為進一步量化三種方法性能的差異,表1列出了三種方法在KITTI度量指標上的實驗結果。與ORB-SLAM2相比,兩種基于信息熵的特征點選擇方法在保證可比的位姿估計性能的前提下,關鍵幀和地圖點的數目都大幅降低。所提方法相較于ORB-SLAM2平均減少了67.22%的地圖點和38.05%的關鍵幀,并在多數序列上都取得了與ORB-SLAM2相當的位姿估計性能,這表明在信息熵閾值設置合理的前提下,所提方法能夠剔除包含冗余信息的特征點,僅保留含有較多信息的特征點,在實現相當的位姿估計前提下,減小SLAM系統的計算和存儲復雜度。
所提方法使用更少的特征點估計位姿,而ORB-SLAM2在觀測到的特征點減少時,通過插入更多的關鍵幀保證位姿估計的準確性和穩定性。實驗結果中所提方法的關鍵幀數目減少是因為修改了ORB-SLAM2的關鍵幀插入策略:ORB-SLAM2如果在當前幀跟蹤到的近景特征點少于100個,同時新觀測到的近景特征點多于70個時,會將當前幀作為關鍵幀插入。如果僅保留高信息含量的特征點,原有的關鍵幀插入策略會導致關鍵幀插入過于頻繁。因此實驗中保留SIVO的關鍵幀插入策略,即將跟蹤到的近景特征點個數由100修改為35。因此相較于ORB-SLAM2,所提算法的關鍵幀數仍有一定程度的降低。此外,該算法實質上通過增加從圖像中提取的特征點的數量來改善位姿估計,地圖點數量相較于SIVO應有一定程度的增加。但本文認為提取于潛在靜態物體上的特征點對于位姿估計而言具有很高的價值,卻不利于構建長期可用的地圖。因此在實驗中僅保留提取于絕對靜態物體上的特征點用于構建地圖,所提方法的地圖點數與SIVO的地圖點數基本持平。
表2進一步分析了所提方法在位姿估計上的改進效果。與SIVO相比,所提方法在保證關鍵幀和地圖點數目基本一致的前提下,在所有的測試序列上都實現了更為準確的位姿估計:在10號序列上表現最好,平移誤差降低了26.43%,旋轉誤差降低了39.39%;在02號序列上表現最差,平移誤差降低了3.96%,旋轉誤差降低了22.06%;在所有序列上平移誤差平均降低了12.63%,旋轉誤差平均降低了22.09%。這表明所提方法能夠有效改善位姿估計的性能。在05、07、09、10號序列上,相比于ORB-SLAM2,所提方法僅用少量富含信息的特征點實現了更準確的旋轉估計,這主要是因為剔除了場景中的動態特征點,降低了動態特征點對于位姿估計的影響。
在02序列上位姿估計表現較差,是因為02序列中場景的光線、紋理等條件相較于其他序列而言更差,難以提取到足夠的信息熵高于閾值的特征點,適當地降低信息熵閾值,能夠得到更好的位姿估計結果。而在01序列上的位姿估計結果較差的原因是語義分割模型沒有泛化到01序列的公路場景,語義分割結果較差、分類熵過高導致難以提取到足夠的特征點,使用泛化性能更好的語義分割模型將有效改善這一現象。
總體而言,所提方法的位姿估計性能相較于SIVO有明顯提升,這驗證了所提方法的有效性和可行性。
從表1可以看出三種方法都有不錯的旋轉估計表現,誤差值的數量級都比較小,且在近半數的序列上,所提方法相較于ORB-SLAM2實現了更準確的旋轉估計。因此本文使用evo工具[22]在具有代表性的05、07、08、10號序列上逐幀比較平移的絕對軌跡誤差,進一步分析三種方法在平移估計方面的性能。其中05、10號序列來自城市場景,07、08號序列來自鄉村場景,05號序列包含多個閉環,07號序列僅包含一個閉環,08、10號序列不包含閉環,07號序列是軌跡長度最短的序列之一,08號序列是軌跡長度最長的序列之一。
從圖6可以看出,所提方法在05號序列上的平移誤差與ORB-SLAM2較為接近,在絕大部分軌跡上平移估計都優于SIVO,尤其在0~400幀和1 400幀后的軌跡部分,平移誤差明顯低于SIVO。這表明在具有閉環的軌跡上,所提方法能夠有效改善SIVO估計平移的準確性,并且僅使用部分含高信息量的特征點即可達到與ORB-SLAM2相當的位姿估計性能。
在圖7所示的07號序列上平移誤差比較結果中,所提方法相較于SIVO,在大部分軌跡中都得到了更準確的位姿估計結果。600~800幀的軌跡部分為十字路口等待通行的場景,動態物體較多,相較于SIVO通過語義標簽直接剔除這部分特征點,進一步處理動態特征難免會引入少量的動態特征點,因此在這一場景中表現更差。但總體而言,在該序列上所提方法比SIVO更具魯棒性,并且在0~200幀軌跡部分明顯優于ORB-SLAM2。
圖8為08號序列上的平移誤差比較結果,前2 800幀所提方法與SIVO性能相近,略低于ORB-SLAM2,在2 800幀后SIVO平移誤差明顯增加,而所提方法仍保持與ORB-SLAM2相當的準確性。這部分場景光照較弱,SIVO難以提取到足夠的特征點用于位姿估計,而所提方法從泊車上提取到更多的特征點,因而實現了更準確的位姿估計。
圖9所示的10號序列是一條沒有包含閉環的軌跡,位姿估計結果包含了漂移導致的累計誤差。所提方法在前900幀與ORB-SLAM2保持相當的性能,在900~1200幀部分誤差逐漸增大,與SIVO相比,在絕大部分軌跡上都實現了更準確的平移估計,驗證了所提方法在無閉環軌跡上的有效性。
表3比較了三種方法在四條序列上的平均值、均方根誤差以及標準差等度量指標上的比較結果。所提方法在除10號序列的最小值外的各項評價指標上都接近于ORB-SLAM2,且相較于SIVO有不同程度的降低,這表明所提方法能夠有效改善SIVO平移估計的準確性。
表4為所提方法在各項度量指標上,相比于SIVO的性能提升結果。從結果可以看出,誤差的中位數、平均值以及均方根誤差均有不同程度的降低,且在部分序列上性能提升可以達到40%以上,這表明所提方法能夠有效地改善SLAM系統位姿估計的準確性。在05、08、10序列上標準差也有明顯的降低,這表明SLAM系統的穩定性也得到了一定的提升。其中,08號序列上的誤差最大值以及10號序列的誤差最小值相較于SIVO有不同程度的提升,這表明該方法并沒有泛化到該序列的所有場景,本文認為在個別動態物體過多的場景下,潛在靜態物體檢測會引入少量的動態特征點,從而導致位姿估計的準確性降低。
總體而言,所提方法在KITTI所有序列上的位姿估計性能相較于SIVO都有不同程度的提升,驗證了所提方法的可行性和有效性。在部分序列上,使用少量富含信息的特征點得到了與ORB-SLAM2相當的位姿估計結果。
4.3 消融實驗
測試了潛在靜態物體檢測模塊和語義不確定性修正模塊對性能提升的貢獻,結果如表5所示。
兩項改進方法都在一定程度上提高了視覺里程計的準確性,其中潛在靜態物體檢測模塊對平移估計性能改善相對于SIVO平均提升了5.29%,旋轉估計提升了8.54%,性能表現主要取決于不同序列中潛在靜態物體數量的多少,在泊車較少的02、03等序列上改進效果并不明顯,在泊車較多的07、10等序列上位姿估計更為準確。語義不確定性修正模塊使SIVO的平移估計性能平均提升了8.45%,旋轉估計提升了22.09%,在所有序列上都表現穩定。
5 結束語
本文提出了一種基于語義分割不確定性的特征點選擇算法,通過區分動態物體和潛在靜態物體,保留更多對視覺里程計有價值的特征點,并且利用一種啟發式算法修正神經網絡模型對物體邊界處的特征點的不確定性估計。該方法在KITTI里程計數據集中所有標注了真值的序列上進行實驗。結果證明,上述兩項改進能夠有效提高復雜場景下基于語義不確定性的位姿估計方法的準確性。后續工作中進一步研究將語義分割的不確定性與位姿估計的不確定性相融合的方法。
參考文獻:
[1]Singandhupe A,La H M.A review of SLAM techniques and security in autonomous driving[C]//Proc of the 3rd IEEE International Confe-rence on Robotic Computing.Piscataway,NJ:IEEE Press,2019:602-607.
[2]Mahmoud N,Grasa O S G,Nicolau S E P A,et al.On-patient see-through augmented reality based on visual SLAM[J].International Journal of Computer Assisted Radiology and Surgery,2017,12(1):1-11.
[3]Chen Shoubin,Zhou Baoding,Jiang Changhui,et al.A LiDAR/visual SLAM backend with loop closure detection and graph optimization[J].Remote Sensing,2021,13(14):article No.2720.
[4]吳凡,宗艷桃,湯霞清.視覺SLAM的研究現狀與展望[J].計算機應用研究,2020,37(8):2248-2254.(Wu Fan,Zong Yantao,Tang Xiaqing.Research status and prospect of vision SLAM[J].Application Research of Computers,2020,37(8):2248-2254.)
[5]Bescos B,Fácil J M,Civera J,et al.DynaSLAM:tracking,mapping,and inpainting in dynamic scenes[J].IEEE Robotics and Automation Letters,2018,3(4):4076-4083.
[6]Rosen D M,Doherty K J,Terán E A,et al.Advances in inference and representation for simultaneous localization and mapping[J].Annual Review of Control,Robotics,and Autonomous Systems,2021,4(1):215-242.
[7]Sünderhauf N,Brock O,Scheirer W,et al.The limits and potentials of deep learning for robotics[J].The International Journal of Robo-tics Research,2018,37(4-5):405-420.
[8]Dissanayake G,Durrant-Whyte H,Bailey T.A computationally efficient solution to the simultaneous localisation and map building(SLAM) problem[C]//Proc of IEEE International Conference on Robotics and Automation.Piscataway,NJ:IEEE Press,2000:1009-1014.
[9]Davison A J.Active search for real-time vision[C]//Proc of the 10th IEEE International Conference on Computer Vision.Piscataway,NJ:IEEE Press,2005:66-73.
[10]Kaess M,Dellaert F.Covariance recovery from a square root information matrix for data association[J].Robotics and Autonomous Systems,2009,57(12):1198-1210.
[11]Das A,Waslander S L.Entropy based keyframe selection for multi-camera visual SLAM[C]//Proc of IEEE/RSJ International Confe-rence on Intelligent Robots and Systems.Piscataway,NJ:IEEE Press,2015:3676-3681.
[12]于雅楠,衛紅,陳靜.基于局部熵的 SLAM 視覺里程計優化算法[J].自動化學報,2021,47(6):1460-1466.(Yu Yanan,Wei Hong,Chen Jing.Optimization algorithm of visual odometry for SLAM based on local image entropy[J].Acta Automatica Sinica,2021,47(6):1460-1466.)
[13]Ganti P,Waslander S L.Network uncertainty informed semantic feature selection for visual SLAM[C]//Proc of the 16th Conference on Computer and Robot Vision.Piscataway,NJ:IEEE Press,2019:121-128.
[14]Rublee E,Rabaud V,Konolige K,et al.ORB:an efficient alternative to SIFT or SURF[C]//Proc of International Conference on Computer Vision.Piscataway,NJ:IEEE Press,2011:2564-2571.
[15]Gal Y.Uncertainty in deep learning[D].London:University of Cambridge,2016.
[16]Kendall A,Badrinarayanan V,Cipolla R.Bayesian SegNet:model uncertainty in deep convolutional encoder-decoder architectures for scene understanding[C]//Proc of British Machine Vision Conference.Swansea,UK:BMVA Press,2017:1-12.
[17]Gal Y,Ghahramani Z.Dropout as a Bayesian approximation:representing model uncertainty in deep learning[C]//Proc of International Conference on Machine Learning.Cambridge,MA:PMLR Press,2016:1050-1059.
[18]Srivastava N,Hinton G,Krizhevsky A,et al.Dropout:a simple way to prevent neural networks from overfitting[J].Journal of Machine Learning Research,2014,15(56):1929-1958.
[19]Mur-Artal R,Tardós J D.ORB-SLAM2:an open-source SLAM system for monocular,stereo,and RGB-D cameras[J].IEEE Trans on Robotics,2017,33(5):1255-1262.
[20]Geiger A,Lenz P,Urtasun R.Are we ready for autonomous driving?The KITTI vision benchmark suite[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press,2012:3354-3361.
[21]Cordts M,Omran M,Ramos S,et al.The cityscapes dataset for semantic urban scene understanding[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press,2016:3213-3223.
[22]Grupp M.evo:Python package for the evaluation of odometry and SLAM[EB/OL].(2021-09-17)[2021-09-24].https://github.com/MichaelGrupp/evo.