论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition
1、四個問題
- 3D shape recognition。
- 采用多視圖(multi-view)的方法。
- 在MVCNN的基礎之上,提出了group-view convolutional neural network(GVCNN)。
- 主要創新之處是將不同視角下CNN提取得到的視覺描述子進行分組,將相類似的劃分為一組。因為類似視角下提取到的特征也是相似的。
- 效果是SOTA的。MVCNN在modelnet40上的準確率是91%,這篇文章的GVCNN的準確率達到了93%。
- 由于需要將3維模型投影到多視角下,分別用CNN提取特征,計算量比較大,所提取的特征冗余性也很強。
2、論文概述
2.1、簡介
- 3D shape recognition中,雖然有基于體素的方法,還有PointNet類直接處理點云,但是目前準確率最高的還是基于多視圖的方法,比如MVCNN。
- MVCNN的做法就是模擬相機從若干不同的角度拍攝三維物體,得到投影的二維圖像,然后分別利用ImageNet下預訓練的網絡提取特征,隨后通過view pooling,即全局最大池化將各視角下的特征聚合起來,再接分類網絡。
- 雖然存在大量的計算冗余,但是MVCNN的做法更近似于對各個視角的圖片做ensemble,在準確率上理所當然會有更好的效果。而且對于旋轉也能有不錯的魯棒性。
- 但是作者認為,MVCNN并沒有將多視角下特征之間的關系有效地利用起來,這也會在一定程度上限制最后的特征描述子的可區分力。
- 一方面,一些視角彼此相類似,然后有一些則差異較大。這些相似的視角對于3D物體形狀的表示所起到的作用應該是同等的。
- 另一方面,有一部分視角則能提取到更有用的特征。
- 也正是為了解決上述的問題,才提出了GVCNN。
2.2、方法
2.2.1、基本網絡結構
- 圖1中是整個GVCNN的網絡架構。
- GVCNN采用GoogLeNet作為基礎網絡。
- "FCN"是GoogleNet的前5個卷積層。
- 中間的"CNN"指的是也是GoogLeNet。
- "FC"是全連接層。
- GVCNN首先從若干不同視角拍攝三維模型的二維圖像,每個視角的圖像都被送入了第一部分的"FCN"中提取視覺描述子。隨后,第二部分的CNN網絡進一步提取視覺特征,group模塊再根據判別力評分將不同視角的特征子進行分組。最后將各個組的視覺特征描述子通過view pooling(全局池化)聚合到一起。再接上分類網絡進行分類。
2.2.2、多視角視覺特征
- 多視角圖像的獲取方式有兩種,如上圖所示。
- 一種是取8個視角,相鄰兩個視角之間間隔45度。
- 另一種是取12個視角,相鄰兩個視角之間間隔30度。
- 相比于深層CNN,淺層網絡保留有更多的位置信息。在對不同視角特征進行分組時,需要用到這些信息。所以利用淺層網絡提取的特征進行grouping。
- 而深層網絡提取的特征,則具有更多的內容信息,能更好地表示視角下的特征。所以將深層網絡提取的特征,先分組再做view pooling。
2.2.3、Grouping模塊
- Grouping模塊主要是為了挖掘不同視角之間的潛在關系,對其進行歸類輔助多視角下特征的聚合。
- ξ(Ii)=sigmoid?(log?(abs?(OIi)))\xi\left(I_{i}\right)=\operatorname{sigmoid}\left(\log \left(\operatorname{abs}\left(O_{I_{i}}\right)\right)\right)ξ(Ii?)=sigmoid(log(abs(OIi??)))
- 給定不同視角下的圖像:S={I1,I2,? ,IN}S=\left\{I_{1}, I_{2}, \cdots, I_{N}\right\}S={I1?,I2?,?,IN?}。
- {OI1,OI2,? ,OIN}\left\{O_{I_{1}}, O_{I_{2}}, \cdots, O_{I_{N}}\right\}{OI1??,OI2??,?,OIN??}是"FCN"層的輸出。
- 觀察到:在輸入大于5或小于-5時,sigmoid函數的輸出會很接近0或1。作者額外加入了abs和log函數。
- ξ(Ii)\xi\left(I_{i}\right)ξ(Ii?)是對第i個視角的判別力評分。
- 判別力評分的取值范圍是(0,1)(0, 1)(0,1),將其N等分。并認為,判別力評分在同一區間范圍內的視角屬于同一組。
- 接將總計N個視角劃分為M個組:{G1,G2,? ,GM}\left\{G_{1}, G_{2}, \cdots, G_{M}\right\}{G1?,G2?,?,GM?},且1≤M≤N1 \leq M \leq N1≤M≤N。
- 我們不需要人為地調整視角數N和組數M,可以讓算法自行靈活地調整。
- 可能也會存在某些組,其中沒有任何視角屬于它,但并不影響其他組的特征提取。
- grouping模塊除了可以作為分組的依據,也可以作為融合時每個組的特征所對應的權重,換句話說即attention機制。
- 組GjG_jGj?的權重為:
- ξ(Gj)=Ceil?(ξ(Ik)×∣Gj∣)∣Gj∣Ik∈Gj\xi\left(G_{j}\right)=\frac{\operatorname{Ceil}\left(\xi\left(I_{k}\right) \times\left|G_{j}\right|\right)}{\left|G_{j}\right|} \quad I_{k} \in G_{j}ξ(Gj?)=∣Gj?∣Ceil(ξ(Ik?)×∣Gj?∣)?Ik?∈Gj?
2.2.4、組內視角池化(Intra-Group View Pooling)
- D(Gj)=∑i=1NλiDIi∑i=1Nλiλi={1Ii∈Gj0Ii?Gj\begin{array}{l}{D\left(G_{j}\right)=\frac{\sum_{i=1}^{N} \lambda_{i} D_{I_{i}}}{\sum_{i=1}^{N} \lambda_{i}}} \\ {\lambda_{i}=\left\{\begin{array}{ll}{1} & {I_{i} \in G_{j}} \\ {0} & {I_{i} \notin G_{j}}\end{array}\right.}\end{array}D(Gj?)=∑i=1N?λi?∑i=1N?λi?DIi???λi?={10?Ii?∈Gj?Ii?∈/?Gj???
- DIiD_{I_{i}}DIi??是視角IiI_iIi?的視覺特征描述子,而DGjD_{G_{j}}DGj??是組GjG_{j}Gj?的組視覺特征描述子,計算公式如下。
2.2.5、組間特征融合
- 類似于attention機制,對不同組之間的視覺特征進行融合。
- D(S)=∑j=1Mξ(Gj)D(Gj)∑j=1Mξ(Gj)D(S)=\frac{\sum_{j=1}^{M} \xi\left(G_{j}\right) D\left(G_{j}\right)}{\sum_{j=1}^{M} \xi\left(G_{j}\right)}D(S)=∑j=1M?ξ(Gj?)∑j=1M?ξ(Gj?)D(Gj?)?
- D(S)D(S)D(S)是最終的3D形狀描述子。
- 整個流程符合一個"view-group-shape"的結構。
2.2.5、分類和檢索任務
- 分類任務:
- 給定CCC個類,在前面的GVCNN輸出特征描述子之后接上分類器(全連接層)進行分類。
- 檢索任務:
- 使用GVCNN提取特征后,接上一些全連接層輸出特征向量。使用深度度量學習的方法訓練網絡,添加上歐氏距離度量的約束。
- d(X,Y)=∥x?y∥2d(X, Y)=\|x-y\|_{2}d(X,Y)=∥x?y∥2?
2.3、實驗
3、參考資料
總結
以上是生活随笔為你收集整理的论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:KD-Net
- 下一篇: OpenCV3特征提取与目标检测之HOG