基于點云的語義單目SLAM
本文轉(zhuǎn)自:計算機視覺life
語義SLAM的最終目的一般有兩種:提高定位精度,或提高建圖質(zhì)量。定位精度很好理解,誤差低就完事兒了,一般策略有:添加新的誤差項/考慮動態(tài)環(huán)境的影響等。而對于建圖質(zhì)量,每篇文章的側(cè)重點則不完全相同。有的是提高地圖的幾何準(zhǔn)確度(3D坐標(biāo),法向量等),有的是提高語義標(biāo)號的準(zhǔn)確度,有的是去除動態(tài)物體的影響(殘影),有的則是將物體作為地圖的基本元素獨立出來。
接下來是三篇語義SLAM連載文章,依次為基于點,面元和物體的語義SLAM,根據(jù)地圖中建圖元素的不同進(jìn)行分類。
注:有的文章可能只涉及語義建圖(Semantic Mapping),而沒有將語義用于提高定位精度,比如【論文閱讀21】Surfel-based Mapping: SemanticFusion。但是這里為了簡單,統(tǒng)稱為語義SLAM。
在ORB-SLAM中添加直接法。
利用每幀中每個特征點的測量信息:深度測量(三角化結(jié)果),語義標(biāo)號(CNN輸出)和特征點匹配精度(公式(13)(14)),維護(hù)每個特征在地圖中的性質(zhì):深度,語義標(biāo)號,和內(nèi)點率(屬于靜態(tài)物體的概率)。維護(hù)過程以概率方式而非簡單的加權(quán)平均方式來完成。
N. Brasch, A. Bozic, J. Lallemand, F. Tombari. Semantic Monocular SLAM for Highly Dynamic Environments. IEEE/RSJ International Conference on Intelligent Robots and Systems, 393-400, 2018.
摘要
最近在單目SLAM中的提高已經(jīng)能夠得到在靜態(tài)環(huán)境中運行的實時系統(tǒng),但是在動態(tài)場景變化和運動時會失敗,由于它們?nèi)鄙亠@式動態(tài)外點處理。Brasch等人提出了一種語義 SLAM框架來解決高動態(tài)環(huán)境,組合基于特征和直接法來達(dá)到挑戰(zhàn)環(huán)境下的魯棒性。提出的方法利用了場景的語義信息到一個顯式的概率模型中,其最大化跟蹤和建圖的概率來依賴那些與相機沒有相對運動的場景部分。與SOTA相比,我們的算法在動態(tài)環(huán)境中展示出更穩(wěn)定的可靠位姿估計,在靜態(tài)序列中達(dá)到了相似表現(xiàn),在Virtual KITTI和Synthia數(shù)據(jù)集上。
1. 介紹
在過去幾年,對于單目SLAM領(lǐng)域的大量研究允許達(dá)到了之前未見到的精度,魯棒性和速度,產(chǎn)生了大量在機器人和增強現(xiàn)實領(lǐng)域的新應(yīng)用。與基于雙目或者RGB-D的技術(shù)相比,單目SLAM算法[1]-[4]依賴更廉價的硬件,更容易標(biāo)定并且在深度范圍上沒有限制,使得它們對于同時專注室內(nèi)和室外場景的移動應(yīng)用中特別地受歡迎。
單目SLAM方法可以被劃分為兩類?;诿枋龅姆椒╗5][1]使用顯式關(guān)鍵點描述子來尋找不同圖片間的特征匹配并最小化它們之間的重投影誤差。不同地,直接法[6][2][4][3]最小化光度誤差基于從一張圖片到另一張圖片的像素密度的投影。描述和直接法有它們各自優(yōu)勢和缺陷,如[3]中分析的那樣。特別地,描述方法對于幾何噪聲耕路邦,即像素位置偏移,來源于不準(zhǔn)確的相機內(nèi)參標(biāo)定或者卷簾門效應(yīng),而直接法更適合用于解決光度噪聲,來源于運動模糊。
然而,當(dāng)前單目SLAM算法依賴周圍環(huán)境是靜態(tài)的假設(shè),限制了它們在大多數(shù)真實世界場景中的應(yīng)用。為了解決動態(tài)物體,它們或者在優(yōu)化期間利用M-估計器(Tukey[5],Huber[2][1][3]),或者使用基于RANSAC的方法來檢測和濾除運動[7]。為了能正常工作,兩種方法都需要大多數(shù)點都相對相機運動是靜態(tài)的。相反地,當(dāng)運動物體占據(jù)相機視野的大部分,尤其是當(dāng)大多數(shù)視覺特征位于這些區(qū)域內(nèi),當(dāng)前的單目SLAM方法將會失效。這是由其普遍的現(xiàn)象在大多數(shù)室外與駕駛相關(guān)的情境中:特別是動態(tài)物體運動緩慢或者從靜止開始運動時(想象一輛車暫時停在交通燈前,如圖1所示),外點的檢測非常困難。沒有進(jìn)一步關(guān)于觀測區(qū)域的信息,特別是對于單目方法,一般不太可能區(qū)分圖片中的運動和靜止部分。由于最近基于CNNs的場景理解和語義分割方法的進(jìn)步,高層次推理可以被使用來減少圖片中靜止和動態(tài)部分的歧義。這時非常有趣的考慮到新的卷積結(jié)構(gòu)的發(fā)展和能夠高效在移動/嵌入式GPUs中運行的模型的發(fā)展[8]。

