实时稀疏点云分割
在基于激光的自動駕駛或者移動機器人的應(yīng)用中,在移動場景中提取單個對象的能力是十分重要的。因為這樣的系統(tǒng)需要在動態(tài)的感知環(huán)境中感知到周圍發(fā)生變化或者移動的對象,在感知系統(tǒng)中,將圖像或者點云數(shù)據(jù)預(yù)處理成單個物體是進行進一步分析的第一個步驟。
?
在這篇文章中就提出了一種十分高效的分割方法。首先是將掃描到的點云移除平面處理,然后移除平面后一定范圍內(nèi)的點云數(shù)據(jù)分割成不同的對象。該論文的是集中解決了在很小的計算量的條件下,能夠在大多數(shù)系統(tǒng)上做到高效的分割。避免了直接對3D點云的計算,并直接在2.5D 的深度圖像上進行操作。此方案能夠很好的解決處理稀疏的3D點云數(shù)據(jù)。作者使用了新型Velodyne VLP-16掃描儀,并且代碼是在C++和ROS中實現(xiàn)了這種方法,并且代碼是開源的,這種方法可以做到使用單核CPU以及高于傳感器的幀運行速率運行,能夠產(chǎn)生高質(zhì)量的分割結(jié)果。
左圖:使用Velodyne VLP-16掃描儀得到的稀疏3D點云數(shù)據(jù)分割后生成的對象(如人,車和樹)。?不同的顏色對應(yīng)不同的分割結(jié)果。右:用于實驗的Clearpath Husky機器人。
在3D激光點云數(shù)據(jù)中分離單個對象是移動機器人或自動駕駛車輛自主導(dǎo)航的重要任務(wù)。在未知環(huán)境中航行的自動駕駛車輛面臨著對其周圍環(huán)境進行推理的復(fù)雜任務(wù)。,在擁有汽車和行人的繁忙街道上,地圖可能受到環(huán)境動態(tài)性質(zhì)導(dǎo)致的錯誤數(shù)據(jù)關(guān)聯(lián)的影響。在掃描配準和映射過程中,能夠更好地推理此類對象并忽略可能的動態(tài)對象的關(guān)鍵步驟是將3D點云數(shù)據(jù)分割為不同的對象,以便可以單獨跟蹤它們。
所以本論文很重要的貢獻是將實現(xiàn)快讀高效且穩(wěn)健的3D稀疏點云的分割。(本人親自測試,真的很快,我的電腦的配置真的很菜,但是運行起來都超快)在移動的CPU上都可以處理超過70HZ(64線)或者250HZ的(16線)的Velodyne傳感器。
地面去除?
在進行分割之前,需要從掃描的點云數(shù)據(jù)中移除地面。這種地面移除的方法,只是把低于車輛高度的3D點移除。這種方法在簡單的場景中起作用,但是如果在車輛的俯仰或者側(cè)傾角不等于零或者地面不是完美的平面。則會失敗。但是可以使用RANSAC的平面擬合的方法改善情況。
?
激光雷達的會提供每個激光束的距離值,時間戳以及光束的方向作為原始數(shù)據(jù)。這使得我們可以直接將數(shù)據(jù)轉(zhuǎn)換為深度圖像。圖像中的行數(shù)由垂直方向上的光束的數(shù)量定義,比如對于Velodyne掃描儀,有16線,32線以及64線,而圖像的列數(shù)有激光每360度旋轉(zhuǎn)得到的距離值。這種虛像的每個像素存儲了傳感器到物體之間的距離,為了加速計算甚至可以考慮在需要時將水平方向上的多個讀數(shù)組合成一個像素。
左上角:深度圖像的一部分。?左中:通過顯示α角度生成的圖像。?左下:應(yīng)用Savitsky-Golay平滑后的角度。
右上角:α角的圖示。??右下圖:左圖中標(biāo)記的α角度列的平滑圖示。
使用上述生成的和成圖像來處理而不是直接處理計算3D點云,可以有效的加速處理速度,對于其他的不提供距離值的掃描儀也可以將3D點云投影到圓柱圖像上,計算每個像素的歐幾里得距離,仍然可以使用該論文提出的方法。
為了識別地面,這里面有三個假設(shè):
1,? 假設(shè)傳感器是大致安裝在水平移動基座上。
2,? 假設(shè)地面的曲率很低。
3,? 移動機器人或者車輛至少在深度圖像上最低行的像素觀測地平面
在假設(shè)成立的條件下,首先將深度圖像的每一列(c)像素的距離值(R)轉(zhuǎn)化為角度值?
????這些角度表示了連接兩點的傾斜角度。
和
分別代表在該行相鄰的深度值。知道連續(xù)垂直的兩個單個激光束深度值,可以使用三角規(guī)則計算角度α,如下所示:
其中ξa和ξb是對應(yīng)于行r-1和r的激光束的垂直角,由于每個α計算需要兩個深度值,所以生成的角度圖大小比深度圖范圍的行數(shù)小1.這里假設(shè)吧這些所有的角度表示為,表示為在r行和c列(行和列)坐標(biāo)上的角度值。
?地面識別算法。
根據(jù)上述算法得出的地面,地面標(biāo)記為淺藍色。
但是由于激光雷達也是有誤差的,所以這里也是需要處理一些在深度范圍內(nèi)的離群點,具體可查看論文。為了達到角度平滑的效果使用了Savitsky-Golay濾波算法對每一個列進行處理。在得到濾波后的角度圖后,在這個基礎(chǔ)上開始執(zhí)行地面識別,使用了廣度優(yōu)先搜索將相似的點標(biāo)記在一起,廣度優(yōu)先搜索(Breadth-first search BFS) 是一種流行的圖搜索遍歷算法,他從圖給定的點開始遍歷,并在移動到下一級令居之前首先開始探索直接相鄰的節(jié)點,在該論文中使用了網(wǎng)格上的N4領(lǐng)域值計算角度差值,以確定矩陣M的兩個相鄰元素是否滿足角度上的約束條件Δa,設(shè)置為5°。
使用激光深度圖像進行快速有效的分割
傳感器的垂直分辨率對分割問題的難度是有著十分重要的影響的,我們需要判斷對于相鄰點,去判斷該激光束是否是被同一物體反射。為了解決激光是否是同一個物體反射的問題,這里是基于角度測量的方法。這種方法的好處是文中反復(fù)提及多次這種方法的優(yōu)點 :首先,我們可以直接在深度圖像中利用明確定義的鄰域關(guān)系,這使得分割問題更容易。其次,我們避免生成3D點云,這使得整體方法的計算速度更快。
在下圖中展示了分割的效果
這是使用該分割方案的結(jié)果,(A)圖是來自Velodynede 點云,(B)根據(jù)傳感器的原始值創(chuàng)建的深度圖像,并且已經(jīng)將地面點去除了。(C)圖是在生成的深度圖的基礎(chǔ)上執(zhí)行的分割結(jié)果。(D)將分割后的深度圖還原為點云,并以不同的顏色顯示。
這里詳細的解釋一下關(guān)于如果使用角度約束的方法實現(xiàn)分割的:
如下圖所示的一個示例場景,其中兩個人在騎自行車者前面彼此靠近地行走,騎自行車者在他們和停放的汽車之間經(jīng)過。這里使用的Velodyne VLP-16掃描儀記錄了這個場景。中間的圖像展示出了從位于O處的掃描儀測量的兩個任意點A和B的結(jié)果,表示出了激光束OA和OB。在不失一般性的情況下,我們假設(shè)A和B的坐標(biāo)位于以O(shè)為中心的坐標(biāo)系中,y軸沿著兩個激光束中較長的那一個。我們將角度β定義為激光束與連接A和B的線之間的角度,該角度一般是遠離掃描儀。在實踐中,角度β證明是有價值的信息,可以用來確定點A和B是否位于同一物體上。
左:示例場景有兩個行人,一個騎自行車者和一輛汽車。中間:假設(shè)傳感器在O點并且線OA和OB表示兩個激光束,則點A和B產(chǎn)生一條線,該線估計對象的表面,如果它們都屬于同一對象。我們基于角度β做出是否為同一物體的判斷。如果β>θ,其中θ是預(yù)定閾值,認為這些點代表一個對象。右圖:示例場景中行人的俯視圖。綠線表示β>θ的點,而紅線表示低于閾值的角度,因此將對象標(biāo)記為不同。
那么基于激光的測量值我們是知道第一次測量的距離值OA以及對應(yīng)的第二次測量值OB,分別將這兩次的測量結(jié)果標(biāo)記為d1和d2,那么利用以上信息既可以用下列公式測量角度:
圖中的右圖示出了從場景的俯視圖中在xy平面中的計算。注意,我們可以計算在范圍圖像中在行或列方向上相鄰的點A和B對的角度β。在第一種情況下,角度對應(yīng)于行方向上的角度增量,而另一種情況下對應(yīng)于列方向上的增量。
分割算法
基于閾值的β的分割方法在實驗評估中進行實驗,實際情況可以是被掃描物體是平面的情況,例如墻壁,并且?guī)缀跗叫杏诩す馐较颉T谶@種情況下,角度β將很小,因此物體可能被分成多個區(qū)段。這基本上意味著如果β小于θ,則難以確定兩個點是否源自兩個不同的物體,或者僅僅位于幾乎平行于波束方向的平面物體上。然而,盡管有這個缺點,我們的實驗表明該方法在實踐中仍然有用。上述行為很少發(fā)生,如果是這樣,它通常將會導(dǎo)致特別傾斜的平面物體的過度分割。
?以上就是關(guān)于去地面后使用的分割算法。可以看得出最重要的一個公式就是β角度值的求解
實驗部分
該算法
(i)所有計算都可以快速執(zhí)行,即使在大約70 Hz的移動CPU的單核上運行,
(ii)可以 將移動機器人獲得3D原始數(shù)據(jù)生成深度數(shù)據(jù)并分段為有意義的個體
(iii)該方法在稀疏數(shù)據(jù)上表現(xiàn)良好,例如從16光束Velodyne Puck掃描儀獲得的稀疏數(shù)據(jù)。在實驗中中,使用點云庫PCL中來實現(xiàn)的歐幾里德聚類。在所有實驗中,我們使用默認參數(shù)θ= 10°。
代碼開源(https://github.com/PRBonn/depth_clustering)
且小編親自測試,并附上測試視頻,有興趣者關(guān)注微信公眾號。并可以推薦有價值的您覺得比較好的與點云相關(guān)的代碼或者論文,發(fā)送到群主郵箱(dianyunpcl163.com),加入群聊一起交流討論!也期待大家點贊支持!
?
資源
三維點云論文及相關(guān)應(yīng)用分享
【點云論文速讀】基于激光雷達的里程計及3D點云地圖中的定位方法
3D目標(biāo)檢測:MV3D-Net
三維點云分割綜述(上)
3D-MiniNet: 從點云中學(xué)習(xí)2D表示以實現(xiàn)快速有效的3D LIDAR語義分割(2020)
win下使用QT添加VTK插件實現(xiàn)點云可視化GUI
JSNet:3D點云的聯(lián)合實例和語義分割
大場景三維點云的語義分割綜述
PCL中outofcore模塊---基于核外八叉樹的大規(guī)模點云的顯示
基于局部凹凸性進行目標(biāo)分割
基于三維卷積神經(jīng)網(wǎng)絡(luò)的點云標(biāo)記
點云的超體素(SuperVoxel)
基于超點圖的大規(guī)模點云分割
更多文章可查看:點云學(xué)習(xí)歷史文章大匯總
SLAM及AR相關(guān)分享
【開源方案共享】ORB-SLAM3開源啦!
【論文速讀】AVP-SLAM:自動泊車系統(tǒng)中的語義SLAM
【點云論文速讀】StructSLAM:結(jié)構(gòu)化線特征SLAM
SLAM和AR綜述
常用的3D深度相機
AR設(shè)備單目視覺慣導(dǎo)SLAM算法綜述與評價
SLAM綜述(4)激光與視覺融合SLAM
Kimera實時重建的語義SLAM系統(tǒng)
SLAM綜述(3)-視覺與慣導(dǎo),視覺與深度學(xué)習(xí)SLAM
易擴展的SLAM框架-OpenVSLAM
高翔:非結(jié)構(gòu)化道路激光SLAM中的挑戰(zhàn)
SLAM綜述之Lidar SLAM
基于魚眼相機的SLAM方法介紹
往期線上分享錄播匯總
第一期B站錄播之三維模型檢索技術(shù)
第二期B站錄播之深度學(xué)習(xí)在3D場景中的應(yīng)用
第三期B站錄播之CMake進階學(xué)習(xí)
第四期B站錄播之點云物體及六自由度姿態(tài)估計
第五期B站錄播之點云深度學(xué)習(xí)語義分割拓展
第六期B站錄播之Pointnetlk解讀
[線上分享錄播]點云配準概述及其在激光SLAM中的應(yīng)用
[線上分享錄播]cloudcompare插件開發(fā)
[線上分享錄播]基于點云數(shù)據(jù)的?Mesh重建與處理
[線上分享錄播]機器人力反饋遙操作技術(shù)及機器人視覺分享
[線上分享錄播]地面點云配準與機載點云航帶平差
如果你對本文感興趣,點擊“原文閱讀”獲取知識星球二維碼,務(wù)必按照“姓名+學(xué)校/公司+研究方向”備注加入免費知識星球,星球可自由發(fā)言交流和分享。也可免費下載公眾號分享的論文pdf文檔,和更多熱愛分享的小伙伴一起交流吧!
歡迎各位轉(zhuǎn)發(fā)分享朋友圈,將公眾號設(shè)置為星標(biāo),或點擊“在看”以示鼓勵和支持,讓我們繼續(xù)分享!
以上內(nèi)容如有錯誤請留言評論,歡迎指正交流。如有侵權(quán),請聯(lián)系刪除
掃描二維碼
? ? ? ? ? ? ? ? ? ?關(guān)注我們
讓我們一起分享一起學(xué)習(xí)吧!期待有想法,樂于分享的小伙伴加入免費星球注入愛分享的新鮮活力。分享的主題包含但不限于三維視覺,點云,高精地圖,自動駕駛,以及機器人等相關(guān)的領(lǐng)域。
分享及合作方式:可聯(lián)系微信“920177957”(需要按要求備注)聯(lián)系郵箱:dianyunpcl@163.com,歡迎企業(yè)來聯(lián)系公眾號展開合作。
點一下“在看”你會更好看耶
總結(jié)
- 上一篇: 第十三周 项目3车辆类(继承)
- 下一篇: 非正式组织,比你预想的要重要的多