摘 要:針對基于特征點法的視覺里程計中的特征點提取問題,提出一種基于互信息和語義分割不確定性的特征點選擇算法。算法依據(jù)特征點的語義信息和幾何信息,保留提取于潛在靜態(tài)物體的特征點。算法根據(jù)語義上下文信息對特征點的語義不確定性進行修正,并根據(jù)特征點的信息熵變化量對特征點進行篩選。最后,用公開的KITTI視覺里程計數(shù)據(jù)集評估上述算法,并與其他算法的實驗結(jié)果對比。結(jié)果表明,該算法能夠?qū)崿F(xiàn)更準確的位姿估計,驗證了算法的有效性和可行性。
關(guān)鍵詞:視覺里程計;互信息;語義分割;同步定位與建圖
中圖分類號:TP242.6 文獻標志碼:A
文章編號:1001-3695(2022)03-052-0943-06
doi:10.19734/j.issn.1001-3695.2021.08.0313
基金項目:國家自然科學基金資助項目(61963017,61863013);江西省科技創(chuàng)新杰出青年人才項目(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 引言
同步定位與地圖構(gòu)建(SLAM)是機器人根據(jù)傳感器收集的數(shù)據(jù)估計自身運動并對未知環(huán)境建圖的方法。相機具有成本低、易于配置等優(yōu)點,因此以相機作為傳感器的視覺SLAM具有很高的研究價值。近年來,視覺SLAM在機器人導航、自動駕駛以及增強現(xiàn)實等領(lǐng)域受到了廣泛關(guān)注[1,2]。
經(jīng)典的視覺SLAM從圖像中提取具有顯著幾何特征的像素點進行匹配,進而實現(xiàn)位姿估計和地圖構(gòu)建,因此特征點的質(zhì)量直接影響到SLAM中視覺里程計、閉環(huán)檢測以及圖優(yōu)化[3]等環(huán)節(jié)的性能。經(jīng)典的特征點提取算法所提取的特征點對于旋轉(zhuǎn)、尺度以及視角的變化都具有一定的魯棒性,但實際場景中的動態(tài)物體還是給特征點的提取帶來了很大挑戰(zhàn)。
目前很多工作嘗試將深度學習方法與視覺SLAM相結(jié)合[4],利用神經(jīng)網(wǎng)絡模型處理圖像,進而提取到除點線面等底層特征之外的高層特征(例如語義特征)。在估計位姿的過程中通過地標的語義標簽來剔除動態(tài)物體,實現(xiàn)更準確的位姿估計。Bescos等人[5]使用深度學習和多視圖幾何的方法檢測場景中的動態(tài)物體,并將提取于動態(tài)物體上的特征點作為外點剔除,以降低動態(tài)物體對SLAM系統(tǒng)的影響,并基于此提出了一種背景修復的方法。此外,語義信息也可以為地圖標注語義屬性,使得地圖能夠更好地服務于上層任務。
深度學習方法與SLAM的結(jié)合存在一個需要解決的問題是:SLAM本質(zhì)上需要盡可能減小傳感器等因素帶來的不確定性,而深度學習方法引入了神經(jīng)網(wǎng)絡模型的不確定性[6]。Sünderhauf等人[7]認為機器人的感知、決策、行動等方面都取決于不完整、不確定的先驗知識。因此,將神經(jīng)網(wǎng)絡模型引入SLAM的同時,需要考慮網(wǎng)絡模型的不確定性,從而幫助機器人作出更好的決策。
基于信息論的特征點選擇方法能夠篩選出包含更多信息的特征點,從而在保持相當性能的情況下減少SLAM計算以及存儲的復雜度。Dissanayake等人[8]最早將信息論的方法引入到SLAM中, 根據(jù)特征點的方差矩陣計算出各個可見地標的信息量,從而剔除部分信息量較小的地標,當位姿變化量超過一定閾值后選擇新的特征點進行下一步位姿估計,這種方法可以使用更少的特征點實現(xiàn)準確性相當?shù)奈蛔斯烙嫛?/p>
Davison[9]提出通過計算特征點與當前位姿的互信息來量化當前特征點對于減小位姿估計不確定性的貢獻,不斷選擇與位姿具有最大互信息的特征點來更新位姿估計以及相應的協(xié)方差矩陣,直到所有特征點的互信息最大值低于某個閾值時結(jié)束。這種方法每選擇一個特征點就需要對位姿進行更新,計算復雜度很難滿足SLAM的實時性要求。因此,Kaess等人[10]提出在每次觀測過程完成后,選擇所有與當前位姿的互信息高于某個閾值的特征點,用這部分特征點估計新的位姿,從而降低了基于互信息的特征點選擇方法的計算復雜度。Das等人[11]提出了一種基于信息熵的關(guān)鍵幀選擇方法,選取使得位姿熵減少量最大化的幀,并將其作為關(guān)鍵幀插入,實驗結(jié)果表明該方法能夠?qū)崿F(xiàn)更準確的位姿估計。于雅楠等人[12]根據(jù)圖像幀中圖像塊的信息熵大小量化特征所含信息的多少,剔除信息量較少的圖像塊,從而減小特征點相關(guān)計算的復雜度,并提高位姿估計的精度。神經(jīng)網(wǎng)絡模型的引入也帶來了一定的不確定性,為了考慮神經(jīng)網(wǎng)絡模型引入的不確定性,SIVO(semantic informed visual odometry)[13]首先在基于信息熵的特征點選擇方法中融合了語義不確定性,在保證相當?shù)奈蛔斯烙嫓蚀_性的同時,大幅度減少了地圖點的數(shù)量,但是這項工作對于語義信息的處理忽略了一些潛在的靜態(tài)物體(例如??吭诼愤叺能囕v)以及特征點的語義上下文信息。本文在SIVO的基礎(chǔ)上對動態(tài)物體和潛在靜態(tài)物體加以區(qū)分,保留潛在靜態(tài)物體上的高質(zhì)量特征點,并且通過一種基于語義上下文的啟發(fā)式算法解決位于邊界處的特征點難以被準確分類的問題。
1 基于互信息的特征點選擇方法
基于特征點法的視覺SLAM通過求解相鄰圖像間的運動,對當前的位姿進行估計并對周圍環(huán)境進行建圖。在位姿求解過程中,特征點的提取與匹配尤為重要。經(jīng)典的特征點提取算法,例如ORB特征點提取算法[14]對于場景的變化具有一定的魯棒性,并且處理效率也能滿足SLAM的實時性要求。特征點提取算法的高效允許進一步篩選特征點,從中選取部分包含更多信息的特征點用于位姿估計,從而降低SLAM中圖優(yōu)化等計算環(huán)節(jié)的復雜度。
1.1 基于互信息的特征點選擇模型
當前時刻機器人的六自由度位姿xt定義為
該變量的協(xié)方差矩陣反映了當前所有特征點與位姿的相關(guān)性。通過式(4)可以計算某個特征點與位姿的互信息I(xt;zi),其數(shù)值反映了該特征點對于當前位姿估計的貢獻,即觀測到某個特征點后,位姿不確定性的減少量。
其中:Σxtxt表示當前位姿xt的方差矩陣;Σzizi表示某個特征點的方差矩陣;Σi為位姿與特征點的協(xié)方差矩陣。在計算所有特征點與當前位姿的互信息后,參照Kaess等人[10]的觀點:在執(zhí)行一次完整的觀測后,從所有特征點中選擇互信息高于預設閾值的特征點用于位姿估計,從而保留價值較高的部分特征點。這部分特征點不僅對旋轉(zhuǎn)、視角和尺度的變化有一定的魯棒性,而且對于當前的位姿估計而言包含更多信息。
1.2 語義不確定性的引入
為了應對實際場景中的動態(tài)物體,利用語義分割模型處理當前的圖像幀,參照SIVO將語義分割的結(jié)果整合到上述基于互信息的特征點選擇模型中,根據(jù)類別標簽和不確定性進一步處理當前幀所提取的特征點。語義分割模型能夠得到圖像中所有像素的類別預測結(jié)果,根據(jù)預測結(jié)果的不確定性估計可以計算得到相應的信息熵。如式(5)所示,在假設當前的位姿熵H(x|zi,Z)和特征點的分類熵H(ci|I,D)條件獨立的前提下,將視覺里程計的信息熵變化量定義為這兩項的差值:
其中:x表示當前位姿;zi表示觀測到的特征點;I(x;zi)表示位姿和該特征點的互信息;Z表示之前觀測到的所有特征點;D和I分別表示語義分割模型的訓練數(shù)據(jù)集和當前圖像;ci表示當前特征點的類別預測結(jié)果。計算由當前特征點引起的信息熵變化量ΔHi后,選擇信息熵變化量高于預設閾值的特征點更新位姿估計。互信息可以通過式(4)計算,而分類熵的計算參照Gal[15]的方法:
其中:c表示某一分類結(jié)果;I表示當前圖像;D表示語義模型的訓練集;特征點類別預測結(jié)果的概率分布p(c|I,D)通過貝葉斯神經(jīng)網(wǎng)絡計算得到。如式(7)所示,貝葉斯神經(jīng)網(wǎng)絡通過將神經(jīng)網(wǎng)絡的權(quán)重參數(shù)設置為某種概率分布p(w|D),通過計算期望值實現(xiàn)對預測結(jié)果不確定性的度量。不同于歸一化指數(shù)函數(shù)(softmax)僅對已知的類別進行相對的不確定性估計,貝葉斯神經(jīng)網(wǎng)絡的預測結(jié)果是一種絕對的不確定性估計,這更有利于機器人對未知場景的探索。
其中:c為像素的類別預測結(jié)果;I為當前圖像;w為神經(jīng)網(wǎng)絡模型的權(quán)重參數(shù)。對于規(guī)模較大的神經(jīng)網(wǎng)絡模型而言,式(7)的計算是難解的,本文采用的語義分割模型Bayesian SegNet[16]在文獻[17]的基礎(chǔ)上,通過在神經(jīng)網(wǎng)絡的訓練和測試階段使用dropout[18]實現(xiàn)貝葉斯神經(jīng)網(wǎng)絡,一定程度上避免了式(7)的難解性。
1.3 所提方法的框架
本文在上述基于信息熵的特征點選擇模型基礎(chǔ)上,通過檢測實際場景中存在的潛在靜態(tài)物體,并根據(jù)特征點的語義上下文信息對特征點的語義不確定性進行修正,從而保留更多具有穩(wěn)定特征的特征點,以達到提升位姿估計準確性的目的。
如圖1所示,首先從相機收集到的RGB圖像中提取具有穩(wěn)定幾何特征的ORB特征點[14],同時利用Bayesian SegNet處理圖像,并依據(jù)語義分割結(jié)果判定當前特征點是否屬于動態(tài)物體。若不屬于動態(tài)物體,則將該特征點歸為候選特征點;若屬于,則進一步判斷該點是否屬于潛在的靜態(tài)物體,若為潛在靜態(tài)物體,則將該特征點歸為候選特征點,否則將該特征點作為外點剔除。這一步判斷主要依賴于計算相鄰幀之間的基礎(chǔ)矩陣,然后通過對極幾何的方法篩選出潛在靜態(tài)特征點。根據(jù)特征點的語義上下文信息對其分類熵進行修正,并依據(jù)式(5)計算所有候選特征點的信息熵變化量。最后選擇所有信息熵變化量高于閾值的特征點用于位姿估計。
2 潛在靜態(tài)物體檢測
2.1 語義先驗信息處理
準確地判斷特征點運動與否有助于提升SLAM系統(tǒng)的穩(wěn)定性和準確性。根據(jù)圖像中特征點的語義標簽,可以得到相應的運動先驗信息。例如某個特征點被標記為“行人”,那么該點可以被認為是運動的,同理被標記為“建筑物”的特征點可以被認為是靜止的。
但語義分割結(jié)果提供的語義先驗信息是獨立于應用場景的,僅憑特征點的語義標簽不能判斷它是否發(fā)生運動。例如某個特征點被標記為“汽車”,即使模型給出該點為“汽車”的可信度很高,也不能直接判斷該點是運動的。因為汽車既有可能??吭诼愤叄部赡苷幱谛旭偁顟B(tài)。如果把提取于泊車上的特征點視為動態(tài)特征點而作為外點剔除,那么會損失很多高質(zhì)量的特征點,導致從圖像中提取到的特征點分布不夠均勻。而且相較于遠處的建筑物等物體上的特征點而言,這部分近距離的特征點更有利于估計平移。但如果將被標記為“汽車”的特征點全部保留,在很多場景中又會引入過多的動態(tài)特征點,導致位姿估計的準確性降低。因此,不能僅憑語義分割的類別預測結(jié)果判斷特征點是否發(fā)生運動。
為了進一步區(qū)分這兩種情況,保留提取于靜止車輛上的特征點,并將其整合到上述基于信息熵的特征點選擇模型中。本文將機器人所處環(huán)境中的物體依據(jù)語義標簽和短期內(nèi)運動與否將其分為絕對靜態(tài)物體(例如人行道、路燈等)、絕對動態(tài)物體(例如行人)以及語義標簽屬于動態(tài)物體但當前并未發(fā)生運動的潛在靜態(tài)物體(例如??吭诼愤叺能囕v)。SIVO僅從不確定性較低的絕對靜態(tài)物體上選取特征點來估計位姿,希望建立長期可用的地圖。這種方法忽略了潛在的靜態(tài)物體,會導致在一些光線、紋理等條件不理想的場景中難以提取到足夠的特征點,從而降低位姿估計的準確性甚至導致跟蹤丟失。
為了保留潛在靜態(tài)物體上的特征點,根據(jù)所有特征點的語義標簽提供的先驗信息,在位姿估計階段將屬于絕對動態(tài)物體的特征點作為外點剔除,保留提取于絕對靜態(tài)物體的特征點。對潛在靜態(tài)物體上的特征點進一步處理,保留部分可信的靜態(tài)特征點,從而增加可選特征點的數(shù)量,提升位姿估計的準確性。
2.2 極線限制
對于ORB-SLAM2[19]提取的具有穩(wěn)定幾何特征且類別標簽屬于潛在靜態(tài)物體的特征點,通過極線檢驗來判定其是否發(fā)生運動。滿足極線限制的特征點將被認為是靜態(tài)的,并在位姿估計階段被保留。具體做法如下:首先利用Bayesian SegNet處理當前圖像幀,得到所有像素點的運動先驗信息;然后,依據(jù)所有特征點的類別標簽和不確定性結(jié)果對特征點的運動特征進行初步判斷,篩選出可信的絕對靜態(tài)特征點對并對其進行隨機一致性采樣處理,利用八點法計算相鄰幀之間的基礎(chǔ)矩陣F。
將當前特征點表示為p2=[u2,v2,1]T以及在上一幀中對應的特征點表示為p1=[u1,v1,1]T,其中u、v分別表示特征點在圖像中的橫縱坐標。如果當前特征點p2是靜態(tài)的,那么應該位于特征點p1在當前幀對應的極線上,即應滿足幾何關(guān)系:
其中:F為相應的幀間基礎(chǔ)矩陣,考慮到實際計算基礎(chǔ)矩陣等過程中難以避免的不確定性,當前的特征點對不一定能嚴格滿足式(8),因此通過計算該特征點到相應極線的距離來判斷是否滿足極線限制。首先利用基礎(chǔ)矩陣計算上一幀中與當前特征點p2匹配的特征點p1在當前幀的極線l為
其中:F為對應的基礎(chǔ)矩陣。然后計算該特征點p2到相應極線的距離d為
若該距離小于閾值(一個像素),則認為該特征點屬于潛在靜態(tài)物體,并將被用于當前幀的位姿更新。通過實驗結(jié)果的比較,距離閾值設置為一個像素能夠較好地保留潛在靜態(tài)物體上的特征點,同時拒絕盡可能多的外點。
算法1表明了如何實現(xiàn)潛在的靜態(tài)物體特征點的檢測,其中λ表示預先設定的閾值。
最終的特征點提取結(jié)果如圖2所示,提取于遠處泊車上的紅色特征點仍可以被選擇(見電子版),而在右側(cè)處于行駛狀態(tài)的汽車上沒有提取到特征點。通過檢測潛在的靜態(tài)物體,增加了可選特征點的數(shù)量,從而盡可能地使特征點分布均勻,進而提高視覺里程計的準確性。這種方法同時也對地圖中的潛在靜態(tài)物體進行了標記,使得地圖能夠提供更為豐富的信息。
3 語義不確定性修正
SIVO根據(jù)式(5)將神經(jīng)網(wǎng)絡模型的不確定性整合到基于信息熵的特征點選擇方法中。這種處理分類熵的方式基于一個理想的假設,即圖像中所有特征點的語義不確定性是上下文無關(guān)的,然而這在實際應用場景中并不成立。經(jīng)典的特征點提取算法所提取的特征點大部分是幾何特征顯著的角點,這部分特征點通常位于物體的邊界,而神經(jīng)網(wǎng)絡卻很難準確地分類物體邊界處的像素點。如圖3的語義分割結(jié)果所示,綠點標記了若干處于物體邊界的特征點,這部分特征點是具有穩(wěn)定幾何特征的高質(zhì)量特征點,對位姿估計幫助很大。圖4為語義分割不確定性的結(jié)果,其中黑色代表神經(jīng)網(wǎng)絡對于該像素點的分類結(jié)果有很高的置信度,白色則代表網(wǎng)絡模型對于該像素點的類別預測有很高的不確定性(見電子版)。可以看出,處于物體邊界處的像素點的類別預測結(jié)果通常都具有很高的語義不確定性。因此如果根據(jù)式(5)的特征點選擇策略,過高的分類熵會導致處于物體邊界的高質(zhì)量特征點被舍棄。
為了解決這個問題,本文提出了一種方法,在計算式(5)中的分類熵H(ci|I,D)時,對特征點的語義不確定性進行修正,減小對邊界處的特征點的懲罰。通過具體分析當前特征點的語義上下文,決定是否對該點的語義不確定性進行修正:若當前特征點處于不同的靜態(tài)物體之間,且語義分割模型對這些靜態(tài)物體的類別預測給出很高的置信度,則對該特征點的語義不確定性進行修正,降低對于這部分特征點的語義不確定性懲罰。
具體方法如下:首先從水平方向、豎直方向以及主次對角線方向計算特征點兩側(cè)像素點的語義不確定性數(shù)值的梯度,目的是為了判斷當前特征點是否處于物體邊界處。若在一定距離(20個像素)內(nèi)發(fā)現(xiàn)梯度變化明顯的像素點,則將其作為當前方向其中一側(cè)的參考點。距離閾值的設置因語義分割模型的泛化性能而異,本文根據(jù)語義分割的不確定性結(jié)果設置閾值初值,并根據(jù)實驗結(jié)果進行微調(diào)。將梯度定義為某個像素點的語義不確定性與該方向上前一像素點語義不確定性的差值,將梯度變化明顯定義為當前像素點的不確定性數(shù)值梯度大于前一像素點梯度的兩倍。如圖3所示,假設右下角的綠色標記點為當前待判斷的特征點,兩側(cè)的黃色標記點即為水平方向上,滿足上述要求的參考點(見電子版)。
如果在某個方向上特征點兩側(cè)均檢測到參考點,則進一步比較兩側(cè)參考點的語義標簽。如果以參考點為中心的3×3圖像塊的語義標簽均相同,且兩側(cè)參考點的類別標簽屬于不同類別的絕對靜態(tài)物體(如圖3中黃色標注的參考點分別屬于地面和植被,見電子版),則認為當前特征點處于不同靜態(tài)物體的交界處,并依據(jù)式(11)對該特征點的語義不確定性進行修正。
其中:φ為所有待檢測的方向;θ為當前檢測方向;ψθ為該方向的線性插值函數(shù);m、n分別表示兩側(cè)的參考點;Umi,Uni分別表示兩側(cè)參考點附近3×3圖像區(qū)域的語義不確定性平均值。
修正方法主要依據(jù)兩側(cè)參考點的語義不確定性數(shù)值,對當前特征點的語義不確定性進行線性插值,從而得到當前特征點的修正語義不確定性。具體方法如式(12)所示。在滿足上述條件的所有方向上,計算兩側(cè)以參考點為中心的3×3圖像塊的語義不確定性平均值;然后根據(jù)兩側(cè)參考區(qū)域的語義不確定性平均值對當前特征點進行線性插值,得到該方向上特征點的修正不確定性;最后選擇所有方向上修正不確定性最低的插值結(jié)果作為該特征點的修正不確定性。 通過對邊界處的特征點的語義不確定性進行修正,保留更多穩(wěn)定的高質(zhì)量靜態(tài)特征點,進而提升位姿估計的準確性。
其中:s、sn、sm分別表示當前特征點和兩側(cè)的參考點在當前方向θ上的坐標;Umi、Uni分別表示兩側(cè)參考點附近區(qū)域的語義不確定性平均值。
算法2詳細闡述了如何根據(jù)特征點的語義上下文信息對其語義不確定性進行修正。
算法2 基于上下文的語義不確定性修正算法
輸入:Bayesian SegNet的預測結(jié)果SegRes,當前幀提取到的特征點集Pc。
輸出:當前特征點集的修正語義不確定性U。
4 實驗與結(jié)果分析
4.1 實驗設置
在公開的KITTI里程計數(shù)據(jù)集[20]中所有標注了真實值的11條序列上進行實驗,并將結(jié)果與真值、ORB-SLAM2[19]以及據(jù)本文所知此類方法中最先進的SIVO進行比較,以此評估所提方法的可行性和有效性。
KITTI數(shù)據(jù)集的序列涉及城市、鄉(xiāng)村以及高速公路等常見的自動駕駛場景,并且包含較多的行駛車輛和停泊車輛,適用于評估所提方法的性能。序列中的圖像分辨率為1 382×512,采樣頻率為10 Hz。
本文所有實驗均在計算機上完成,計算機配置為:Intel Xeon E5-2689,NVIDIA GeForce GTX 1070,32 GB內(nèi)存。
所提方法使用目前較為成熟的ORB-SLAM2作為實現(xiàn)定位與地圖構(gòu)建的框架,使用Basic Bayesian SegNet獲取帶有不確定性估計的語義分割結(jié)果。為了直觀地驗證所提方法的有效性,語義分割模型與SIVO保持一致,即用Cityscapes數(shù)據(jù)集[21]對模型進行訓練并用KITTI語義數(shù)據(jù)集[20]進一步優(yōu)化。該語義分割模型相較于其他模型而言泛化能力較弱,后續(xù)實驗結(jié)果中的準確性提升在一定程度上也表明所提方法適用于泛化能力一般的語義分割模型。其中KITTI 06號序列場景中特征缺失較為嚴重,為避免跟蹤丟失,實驗中將信息熵閾值設置為3 bit,其余序列的閾值均設置為4 bit。
實驗中首先參照KITTI數(shù)據(jù)集的度量方法[20]量化三種方法的性能結(jié)果,即比較每百米的平移誤差(%)及旋轉(zhuǎn)誤差(deg/m),同時比較三種方法的關(guān)鍵幀和地圖點的數(shù)目;然后用絕對軌跡誤差進一步比較三種方法的平移估計性能;最后通過消融實驗評估兩個改進模塊各自的作用。
4.2 實驗結(jié)果
本文將三種方法以及真值的軌跡在KITTI 07號序列上進行直觀地比較。KITTI 07號序列是所提方法在所有序列中表現(xiàn)較好的一條序列。由圖5可以看出,三種方法的軌跡基本重合,這表明所提方法是可行的,能夠得到較為準確的位姿估計結(jié)果。從放大后的局部軌跡結(jié)果可以看出,所提方法相較于SIVO更接近真值的軌跡,表明該方法能夠得到更為準確的位姿估計。
為進一步量化三種方法性能的差異,表1列出了三種方法在KITTI度量指標上的實驗結(jié)果。與ORB-SLAM2相比,兩種基于信息熵的特征點選擇方法在保證可比的位姿估計性能的前提下,關(guān)鍵幀和地圖點的數(shù)目都大幅降低。所提方法相較于ORB-SLAM2平均減少了67.22%的地圖點和38.05%的關(guān)鍵幀,并在多數(shù)序列上都取得了與ORB-SLAM2相當?shù)奈蛔斯烙嬓阅埽@表明在信息熵閾值設置合理的前提下,所提方法能夠剔除包含冗余信息的特征點,僅保留含有較多信息的特征點,在實現(xiàn)相當?shù)奈蛔斯烙嬊疤嵯?,減小SLAM系統(tǒng)的計算和存儲復雜度。
所提方法使用更少的特征點估計位姿,而ORB-SLAM2在觀測到的特征點減少時,通過插入更多的關(guān)鍵幀保證位姿估計的準確性和穩(wěn)定性。實驗結(jié)果中所提方法的關(guān)鍵幀數(shù)目減少是因為修改了ORB-SLAM2的關(guān)鍵幀插入策略:ORB-SLAM2如果在當前幀跟蹤到的近景特征點少于100個,同時新觀測到的近景特征點多于70個時,會將當前幀作為關(guān)鍵幀插入。如果僅保留高信息含量的特征點,原有的關(guān)鍵幀插入策略會導致關(guān)鍵幀插入過于頻繁。因此實驗中保留SIVO的關(guān)鍵幀插入策略,即將跟蹤到的近景特征點個數(shù)由100修改為35。因此相較于ORB-SLAM2,所提算法的關(guān)鍵幀數(shù)仍有一定程度的降低。此外,該算法實質(zhì)上通過增加從圖像中提取的特征點的數(shù)量來改善位姿估計,地圖點數(shù)量相較于SIVO應有一定程度的增加。但本文認為提取于潛在靜態(tài)物體上的特征點對于位姿估計而言具有很高的價值,卻不利于構(gòu)建長期可用的地圖。因此在實驗中僅保留提取于絕對靜態(tài)物體上的特征點用于構(gòu)建地圖,所提方法的地圖點數(shù)與SIVO的地圖點數(shù)基本持平。
表2進一步分析了所提方法在位姿估計上的改進效果。與SIVO相比,所提方法在保證關(guān)鍵幀和地圖點數(shù)目基本一致的前提下,在所有的測試序列上都實現(xiàn)了更為準確的位姿估計:在10號序列上表現(xiàn)最好,平移誤差降低了26.43%,旋轉(zhuǎn)誤差降低了39.39%;在02號序列上表現(xiàn)最差,平移誤差降低了3.96%,旋轉(zhuǎn)誤差降低了22.06%;在所有序列上平移誤差平均降低了12.63%,旋轉(zhuǎn)誤差平均降低了22.09%。這表明所提方法能夠有效改善位姿估計的性能。在05、07、09、10號序列上,相比于ORB-SLAM2,所提方法僅用少量富含信息的特征點實現(xiàn)了更準確的旋轉(zhuǎn)估計,這主要是因為剔除了場景中的動態(tài)特征點,降低了動態(tài)特征點對于位姿估計的影響。
在02序列上位姿估計表現(xiàn)較差,是因為02序列中場景的光線、紋理等條件相較于其他序列而言更差,難以提取到足夠的信息熵高于閾值的特征點,適當?shù)亟档托畔㈧亻撝?,能夠得到更好的位姿估計結(jié)果。而在01序列上的位姿估計結(jié)果較差的原因是語義分割模型沒有泛化到01序列的公路場景,語義分割結(jié)果較差、分類熵過高導致難以提取到足夠的特征點,使用泛化性能更好的語義分割模型將有效改善這一現(xiàn)象。
總體而言,所提方法的位姿估計性能相較于SIVO有明顯提升,這驗證了所提方法的有效性和可行性。
從表1可以看出三種方法都有不錯的旋轉(zhuǎn)估計表現(xiàn),誤差值的數(shù)量級都比較小,且在近半數(shù)的序列上,所提方法相較于ORB-SLAM2實現(xiàn)了更準確的旋轉(zhuǎn)估計。因此本文使用evo工具[22]在具有代表性的05、07、08、10號序列上逐幀比較平移的絕對軌跡誤差,進一步分析三種方法在平移估計方面的性能。其中05、10號序列來自城市場景,07、08號序列來自鄉(xiāng)村場景,05號序列包含多個閉環(huán),07號序列僅包含一個閉環(huán),08、10號序列不包含閉環(huán),07號序列是軌跡長度最短的序列之一,08號序列是軌跡長度最長的序列之一。
從圖6可以看出,所提方法在05號序列上的平移誤差與ORB-SLAM2較為接近,在絕大部分軌跡上平移估計都優(yōu)于SIVO,尤其在0~400幀和1 400幀后的軌跡部分,平移誤差明顯低于SIVO。這表明在具有閉環(huán)的軌跡上,所提方法能夠有效改善SIVO估計平移的準確性,并且僅使用部分含高信息量的特征點即可達到與ORB-SLAM2相當?shù)奈蛔斯烙嬓阅堋?/p>
在圖7所示的07號序列上平移誤差比較結(jié)果中,所提方法相較于SIVO,在大部分軌跡中都得到了更準確的位姿估計結(jié)果。600~800幀的軌跡部分為十字路口等待通行的場景,動態(tài)物體較多,相較于SIVO通過語義標簽直接剔除這部分特征點,進一步處理動態(tài)特征難免會引入少量的動態(tài)特征點,因此在這一場景中表現(xiàn)更差。但總體而言,在該序列上所提方法比SIVO更具魯棒性,并且在0~200幀軌跡部分明顯優(yōu)于ORB-SLAM2。
圖8為08號序列上的平移誤差比較結(jié)果,前2 800幀所提方法與SIVO性能相近,略低于ORB-SLAM2,在2 800幀后SIVO平移誤差明顯增加,而所提方法仍保持與ORB-SLAM2相當?shù)臏蚀_性。這部分場景光照較弱,SIVO難以提取到足夠的特征點用于位姿估計,而所提方法從泊車上提取到更多的特征點,因而實現(xiàn)了更準確的位姿估計。
圖9所示的10號序列是一條沒有包含閉環(huán)的軌跡,位姿估計結(jié)果包含了漂移導致的累計誤差。所提方法在前900幀與ORB-SLAM2保持相當?shù)男阅?,?00~1200幀部分誤差逐漸增大,與SIVO相比,在絕大部分軌跡上都實現(xiàn)了更準確的平移估計,驗證了所提方法在無閉環(huán)軌跡上的有效性。
表3比較了三種方法在四條序列上的平均值、均方根誤差以及標準差等度量指標上的比較結(jié)果。所提方法在除10號序列的最小值外的各項評價指標上都接近于ORB-SLAM2,且相較于SIVO有不同程度的降低,這表明所提方法能夠有效改善SIVO平移估計的準確性。
表4為所提方法在各項度量指標上,相比于SIVO的性能提升結(jié)果。從結(jié)果可以看出,誤差的中位數(shù)、平均值以及均方根誤差均有不同程度的降低,且在部分序列上性能提升可以達到40%以上,這表明所提方法能夠有效地改善SLAM系統(tǒng)位姿估計的準確性。在05、08、10序列上標準差也有明顯的降低,這表明SLAM系統(tǒng)的穩(wěn)定性也得到了一定的提升。其中,08號序列上的誤差最大值以及10號序列的誤差最小值相較于SIVO有不同程度的提升,這表明該方法并沒有泛化到該序列的所有場景,本文認為在個別動態(tài)物體過多的場景下,潛在靜態(tài)物體檢測會引入少量的動態(tài)特征點,從而導致位姿估計的準確性降低。
總體而言,所提方法在KITTI所有序列上的位姿估計性能相較于SIVO都有不同程度的提升,驗證了所提方法的可行性和有效性。在部分序列上,使用少量富含信息的特征點得到了與ORB-SLAM2相當?shù)奈蛔斯烙嫿Y(jié)果。
4.3 消融實驗
測試了潛在靜態(tài)物體檢測模塊和語義不確定性修正模塊對性能提升的貢獻,結(jié)果如表5所示。
兩項改進方法都在一定程度上提高了視覺里程計的準確性,其中潛在靜態(tài)物體檢測模塊對平移估計性能改善相對于SIVO平均提升了5.29%,旋轉(zhuǎn)估計提升了8.54%,性能表現(xiàn)主要取決于不同序列中潛在靜態(tài)物體數(shù)量的多少,在泊車較少的02、03等序列上改進效果并不明顯,在泊車較多的07、10等序列上位姿估計更為準確。語義不確定性修正模塊使SIVO的平移估計性能平均提升了8.45%,旋轉(zhuǎn)估計提升了22.09%,在所有序列上都表現(xiàn)穩(wěn)定。
5 結(jié)束語
本文提出了一種基于語義分割不確定性的特征點選擇算法,通過區(qū)分動態(tài)物體和潛在靜態(tài)物體,保留更多對視覺里程計有價值的特征點,并且利用一種啟發(fā)式算法修正神經(jīng)網(wǎng)絡模型對物體邊界處的特征點的不確定性估計。該方法在KITTI里程計數(shù)據(jù)集中所有標注了真值的序列上進行實驗。結(jié)果證明,上述兩項改進能夠有效提高復雜場景下基于語義不確定性的位姿估計方法的準確性。后續(xù)工作中進一步研究將語義分割的不確定性與位姿估計的不確定性相融合的方法。
參考文獻:
[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的研究現(xiàn)狀與展望[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(xiàn)á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]于雅楠,衛(wèi)紅,陳靜.基于局部熵的 SLAM 視覺里程計優(yōu)化算法[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.