天天看點

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference

論文原文連結:http://openaccess.thecvf.com/content_cvpr_2018/html/3120.html

來源:The IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2018

目錄

Abstarct

Introduction

Main contributions of this paper

Related work

Overview

Result

Reference

Abstarct

提出一種新的點雲分類網絡架構。該方法的關鍵是将輸入的3D無序點雲自動轉換成一系列有用的2D深度圖,然後使用CNNs方法進行分類。本文提出的模型将點雲轉換成深度圖,并能夠結合任意神經網絡結構來處理點雲。将這些模型與目前最好的分類網絡結合,其結果相比于state-of-the-art也是富有競争力的。此外,由于網絡架構能夠自動地生成一些有用的2D圖像來表示3D點雲,是以在将來可以被用于點雲可視化等其他方面。

Introduction

卷積神經網絡(CNNs)在圖像分類中取得了矚目的效果,受此啟發,本文建構了一個新的神經網絡架構,該網絡能夠讓處理2D圖像的CNNs方法也能用到3D點雲上。最近出現了一些新的方法(PointNet等等),可以直接對無序點雲進行處理和分類,與該方法不同,我們設計了一些可将3D點雲自動轉換為2D圖像的網絡模型,然後在使用CNNs對其2D圖像進行分類;另外,在一些3D格網模型分類中,以前有一些工作會事先對點雲進行渲染生成圖像操作,然而在我們的方法中,圖像不會預處理階段生成,而是在神經網絡中學習得到。

首先,使用一個完全可微的網絡結構從本質上預測出一個或多個有用的點雲形狀或特征視角。其次,另外一個可微的模型從這些視角進行渲染,生成相應的深度圖。最終,第三個子產品組合這些深度圖并使用CNN進行分類。得益于生成的深度圖和CNN網絡,相比于目前同類研究,我們取得了有競争力的分類結果。此外,在測試時,可以将這些視圖作為額外的輸出提取出來,用于點雲的可視化。

Main contributions of this paper

提出一種新的用于點雲分類的神經網絡,相比于現在最好的研究,甚至在困難的噪聲資料集上都取得了富有競争力的結果。主要思想是将無序3D點雲自動轉換成有用的2D圖像,然後使用目前研究得比較透徹的圖像分類網絡進行分類。

我們的方法通過預測有意義的視角方向,生成一個或一系列有用的點雲深度圖。我們舉例說明了通過學習得到的視角方向及其相應的深度圖能夠用于其他的用途,例如一種點雲的可視化。

我們提出一種完全可微的模型來生成深度圖,通過內建一種點雲篩選政策來表示完整的3D對象。這個模型能夠用于将來的任務和點雲架構中。

Related work

深度學習在點雲資料上的應用 :        

點雲是一種常見的3D資料,學者們提出來多種深度學習網絡對其進行處理。最直接的方法是将點雲轉換成統一的體素網格,然後将CNNs方法應用到體素表達中。雖然在将點雲轉換成體素網絡的過程中可以将正常的結構化資料加入其中,但是由于該計算方法成本過高,限制了點雲的分辨率。盡管可以使用octree結構、field probing filter等方法解決這一問題,但是仍然存在體素網格分辨率低的問題。一些新的方法沒有将點雲轉換成體素網格,而是直接處理無序點雲。PointNet、PointNet++、Kd網絡等。相比這些方法,我們首次抽取了一些列2D深度圖,然後使用CNN網絡對其進行分類。

利用3D資料的多視圖 :      

很多深度學習方法使用多個2D視圖來學習更多複雜的特征。例如MVCNN。相比這些方法,我們的方法可以自動學習到最有用的視圖

使用CNNs進行圖像識别 :         

我們的方法首次自動的提取2D圖像使用CNNs方法進行分類。對于3D資料而言,難以獲得像2D資料那樣大的資料集,這正是為什麼我們要從3D資料中抽取2D特征的原因。在本文中,我們使用ResNet對2D視圖進行分類,使用ImageNet作為預訓練資料集。

在神經網絡中渲染深度圖 :          

使用神經網絡從3D幾何物體中渲染2D圖像是一件有趣的事情。空間轉換網絡STN可以得到3D體素網格的2D投影。OpenDR是一種三角幾何體渲染器。我們的工作旨在直接從無序點雲上生成深度圖,此外,我們的工作主要集中學習内在的投影方向。

