利用深度學習的點雲語義分割(一)

                                           Semantic Segmentation of Point Clouds using Deep Learning 
算法

在計算機視覺中,用3D表示數據變得愈來愈重要。 近年來,點雲已成爲3D數據的表明。 點雲是一組3D點,它能夠有不一樣的傳感器得到,如激光雷達掃描儀。 點雲也能夠具備每一個點的RGB值,這就是一個彩色的點雲。 現在點雲一般用於3D對象的可視化,機器人技術領域的3D地圖。 區分一個物體的點雲,經常使用的方法是語義分割法。微信

在計算機視覺中,語義分割的任務是是分割圖像或者點雲,區分出不一樣的分割物。 當使用語義分割時,它將圖像或點雲劃分爲語義上有意義的部分,而後在語義上將每一個部分標記爲預約義的類之一。 識別出不一樣點雲或圖像數據內的物體,這在許多應用程序中很是有用。在二維語義分割中,論文【4】【20】【21】已經代表卷積神經網絡能夠給出了良好的實驗結果。在3D狀況下,論文【8】【19】使用隨機森林分類器來進行點雲的語義分割是很是受歡迎的研究方法。圖一顯示了一個點雲和具備相同語義的分割。 在本論文中,研究卷積神經網絡在點雲語義分割中的應用。網絡

     圖一,左圖顯示了一個帶有顏色的點雲,用激光雷達掃描儀拍攝。 右圖顯示了點雲的語義分割。 紅色:地面,綠色:自然草地,藍色:高植被,紫色:建築物,青色:硬景觀 和黑色:無標籤或者無效。less

 

現在,圖像或點雲的語義分割的不一樣應用領域中使用。在機器人領域,語義分割例如用於標記機器人環境中的物體。若是機器人須要找到特定的對象,則須要進行某種對象識別。因此語義標註很是有用,由於機器人能夠對其周圍的對象進行分類和識別。自主駕駛也是使用語義標籤分割的領域。對於一輛自行駕駛的車輛來講,它須要知道周圍有什麼不一樣的物體。車輛要知道的最重要的事情之一是道路是怎麼樣的是不是能夠的能夠行走的。另外一個重要的事情要知道的是其餘車輛的位置,知道其餘車輛的位置這樣它能夠適應它們的速度,或者在必要時超過它們。一樣在3D地圖中,語義標籤被用來可視化對象,例如建築物,地形和道路。語義標籤能夠給咱們一個更容易理解的3D地圖。點雲的語義分割另外一個頗有用的是3D點雲的陪住。在配準中,計算兩組點之間的剛性變換以對齊兩個點集,好比論文【2】dom

 在點雲數據上執行語義分割時,會比在2D圖像的語義分割中遇到更多困難。 一個大難題是3D的案例中沒有太多的訓練數據。 這是由於在3D中標註數據集比在2D中更難。 另外一個挑戰是點雲之間的點稀疏,這使得有可能透視物體。 這使得難以看到點雲中的結構並區分一個點屬於哪一個物體。ide

 文章的目的是利用預訓練的二維卷積神經網絡來研究點雲的語義分割。 這是經過投影點雲中的合成2D圖像並使用卷積神經網絡對它們進行分割來執行的。函數

 爲了實現語義分割點雲,咱們選擇將點雲投影到2D圖像中。 這是由於在2D中語義分割的問題比3D中的更容易,這意味着分類器有更多的選擇來分割圖像。 進行2D投影的另外一個緣由是2D中的訓練數據比3D中豐富。 這使得測試不一樣數據變得更加容易,而且還有更多種類的訓練數據。 學則使用卷積神經網絡(CNN)做爲工具,由於它已被證實是用於圖像的語義分割的好工具。工具

 

本文提出了一種點雲語義分割方法。 該方法的第一步是將點雲投影到虛擬2D RGB圖像中。 而後,使用預訓練卷積神經網絡對圖像進行語義分類。 分類的結果會給咱們在語義圖像中的每一個像素中的每一個類的一個分數。 而後將得分投影到點雲數據中,這已不是給點雲語義標記。 最後,使用來自數據集Semantic3D的地面實況來評估標記的點雲。【3】學習

 

 因此文章主要是三部分,第一部分是介紹CNN在分類領域的流行,第二部分是利用CNN對2D圖像的分類,第三部分是3D點雲的語義分割。測試

