綜述 | 自動駕駛和SLAM中動態(tài)障礙物濾除方案綜述
1、引言
在單次激光SLAM或者定位的過程中,動態(tài)障礙物(如:移動的車輛、行人等)會對SLAM或者定位造成兩個方面的負(fù)面影響:點云配準(zhǔn) 和 地圖構(gòu)建
針對點云配準(zhǔn),動態(tài)障礙物能造成最極端的情況是“當(dāng)一幀激光數(shù)據(jù)中的大部分(甚至100%)點云都是從動態(tài)障礙物上返回的數(shù)據(jù),那么該幀點云則沒有能力在reference scan(或者reference map)中找到correspondent points,點云的配準(zhǔn)就會失效,但在實際情況下,點云配準(zhǔn)時的query scan數(shù)據(jù)中受到動態(tài)障礙物影響的點云個數(shù)是“有限的”,由此query scan中大多數(shù)的點云還是可以找到它們的correspondences,少數(shù)的異常量不會產(chǎn)生太大的干擾。另一方面,若是采用特征法進(jìn)行點云配準(zhǔn),動態(tài)障礙物在預(yù)處理階段也會被剔除,由此基于特征的配準(zhǔn)方法受到動態(tài)障礙物的影響會更小。針對地圖構(gòu)建,動態(tài)障礙物對點云地圖的構(gòu)建的影響在于會在最終生成的地圖中產(chǎn)生“鬼影”,而若簡單使用在第一種情況中提到的特征點云構(gòu)建地圖的話,又會錯誤地濾除掉很多實際需要的物體信息,導(dǎo)致地圖特征稀疏,難以進(jìn)一步處理,具體的影響可見以下圖示:
最后,一言以蔽之:(1)在點云配準(zhǔn)層面動態(tài)障礙物過多會影響點云配準(zhǔn)的精度和魯棒性(導(dǎo)致配準(zhǔn)出現(xiàn)失效),(2)在地圖構(gòu)建層面時動態(tài)障礙物會在地圖中形成“鬼影”,影響后期地圖的進(jìn)一步處理(路徑規(guī)劃、特征提取、定位,etc)。這里也推薦「3D視覺工坊」新課程《面向自動駕駛領(lǐng)域的3D點云目標(biāo)檢測全棧學(xué)習(xí)路線!(單模態(tài)+多模態(tài)/數(shù)據(jù)+代碼)》。
作者:知乎博主Sky Shaw ?| 來源:計算機(jī)視覺工坊
在公眾號「3D視覺工坊」后臺,回復(fù)「原論文」即可獲取論文pdf和代碼。
添加微信:dddvisiona,備注:自動駕駛,拉你入群。文末附行業(yè)細(xì)分群。
2、典型場景下動態(tài)障礙物濾除的需求差異
首先,以移動機(jī)器人(AGV類)的使用場景為例,其基礎(chǔ)使用場景是二維室內(nèi)環(huán)境,所以使用的SLAM算法和機(jī)器人位姿估計器模型都是基于2D平面操作。那基于2D平面場景,SLAM中最常見、最經(jīng)典的算法是gmapping、cartographer或者karto,定位中常用的算法是EKF、AMCL和ICP的組合,導(dǎo)航中的路徑規(guī)劃和運(yùn)動控制就都是基于概率柵格地圖(pgm)的平面規(guī)劃了。由此可見,基于移動機(jī)器人(AGV)的SLAM、定位和導(dǎo)航都離不開概率柵格地圖(pgm),而在概率柵格地圖上最傳統(tǒng)和最有效的去除動態(tài)障礙物的方法就是利用“ray casting算法”的柵格地圖概率的“更新”,而“更新”的最終目的是為了在柵格地圖上不留下動態(tài)障礙物的hit點(此處的更新之所以打上引號,是因為更新概率柵格的模型有很多,用引號表示泛指)。
另一個會使用到SLAM和Localization的工程場景就是低速無人駕駛(或自動駕駛)領(lǐng)域了,不管是使用高精地圖的“傳統(tǒng)”自動駕駛方案,還是“重感知,輕地圖”的自動駕駛策略,都還是或多或少地需要使用到“地圖”(此處的引號代表一系列的泛指,pgm地圖、點云地圖、語義地圖等),高精地圖的各個圖層中(語義圖層也好,矢量圖層也罷)都要求提取出精細(xì)的車道線、箭頭、路標(biāo)等特征并且肯定不會再包含動態(tài)障礙物的信息,定位所使用的點云圖層也是要求盡可能地保證“干凈”無動態(tài)障礙物點云干擾。在自動駕駛領(lǐng)域中的動態(tài)障礙物濾除思量上,一方面區(qū)別于AGV只針對2D的場景的操作,其需要濾除的障礙物是3D物體,另一方面除了地圖上不能留有動態(tài)障礙物信息外,定位過程中的實時點云也需要盡可能地要求不受其動態(tài)障礙物的影響且其定位過程中的動態(tài)障礙物的濾除最好是在線的、實時的、高效地,以保證自動駕駛的精度和魯棒性。
至此,不難得出一個結(jié)論:(1)AGV導(dǎo)航中動態(tài)障礙物去除可以使用基于柵格地圖概率更新方式,本質(zhì)上是ray-casting,同時濾除過程可以容忍一定程度的“延遲”(概率更新需要多次、反復(fù)進(jìn)進(jìn)行以達(dá)到濾除的效果),(2)自動駕駛過程中點云數(shù)據(jù)去除動態(tài)障礙物是高精度地圖構(gòu)建的基礎(chǔ)任務(wù),同時保證在線地、實時地動態(tài)障礙物濾除能在一定程度上提升定位過程中精度和保證定位的魯棒性。
3、動態(tài)障礙物濾除算法綜述
基于第一節(jié)中的闡述,相信大家都能體會到在SLAM和定位的工程應(yīng)用中動態(tài)障礙物的過濾是一件對SLAM & Localization位姿輸出精度的提升效果有限,但是能極大地提升“用戶體驗”的一個模塊,更重要的是動態(tài)障礙物濾除模塊是一個完備導(dǎo)航系統(tǒng)的重要組成成分。
基于第二節(jié)中的描述,也可以發(fā)現(xiàn)在不同的工程應(yīng)用場景下,動態(tài)障礙物濾除的具體要求也不相同,其一,工程師需要根據(jù)具體使用的場景和后續(xù)導(dǎo)航模塊需要的“地圖”來確認(rèn)動態(tài)障礙物的濾除算法,比如2D場景下可以基于2D的概率柵格地圖,利用ray-casting的算法實現(xiàn)濾除,3D場景下需要基于3D點云地圖,利用特征提取或者聚類的方式去除點云地圖中的動態(tài)障礙物點云;其二,根據(jù)使用場景的不同,動態(tài)障礙物濾除的時機(jī)和時效也存在差異,例如2D場景下基于2D的概率柵格地圖的“更新”方式在濾除動態(tài)障礙物信息的時候可以容忍一定程度的“延遲”,且2D定位時query scan中也不一定需要進(jìn)行動態(tài)障礙物點云的過濾處理,但在3D場景下,更具體些,在自動駕駛的使用場景下,定位過程就已經(jīng)需要盡可能地保證能在線實時地濾除動態(tài)障礙物信息,在3D地圖的構(gòu)建過程中會有更多精細(xì)的處理以保證“地圖”不被動態(tài)障礙物的信息污染。
至此,考慮“動態(tài)障礙物濾除”算法應(yīng)用的層面,動態(tài)障礙物去除算法模塊的使用分為兩個時機(jī):(1)在線實時處理和(2)離線后處理。針對第一個“在線實時處理”,顧名思義就是在接收到每一幀(或者每一個batch)點云數(shù)據(jù)時,通過相鄰“單位點云數(shù)據(jù)”幀間的對比以分離動態(tài)障礙物點云,然后再直接將“單位點云數(shù)據(jù)”中的動態(tài)障礙物點云濾除,針對第二個時機(jī):離線處理,此處的“離線”指的是區(qū)分“地圖構(gòu)建”與“位姿估計”這兩個階段,因為在離線處理的前提是需要點云數(shù)據(jù)及其對應(yīng)的全局位姿信息,故而“離線地圖構(gòu)建”的階段需要在“位姿估計”階段后進(jìn)行,通常是在SLAM過程記錄關(guān)鍵幀的位姿及其對應(yīng)的點云數(shù)據(jù),輸出給到“離線地圖構(gòu)建”的階段并在此階段內(nèi)對每一幀點云進(jìn)行動態(tài)障礙物點云的去除。
由此,雖然在線實時的濾除方案可以保證時效性,但往往在線濾除的方法都存在動態(tài)障礙物信息濾除不夠干凈的問題,而離線后處理的方法雖然犧牲了實時性,但卻可以獲取SLAM周期內(nèi)的完整的軌跡信息作為參考信息并用以來識別動態(tài)障礙物點云,以追求“極致的”動態(tài)點云濾除的準(zhǔn)確性和充分性。
動態(tài)障礙物濾除的算法既可以根據(jù)上文中基于時機(jī)來完成分類,也可以基于原理來進(jìn)行細(xì)分,大體上主要分為三類:
(1)基于點云分割的濾除算法(segmentation-based method):基于分割的方法中當(dāng)前比較主流的是基于深度學(xué)習(xí)的語義分割方法,通過前期的點云特征訓(xùn)練,在使用過程中直接標(biāo)注出點云中的動態(tài)障礙物信息部分,在定位和建圖算法中根據(jù)點云中的標(biāo)注直接過濾即可,雖然濾除的內(nèi)容僅限于前期訓(xùn)練得到的模型且容易有假陽性和假陰性的問題,但其方法勝在簡單高效。另一類傳統(tǒng)的點云分割的方法則基于聚類的模式,如快速點特征直方圖 ( fast point feature histograms, FPFH )、基于確定視角下的特征分布直方圖VFH(viewpoint feature histogram),用以在靜態(tài)聚類中區(qū)分出動態(tài)聚類,此類方法能夠改善計算成本提高實時性從而得到廣泛研究,再者就是基于區(qū)域(逆)生長以分割混雜著動態(tài)和靜態(tài)點云的目標(biāo),識別出動態(tài)點云目標(biāo)以便于后期濾除,等。
(2)基于可見性的濾除算法(visibility-based method):該類算法中是基于一個物理前提:“光沿直線傳播,如果在同一條光路上存在遠(yuǎn)、近兩個點云,則近側(cè)的點云肯定就是動態(tài)點云”,基于可見性的方法在當(dāng)前的動態(tài)障礙物識別和濾除的研究中十分火熱,且研究的重點除了提升算法效率外,就是研究怎么解決該方案中的局限性:“誤殺問題”和“靜態(tài)點不可見”的問題。其一,誤殺問題包括但不限于點云自干擾、平行點差異導(dǎo)致的假陽性、遮擋點誤判、接觸點假陽性等一系列由于雷達(dá)點云的物理特性引發(fā)的誤殺問題。其二,靜態(tài)點不可見的問題相較于誤殺問題會少見一些,但更加難以解決,例如當(dāng)存在動態(tài)障礙物一直遮擋了部分或者全部的激光雷達(dá)的視線,則雷達(dá)沒有機(jī)會看到這些動態(tài)障礙物后方的靜態(tài)物體信息以至于動態(tài)障礙物點云永遠(yuǎn)不會被識別和濾除掉。
(3)基于柵格的濾除算法(voxel-based or ray-casting based method):該方案是最為經(jīng)典和傳統(tǒng)的,其方案背后的物理前提與基于可見性的濾除方案一致,不同點在于其具體實現(xiàn)的時候需要結(jié)合柵格地圖(例如概率占據(jù)柵格、八叉樹柵格,etc),識別與區(qū)分靜態(tài)和動態(tài)點的基本原理:激光點云所落在的柵格處hits計數(shù)+1或者占據(jù)概率上升,激光光束穿過的所有柵格misses計數(shù)+1或者空閑概率上升,通過統(tǒng)計同一柵格中hits和misses數(shù)量差值或者占據(jù)概率,以判斷柵格中包含的點云是否需要濾除。
4、動態(tài)障礙物濾除算法推薦
以上,介紹了動態(tài)障礙物濾除算法應(yīng)用層面和基本原理,這一章節(jié)中將具體推薦幾個本人認(rèn)為很有參考價值、值得學(xué)習(xí)并值得花時間去復(fù)現(xiàn)的幾個動態(tài)障礙物濾除算法和理論。
以下論文pdf和代碼鏈接,在公眾號「計算機(jī)視覺工坊」后臺,回復(fù)「原論文」即可獲取。
【1】Zhou, H. et al. (2020) Cylinder3D: An effective 3D framework for driving-scene lidar semantic segmentation, arXiv.org. Available at: https://arxiv.org/abs/2008.01550 (Accessed: 22 August 2023).
在線實時的過濾算法,長期霸榜SemanticKITTI:Moving Object Segmanteion,
【2】Pfreundschuh, Patrick, et al. "Dynamic Object Aware LiDAR SLAM based on Automatic Generation of Training Data."2021 IEEE International Conference on Robotics and Automation (ICRA), 2021.
在線實時的過濾算法,蘇黎世理工出品,必屬精品
【3】PRBonn (no date) PRBonn/LIDAR-MOS: (LMNet) moving object segmentation in 3D LIDAR DATA: A learning-based approach exploiting sequential data (RAL/IROS 2021), GitHub. Available at: https://github.com/PRBonn/LiDAR-MOS (Accessed: 22 August 2023).
在線實時的過濾算法,新晉動態(tài)障礙物濾除算法,近期熱度很高
【4】G. Kim and A. Kim, “Remove, then revert: Static point cloud map construction using multiresolution range images,” in IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2020.
離線后處理的過濾算法,應(yīng)該是2020年熱度最高的動態(tài)障礙物濾除算法了,理論好理解,代碼移植容易,且還可以深度開發(fā)用于life-long slam。詳細(xì)論文的解析可見:https://zhuanlan.zhihu.com/p/491271775
【5】F. Pomerleau, P. Krusi, F. Colas, P. Furgale, and R. Siegwart, “Long-term 3d map maintenance in dynamic environments,” in 2014 IEEE International Conference on Robotics and Automation (ICRA), 2014.
離線后處理的過濾算法,與REMOVERT一致的地方在于也是可以深度開發(fā)用于life-long slam。這里也推薦「3D視覺工坊」新課程《面向自動駕駛領(lǐng)域的3D點云目標(biāo)檢測全棧學(xué)習(xí)路線!(單模態(tài)+多模態(tài)/數(shù)據(jù)+代碼)》。
【6】J. Schauer and A. Nuchter, “The peopleremover—removing dynamic objects from 3-d point cloud data by traversing a voxel occupancy grid,” IEEE robotics and automation letters (RAL), 2018.
離線后處理的過濾算法,經(jīng)典中的經(jīng)典,考慮的細(xì)節(jié)很多,開源代碼的工程實現(xiàn)也很值得學(xué)習(xí)。
【7】cartographer中2D、3D概率占柵格地圖中的更新和維護(hù)方式,傳統(tǒng)且穩(wěn)定,簡單且優(yōu)質(zhì),強(qiáng)推,值得學(xué)習(xí)??梢栽诰€處理也可以離線后處理的過濾算法。
5、小結(jié)
不論實時地、在線的動態(tài)障礙物過濾還是離線的動態(tài)障礙物過濾,背后的研究因素是因為權(quán)衡了實時性和算法質(zhì)量,兩者之間存在一個trade off,每一位研究學(xué)者期待的都是高效且準(zhǔn)確地的動態(tài)障礙物濾除算法。
一方面,基于可見性的動態(tài)障礙物濾除算法,可以發(fā)現(xiàn)相關(guān)論文里使用的數(shù)據(jù)集和處理方式必須保證稀疏性,否則在實際操作中對大地圖(百萬級別的點云地圖)處理的計算消耗很大,運(yùn)行效率很低。其主要原因是在于基于可見性的算法,需要在每一次遍歷過程中將query point map和global point map進(jìn)行視角的坐標(biāo)轉(zhuǎn)換,當(dāng)global point map的點云數(shù)量超過百萬級別時,其坐標(biāo)轉(zhuǎn)換的消耗就會十分明顯,導(dǎo)致算法的使用體驗變差。再者,基于可見性的方案中,往往需要進(jìn)行點云到range image的數(shù)據(jù)格式變換,但range image又存在特別依賴分辨率和位姿精度,位姿估計不準(zhǔn)了,點云分辨率低了,其識別動態(tài)點云的效果退化就嚴(yán)重了。
另一方面,基于柵格的動態(tài)障礙物濾除算法,柵格結(jié)合ray casting算法在理論不存在大的問題,但是在一些空曠區(qū)域激光光束沒有return的信息,導(dǎo)致無法進(jìn)行ray-casting來更新柵格里的概率值,但如果加大miss range的casting,其計算量又會大幅上升,導(dǎo)致最終的效果變差。
除此之外,基于可見性和基于柵格的動態(tài)障礙物濾除算法的過程中,遺留的問題在于:在建圖時過程中,若操作人員(動態(tài)障礙物)跟著機(jī)器一直往前走的話,那基于ray casting或者visibility based模式去刪除動態(tài)障礙物的話效果很差,因為相當(dāng)于進(jìn)入了上文中提到的“靜態(tài)點不可見”的問題,同時基于可見性和基于柵格的局限性是由于算法設(shè)計時的物理前提所決定的,所以我認(rèn)為根本解決不了。目前的思路是,基于學(xué)習(xí)的動態(tài)障礙物去除方法的局限性跟基于可見性和基于柵格的局限性不一樣,結(jié)合基于deep-learning based聚類方法來處理基于可見性和基于柵格的動態(tài)障礙物濾除算法“誤殺問題”和“靜態(tài)點不可見”的問題,同時利用基于可見性或柵格的算法補(bǔ)充基于deep-learning based聚類方法的不足。
目前工坊已經(jīng)建立了3D視覺方向多個社群,包括SLAM、工業(yè)3D視覺、自動駕駛方向,細(xì)分群包括:[工業(yè)方向]三維點云、結(jié)構(gòu)光、機(jī)械臂、缺陷檢測、三維測量、TOF、相機(jī)標(biāo)定、綜合群;[SLAM方向]多傳感器融合、ORB-SLAM、激光SLAM、機(jī)器人導(dǎo)航、RTK|GPS|UWB等傳感器交流群、SLAM綜合討論群;[自動駕駛方向]深度估計、Transformer、毫米波|激光雷達(dá)|視覺攝像頭傳感器討論群、多傳感器標(biāo)定、自動駕駛綜合群等。[三維重建方向]NeRF、colmap、OpenMVS等。除了這些,還有求職、硬件選型、視覺產(chǎn)品落地等交流群。大家可以添加小助理微信: dddvisiona,備注:加群+方向+學(xué)校|公司, 小助理會拉你入群。