1. 程式人生 > >SegMatch: Segment based loop-closure for 3D point clouds

SegMatch: Segment based loop-closure for 3D point clouds

此文為轉載備份,原文見:https://www.cnblogs.com/li-yao7758258/p/8342964.html

 

該論文的地址是:https://arxiv.org/pdf/1609.07720.pdf

segmatch是一個提供車輛的迴環檢測的技術,使用提取和匹配分割的三維鐳射點雲技術。分割的例子可以在下面的圖片中看到。

該技術是基於在車輛附近提取片段(例如車輛、樹木和建築物的部分),並將這些片段與從目標地圖中提取的片段相匹配。分段匹配可以直接轉化為精確的定位資訊,從而實現精確的三維地圖構造和定位。在先前記錄的部分(白色)和最近觀察到的部分(彩色)之間,匹配的段的例項用綠色線顯示在下面的影象中。

該方法依賴於分割物件但不一定限於語義物件,因為這允許更一般的表示分割物,並在更廣泛的不同環境中啟用功能。

 

對三維點雲資料進行迴環檢測一直都是一項挑戰,但是已經有方案通過使用基於影象的方法解決迴環檢測的問題,基於影象的方法一般是根據影象的區域性特徵或者全域性特徵,影象中環境的變化會使得區域性特徵點會收到模糊性和魯棒性的干擾,而基於全域性特徵點的方法一般的方法根據相機的視角(視點),該論文提出了一種可靠的閉環檢測演算法——SegMatch,是基於3D點雲分割匹配的方法。Segment在區域性描述和全域性描述之間提供了很好的折衷方案,不僅融合了它們的優點,同時減少了各自的缺點。Segmatch方法不依賴完美分割(perfect segmentation)的假設,或者要求環境中必須存在的物體物件,它可以在大規模、非結構化環境下可靠良好的執行。

    文章中結果表明,Segmatch可以在里程計資料集的最大序列頻率為1Hz實現精確定位。並且,我們還展示瞭如何在線上執行過程中實現實時地檢測和閉環檢測。並且程式碼都是開源了:https://github.com/ethz-asl/segmatch(編譯原始碼可能會遇到各種問題,有編譯過的,遇到問題如何解決的還望大家一起交流分享一下)

在SLAM領域迴環檢測是一個重要的挑戰,但是由於全域性位姿資訊的狀態估計的漂移是不可避免的,所以對於機器人來說可靠的迴環檢測是十分重要的,當然前人也提出了很多典型的基於影象的閉環檢測的方法,但是當環境發生強烈的照明變化,或者由於感測器的視點發生巨大的變化時,這種基於影象的迴環檢測的方法就顯得不那麼可靠了,基於鐳射雷達定位的方法,不受照明度的影響,並且雷達能夠獲取一定解析度的幾何資訊,不會像視覺系統受視點的影響,這篇論文就是就是根據3D測距雷達感測器在室外環境中實現良好的穩定的定位。

對於3D點雲資料的迴環檢測,當前的方案主要是依據關鍵點的檢測以及匹配的方法

                   圖1 此圖是一個迴環檢測的框架圖,參考點雲在下面為白色部分,區域性點雲在對應的上方,不同的顏色代表著分割的結果,綠色的線代表著分割結果的匹配。

 

對於理想情況下的迴環一般滿足兩個假設:第一是能夠應用分割技術將物體分割出來,第二是環境中必須有物體物件,當環境中或者分割的條件不能滿足這

兩個假設時,就可以應用本文提出的Segment方法,該方法是利用整體點雲中的部分或者整體的形狀而不是使用關鍵特徵點的方法,比如環境中的視窗,弓形等

結構,該Segment 系統是一種模組化設計。它首先第一步是從獲得的3D點雲中提取並描述分割物,將它們匹配用於已經走過的地方和使用幾何驗證對比的方法選出迴環檢測的候選點雲。這種基於分割的技術的優點是將點雲壓縮成一組清晰的用於閉環檢測的判別元素。實驗表明這不僅減少了匹配所需的時間,也減少了錯誤匹配的可能性。

 這是第一篇文章提出了在三維鐳射資料的基礎上分割物體並執行閉環檢測和定位的實時的演算法。該文章的主要貢獻有:Segmatch,是一種基於分割演算法的三維點雲進行位置識別的方法。開原始碼實現實時的閉環檢測,演算法的效能在實際應用中得已檢測。