一個來自CitySpaces數(shù)據(jù)集的例子,其中一輛汽車在一個交通燈前。大多數(shù)圖片區(qū)域?qū)儆跁簳r靜止的物體,將會緩慢移動,因此導(dǎo)致基于運動的外點檢測方法的失效。在(c)中一個語義掩膜忽略所有在潛在動態(tài)區(qū)域的關(guān)鍵點,并因此不能使用停下的車輛用于位姿估計。我們的方法(d)使用逐點外點估計使用深度方差并融合(1)的語義信息。紅色圓圈可視化估計的外點測量,綠色圓圈是用于位姿估計的內(nèi)點。
通過依賴場景中的語義信息,可能檢測出潛在的動態(tài)物體而不需要顯式地跟蹤它們。能夠分割出場景的靜態(tài)部分例如大樓或者車道線,我們可以指引特征提取并匹配該部分。此外,沒有依賴逐幀語義信息,我們提出一種概率模型,考慮所有幀的語義信息來估計地圖點的語義。除了語義信息,我們還是用時序運動信息來推理地圖點是運動的還是靜止的。我們更新地圖點的概率參數(shù)當(dāng)有新的觀測時。為了得到一個實時SLAM系統(tǒng),我們設(shè)計了一種高效的具有低常數(shù)內(nèi)存消耗的在線概率更新。在我們的評估中,我們展示了更穩(wěn)定的結(jié)果在高動態(tài)環(huán)境中在仿真和真實數(shù)據(jù)中,同時展示了類似SOTA的表現(xiàn)在靜態(tài)場景中。
2. 相關(guān)工作
動態(tài)物體被大多數(shù)SLAM算法看作是外點。我們提出使用語義信息來選擇一組位于靜態(tài)場景部分的積極特征用于更魯棒的位姿估計,與現(xiàn)存語義SLAM方法專注于稠密3D重建不同。語義先驗由RGB圖片上訓(xùn)練的深度模型生成。
A. 動態(tài)SLAM
在過去,不同的策略已經(jīng)被提出來解決視覺SLAM中的動態(tài)外點。在[4]中,只有深度在一些觀測后收斂到具有較小方差的積極特征被用于跟蹤。大量[5]的改進(jìn)已經(jīng)被提出來顯式處理動態(tài)物體。在[7]中,一個替代的RANSAC構(gòu)架被使用,其中采樣被調(diào)整來分割采樣點。[9]使用光流在所有特征點的流朝向中尋找聚類,并使用聚類將動態(tài)物體從靜態(tài)背景中分割出去。RGB-D相機或者雙目相機的使用產(chǎn)生了高度可靠和稠密的深度地圖,在這些情形中空閑空間推理可以被用于檢測動態(tài)物體。動態(tài)物體被檢測如果它們移動到之前空閑的區(qū)域,并在位姿估計中被標(biāo)記為外點[10]。當(dāng)只有稀疏和具有噪聲的深度信息可用時,空閑推理是不可能的。為了處理單目系統(tǒng)構(gòu)架中的動態(tài)場景,最近的工作專注于多身體SfM構(gòu)架。這里場景被分割為多個運動剛體和靜態(tài)世界。物體實例被首先通過運動分割檢測出來,然后對每個聚類,一個逐幀的變換被計算并且BA被用于有緣最終的軌跡[11]。這里,輸出的質(zhì)量依賴運動分割。如果運動很小,分割很差,緩慢運動的物體不會被檢測出來。而且執(zhí)行時間遠(yuǎn)非實時。
B. 語義SLAM
大多數(shù)現(xiàn)存方法,組合經(jīng)典的SLAM和場景的語義分割,使用SLAM系統(tǒng)的位姿圖來構(gòu)建一個在圖片序列上時序或者空間一致的分割。時序或者空間一致性可以被構(gòu)建為一個圖片上的CRF[12],一個稠密體素柵格[13]或者一個網(wǎng)格[14]。稠密CRFs的使用使得大多數(shù)現(xiàn)存方法不適合大規(guī)模動態(tài)場景的實時應(yīng)用,由于它們的低幀率[12]。其他方法使用在線更新用于語義融合[15],允許它們實時運行。大多數(shù)上述方法不反饋語義信息到位姿估計流程。在[12]中,語義信息被用于在3D模型融合中加權(quán)測量。[16]移除了點如果語義類別對于多次觀測是不同的。為了獲得稠密的3D模型,雙目相機也被使用在[12]和[17]中。
3. 概率語義SLAM
提出的SLAM系統(tǒng)建立在ORB-SLAM框架上[1],其由跟蹤,建圖和回環(huán)三個模塊組成。圖2給出了框架的綜述。我們對動態(tài)和靜態(tài)地圖點提出了一個顯式模型,并只跟蹤靜態(tài)點。

