Semantic Segmentation of Point Clouds using Deep Learning
在計算機視覺中,用3D表示資料變得越來越重要。 近年來,點雲已成為3D資料的代表。 點雲是一組3D點,它可以有不同的傳感器獲得,如雷射雷達掃描器。 點雲也可以具有每個點的RGB值,這就是一個彩色的點雲。 如今點雲通常用于3D對象的可視化,機器人技術領域的3D地圖。 區分一個物體的點雲,常用的方法是語義分割法。
在計算機視覺中,語義分割的任務是是分割圖像或者點雲,區分出不同的分割物。 當使用語義分割時,它将圖像或點雲劃分為語義上有意義的部分,然後在語義上将每個部分标記為預定義的類之一。 識别出不同點雲或圖像資料内的物體,這在許多應用程式中非常有用。在二維語義分割中,論文【4】【20】【21】已經表明卷積神經網絡可以給出了良好的實驗結果。在3D情況下,論文【8】【19】使用随機森林分類器來進行點雲的語義分割是非常受歡迎的研究方法。圖一顯示了一個點雲和具有相同語義的分割。 在本論文中,研究卷積神經網絡在點雲語義分割中的應用。

圖一,左圖顯示了一個帶有顔色的點雲,用雷射雷達掃描器拍攝。 右圖顯示了點雲的語義分割。 紅色:地面,綠色:天然草地,藍色:高植被,紫色:建築物,青色:硬景觀 和黑色:無标簽或者無效。
如今,圖像或點雲的語義分割的不同應用領域中使用。在機器人領域,語義分割例如用于标記機器人環境中的物體。如果機器人需要找到特定的對象,則需要進行某種對象識别。是以語義标注非常有用,因為機器人可以對其周圍的對象進行分類和識别。自主駕駛也是使用語義标簽分割的領域。對于一輛自行駕駛的車輛來說,它需要知道周圍有什麼不同的物體。車輛要知道的最重要的事情之一是道路是怎麼樣的是否是可以的可以行走的。另一個重要的事情要知道的是其他車輛的位置,知道其他車輛的位置這樣它可以适應它們的速度,或者在必要時超過它們。同樣在3D地圖中,語義标簽被用來可視化對象,例如建築物,地形和道路。語義标簽可以給我們一個更容易了解的3D地圖。點雲的語義分割另一個很有用的是3D點雲的陪住。在配準中,計算兩組點之間的剛性變換以對齊兩個點集,比如論文【2】
在點雲資料上執行語義分割時,會比在2D圖像的語義分割中遇到更多困難。 一個大難題是3D的案例中沒有太多的訓練資料。 這是因為在3D中标注資料集比在2D中更難。 另一個挑戰是點雲之間的點稀疏,這使得有可能透視物體。 這使得難以看到點雲中的結構并區分一個點屬于哪個物體。
文章的目的是利用預訓練的二維卷積神經網絡來研究點雲的語義分割。 這是通過投影點雲中的合成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. CVPR, 2015. 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. ICRA, 2015. 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.
關注微信公衆号,加入群聊