目前主要三個趨勢:(1)基於區域性特徵的方法;(2)基於全域性的描述(3)以平面或物體為基礎的

 在論文中,描述了在三維點雲中的位置識別方法。所提出的系統框架的具體如圖2 所示,由四個不同的模組組成:點雲分割、特徵提取、分段匹配和幾何驗證。模組化一直是設計階段的一個驅動因素。

                                                        圖2 

該圖為SegMatch的框架結構圖,其中Target Map可以是從本地磁碟中載入也可以是線上讀取用於實現閉環檢測

(1)Segmentation

SegMatch的第一步是根據3D點雲進行不同的元素分割用於匹配。我們首先將輸入的點雲P進行體素網格化,體素化為了篩選出體素內沒有佔有太多的噪聲。過濾後的點雲被分割成一組點簇Ci,此分割的方法要求將點雲資料中的地面去除,這可以通過基於垂直均值和方差的鄰近體素聚類來實現。在論文[ 22 ]有所提及。一旦去除地面平面的資料,Euclidean聚類用於區域分割。對於每個叢集Ci,質心ci被計算為其所有點的平均值。

(2) Feature extraction 

 根據第一步的分割結果 ,對於每一個分割結果進行特徵提取,該特徵提取的方法是壓縮原始點雲併為該點雲生成物件簽名,該簽名適用於識別和分類,由於對3D點雲資料來說沒有十分清晰的黃金標準描述子,所以論文中使用了幾個不同的描述子對聚類結果Ci進行描述,計算出描述子的特徵向量Fi= f1 f2 ...fm,這些特徵向量的表示可以擴充套件到包含很多的描述子,比如兩個描述子的表示方式 :

f1 表示基於特徵值:在這個描述子中,計算出分割結果點雲的特徵值,結合一個1*7 維度的特徵向量,該七個資料分別是linearity,planarity, scattering, omnivariance, anisotropy, eigenentropy 和 change of curvature measures

f2 表示形狀直方圖:此特徵是一個1*640的維度組成的10個直方圖,是形狀函式D2,D3和A3的形狀的解碼錶示,至於D2,D3 A3分別代表什麼,在文章【6】

有更加具體的描述,D2形狀函式是隨機選擇的點對之間的距離的直方圖    D3是隨機選擇點對組成的三角形的面積   A3表示由D3隨機組成的三角形的兩兩線段之間的角度函式

(3)Segment matching 

使用第二步驟中獲得的特性點,一般情況下,我們希望識別源點雲和目標點雲之間的匹配關係。對於這一步,論文使用學習 的方法,因為使用傳統的方法通常很難選擇合適的距離度量和閾值,特別是當涉及多個特徵型別時。因此,分類器用於決定兩個部分的匹配的點雲是否代表相同的物件或物件中某一部分。為了保持效率,首先通過在特徵空間中執行一個KD樹搜尋來檢索候選匹配,然後再將其送入分類器。具體的說,論文中使用隨機森林的分類和定時效能。這種分類器的思想是構造大量不同的決策樹,並讓它們為獲勝類投票。在學習階段,每一棵樹都是利用訓練資料集的特徵及隨機子集自舉子集訓練。隨機森林提供了類似於AdaBoost演算法的分類效能,但對輸出標籤中的噪聲不敏感,因為它確實存在。隨機森林還可以提供有關特徵對於分類任務的相對重要性的資訊。

對於隨機森林分類器,用以確定Ci與Cj叢集點雲代表著相同的物體,計算的特徵值的特徵向量之間的絕對差:∆F =|  fi - fj  |。特徵向量Fi和FJ放入的總特徵值為1x21特徵分類。這十個直方圖分別是對形狀特徵的集合,直方圖相交計算得到一個尺寸1*10的特徵。考慮到這些特性,隨機森林分類器分配一個分類分數w作為匹配。應用W上的閾值來構建傳遞給下一個模組的候選匹配的最終列表。

(4)Geometric verification 