關於CNN的部分就再也不介紹,那麼2D中的語義分割【17】是在圖像中查找不一樣對象並將每一個對象分類爲預約義類的問題。 在圖像的語義分割中,圖像被分割並分類爲預約義類。 一種經常使用的二維圖像語義分割方法是利用卷積神經網絡對像素進行標籤的圖像[4] [20] [21]。 在圖2中能夠看到語義分割圖像的一個例子

 

 圖2 右圖爲語義分割的結果

 接下來是3D點雲的語義分割部分,在三維語義分割的狀況下,就是語義分割點雲而再也不是2D的圖像。有不一樣的方法能夠解決三維點雲分割的問題,而且使用隨機森林分類器很受歡迎[19] [8]。隨機森林[1]由多個預測樹組成。每棵樹都會輸出一個預測的類,而且全部的樹都會投票給最受歡迎的類。在文章[19]中,做者經過使用條件隨機場(CRF)語義分割室內場景的點雲。經過使用隨機森林分類器的結果來初始化CRF的一元勢,而後從訓練數據中學習成對勢。另外一種方法[8]使用隨機森林分類器來對城市的三維模型進行語義分割。隨機森林分類器在輕量級3D特徵上進行訓練,並用於場景的初始標記。而後經過檢測其語義結構的差別將場景分紅單獨的外觀。最後,做者提出了建築規則來表達像門面的對齊和共同出現等偏好,這有助於改善結果。另外一種方法用於文獻[5]中,逐步對點雲進行降採樣以生成多尺度鄰域。而後爲每一個比例級別計算一個搜索結構,從而快速且容易地從鄰域中提取特徵。爲了語義分割點雲提取特徵向量,而後使用隨機森林分類器進行分類。

 

 

 接下來就是描述三維語義分割的方法

本節簡要介紹了提出方法。該處理 方案由三部分組成。 第一部分是點雲投影到二維RGB圖像,深度圖像和標籤圖像。 第二部分是使用CNN進行投影RGB圖像的語義分割。 第三部分是將分割後的圖像投影回點雲。 在圖3.1中能夠看處處理流程的概述。

 

該圖顯示了本文提出的點雲語義分割的整體流程。 第一部分將點雲投影到虛擬2D圖像中。 第二部分執行圖像的語義分割。 最後一部分將語義分割的圖像反投影到點雲中,從而建立語義分割的點雲。

(1)點雲投影到2D中,首先介紹將點雲投影到虛擬2D圖像中。投影的步驟爲每一個點雲投影生成RGB圖像,深度圖像和標籤圖像。

定義相機參數
流程中的第一步是將點雲投影到虛擬2D圖像中。 在該方法的狀況下,這一步是必要的,由於咱們使用無組織的點雲做爲輸入,而且初始相機未知。 正由於如此,咱們將點雲投影到2D圖像上。 爲了生成2D圖像,咱們須要選擇定義相機選擇點雲的視點。 其餘方法也是可行的,例如網格劃分,可是對於大點雲來講太耗時了。 使用的相機模型由內參和外參矩陣表示。 外參矩陣是從世界座標到相機座標的變換。 內參矩陣反而定義了相機的幾何屬性。 攝像機的定義如,其中R是表示相機的外參旋轉的部分,是一個3×3的矩陣,T是一個3×1的矩陣表示相機的平移參數,K是相機的內參,它符合該式子的形式:,至於相機的內參就再也不一一說明,彷佛以前的文章就有說過關於相機的模型的介紹,雖然個人這篇博客寫的很差,可是網上是有不少相似的關於相機的模型的推導。

 

那麼咱們定義的相機能夠放置在點雲內的任何地方。 例子中,相機被放置在點雲的原點。 這是由於使用的點雲是經過單個激光雷達掃描得到的。 而後攝像機只能投射在點雲掃描過程當中可見的區域上。 相機旋轉了一圈,所以它捕獲了大部分的帶你暈。 對於每次旋轉,都進行了投影操做。

 

第二步 Katz投影

在投影過程當中,肯定哪些點從相機可見是很是重要的。 爲了解決這個問題,咱們使用了一個叫作Katz投影的算法[7]。 使用Katz投影的緣由是它是肯定點雲中哪些點可見的快速方法。 該算法使用一個隱藏點運算操做,刪除全部相機不可見的點。 例如,若是照相機在點雲內投射一棵樹,它後面的全部點都被Katz投影移除。 該算法還消除彼此靠近的點雲以加速算法。 katz投影分兩步進行,(inversion and convex hull construction )反演和凸包結構。 用於反演的方法稱爲球形翻轉。 它經過在點雲中的全部點周圍定義一個半徑爲R的球體並將相機C放置在原點中來執行。 點的球形翻轉使用如下公式計算:,

左:使用以視點(品紅色)爲中心的球體(綠色)2D曲線(藍色)的球形翻轉(紅色)。 右:凸包的反投影。 請注意,此圖片僅用於說明; 在實際中,R要大得多。

 在球形翻轉後,距離相機最近的點將離照相機最遠。

Katz算法的下一步是構造凸包來肯定哪些點是可見的。 這是由於點p在變換點p_^駐留在凸包中時被認爲是可見的。當肯定哪些點可見時,將3D點投影到像素中。 這是經過如下公式完成的:,

其中C是相機矩陣,pi是可見點,p_^_i是投影點。 因爲點不老是投影到像素上,所以使用最近鄰點將點投影到像素中。 在此以後,每一個可見點都有相機的深度和計算出的重量。 這個重量決定了這些點在其相應的像素中有多大的貢獻。 這些點的權重是使用splatting [16]來計算的,這是一種將點映射到周圍像素的方法。 使用高斯函數來計算權重