圖2. 我們動態(tài)SLAM框架綜述。ORB-SLAM方法被擴展通過在地圖模塊中使用直接特征提取和匹配,因此它們可以在跟蹤模塊中被使用用于位姿估計。我們還整合了一個概率外點模型來更新每個地圖點的狀態(tài)。只有積極地圖點被使用在位姿估計中。增加或者更新的模塊被顯示為紅色。
我們從前兩幀開始,并使用ORB特征進(jìn)行基于基本矩陣估計的初始化[1],接著進(jìn)行全局BA:聯(lián)合優(yōu)化相機位姿和地圖點。為了補償位姿估計誤差,我們使用Lucas-Kanade光流[8]和極線約束的組合替代極線搜索(和[3]中一樣)來估計直接特征的初始深度。
對于每個新幀,ORB特征被提取,并且對應(yīng)被發(fā)現(xiàn)通過描述子匹配。位姿估計被初始化基于常運動速度模型。我們優(yōu)化新幀的位姿基于描述和直接的方法,通過多分辨率,多步驟非線性優(yōu)化。依賴每層金字塔中描述和直接特征的數(shù)量,我們使用多輪,其中我們增加或移除特征點基于它們的殘差。我們只在關(guān)鍵幀中提取新的直接特征。如果在當(dāng)前幀中沒有足夠的對應(yīng)被找到,一個新的關(guān)鍵幀被創(chuàng)建。
有了新幀的估計位姿,我們可以三角化描述和直接特征來得到一個深度估計。地圖點和相機位姿被聯(lián)合精修通過局部BA在一個固定窗口大小的關(guān)鍵幀中。
A. 位姿估計和建圖
描述特征類似ORB被用在SfM方法中,提供快速和可靠的匹配,減少了假陽性對應(yīng)。地圖點一般被參數(shù)化為3D點并且優(yōu)化被構(gòu)建為最小化重投影誤差(見等式2)。進(jìn)一步地,描述的特征可以被用于識別回環(huán)并且在一個已知地圖上進(jìn)行重定位,其可以被用于類似自動駕駛中的定位和AR應(yīng)用中的添加標(biāo)簽。
另一方面,直接特征避免關(guān)鍵點和描述子的昂貴提取代價,但是一個好的初始化位姿是需要的為了使得優(yōu)化收斂到全局最小值。這導(dǎo)致需要高幀率或者相對緩慢的相機運動?;趫D片塊的匹配準(zhǔn)確率不像描述子比較那樣可靠,假陽性或局部最小值可能被檢測到。直接特征也對強,突然的或者局部光照變化敏感。估計一個仿射曝光模型[3]可以降低這些影響。然而,直接特征也可以被提取在低紋理或者強運動模糊的情形中。
由于這些互補性質(zhì),我們打算可能的話使用描述特征。在沒有足夠特征被發(fā)現(xiàn)時,我們替代地使用直接特征。
不像用于描述特征的3D地圖點方法,我們決定使用和直接特征一致的逆深度構(gòu)架。因此,我們可以使用相同的概率模型對于兩種特征,其簡化了聯(lián)合優(yōu)化的權(quán)重。
我們決定使用ORB特征作為描述特征,由于它們的快速提?。‵AST-角點+方向)和魯棒的描述子(BRIEF)。我們跟隨[1]的應(yīng)用使用柵格提取策略來得到整張圖片的均勻分布和一個多分辨率金字塔。對于直接特征,我們基于[3]中的工作使用分辨率金字塔和一個基于柵格的特征選擇策略。
在位姿估計和局部BA中,重投影誤差
和
的加權(quán)和被最小化。
(1)
其中
平衡了重投影誤差和光度誤差。因為我們在逐點級別推理,這兩種參數(shù)的動態(tài)適應(yīng)是不需要的。
我們定義
為
中的位姿變換,將一個表示在視覺坐標(biāo)系中的點
變換到第
幀的坐標(biāo)系統(tǒng)中。同時,
是相機內(nèi)參矩陣,
表示從歸一化坐標(biāo)到笛卡爾坐標(biāo)的變換,
是關(guān)鍵點的估計深度。
重投影誤差被給出通過觀測關(guān)鍵點
和匹配的關(guān)鍵點
從第
幀到第
幀的重投影的像素距離。
(2)
以相同方式,光度誤差是圖片
中的像素
和它在圖片
中重投影之間的像素密度差。
(3)
我們跟隨[3]并對光照變化使用仿射變換模型。
(4)
其中
是快門時間,
和
是對于每幀估計的仿射變換參數(shù)。
一個具有魯棒Huber模的加權(quán)高斯牛頓方法被應(yīng)用以解決非線性最小二乘問題。類似[2]我們使用協(xié)方差縮放,每一項被加權(quán)使用逆協(xié)方差來反映每個測量的不確定性。
協(xié)方差傳播被執(zhí)行在每個新的測量后通過等式(5)的更新方法。
(5)
B. 概率外點拒絕
SLAM的一個核心想法是精修3D世界的地圖,通過更新每個地圖點的3D位置當(dāng)它被再次觀測到時。由于一些測量比其他測量更可靠,可能通過依賴一種概率方法將測量的方差作為權(quán)重進(jìn)行平均比簡單的平均要更好。
在一個動態(tài)環(huán)境中,只有地圖點的位置是不夠的。如果我們執(zhí)行BA使用場景中的所有點,包括動態(tài)點,這將會損害優(yōu)化估計,因為BA假設(shè)點位置的時序一致性。因此,我們也想要知道哪些點是足夠可靠的用于BA。
我們對每個地圖點估計內(nèi)點率
,描述該點的可靠未定的概率。內(nèi)點率能夠以多種方式被建模,例如一些方法保存成功和不成功三角化的次數(shù)[1]。在[19],[4]中,一種概率模型被使用來建模深度,并將內(nèi)點率建模為隱變量。在上述兩種情形中,內(nèi)點率都被更新通過觀測地圖點隨時間的位置,并基于估計的相機位姿決定他們是否為動態(tài)點。
確定地圖點的內(nèi)點率的運動估計可能在單目SLAM中是奇異的。對于緩慢運動的物體或者如果一個大動態(tài)物體占據(jù)了相機的絕大部分視野,并且它本身被看做是靜態(tài)視覺的一部分。我們將語義信息包含到內(nèi)點率的估計中來提供另一種獨立的信息來源,來推測地圖點是動態(tài)點的可能性。因此,除了深度
和內(nèi)點率
,我們還對每個地圖點估計一個語義類別
。
當(dāng)一個地圖點被觀測到時,我們使用三角化計算它當(dāng)前的深度估計
,和該深度估計的方差
。新測量的方差來自三角化,假設(shè)關(guān)鍵點在圖片中的位置是已知的,并且具有像素級精度[19]。我們也估計匹配精度
,后面會詳細(xì)描述,并對關(guān)鍵點從神經(jīng)網(wǎng)絡(luò)中檢索語義類別概率
。這里
是神經(jīng)網(wǎng)絡(luò)的輸出,并且可以被理解為一個關(guān)鍵點屬于語義類別
的概率,給定當(dāng)前圖片幀
。
我們定義深度測量似然概率在等式6中。它基于[19],但是我們擴展它通過使用匹配精度。為了簡化符號,我們使用
。
(6)
這個定義后的直觀如下:如果當(dāng)前關(guān)鍵點被正確匹配,并且地圖點是靜止的,那么匹配精度
和內(nèi)點率
都接近
。因此,深度測量
服從高斯分布
。另一方面,如果當(dāng)前匹配是錯誤的,或者點是動態(tài)的,那么當(dāng)前深度測量被認(rèn)為是均勻分布
,并且對于平均深度
的估計不提供任何有用信息。
類似深度的情形,我們建模地圖點的語義為神經(jīng)網(wǎng)絡(luò)輸出
和一個錯誤匹配關(guān)鍵點的均勻分布的混合:
(7)
這允許一個高效的在線更新和地圖點的動態(tài)與靜態(tài)狀態(tài)之間的平滑轉(zhuǎn)變。
最終,我們需要定義語義類別上內(nèi)點率的獨立性。已經(jīng)被證實如果我們建模獨立性為Beta分布,那么可以推出一個高效的在線參數(shù)更新,如公式(8)所示。
(8)
這里,參數(shù)
是一個熱編碼的語義類別,
是固定的常數(shù),對每個語義類別進(jìn)行設(shè)置。它們表示了某個類別是靜態(tài)或者動態(tài)的似然(例如:一輛車具有較小的
和較大的
,因為它更有可能是動態(tài)的)。常數(shù)
可以被縮放使得與深度測量相比,在語義測量上放置更大或者更小的權(quán)重,例如,更大的
可以在內(nèi)點率的估計中給語義先驗相比運動先驗更大的權(quán)重。
深度,內(nèi)點率和語義類別的聯(lián)合模型的獨立性圖如圖3所示。測量的深度
依賴真實深度
,匹配準(zhǔn)確率
和內(nèi)點率
,其依賴語義
。