根據第(3)步得到的候選匹配被輸送到幾何驗證模組。採用隨機抽樣一致性測試(RANSAC)[ 25 ]。使用分割物體的質心計算兩物體之間的轉換矩陣。幾何一致的分割的簇點雲最終被認為是同一物體是在其上的最小分割的基礎上,得到的結果是6自由度變換和一系列的匹配的分割點雲

增量分割

前面的部分展示了使用分割的技術匹配3D點雲的方法。為了執行閉環檢測,需要線上建立目標點雲。對於在全域性引用中給定的每個傳入點雲框架,這個模組首先提取區域性點雲。定義半徑r,也就是當前機器人位置中心的圓柱鄰域。分割和特徵提取只執行一次,生成的源分割點雲用於匹配和構建目標地圖。所以在目標地圖中新增源分割點雲時,以下兩個特殊情況需要處理:

分割的點雲不完整的情況:將柱面濾波器應用於點雲地圖時必然導致物體物件的切割發生,從而導致點雲“不完整分割”,從而干擾了目標地圖中的完整檢視。因此,這些“不完整的部分”點雲被檢測和丟棄,以便使得地圖儘可能包含儘可能多的“完整段檢視”。這可以通過一個較小的半徑 r= R−Bd的源點雲地圖的濾波來實現,其中B是外點區域的厚度。在這個區域內有點雲很可能代表不完整的分割物,因此可以安全地移除。

重複的分割點雲:新增到目標地圖中的分割物體也可能是之前分割的點雲,也就是相同的物件部分,但在不同的時間分段。作為里程計是區域性準確,這些重複的點雲可以通過比較最近的距離來有效地檢測分割物體的質心。希望保留最新的分割點雲,並給出我們可以丟棄的不完整的分割部分,選擇刪除這些副本中最舊的分割部分。進一步的工作包括合併這些“重複片段”技術。

在一此閉環檢測過程中,機器人的軌跡將會被重新估計,並且目標分割點雲的位置將會被重新整理,知道分割點雲相對機器人軌跡的位置,在成功檢測的條件下,目標地圖中的分割點雲將會被正確對其,也能夠正確的濾波去除那些上文中提到的重複點雲,所以濾波的作用就是從最近的分割執行到以前的分割點雲。濾除掉重複的部分。

對於提取源點雲的半徑圓柱鄰域的R設定為60米。體素網格葉的大小設定為0.1米,最小的兩個體素內的點雲將視為佔用點。對於分割採用最大歐幾里德距離的方法,兩個被佔據的體素使它們被認為屬於將同一群集的閥值設定為0.2米。而且選擇考慮僅包含最少有100個點的分割和最多15000點的分割物體。

Training and testing setup

執行該演算法的過程來生成訓練和測試資料集。在第一部分的給定序列中,通過提取和描述分割物來生成和處理目標地圖。當車輛測量到環境中相同的一部分時,資料集用於儲存對應不同分割物的源和目標點雲。對於區域性點雲中的每個部分,我們在特徵空間中執行KNN檢索,並在目標地圖中識別最近的200個鄰居點。這些候選被儲存為對應段的真實匹配和不同段的假匹配。使用此程式對該資料集的06個序列,我們產生2000真匹配,和800000假匹配。訓練的隨機森林時,我們採用1:50的陽性和陰性樣品,結果有102000個樣本訓練集

Segment matching performance 

                               表一                                                                                                       圖3                                                                          圖4

 第一個實驗的目的是評估三種分割匹配技術的效能,第一種方案是命名為L2表示一個歐幾里得閥值,也就是兩分割點雲的特徵向量之間的距離,第二種方案叫做

RF-eigen 是基於隨機森林的方法主要依賴特徵點的特徵值,最後一種方法是RF_eigen+shapes 的方法,就是在第二種方案的基礎上增加了幾何資訊,使用更多的特徵就像上文提到的方法,每一種方案用於分類器中的總結如表所示

從00序列提取的資料中檢測出三種方法的工作特性曲線(ROC)曲線。與它們的L2範數對應的相比,隨機森林分類器提供了效能上的改進。相應的的rf_eigen +形狀正確識別的例子是圖4所示。

 