其中dist是像素與點位置之間的距離。

 

 第三步 Mean Shift Clustering (均值漂移聚類)

 接下來的問題是計算像素的深度和RGB值。 由於它可能不止一個像素點,咱們必須計算每一個點對像素深度和RGB值的貢獻量。 這是經過使用均值漂移聚類算法來解決的,該算法根據點的密度計算深度和RGB的加權平均值。具體再也不解釋

算法僞碼

 

 

 

顯示RGB,深度圖像和兩個標籤圖像bildstein3點雲的不一樣姿式。

 

下一步是語義分割點雲的投影RGB圖像。 圖像的語義分割由預先訓練的CNN執行。 在本論文中,兩個不一樣的CNN被用於該任務。 這是由於咱們想比較不一樣的CNN如何影響咱們方法的結果。 使用的CNN之一是Laplacian金字塔重建網絡[4],該網絡執行像素明智的標記,並在Cityscapes數據集上進行訓練[12]。 Cityscapes數據集包含從50個不一樣城市收集的街道場景序列,具備高質量的像素級註釋。 該數據集包含19個語義類,屬於地面,建築,物體,天然,天空,人體和車輛7種不一樣類別。

 

 

[1] Leo Breiman. Random forests. Mach. Learn., 45(1), 2001. Cited on page 7.

[2] Martin Danelljan, Giulia Meneghetti, Fahad Shahbaz Khan, and Michael Felsberg. Aligning the Dissimilar : A Probabilistic Method for FeatureBased Point Set Registration. ICPR16, 2016. Cited on page 3.

[3] ETH Zurich. Large-Scale Point Cloud Classification Benchmark. URL http://www.semantic3d.net/. Cited on pages 4, 23, and 40.

[4] Golnaz Ghiasi and Charless C. Fowlkes. Laplacian reconstruction and refinement for semantic segmentation. ECCV, 2016. Cited on pages 1, 6, and 16.

[5] Timo Hackel, Jan D Wegner, and Konrad Schindler. Fast Semantic Segmentation of 3D Point Clouds with Strongly Varying Density. ISPRS16, 2016. Cited on pages 7, 40, and 41. 

[6] Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv:1408.5093, 2014. Cited on

page 21.

[7] Sagi Katz. Direct Visibility of Point Sets. ACM Trans. Graph., 26(3), 2007. Cited on page 11. 

[8] Jan Knopp, Hayko Riemenschneider, and Luc Van Gool. 3D All The Way Semantic Segmentation of Urban Scenes From Start to End in 3D. CVPR2015. Cited on pages 1 and 7. 

[9] Yann LeCun and Yoshua Bengio. The handbook of brain theory and neural networks. chapter Convolutional Networks for Images, Speech, and Time Series, pages 255–258. MIT Press, Cambridge, MA, USA, 1998. Cited on page 5.

[10] Linköping University. Virtual Photo Sets. URL http://www.hdrv.org/vps/. Cited on page 27. 

[11] Tianyi Liu, Shuangsang Fang, Yuehui Zhao, Peng Wang, and Jun Zhang. Implementation of Training Convolutional. arXiv:1506.01195, 2015. Cited on pages 5 and 6. 

[12] Marius Cordts. Cityscapes Dataset. URL https://www.cityscapes-dataset.com/dataset-overview/. Cited on page 16.

[13] C V May. Fractional Max-Pooling. arXiv:1412.6071, 2015. Cited on page 5. 

[14] Peter Meer. Mean Shift : A Robust Approach toward Feature Space Analysis. IEEE, 24(5), 2002. Cited on page 12. 

[15] Radu Bogdan Rusu and Steve Cousins. 3D is here: Point Cloud Library(PCL). ICRA, 2011. Cited on page 21.

[16] Richard Szeliski. Computer Vision : Algorithms and Applications. 2010. URL http://szeliski.org/Book. Cited on page 12.

[17] Martin Thoma. A Survey of Semantic Segmentation. arXiv:1602.06541,2016. Cited on page 6.

[18] Andrea Vedaldi and C V May. MatConvNet Convolutional Neural Networks for MATLAB. arXiv:1412.4564. Cited on page 21.

[19] Daniel Wolf, Johann Prankl, and Markus Vincze. Fast Semantic Segmentation of 3D Point Clouds using a Dense CRF with Learned Parameters. ICRA2015. Cited on pages 1 and 7.

[20] Shuai Zheng, Sadeep Jayasumana, Bernardino Romera-Paredes, Vibhav Vineet, Zhizhong Su, Dalong Du, Chang Huang, and Philip Torr. Conditional Random Fields as Recurrent Neural Networks. ICCV, 2015. Cited on pages

1 and 6.

[21] Bolei Zhou, Hang Zhao, Xavier Puig, Sanja Fidler, Adela Barriuso, and Antonio Torralba. Semantic Understanding of Scenes through the ADE20K Dataset. arXiv:1608.05442, 2016. Cited on pages 1, 6, and 16. 

 

 關注微信公衆號,加入羣聊

相關文章
相關標籤/搜索