PointCNN

CNN之所以獲得如此大的成功,關鍵在於他的Conv操作,該操作可以利用圖像中密集表示的數據中的局部相關性,得到局部集合結構。此處的想法就是可不可以將其在PointCloud中應用該種想法。

\(\mathcal{X}-Conv\)來鵝城只爲兩件事:

  1. 對每個代表點周圍的點特徵做集成。
  2. 在隱空間對輸入做重排去除輸入順序的影響。

上面兩件事的作用可以類比爲CNN裏面的Conv操作。

作者提出了一種在卷積角度處理點雲問題的框架,其中最關鍵的部分被稱爲\(\mathcal{X}-Conv\),他的主要作用就是解決了上面兩件事。


image
在上圖(i)中,每個網格單元關聯一個特徵。在ii-iv,這些點是從局部鄰域採樣的,類似於i中的局部面片,每個點都與特徵、順序索引和座標關聯這三個要素相連。
我們在上圖中展示了點雲應用在卷積上的問題和挑戰。假設再上圖的ii-iv上的C維無序集合的輸入特徵都是相同的\(\mathbb{F}=\{f_a,f_b,f_c,f_d\}\),而且我們有一個形狀爲\(4\times C\)的kernel \(K=[k_\alpha,k_\beta,k_\gamma,k_\delta]^T\)

上圖ii-iv是點雲的形式:

  • iiiii雖然feature的輸入順序相同,但是feature的形狀不同,此時就需要網絡可以區分出來他們兩個的不同之處。
  • iiiiv雖然feature的輸入順序不同,但是feature的形狀相同,此時就需要網絡可以去除出來輸入順序對他們兩個的影響。

由上圖1a可得,由於卷積操作的性質,在所有情況下\(f_{ii},f_{iii}\)的計算結果是相等的,\(f_{iii},f_{iv}\)的操作結果是不相等的。很顯然可以得出結論,直接卷積會導致原始信息丟失空間信息並且使得卷積的結果對於順序很敏感。

解決方案 - Beg - 在隱空間對輸入做重排去除輸入順序的影響

image

本文作者思路是讓網絡去學習一個轉置矩陣\(\mathcal{X}\),該矩陣可以對某個特定順序的輸入進行處理,得到一個與順序無關的feature。輸入數據經過\(\mathcal{X}\)相乘之後,在執行Convolution的操作,比如圖1中的iii,他的feature的順序是abcd,經過和轉置矩陣\(\mathcal{x}\)相乘之後,得到了某一種順序能和圖iv的這種排列順序相等。此時我們就做到了上述的第二點,消除掉輸入順序對識別結果的不良影響。\(\color{red}{這樣消除會不會同樣消除掉空間信息呢?}\)感覺應該是不會的,他不是那種max-pooling操作,它是通過\(\mathcal{X}\)抵消順序的。
image

  • 在結構信息相同的時候,儘管順序信息不同,網絡可以學到一種特徵,形成針對性的矩陣,同結構化的點雲,可以擁有相同順序的feature
  • 在順序信息相同的時候,但結構信息不同,經過矩陣計算得到的feature是不同的

對網絡進行訓練之後發現,矩陣並沒有二值化,這也是一個待解決的問題,雖然沒有成功二值化,但是這樣的特徵也可以理解爲這個矩陣學到了如何在點雲中提取feature的權重。


image
PointCNN對點雲數據做平移不變性的操作,就是在中心點查到k近鄰之後,用其周圍點的座標信息減去中心點的座標信息,得到局部座標系,將每個點的局部座標系單獨提升,並結合相關特徵。這樣就消除了整體的變化導致局部的變化,讓網絡學到的東西產生變化。
image
image
基於柵格的CNN的輸入是一個\(F_1\)的特徵圖形狀爲\(R_1\times R_1\times C_1\)(如上圖的\(F_1\)),其中的\(R_1\)是空間分辨率,\(C_1\)是特徵的通道數。卷積核\(K\)的形狀爲\(K\times K\times C_1\times C_2\)將其與\(F_1\)形狀爲\(K\times K\times C_1\)local patch做卷積,產生一個形狀爲\(R_2\times R_2\times C_2\)feature map。注意到圖2的上部\(R_1=4,K=2,R_2=3\)。和\(F_1\)相比,\(F_2\)的分辨率一般都是比較低的\((R_2<R_1)\),但channels一般是比較高的\((C_2>C_1)\),編碼到高級別的語義信息,這個過程是遞歸的,圖越來越小,但深度越來越高。

PointCNN的輸入是\(\mathbb{F}_1=\{(p_{1,i},f_{1,i}):i=1,2,\dots,N_1\}\),即點集\(\{p_{1,i}:p_{1,i}\in\mathbb{R}^{Dim}\}\),每個點與特徵\(\{f_{1,i}:f_{1,i}\in\mathbb{R}^{C_1}\}\)相關聯。瞭解過基於網格的CNN分層構造之後,我們希望在\(\mathbb{F}_1\)上應用X-Conv以獲得更加高級別的表示\(\mathbb{F}_2=\{(p_{2,i},f_{2,i}:f_{2,i})\in\mathbb{R}^{C_2},i=1,2,\dots,N_2\}\),其中\(\{p_{2,i}\}\)\(\{p_{1,i}\}\)的一組代表點,\(\mathbb{F}_2\)\(\mathbb{F}_1\)相比有更小的分辨率和更深的通道數(\(N_2<N_1,C_2>C_1\))。當遞歸應用將\(\mathbb{F}_1\)轉換爲\(\mathbb{F}_2\)\(\mathcal{X}-Conv\)過程中,具有特徵的輸入點被投影聚合爲更少的點\((9\rightarrow 5\rightarrow 2,如上圖2所示)\),但每個點都有更加豐富的特徵信息(點的顏色越來越深,大小越來越大)。

解決方案 - End - 對每個代表點周圍的點特徵做集成

通過上述方案,可以模擬CNN的特性,並且做到了開頭\(\mathcal{X}-Conv\)的兩件事

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章