定位效能
這一部分對segmatch演算法在目標地圖中的定位的效能進行評估。資料集在序列00的部分是用於建立目標地圖,定位是發生在再次經過該序列的資料集時。基於前文所述的三種比較的方法,說明以關鍵點為基礎的迴環檢測技術。
1)關鍵點:關鍵點為基線的定位方法,首先計算各點的法線的過濾之後的點雲,使用的濾波半徑為0.3米。在這一章節使用到了PCL的庫函式,關鍵點提取是在目標和源點雲均使用PCL庫的harris 3d關鍵點。這些關鍵點提取之後仍然進行濾波保留最少要有0.5米的距離一個關鍵點,確保同一地區沒有兩個太接近的描述子,從而減少幾何驗證階段對於描述子的歧義性或者模糊性。每一個關鍵點是使用半徑為0.4米的快速點特徵直方圖描述(fpfh)
。在進行源點雲進行匹配是,尋找75個鄰域在目標點雲周圍的分割點,並使用幾何驗證演算法來過濾這個關鍵點的匹配列表和輸出迴環檢測。為了獲得我們能找到的最佳效能,需要我們決定最佳的引數,
2)結果:為了顯示定位資訊,我們對每個方案執行90次執行,並給出平均結果。每個區域性點雲之間的距離被記錄並以類似於[ 28 ]的方式進行評估。並顯示在目標地圖沒有成功定位的情況下行進給定距離的概率。具體來說,這個度量值計算如下:

 

 

              圖4  是成功檢測到相應節段的segmatch演算法。頂部和底部的行分別顯示目標和源點雲的分割點雲。

 

那麼對於增量分割的演算法,解釋如下

   現在論文展示了基於分割的迴環檢測演算法可以線上使用,也可以結合估計姿態圖軌跡系統使用。在這個場景,如第四節所述,目標地圖是可以線上構建的,應用這一策略方法針對資料集05資料集的結果,如圖6所示。這一序列中,全域性地圖是新增Velodyne掃描之間約束使用迭代最近點(ICP)的方法建立的。在這個序列中,該實時演算法非常成功地發現了12個真陽性和假陽性閉環檢測。一次迴環檢測,他們的類似的描述在posegraph優化系統中比如論文[ 29 ]中就有詳細的介紹 。此優化的結果用於更新目標分割物位置並從中刪除重複分割物更新目標地圖

 

基於對蘇黎世的Clausiusstrasse資料平滑約束區域增長分割的閉環檢測的插圖

 

本文提出了segmatch,從基於段匹配的概念,三維鐳射資料檢測閉合環的演算法。相比於一個關鍵點的方法,在段水平提供了幾個優點而不做任何關於完美的分割或環境中存在的“物體”的假設。我們的模組化方法首先從源點雲中提取片段,然後將其描述和匹配到先前對映的目標段。一個幾何驗證步驟,最後把這些候選匹配到loopclosures。

該框架已在該資料詳盡的評估。我們首先分析了使用隨機森林分類器學習適當的距離度量的特徵匹配段的目的的影響。我們表明,該演算法能夠準確地定位在一個頻率高於1Hz的該資料集的最大的地圖。我們還演示瞭如何健壯地檢測線上方式的迴圈,以及如何將這些饋送到姿態圖軌跡估計器。由於框架的模組化方法,我們進一步說明了它可以很容易地應用到不同的場景,通過簡單地改變演算法的構建塊。整個框架的程式碼可線上獲取,為三維點雲流提供實時分割和環路閉包檢測。
基於這種分段匹配技術,我們預見了在系統中不僅僅是匹配和描述環境的多個對映使用段的可能的優點。我們將採用有監督的學習技術,將這些基於段的對映解釋為結構和物件語義類。

 

總結一下,這segmatch開發包提供了以下功能:

高效點雲分割提供更為有資訊的分割物
提供更為有效的點雲描述子的提取
使用最近鄰搜尋的方法有效對分割段點雲進行檢索
基於隨機森林分類器的魯棒的進行分段點雲匹配
結果:

三維點雲的全域性定位(達到閉環檢測的作用)
實時效能
構建了基於鐳射雷達資料的地圖構建和定位的ROS相容程式碼庫

分割點雲:

首先,傳入的點雲被聚類成一系列的分割物。實際上,這可以用多種不同的方式來完成。在當前的實現中,分割首先通過去除地面平面,將畫素網格應用到點雲,然後過濾掉噪聲。之後由歐幾里德聚類形成分割聚類點雲。

分割聚類點雲的描述:

