论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition

GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition

1、四个问题

  1. 要解决什么问题?
    • 3D shape recognition。
  2. 用了什么方法解决?
    • 采用多视图(multi-view)的方法。
    • 在MVCNN的基础之上,提出了group-view convolutional neural network(GVCNN)。
    • 主要创新之处是将不同视角下CNN提取得到的视觉描述子进行分组,将相类似的划分为一组。因为类似视角下提取到的特征也是相似的
  3. 效果如何?
    • 效果是SOTA的。MVCNN在modelnet40上的准确率是91%,这篇文章的GVCNN的准确率达到了93%。
  4. 还存在什么问题?
    • 由于需要将3维模型投影到多视角下,分别用CNN提取特征,计算量比较大,所提取的特征冗余性也很强。

2、论文概述

2.1、简介

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第1张图片

  • 3D shape recognition中,虽然有基于体素的方法,还有PointNet类直接处理点云,但是目前准确率最高的还是基于多视图的方法,比如MVCNN。
  • MVCNN的做法就是模拟相机从若干不同的角度拍摄三维物体,得到投影的二维图像,然后分别利用ImageNet下预训练的网络提取特征,随后通过view pooling,即全局最大池化将各视角下的特征聚合起来,再接分类网络。
  • 虽然存在大量的计算冗余,但是MVCNN的做法更近似于对各个视角的图片做ensemble,在准确率上理所当然会有更好的效果。而且对于旋转也能有不错的鲁棒性。
  • 但是作者认为,MVCNN并没有将多视角下特征之间的关系有效地利用起来,这也会在一定程度上限制最后的特征描述子的可区分力
    • 一方面,一些视角彼此相类似,然后有一些则差异较大。这些相似的视角对于3D物体形状的表示所起到的作用应该是同等的。
    • 另一方面,有一部分视角则能提取到更有用的特征。
  • 也正是为了解决上述的问题,才提出了GVCNN。

2.2、方法

2.2.1、基本网络结构

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第2张图片

  • 图1中是整个GVCNN的网络架构。
    • GVCNN采用GoogLeNet作为基础网络。
    • "FCN"是GoogleNet的前5个卷积层。
    • 中间的"CNN"指的是也是GoogLeNet。
    • "FC"是全连接层。
  • GVCNN首先从若干不同视角拍摄三维模型的二维图像,每个视角的图像都被送入了第一部分的"FCN"中提取视觉描述子。随后,第二部分的CNN网络进一步提取视觉特征,group模块再根据判别力评分将不同视角的特征子进行分组。最后将各个组的视觉特征描述子通过view pooling(全局池化)聚合到一起。再接上分类网络进行分类。

2.2.2、多视角视觉特征

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第3张图片

  • 多视角图像的获取方式有两种,如上图所示。
    • 一种是取8个视角,相邻两个视角之间间隔45度。
    • 另一种是取12个视角,相邻两个视角之间间隔30度。
  • 相比于深层CNN,浅层网络保留有更多的位置信息。在对不同视角特征进行分组时,需要用到这些信息。所以利用浅层网络提取的特征进行grouping。
  • 而深层网络提取的特征,则具有更多的内容信息,能更好地表示视角下的特征。所以将深层网络提取的特征,先分组再做view pooling。

2.2.3、Grouping模块

  • Grouping模块主要是为了挖掘不同视角之间的潜在关系,对其进行归类辅助多视角下特征的聚合。
  • ξ ( I i ) = sigmoid ⁡ ( log ⁡ ( abs ⁡ ( O I i ) ) ) \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 = { I 1 , I 2 , ⋯   , I N } S=\left\{I_{1}, I_{2}, \cdots, I_{N}\right\} S={I1,I2,,IN}
    • { O I 1 , O I 2 , ⋯   , O I N } \left\{O_{I_{1}}, O_{I_{2}}, \cdots, O_{I_{N}}\right\} {OI1,OI2,,OIN}是"FCN"层的输出。
    • 观察到:在输入大于5或小于-5时,sigmoid函数的输出会很接近0或1。作者额外加入了abs和log函数。
    • ξ ( I i ) \xi\left(I_{i}\right) ξ(Ii)是对第i个视角的判别力评分。
  • 判别力评分的取值范围是 ( 0 , 1 ) (0, 1) (0,1),将其N等分。并认为,判别力评分在同一区间范围内的视角属于同一组。
  • 接将总计N个视角划分为M个组: { G 1 , G 2 , ⋯   , G M } \left\{G_{1}, G_{2}, \cdots, G_{M}\right\} {G1,G2,,GM},且 1 ≤ M ≤ N 1 \leq M \leq N 1MN
  • 我们不需要人为地调整视角数N和组数M,可以让算法自行灵活地调整。
  • 可能也会存在某些组,其中没有任何视角属于它,但并不影响其他组的特征提取。
  • grouping模块除了可以作为分组的依据,也可以作为融合时每个组的特征所对应的权重,换句话说即attention机制。
  • G j G_j Gj的权重为:
    • ξ ( G j ) = Ceil ⁡ ( ξ ( I k ) × ∣ G j ∣ ) ∣ G j ∣ I k ∈ G j \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)=GjCeil(ξ(Ik)×Gj)IkGj

2.2.4、组内视角池化(Intra-Group View Pooling)

  • D ( G j ) = ∑ i = 1 N λ i D I i ∑ i = 1 N λ i λ i = { 1 I i ∈ G j 0 I i ∉ G j \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λii=1NλiDIiλi={10IiGjIi/Gj
    • D I i D_{I_{i}} DIi是视角 I i I_i Ii的视觉特征描述子,而 D G j D_{G_{j}} DGj是组 G j G_{j} Gj的组视觉特征描述子,计算公式如下。

2.2.5、组间特征融合

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第4张图片

  • 类似于attention机制,对不同组之间的视觉特征进行融合。
  • D ( S ) = ∑ j = 1 M ξ ( G j ) D ( G j ) ∑ j = 1 M ξ ( G j ) 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、分类和检索任务

  • 分类任务:
    • 给定 C C C个类,在前面的GVCNN输出特征描述子之后接上分类器(全连接层)进行分类。
  • 检索任务:
    • 使用GVCNN提取特征后,接上一些全连接层输出特征向量。使用深度度量学习的方法训练网络,添加上欧氏距离度量的约束。
    • d ( X , Y ) = ∥ x − y ∥ 2 d(X, Y)=\|x-y\|_{2} d(X,Y)=xy2

2.3、实验

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第5张图片

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第6张图片

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第7张图片

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第8张图片

论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition_第9张图片

3、参考资料

  1. GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition

你可能感兴趣的:(论文阅读,深度学习)