SuMa++: Efficient LiDAR-based Semantic SLAM
摘要
可靠準確的定位和建圖是大多數自主系統的關鍵組成部分。除了地圖環境的幾何信息外,語義對智能導航行為的實現也起著重要作用。在大多數現實環境中,由于移動對象引起的動態會導致這個任務特別復雜。在本文中,我們提出了一種基于表面的制圖方法的擴展,利用三維激光掃描集成語義信息來促進制圖過程。利用全卷積神經網絡有效地提取語義信息,并在激光距離數據的球面投影上進行渲染。這種計算的語義分割結果為整個掃描的點添加標簽,允許我們建立一個語義豐富的帶標簽的面元地圖。這種語義建圖使我們能夠可靠地過濾運動目標,同時也通過語義約束改善了投影掃描匹配。我們對來自KITTI數據集的具有挑戰性的高速公路序列的實驗評估顯示,與純幾何的、最先進的方法相比,我們的語義SLAM方法具有優勢,該數據集具有很少的靜態結構和大量的移動汽車。
引言
準確的定位和未知環境的可靠測繪是大多數自動駕駛汽車的基礎。這類系統通常在高度動態的環境中運行,這使得生成一致的地圖變得更加困難。此外,需要關于建圖區域的語義信息來實現智能導航行為。例如,自動駕駛汽車必須能夠可靠地找到合法停車的位置,或在乘客安全出口可能的地方靠邊停車,即使是在從未見過的、因此之前沒有精確地圖的位置。
在這項工作中,我們提出了一種新的方法同步定位和建圖(SLAM),能夠使用三維激光距離掃描生成語義地圖。**我們的方法利用了LiDAR SLAM[2]的思想,并結合了由全卷積神經網絡(FCN)[20]生成的語義分割獲得的語義信息。**這允許我們生成高質量的語義地圖,同時改善地圖的幾何形狀和里程計的質量。
FCN為激光掃描測距的每個點提供類別標簽。**我們首先使用球面投影執行高效的點云處理,然后將二維球面投影的分類結果反投影到三維點云上。**然而,反向投影引入了人工現象,我們通過兩步過程來減少這種現象,即先對語義標簽進行侵蝕,然后再對語義標簽進行基于深度的填充。語義標簽隨后被集成到基于面元的地圖表示中,并用于更好地將新的觀測結果注冊到已經建立的地圖中。此外,當在更新地圖時,我們通過在新的觀測和世界模型之間使用語義一致性檢測方法去過濾移動物體。通過這種方式,我們降低了將動態對象集成到建圖中的風險。圖1顯示了語義建圖表示的一個示例。語義類別由FCN生成,該FCN由Behley等人[1]使用SemanticKITTI數據集進行訓練.
本文的主要貢獻是將語義集成到基于面元的地圖表示中,以及利用這些語義標簽過濾動態對象的方法。總之,(1)能夠準確地建圖一個環境,特別是在有大量的移動對象的情況下,(2)比相同的建圖系統能夠實現更好的性能,簡單地刪除可能在一般環境中是移動的對象,包括在城市、農村,和高速公路場景。我們在具有挑戰性的KITTI[10]序列上實驗評估了我們的方法,并顯示了我們的基于面元的語義建圖方法(稱為SuMa++)的優越性能,與純粹的基于面元的幾何建圖相比,并比較了基于類標簽刪除所有潛在移動對象的建圖。我們的方法的源代碼可在:
相關工作
里程計估計和SLAM是機器人領域的經典主題,有許多概述文章涵蓋了大量的科學工作[?]],[6],[27]。本文主要研究基于學習方法和動態場景的語義SLAM的相關工作。
出于深度學習的進步和卷積神經網絡(cnn)場景理解,有很多語義SLAM技術利用這些信息使用相機[5]、[30],相機+ IMU數據[4],立體相機[9],[14],[17],[32],[37],或RGB-D傳感器[3],[18],[19],[25],[26],[28],[38]。這些方法大多只應用在室內,使用目標檢測器或攝像機圖像的語義分割。相比之下,我們只使用激光距離數據,并利用語義分割的信息,對激光雷達掃描生成的深度圖像進行操作。
也有大量的文獻處理定位和建圖變化的環境,例如通過過濾移動目標[13],考慮匹配[21]中的殘差,或者利用序列信息[33]。為了實現戶外大規模語義SLAM,還可以將3D LiDAR傳感器與RGB相機相結合。Yan等人[36]將二維圖像與三維點進行關聯,以改進檢測運動目標的分割。Wang和Kim[34]使用來自KITTI數據集[10]的圖像和3D點云,通過應用相對位置先驗,在語義上聯合估計道路布局和分割城市場景。Jeong等人[11],[12]也提出了一種基于多模態傳感器的語義三維建圖系統,以改進大規模環境以及特征較少環境下的分割結果。Liang等人提出了一種新的三維物體檢測器,可以利用激光雷達和相機數據來執行精確的目標定位。所有這些方法都側重于結合3D激光雷達和攝像機來改進目標檢測、語義分割或3D重建。最近由Parkison等人[22]開發了一種點云配準算法,直接將基于圖像的語義信息合并到兩點云之間的相對變換估計中。Zaganidis等人的后續工作[39]實現了激光雷達結合圖像和激光雷達僅語義三維點云配準。這兩種方法都使用語義信息來改進姿態估計,但由于處理時間較長,不能用于在線操作。
與本文提出的方法最相似的是Sun et al.[29]和Dube et al.[8],他們只用一個激光雷達傳感器實現語義SLAM。Sun等人[29]提出了一種語義建圖方法,它被表述為一個序列到序列的編碼-解碼問題。Dube等人[8]提出了一種SegMap方法,該方法基于從點云中提取的段,并給它們分配語義標簽。它們的主要目的是在語義類類型非常有限的情況下,提取有意義的特征,用于全局檢索和多機器人協同SLAM。與之相反,我們專注于生成包含大量語義類的語義地圖,并使用這些語義過濾由動態對象(如移動的車輛和人)引起的異常值,以提高地圖和里程計的準確性。
文章的方法
我們的語義SLAM方法的基礎是基于面元的Mapping (SuMa)[2]方法,我們通過使用如圖2所示的FCN RangeNet++[20]來集成語義分割提供的語義信息來擴展該方法。標簽是由RangeNet++使用點云的球面投影提供的。然后利用該信息對動態目標進行過濾,并在掃描配準中添加語義約束,提高了SuMa姿態估計的魯棒性和準確性。
A.Notation
我們用TBA∈R4×4T_{BA}\in R^{4\times 4}TBA?∈R4×4表示坐標系AAA中的點pAp_ApA?到坐標系BBB中的點pBp_BpB?的變換,使pB=TBApap_B = T_{BA}p_apB?=TBA?pa?。設RBA∈SO(3)R_{BA}\in SO(3)RBA?∈SO(3)和tBA∈R3t_{BA}\in R^3tBA?∈R3表示變換TBAT_{BA}TBA?的相應旋轉和平移部分。
我們稱時間步長ttt處的坐標系為CtC_tCt?。坐標系CtC_tCt?中的每個變量通過姿態TWCt∈R4×4T_{WC_t}\in R^{4\times 4}TWCt??∈R4×4與世界坐標系WWW相關聯,將觀測到的點云轉化為世界坐標系。
B.基于面元的建圖
我們的方法依賴于SuMa,但在這里我們只總結與我們的方法相關的主要步驟,并參考原始論文[2]的更多細節。SuMa首先生成點云PPP在時間步長ttt處的球面投影,即所謂的頂點建圖VDV_DVD?,然后用它生成相應的法向建圖NDN_DND?。有了這些信息,SuMa通過在時間步長t?1t - 1t?1的渲染地圖視圖VMV_MVM?和NMN_MNM?中的投影ICP來確定位姿更新TCt?1CtT_{C_{t - 1}C_t}TCt?1?Ct??,進而通過鏈接所有位姿增量來確定TWCtT_{WC_t}TWCt??。
地圖由面元表示,其中每個面元由位置vs∈R3v_s\in R^3vs?∈R3,法線ns∈R3n_s\in R^3ns?∈R3,和半徑rs∈Rr_s\in Rrs?∈R定義。每個面元額外攜帶兩個時間戳:創建時間戳tct_ctc?和通過測量的最后一次更新的測量時間戳tut_utu?。此外,使用二值貝葉斯濾波器[31]來確定一個面元是穩定的還是不穩定的,從而維持一個穩定對數比值lsl_sls?。SuMa還通過隨后的姿態圖優化執行閉環檢測,以獲得全局一致的建圖。
C.語義分割
對于每一幀,我們使用RangeNet++[20]來預測每個點的語義標簽并生成語義建圖SDS_DSD?。RangeNet++語義分割由每個激光掃描的球面投影生成的距離圖像。簡單地說,該網絡基于Wu等人[35]提出的SqueezeSeg架構,并使用了Redmon等人[24]提出的DarkNet53,通過使用更多的參數來提高結果,同時保持方法的實時性。關于語義分割方法的更多細節,參考Milioto et al.[20]的論文。傳感器視野內點方向標簽的可用性也使得將語義信息集成到地圖中成為可能。為此,我們為每個面元添加估計的語義標簽yyy和語義分割中該標簽的相應概率。
D.精細語義地圖
由于RangeNet++的網絡下采樣導致投影輸入和塊狀輸出,當標簽被重新投影到建圖時,我們必須處理語義標簽的錯誤。為了減少這些誤差,我們使用了泛填充算法,總結在Alg. 1。它位于預處理模塊內部,該模塊使用來自頂點建圖VDV_DVD?的深度信息來精煉語義掩碼SDS_DSD?。
填充的輸入是由RangeNet++生成的原始語義掩碼SrawS_{raw}Sraw?和相應的頂點建圖VDV_DVD?。掩碼SrawS_{raw}Sraw?中每個像素的值都是一個語義標簽。頂點圖中對應的像素包含了激光雷達坐標系中最近的三維點的三維坐標。該方法的輸出是改進的語義掩碼SDS_DSD?。
考慮到目標邊界的預測不確定性高于目標[15]中心,我們在填充過程中采用了以下兩個步驟。第一步是去除半徑為ddd的邊界像素或者錯誤像素(至少一個不同語義標簽的像素)從而導致被侵蝕的掩模SrawS_{raw}Sraw?被侵蝕。將這個掩模與頂點建圖VDV_DVD?生成的深度信息相結合,然后填充侵蝕的掩模。為此,如果對應點的距離一致,即小于閾值θ,我們將空的邊界像素的標簽設為相鄰標簽像素。
該算法的中間步驟如圖3所示。注意,與原始預測相比,過濾后的語義建圖包含的細節更少。例如,建筑物墻上的錯誤標簽大都被糾正了,如圖3(e)所示。
E.使用語義過濾動態物體
大多數現有的SLAM系統依賴幾何信息來表示環境,并將觀測結果與地圖聯系起來。它們在假定環境基本是靜態的情況下工作得很好。然而,世界通常是動態的,特別是在考慮駕駛場景時,一些傳統的方法不能考慮移動物體引起的動態場景變化。因此,在這種情況下,移動的物體可能會導致觀測結果和地圖之間的錯誤關聯,必須謹慎對待。通常,SLAM方法使用某種異常值拒絕,要么通過直接過濾觀測數據,要么通過構建建圖表示來過濾掉由移動對象引起的變化。
在我們的方法中,我們利用語義分割提供的標簽來處理移動對象。更具體地說,當我們更新地圖時,我們通過檢查新的觀測SDS_DSD?和世界模型SMS_MSM?之間的語義一致性來過濾動態。
如果標簽不一致,我們假設這些面元屬于在掃描之間移動的對象。因此,我們在遞歸貝葉斯濾波器穩定性項的計算中加入了懲罰項。經過幾次觀察,我們可以去除不穩定面元。通過這種方法,我們實現了動態檢測和最終去除。
更準確地說,我們通過給它的穩定對數比lsl_sls?來懲罰這個面元,lsl_sls?更新如下:
(1)
其中odds(p)=log(p(1?p)?1)odds(p) = log(p(1-p)^{-1})odds(p)=log(p(1?p)?1)和pstablep_{stable}pstable?和ppriorp_{prior}pprior?分別是給定一個兼容測量和先驗概率的穩定面元的概率。exp(?x2σ?2)exp(-x^2σ^{-2})exp(?x2σ?2)項用于解釋噪聲測量,其中ααα是面元的法向量nsn_sns?和要積分的測量法向量之間的角度,ddd是測量相對于相關面元的距離。測量法線取自NDN_DND?,對應于幀到模型ICP,詳見[2]。
Pomerleau等人提出了一種通過存儲速度的時間軌跡來推斷地圖中主導運動模式的方法,而不是使用語義信息。與我們的方法相反,他們的方法需要一個給定的全局地圖來估計當前掃描中的點的速度。此外,他們的機器人姿態估計是相當準確的.
在圖4中,我們展示了我們的過濾方法與簡單地從對應于可移動對象的類中刪除所有曲面相比的效果。當使用樸素方法時,停靠汽車上的面元被刪除,即使這些可能對增量姿態估計有價值的特征。利用該過濾方法,我們可以有效地去除動態異常值,獲得一個更清晰的語義世界模型,同時避免了靜態對象(如停放的汽車)的面元。這些靜態對象對于ICP是有價值的信息,簡單地刪除它們可能會由于缺少對應而導致迭代失敗。
F.語義ICP
為了進一步改進幀到模型的姿態估計,我們在優化問題中加入了語義約束,這有助于降低離群值的影響。ICP的誤差最小化函數:
(2)
其中每個頂點u∈VDu\in V_Du∈VD?被投影到一個參考頂點vu∈VMv_u\in V_Mvu?∈VM?和它的法向量nu∈NMn_u\in N_Mnu?∈NM?通過
(3,4)
rur_uru?和wuw_uwu?分別是相應的殘量和權重。
對于最小化,我們使用高斯-牛頓方法,通過迭代求解增量δδδ
(5)
其中W∈Rn×nW\in R^{n\times n}W∈Rn×n是一個對角矩陣,包含權重wuw_uwu?對應的每個殘差rur_uru?,r∈Rn×nr\in R^{n\times n}r∈Rn×n是堆疊的殘差向量,J∈Rn×6J\in R^{n\times6}J∈Rn×6是RRR相對于增量δδδ的雅可比矩陣。除了硬關聯和Huber規范加權外,我們還添加了來自更高層次語義場景理解的額外約束來對殘差進行加權。這樣,我們可以將語義和幾何信息結合起來,使ICP過程對離群點更有魯棒性。
在ICP中,在第kkk次迭代中,殘差ru(k)r^{(k)}_uru(k)?的權值wu(k)w^{(k)}_uwu(k)?如下所示:
(6)
其中ρHuber(r)ρ_{Huber}(r)ρHuber?(r)對應于Huber范數,由:
(7)
對于語義相容性Csemantic((yu,Pu),(yvu,Pvu))C_{semantic}((y_u,P_u),(y_{v_u},P_{v_u}))Csemantic?((yu?,Pu?),(yvu??,Pvu??)),定義為:
(8)
即利用預測標簽的確定性來加權殘差。通過Ⅱ{a}Ⅱ\{a\}Ⅱ{a},如果參數aaa為真,則指示函數為1,否則為0。
圖5為掃描時可見有兩輛車行駛的高速公路場景的加權過程,如圖5(a)所示。注意,我們使用語義對動態進行過濾,如第III-E節所述,從地圖中刪除了移動的汽車,見圖5(b)。因此,我們也可以在圖5?中看到對應較低強度的低權重,因為觀測的類別與地圖不一致。
實驗部分
實驗評價主要是為了支持我們聲稱我們是(我)能夠準確地建圖甚至在大量的移動對象的情況下,我們(ii)能夠實現更好的性能比簡單地刪除可能移動對象在一般環境中,包括城市、農村,和高速公路場景。
為此,我們使用KITTI Vision Benchmark[10]的數據來評估我們的方法,其中我們使用Velodyne HDL-64E S2以10hz速率記錄的點云生成。為了評估里程計的性能,該數據集提出計算相對于平移和旋轉在不同姿態間距離上的平均誤差,并將其平均。地面真位姿是利用慣性導航系統的位姿信息生成的,在大多數序列中,GPS位置參考了一個基站,這使得它相當準確,但通常仍然只是局部一致.
在下面,我們將我們提出的方法(由SuMa++表示)與原始的基于surfer的建圖(由SuMa表示)進行比較,并將SuMa與刪除所有可移動類(汽車、公共汽車、卡車、自行車、摩托車、其他車輛、人員、自行車、motorcyclist)的語義分割(表示為SuMa nomovable)。
用于語義分割的RangeNet++使用點注釋[1]進行訓練,使用的是來自KITTI Odometry Benchmark的所有訓練序列,這些序列是用于訓練目的的標簽。這包括序列00到10,除了序列08,因為驗證而被忽略了。
我們在Intel Xeon? W-2123和Nvidia Quadro P4000上測試了我們的方法。RangeNet++為每次掃描生成逐點標簽平均需要75毫秒,面元mapping平均需要48毫秒,但在某些情況下(在具有多個循環閉包的訓練集序列00上),我們最多需要190毫秒來集成循環閉包。
A.KITTI Road Sequences
第一個實驗是為了證明我們的方法即使在有許多移動物體的情況下也能夠生成一致的地圖。我們展示了來自KITTI視覺基準的原始數據的道路類別的序列結果。注意,這些序列不是里程計基準的一部分,因此沒有為語義分割提供標簽,這意味著我們的網絡學會了推斷道路駕駛場景的語義類,而不是簡單的記憶。這些序列,特別是高速公路序列,對于SLAM方法來說是具有挑戰性的,因為這里的大多數對象都是移動的汽車。
此外,道路兩旁只有稀疏的明顯特征,如交通標志或電線桿。沒有建筑角或其他更明顯的特征來指導注冊過程。在這種情況下,對持續移動的異常值(如交通堵塞中的汽車)的錯誤對應通常會導致錯誤估計的姿態變化,從而導致生成的地圖的不一致。
圖6顯示了使用SuMa生成的示例和提出的SuMa++。在純幾何方法的情況下,我們清楚地看到,姿勢不能正確估計,因為突出的交通標志顯示在不同的位置,導致很大的不一致。在我們提出的方法中,我們能夠正確地過濾移動的車輛,相反,我們生成了一個一致的地圖,突出顯示一致的地圖交通標志。在本例中,我們還繪制了SuMa和SuMa++測程結果的相對平移誤差。這些點表示每個時間戳中的相對平移誤差,曲線是給定點的多項式擬合結果。它表明,SuMa++在這樣一個充滿挑戰的環境中實現了更準確的姿態估計,這些環境中有許多由移動對象引起的異常值。
選項卡。I顯示了相對平移和相對旋轉誤差,圖7顯示了在這部分數據集上測試的不同方法的相應軌跡。總的來說,我們看到我們提出的方法,SuMa++,生成了更一致的軌跡,在大多數情況下實現了比SuMa更低的平移誤差。與移除所有可能移動對象的基準SuMa nomovable相比,我們看到的性能與SuMa++非常相似。這證實了在這種情況下,SuMa性能較差的主要原因是實際移動的對象引起的不一致性。然而,我們將在接下來的實驗中表明,去除所有潛在的移動物體也會對城市環境中的姿態估計性能產生負面影響。
B.KITTI Odometry Benchmark
第二個實驗旨在表明,與簡單地從觀察中刪除某些語義類相比,我們的方法表現得更好。該評估是在基蒂里程計基準上進行的。
選項卡。II表示相對平移誤差和相對轉動誤差。IMLS-SLAM[7]和LOAM[40]是最先進的基于激光雷達的SLAM方法。在大多數序列中,我們可以看到與最先進的SuMa++相比相似的性能。更有趣的是,SuMa nomovable基線方法出現了分歧,尤其是在城市場景中。
這可能是違反直覺的,因為這些環境包含大量的人造結構和其他更明顯的特征。但是有兩個原因導致了這種糟糕的性能,當我們查看結果和出現建圖錯誤的場景的配置時,就會發現這兩個原因。首先,盡管我們試圖改進語義分割的結果,但仍然存在錯誤的預測,導致地圖中實際上是靜態的surfers被刪除。第二,移除停著的汽車是問題,因為這是對齊掃描的良好和獨特的特征。這兩種效果都有助于使面元地圖更加稀疏。這一點更加重要,因為停放的汽車是唯一獨特或可靠的特征。總之,簡單地刪除某些類至少在我們的情況下是次優的,并可能導致更差的性能。
為了在不可見的軌跡中評估我們的方法的性能,我們上傳了我們的結果,以便在未知的KITTI測試序列上進行服務器端評估,這樣就不可能對測試集進行參數調優。因此,這可以很好地反映我們的方法在現實世界中的性能。在測試集中,我們獲得的平均旋轉誤差為0:0032 deg/m,平均平移誤差為1:06%,與原始SuMa的0:0032 deg/m和1:39%相比,平移誤差有所改善。
C.Discussion
地圖更新過程中,我們只懲罰面元s動力學的可移動的物體,這意味著我們不懲罰語義靜態對象,例如植被,盡管有時葉子的植被變化和植被變化的外觀與觀點由于激光束,只有從某些觀點得到反映。我們這樣做的動機是,它們也可以作為很好的地標,例如,樹干是靜態的,是一個很好的姿態估計特征。此外,采用Huber范數的原始基于幾何的離群值剔除機構經常對這些部件進行降權。
我們的方法有一個明顯的局限性:我們不能在第一次觀察時過濾掉動態對象。一旦在第一次掃描中有大量的運動物體,我們的方法將失敗,因為我們不能估計一個適當的初始速度或姿態。我們通過在初始化期間刪除所有可能移動的對象類來解決這個問題。然而,一種更穩健的方法是回溯由于觀測到的移動狀態的變化而產生的變化,從而回溯更新地圖。
最后,我們的第二次實驗結果令人信服地表明,盲目刪除某一組類會降低定位精度,但潛在的移動對象仍然可能從地圖的長期表示中刪除,以允許表示環境中可能在不同時間點可見的其他遮擋部分。
結論
在本文中,我們提出了一種新的方法來建立語義地圖,通過基于激光的點云語義分割,不需要任何相機數據。我們利用這些信息來提高在其他模糊和具有挑戰性的情況下的姿態估計精度。特別是,我們的方法利用掃描和建圖之間的語義一致性來過濾掉動態對象,并在ICP過程中提供更高級別的約束。這使我們能夠成功地結合語義和幾何信息,僅僅基于三維激光距離掃描,以獲得比純幾何方法更好的姿態估計精度。我們在KITTI Vision Benchmark數據集上評估了我們的方法,顯示出與純幾何方法相比,我們的方法的優勢。
盡管有這些令人鼓舞的結果,語義建圖的未來研究仍有一些途徑。在未來的工作中,我們計劃研究語義在環路閉合檢測中的使用,以及更細粒度的語義信息的估計,如車道結構或道路類型。
總結
以上是生活随笔為你收集整理的SuMa++: Efficient LiDAR-based Semantic SLAM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js保留两位小数,整数不补零
- 下一篇: PLsql绿色免安装手顺