一旦點雲已被分割成一系類的點雲,為每個分割聚類點雲提取描述子。此特徵提取步驟用於將原始資料壓縮成適合於識別和分類的緊湊描述符。在當前論文的實現中,既提供基於特徵值的特徵,又提供形狀特徵的整合。(那麼關於基於特徵值的特徵以及基於形狀的特徵的提取的論文分別是:

(1)SEMANTIC 3D SCENE INTERPRETATION: A FRAMEWORK COMBINING OPTIMAL NEIGHBORHOOD SIZE SELECTION WITH RELEVANT FEATURES

(2)Ensemble of Shape Functions for 3D Object Classification        

分段匹配:

給定查詢的分段點雲,接下來的目標是識別以前生成地圖中分段點雲的匹配的任務。這是通過首先在特徵空間中使用KD樹搜尋檢索相關分段點雲,然後將每個檢索片段分類為匹配或不匹配。由於選擇合適的距離度量和閾值往往比較困難,因此對隨機森林進行訓練,並對其是否匹配進行分類。一旦分段點雲匹配通過分類器的確定,再利用分段點雲質心之間的對應的關係的幾何一致性檢查驗證匹配度。如果場景幾何一致,返回6自由度姿態,在便在地圖提供的定位資訊。

迴環檢測:

在這種情況下,現有的地圖是不提供的,segmatch也可以用來識別閉合環和正確估計的漂移。這可以在線上(實時)或離線階段進行。此外,因為segmatch執行全域性搜尋,閉環檢測即使在大漂移的情況仍然是可能的。一個地圖從該05序列產生一個例子如下所示。估計的軌跡顯示在左邊,檢測到的閉合環用藍線表示;在關閉迴圈閉包後進行圖形優化的結果顯示在右邊。

 下載資料集http://robotics.ethz.ch/segmatch/

rosbag首先會停止給程式一些時間從磁碟載入點雲提取和描述部分。完成後,將從目標點雲中看到白色部分,如下圖所示。

一應用步驟教程 https://github.com/ethz-asl/segmatch/wiki/Demonstrations 

(個人理解,並且翻譯水平有限,如有理解上的錯誤,歡迎指出,並期待你與我交流,聯絡方式:[email protected]

REFERENCES

[1] S. Thrun et al., “Robotic mapping: A survey,” Exploring artificial intelligence in the new millennium, vol. 1, pp. 1–35, 2002.

[2] S. Lowry, N. Sunderhauf, P. Newman, J. J. Leonard, D. Cox,P. Corke, and M. J. Milford, “Visual place recognition: A survey,” IEEE Trans. on Robotics, 2016.

[3] M. Bosse and R. Zlot, “Place recognition using keypoint voting in large 3D lidar datasets,” in IEEE Int. Conf. on Robotics and Automation, 2013.

[4] B. Alexe, T. Deselaers, and V. Ferrari, “What is an object?” in IEEE Conf. on Computer Vision and Pattern Recognition, 2010.

[5] P. Scovanner, S. Ali, and M. Shah, “A 3-dimensional sift descriptor and its application to action recognition,” in ACM Int. Conf. on Multimedia, 2007.

[6] W. Wohlkinger and M. Vincze, “Ensemble of shape functions for 3d object classification,” in IEEE Int. Conf. on Robotics and Biomimetics, 2011. 

[7] R. B. Rusu, N. Blodow, and M. Beetz, “Fast point feature histograms (fpfh) for 3d registration,” in IEEE Int. Conf. on Robotics and Automation, 2009, pp. 3212–3217.

[8] Y. Zhuang, N. Jiang, H. Hu, and F. Yan, “3-d-laser-based scene measurement and place recognition for mobile robots in dynamic indoor environments,” IEEE Transactions on Instrumentation and Measurement, vol. 62, no. 2, pp. 438–450, 2013.

[9] B. Steder, G. Grisetti, and W. Burgard, “Robust place recognition for 3D range data based on point features,” in IEEE Int. Conf. on Robotics and Automation, 2010.

[10] B. Steder, M. Ruhnke, S. Grzonka, and W. Burgard, “Place recognition in 3d scans using a combination of bag of words and point feature based relative pose estimation,” in IEEE/RSJ

Int. Conf. on Intelligent Robots and Systems, 2011. 

[11] A. Gawel, T. Cieslewski, R. Dubé, M. Bosse, R. Siegwart, and J. Nieto, “Structure-based Vision-Laser Matching,” in IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, Daejeon, 2016. 

[12] J. Zhang and S. Singh, “Loam: Lidar odometry and mapping in real-time,” in Robotics: Science and Systems, 2014.

[13] T. Rohling, J. Mack, and D. Schulz, “A fast histogrambased similarity measure for detecting loop closures in 3-d lidar data,” in IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, 2015.

[14] K. Granström, T. B. Schön, J. I. Nieto, and F. T. Ramos, “Learning to close loops from range data,” The Int. Journal of Robotics Research, vol. 30, no. 14, pp. 1728–1754, 2011.

[15] M. Magnusson, H. Andreasson, A. Nüchter, and A. J. Lilienthal, “Automatic appearance-based loop detection from threedimensional laser data using the normal distributions transform,” Journal of Field Robotics, vol. 26, no. 11-12, pp. 892–914, 2009.

[16] E. Fernandez-Moral, W. Mayol-Cuevas, V. Arevalo, and J. Gonzalez-Jimenez, “Fast place recognition with plane-based maps,” in IEEE Int. Conf. on Robotics and Automation, 2013.

[17] E. Fernández-Moral, P. Rives, V. Arévalo, and J. GonzálezJiménez, “Scene structure registration for localization and mapping,” Robotics and Autonomous Systems, vol. 75, pp.

649–660, 2016. 

[18] R. Finman, L. Paull, and J. J. Leonard, “Toward object-based place recognition in dense rgb-d maps,” in ICRA workshop on visual place recognition in changing environments, 2015.

[19] B. Douillard, A. Quadros, P. Morton, J. P. Underwood, M. De Deuge, S. Hugosson, M. Hallström, and T. Bailey, “Scan segments matching for pairwise 3d alignment,” in IEEE

Int. Conf. on Robotics and Automation, 2012.
[20] J. Nieto, T. Bailey, and E. Nebot, “Scan-slam: Combining ekfslam and scan correlation.” Springer, 2006, pp. 167–178.

[21] B. Douillard, J. Underwood, V. Vlaskine, A. Quadros, and S. Singh, “A pipeline for the segmentation and classification of 3d point clouds,” in Experimental Robotics. Springer, 2014, pp. 585–600 

[22] B. Douillard, J. Underwood, N. Kuntz, V. Vlaskine, A. Quadros, P. Morton, and A. Frenkel, “On the segmentation of 3d lidar point clouds,” in IEEE Int. Conf. on Robotics and Automation, 2011.

[23] M. Weinmann, B. Jutzi, and C. Mallet, “Semantic 3d scene interpretation: a framework combining optimal neighborhood size selection with relevant features,” ISPRS Annals of the

Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. 2, no. 3, p. 181, 2014.

[24] L. Breiman, “Random forests,” Machine Learning, vol. 45, no. 1, pp. 5–32, 2001. [25] M. A. Fischler and R. C. Bolles, “Random sample consensus: a paradigm for model fitting with applications to image 

analysis and automated cartography,” Communications of the ACM, vol. 24, no. 6, pp. 381–395, 1981.

[26] A. Geiger, P. Lenz, and R. Urtasun, “Are we ready for autonomous driving? the kitti vision benchmark suite,” in IEEE Conf. on Computer Vision and Pattern Recognition, 2012. 

[27] R. B. Rusu and S. Cousins, “3D is here: Point Cloud Library (PCL),” in IEEE Int. Conf. on Robotics and Automation, 2011.

[28] C. Linegar, W. Churchill, and P. Newman, “Work smart, not hard: Recalling relevant experiences for vast-scale but timeconstrained localisation,” in IEEE Int. Conf. on Robotics and

Automation, 2015.

[29] R. Dubé, H. Sommer, A. Gawel, M. Bosse, and R. Siegwart, “Non-uniform sampling strategies for continuous correction based trajectory estimation,” in IEEE Int. Conf. on Roboticsand Automation, 2016.

[30] T. Rabbani, F. Van Den Heuvel, and G. Vosselmann, “Segmentation of point clouds using smoothness constraint,” International Archives of Photogrammetry, Remote Sensing and<