圖3. 聯(lián)合概率模型的圖。展示了深度測量d_i,測量精度\alpha_i和內(nèi)點率\phi的關(guān)系。后者依賴當(dāng)前幀CNN預(yù)測的語義類別c。
近似推理導(dǎo)致組合三項的后驗概率。第一項包括高斯分布的深度概率,第二項是基于深度測量的Beta分布形式的內(nèi)點率,第三項是在語義類別上建模內(nèi)點率的獨立性的Beta分布,
(9)
這里
是所有深度測量,
是所有語義信息觀測,
是CNN的
類概率密度輸出。
可以看出所有深度測量都被總結(jié)為均值深度
和深度方差
。類似地,內(nèi)點率遵循參數(shù)為
和
的beta分布。進(jìn)行代數(shù)變換后,一個高效的在線參數(shù)更新可以被推導(dǎo),其對于地圖點進(jìn)行概率模型的快速更新。
對于沒有語義信息的幀,上一項沒有被使用。語義beta分布的參數(shù)
和
被表示通過如下關(guān)系:
(10)
(11)
類別后驗概率
是所有語義測量的融合,見等式(12)。與現(xiàn)有融合方法相比[13],等式(7)導(dǎo)致一個加權(quán)的語義融合,依賴每個測量的匹配精度
。
(12)
為了估計描述特征的匹配精度,Hamming距離被用來比較二值描述子。
(13)
對于直接法,我們使用兩個歸一化圖片塊的光度差。
(14)
在我們的應(yīng)用中,我們使用逆深度[4][20],為了建模無窮遠(yuǎn)點。[20]也展示了逆深度更有可能服從高斯分布。根據(jù)內(nèi)點率,我們決定是否使用(積極點)或者不使用(消極點)地圖點用于位姿估計。當(dāng)前內(nèi)點率可以被計算使用(
(15)
End 
聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)術(shù)交流之目的。文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。
