labelme 语义分割数据集_RangeNet++: 快速精确的雷达数据语义分割(IROS 2019)
本文主要介紹一篇關于雷達數據語義分割的文章。這篇文章將點云通spherical projection投到2D平面后,先通過高效的CNN網絡得出segmentation結果,然后還原出點云的segmentation結果,最后用一個精巧的knn-search算法,對結果進行優化。論文、代碼地址:
RangeNet++: Fast and Accurate LiDAR Semantic Segmentation?www.ipb.uni-bonn.dePRBonn/lidar-bonnetal?github.com1. 總體流程
如上圖所示,總體流程分為4步:
- A:球映射(Spherical projection)
- B:語義分割(Segmentation)
- C:點云重建(Point cloud reconstruction)
- D:點云后處理(Post-processing)
2. 球映射(Spherical projection)
這步主要將3D點云映射為2D的range image,即將
映射為 。映射公式如下:其中:
- 為2D range image的寬和高;
- 分別為雷達垂直方向的上、下視角范圍
- 垂直方向總的視角范圍
- 表示一個點到雷達的3D距離
映射完位置后,接著給每個2D位置設置feature。這里,根據每個
點對應的3D點,選取一下信息:- 3D坐標
- 反射率(remission)
- 距離(range)
每個坐標對應以上5個數值,所以最后可以得出一個
的向量。這種映射方式可能會丟失一些點。因此,為了后面后處理時對結果進行優化,將丟失的點補上,把所有3D點對應的
座標組成一個list保存起來,后面會用到。3. 語義分割(Segmentation)
這步主要對range image進行語義分割。具體使用如下圖所示的沙漏形狀的網絡:
從圖中可以看出,網絡在進行downsample和upsample時,只在寬度上進行操作,保持高度不變。只要原因是,使用的數據集是用Velodyne HDL-64E激光掃描儀采集的,垂直方向只能采集64個值,相對于水平方向可以任意旋轉360度采集數據來說(2048左右),數據量少很多。因此,為了防止垂直方向的信息步丟失,所以,只在水平方向進行downsample和upsample。
訓練時的loss,使用加權的cross-entropy:
其中,
表示特定的類別出現的頻率。這里主要是為了處理各個類的點數不均勻的情況。可以看出,加上 后,出現率低的類對應的點,相比出現率高的類對應的點,懲罰更大一些。4. 點云重建(Point cloud reconstruction)
這步主要是把2D range image 圖片segmentation的結果,映射到每個3D點上。這里需要注意的是,2D range image上的一個
點, 可能對應多個實際的3D點,比如為了考慮計算速度,2D range image的尺寸盡可能小而需要下采樣時,多個3D點可能就映射到了同一個2D點。具體操作是用之前保存的所有3D點對應的2D座標,找出其對應的segmentation結果。
5. 點云后處理(Post-processing)
如上圖所示,2D range image經過segmentation后,結果看上去還不錯。但是把結果投回到3D點云后,一些物體邊緣部位的點出錯的效果就很明顯了。因此,后處理的目的就是對這些邊緣點的結果進行修正。整體思路比較直觀:通過每個點的一些鄰居點的類別,來決定該點的類別。一個邊緣點如果出錯了,那么在3D點云中,這個點和它的大部分鄰居點的類別應該會不一致。反過來,一個點大概率會和它的大部分鄰居點的類別保持一致。
基于這種想法,論文提出了一種kNN search的操作。算法流程如下:
6. 總結
這篇論文提出了一種很直觀的后處理方式kNN search。從實驗結果看,對性能有明顯幫助。
總結
以上是生活随笔為你收集整理的labelme 语义分割数据集_RangeNet++: 快速精确的雷达数据语义分割(IROS 2019)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 缺陷调研报告_工厂的缺陷的分析报告及产生
- 下一篇: mac笔记本怎么外接显示屏_win to