Overview

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖1)網絡結構流程:輸入點雲資料P,指定視角數量K。第一個模型首先預測出K個最富含資訊的點雲視角,然後第二個模型渲染出這K個視角的深度圖,最後使用第三個模型對K個深度圖進行分類。上圖給出了一個網絡的示意圖,其中K=2。

預測視角 :

第一個模型将點雲作為輸入,預測K個視角,其中K值由需要指定。本文基于PointNet進行視角預測。視角的預測需要顧及一些重要屬性,例如資料輸入排列不變性和變換不變性。PointNet通過最大池化層估計對稱函數實作了輸入排列不變性,通過預測仿射變換矩陣實作了變換不變性,最後一個全連接配接層建構的全局描述子用于分類。在本文中,每個視角都使用獨立的PointNet進行預測,并将修改最後的全連接配接層,使之輸出一個6D向量。使用6D向量建構旋轉矩陣,将原始點雲和旋轉矩陣相乘,得到旋轉之後的點雲。

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖2)考慮記憶體限制,将輸入點雲進行降采樣(采樣比12.5%),然後使用PointNet進行視角預測,建構旋轉矩陣,最後對原始點雲進行旋轉操作。

此部分目标主要是利用一些可微操作生成深度圖。在【文獻21】中,作者提出一種基于點雲到圖像平面的距離進行高斯插值來生成深度圖的方法,這種方法最适合于一些小面積無重疊的點,但不适合于包含不同深度結構的點雲。我們的方法使用雙邊濾波插值的方法,過濾那些屬于離圖像平面最遠的平面上的點雲。具體操作參見原文。生成深度圖 :

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference

(圖3)上圖中綠色點是插值點,紅色點是被過濾掉的點。

【文獻21】提出一種高斯插值方法會将所有點都插值,這會引起幾何形狀表達上的變形(上);

本文的插值方法會将一些紅色點過濾,因為他們的深度值與像素值的最大值差異太大(下)。

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖4)不同σ生成的深度圖,σ是本文方法中影響深度圖光滑度的參數   
A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖5)文獻【21】高斯插值(上)與本文方法渲染結果(下)對比

基于圖像的分類 :

最後一個模型,對之前生成的K個深度圖進行分類。具體來說,我們使用K個ResNet50進行分類。ResNet50利用預訓練權重作為初始值,采用ImageNet資料集作為訓練樣本集。

Result

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference

(表1)視角方式對比:本文方法使用1個,2個,4個視角的結果和PointNet【文獻17】結果對比。

旋轉方式對比:資料集分别繞3軸随機旋轉(3D)與僅繞y軸旋轉(y-Axis)做對比。

評價名額對比:使用總體精度(overall)和類平均精度(class)作對比。

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference

(表2)基于資料集增強的視角(Learned)和PCA變換視角(PCA)對比;

單個視角和多個視角對比;

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖6)上圖展示了PCA視角通常是不明确的,很多重要的特征會被大的表面掩蓋,PCA視角相當于是随機視角(詳見原文附加材料)
A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(表3)三種視角對比:随機視角(Random)、基于資料集增強的3D旋轉視角(3D Learned)、基于資料集增強的y軸視角(y-Axis Learned)
A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference

(圖7)學習得到的視角的密度函數(上)

最不可能的視角的深度圖(中)

最可能的視角的深度圖(下)

A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖8)學習得到的視角的密度函數及其分類機率最高的視角的深度圖(lamps和beds)
A Network Architecture for Point Cloud Classification via Automatic Depth Images GenerationAbstarctIntroductionMain contributions of this paperRelated workOverviewResultReference
(圖9)上圖是從兩個視角生成的深度圖的示例,相對于單一視角,兩個視角互為補充提供了更多的資訊

Reference

[17] C. R. Qi, H. Su, K. Mo, and L. J. Guibas. Pointnet: Deep learning on point sets for 3d classification and segmentation. CoRR, abs/1612.00593, 2016. 1, 2, 3, 5, 6

[21] R. Roveri, A. C. O¨ ztireli, I. Pandele, and M. Gross. Point-ProNets: Consolidation of Point Clouds with Convolutional Neural Networks. Computer Graphics Forum, 2018. 1, 2, 3,4, 5

繼續閱讀