【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

原文地址:点击访问

本期,为大家推送CVPR 2020一篇关于图神经网络与3D相关的文章。自我感觉挺有趣的,有兴趣的同学推荐一读。

论文题目:View-GCN: View-based Graph Convolutional Network for 3D Shape Analysis

论文作者:Xin Wei, Ruixuan Yu and Jian Sun*

作者单位:Xi’an Jiaotong University

Motivation

图3(a)中从不同的视角看不同的物体,结果是不一样的。例如,不同的视图中椅子有明显的差别,而茶杯则几乎完全相同。同样地,图3(b)也有这种现象。不同视图图像的联系可能隐藏了3D物体的潜在信息,这将为3D物体形状的识别提有价值的信息。因此,作者基于此现象设计了一个GCN在聚合多视图特征时自动调查视图之间的关系。

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

Abstract

基于视图的方法(view-based approach),通过物体投影的2D图像识别其3D形状,已经取得了最先进的3D形状识别结果。基于视图的方法面临的主要挑战是如何将多视图特征聚合为全局形状描述子。这项工作中,作者提出了一种新的基于视图的图卷积神经网络(view-based Graph Convolutional Neural Network, view-GCN),用于在灵活的试图配置空间中识别基于多视图物体的图表示的3D形状。首先利用3D物体的2D多视图构建视图-图(view-graph)作为图节点,然后在视角图上设计一个图卷积神经网络分层地学习判别多视图物体的3D形状描述。view-GCN是一种基于局部和非局部图的卷积进行特征变换,同时基于选择性视图采样进行图粗化的层次网络。基准数据集上进行的大量实验表明,view-GCN能够实现最先进的3D形状分类和检索结果。

Introduction

3D shape recognition

3D形状识别研究意义重大,广泛应用于计算机视觉领域中,诸如自动驾驶考古学虚拟现实/增强现实

关于3D形状表示,可以划分为三类:

Methods Detail Performance
基于体元(voxel-based) 通过3D欧式空间内的体积元素集合来表示3D物体的形状,然后在体元上创建神经网络学习特征、识别形状 计算复杂度高;体素分辨率问题;由于物体表面体素化所造成的数据稀疏
基于点(point-based) 直接在点云上定义网络 性能强大
基于视图(view-based) 基于物体的2D多视图聚合分类、识别3D形状 利用2D图像分类网络识别3D形状的最先进方法

This work

此工作是基于视图的方法,主要的挑战是如何聚合多视图特征成为一个全局的三维形状描述。传统的方法是通过最大pooling来聚合多视图特征,这种方法是置换不变的,但忽略了视图之间的关系

此工作中,作者使用view-graph来表示物体的3D形状,每一个视图对应图中的一个节点。节点间的由摄像机坐标的kk近邻确定。因此,作者在view-graph上设计了一种图卷积神经网络view-GCN(如图1所示)用于聚合多视图特征以学习全局形状描述子。

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

View-GCN主要具有两个优点:

  • 能够灵活建模多视图配置(如图4????位置);

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

  • 通过视图-图表示利用GCN聚合关于图节点关系聚合多视图特征。

View-GCN是一个层次化的GCN架构,在越来越粗糙的视图图上有多个层次。在每层设计了一个局部图卷积操作和一个非局部消息传递操作,通过研究相邻视图和远程成对视图之间的关系来聚合多视图特征。为了使图粗化,作者提出了一种选择性视图抽样策略,通过视图选择器有代表性的视图进行抽样。所有学习到的不同层次的特征被组合成一个全局形状描述子。

实验取得良好的效果,在真实多视图数据集RGBD上优于当前的先进方法。

Overview of View-GCN

如图2所示,view-GCN主要包括三个部分,分别是view-graph创建、view-GCN和训练损失。【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

  • 3D物体的多视图特征由主干网络提取,然后建立一个view-graph表示,其中节点由视图特征表示;
  • 在view-graph上设计一个GCN分层地聚合多视图特征;
  • 提取全局形状描述子用于形状识别。

From 3D shape to view-graph

No. Symbol Meaning
1 GG 有向图
2 viv_i 相机坐标
3 SS 邻接矩阵,SRN×NS \in \mathbb{R}^{N \times N}
4 gijg_{ij} 两个视图viv_ivjv_j的空间关系
5 Φ()\Phi(\cdot) 带有参数θs\theta_s的非线性成对节点嵌入
6 AA 稀疏矩阵
7 I()\mathbb{I}(\cdot) 二值指示函数

旨在由3D物体地视图来构建一个有向图GG,称之为视图-图(view-graph),邻接矩阵SS可以表示为

Sij=Φ(gij; θs).S_{ij}= \Phi(g_{ij; ~ \theta_s}).

其中,gij=[vi,vj,vivj,vivj2]R10g_{ij} = [v_i, v_j, v_i - v_j, ||v_i - v_j||_2] \in \mathbb{R}^{10}表示的是两个视图的空间关系。在实现中,设置Φ\Phi为具有LeakyReLU**函数的三层MLP,且前两层具有10个隐藏单元,输出为一个标量SijS_{ij}

使用kNN利用坐标距离找到每个节点固定数量的相邻节点,并只保留邻居间的边。因此,稀疏矩阵AA可以表示为

Aij=SijI{vjN(vi)}.A_{ij} = S_{ij} \cdot \mathbb{I} \{v_j \in \mathcal{N}(v_i)\}.

View-based graph convolutional network

View-GCN是在粗糙的视图-图的多个级别上定义的层次结构网络。

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

Initial view feature extraction

No. Symbol Meaning
1 NN 视图数量
2 IiI_i i (i=1,2,,N)i~(i = 1, 2, \cdots, N)个视图
3 fi0f_i^0 由2D图像分类网络(如ResNet-18和ImageNet)提取的视图IiI_i的特征

使用所有训练3D对象的混合多视图2D图像对网络进行微调进行分类,并将上一层FC(fully connected)之前不同视图的特征向量化为视图特征,作为初始图G0G^0中节点初始化特征。

Local graph convolution

No. Symbol Meaning
1 GlG^l ll级视图-图
2 NiN_i 视图-图GlG^l的节点数量
3 FinlF_{in}^l 特征矩阵FinlRNi×dF_{in}^l \in \mathbb{R} ^ {N_i \times d},每一行代表一个节点的特征
4 WlW^l 可学习权值矩阵WlRd×dW^l \in \mathbb{R}^{d \times d}
5 Ψ()\Psi(\cdot) 由批处理归一化操作与紧随其后的带有参数θcl\theta_c^l的LeakyReLU**函数组成的非线性变换

定义局部图卷积层,通过考虑由摄像机坐标的kNN确定的相邻节点之间的关系来更新节点特征,即

Fl=Ψ(AlFinlWl; θcl).F^l = \Psi(A^l F_{in}^l W^l; ~ \theta_c^l).

输入的特征FinlF_{in}^l首先由稀疏邻接矩阵AlA ^ l扩散,然后由线性变换WlW^l更新每个节点,经过一个非线性变换得到更新之后的特征FlF^l

Non-local message passing

No. Symbol Meaning
1 Γ( θml)\Gamma(\cdot;~\theta_m^l) 含参数θml\theta_m^l的关系函数
2 mijm_{ij} 三层MLP含有dd个隐含单元,每层都使用LeakyReLU**函数, 输出消息为mijRdm_{ij} \in \mathbb{R}^d
3 Ω( θfl)\Omega(\cdot;~\theta_f^l) 含参数θfl\theta_f^l的融合函数,由一层MLP和批处理归一化实现
4 F^l\hat{F}^l 融合特征矩阵,第ii个节点的融合特征为$ \hat{f}_i^l$

通过非局部信息传递来捕获视图-图GlG^l中节点的远程关系。作者定义消息由节点viv_ivjv_j作为一个节点对关系

mijl=Γ(fil,fjl; θml),m_{ij}^l = \Gamma(|f_i^l, f_j^l|;~ \theta_m^l),

其中,i,j=1,2,,Nli, j = 1, 2, \cdots, N_l

进一步从图中所有节点收集节点ii的消息,然后将累积的消息rilr_i^l与原始特征filf_i^l融合为

f^il=Ω(fil,ril; θfl),\hat{f}_i^l = \Omega(|f_i^l, r_i^l|;~ \theta_f^l),

其中, ril=j=1Nimjil\color{black} ~ r_i^l = \sum_{j = 1}^{N_i}m_{ji}^l

通过上式更新后的特征就可以在局部图的卷积中吸收远处视图的信息,超越局部邻近视图的信息。

Selective view-sampling for graph coarsening

在更新完第ll级视图-图GlG^l的节点特征后,然后对图进行粗化派生出l+1l + 1级视图-图Gl+1G^{l + 1}图粗化被广泛地实现GCN中的最远点采样(FPS),对视图子集进行采样,以构建粗化图,以扩大GCN的接受域。此工作为图粗化设计了一种新的选择性视图采样策略

No. Symbol Meaning
1 vilv_i^l ll级视图-图GlG^l的相机的第i i=1,2,,Nii~ (i= 1, 2, \cdots, N_i)个坐标
2 ss 采样率
3 V(; θvl,j)V(\cdot;~ \theta_v^{l, j}) 含参数θvl,j\theta_v^{l, j}的视图选择器VRNcV \in \mathbb{R}^{N_c},输出具有NcN_c形状类别的概率,VV被定义为一个两层的MLP网络,含有d/2d/2个隐含单元

FPS迭代地采样一个相机坐标视图地子集

{vj}j=1Nl+1{vi}j=1Nl,\{v_j\}_{j = 1}^{N_{l + 1}} \subset \{v_i\}_{j = 1}^{N_{l}},

其中,Nl+1=round(Nl×s)N_{l + 1} = \color{red} \text{round} \color{black} (N_l \times s)。FPS基于摄像机坐标对每个新视图与已采样的视图集之间的最大距离进行采样。基于FPS的样本可以保持视图的多样性,但不能保证所采样的视图对下游的判别学习任务具有代表性。

为了利用FPS的优点同时客服FPS的缺点,如图5所示:

  • 初始化通过FPS采样一个一个子集{vj}j=1Nl+1\{ v_j\}_{j = 1}^{N_{l + 1}}
  • 对于相机坐标vjv_j,通过视图选择器在kNN视图上选择一个初始视图中的抽样视图,新采样视图在局部邻域内对视图选择器的响应最大,即

vjl+1=argmaxvqN(vj)(max(V(f^vql; θvl,j))),v_j^{l+1} = \mathop{\arg\max}_{v_q \in \mathcal{N}(v_j)}(\max (V(\hat{f}_{v_q}^l; ~ \theta_v^{l, j}))),

其中,j=1,2,,Nl+1j = 1, 2, \cdots, N_{l + 1}

通过这个策略,可以得到一个由视图选择器产生的粗图Gl+1G^{l+1}。在非局部消息传递后,每个图节点附加其相应的更新视图特征,这些特则和那个可以表示为一个特征行矩阵Finl+1F_{in}^{l + 1}

Hierarchical network architecture

由图5可知一层view-GCN网络由局部图卷积、非局部消息传递和选择视图采样三部分组成。将多个这样的网络连接在一起组成一个深度层次网络结构,如图2所示。为了得到每一级层网络上的信息,作者使用最大pooling操作通过图卷积对节点特征进行更新得到一个池化描述子

Fgloball=maxpool(fil)i=1Ni,F_{global}^l = \text{maxpool}(f_i^l)_{i = 1}^{N_i},

其中,l=0,1,,L1l = 0, 1, \cdots, L-1

则,全局形状描述子为

F=[Fglobal0,Fglobal1,,FglobalL1].F = [{F_{global}^0, F_{global}^1, \cdots, F_{global}^{L - 1}}].

作者提取两种不同的多视图空间配置方法:

  • 由12个视图的组成的圆形配置的view-GCN(类似于图4(a)):k=2k = 2126312 \rightarrow 6 \rightarrow 3(粗图节点个数);
  • 由20个视图的组成的二十面体配置的view-GCN(类似于图4(b)):k=3k = 32010520 \rightarrow 10 \rightarrow 5(粗图节点个数)。

Network training

Training loss

损失函数由基于全局形状描述符的交叉熵损失Lshape\mathcal{L}_{shape}视图选择器定义的交叉熵损失(强制每个视图选择器可以根据视图的局部邻域的视图特征区分形状类别)Lview\mathcal{L}_{view}组成。给定一分类器C\mathcal{C},其FC层权重为WcRLd×NcW_c \in \mathbb{R}^{Ld \times N_c},紧接着是一个softmax**层。总的训练损失为
L=Lshape(C(F),y)+l=0L1j=1Nl+1vqN(vj)Lview(V(f^vql; θvl,j)). \mathcal{L} = \mathcal{L}_{shape}(\mathcal{C}(F), y) + \sum_{l=0}^{L-1} \sum_{j=1}^{N_{l+1}}\sum_{v_q \in \mathcal{N} (v_j)} \mathcal{L}_{view} (V(\hat{f}_{v_q}^l; ~ \theta_v^{l, j})).

Trainable parameters

这些参数记为Θ\Theta,包括Wl,θsl,θcl,θml,θfl,θvlW^l, \theta_s^l, \theta_c^l, \theta_m^l, \theta_f^l, \theta_v^ll=0,1,,L1l = 0, 1, \cdots, L - 1,且i=1,2,,Nli = 1, 2, \cdots, N_l和分类器C\mathcal{C}参数WcW_c

特别地,对于20视图view-GCN,73.4M(参数) = 44.8M (使用ResNet-18提取特征) + 28.6M(view-GCN)。

Training method

分两步进行:

  • 预训练特则提取器,主干网络采用ResNet-18或ImageNet;
  • 训练主干网络和veiw-GCN。
Optimizer Momentum Decay Batch Epoch Learning rate
SGD 0.9 10210^{-2} 400 30 10210^{-2}
SGD 0.9 10210^{-2} 400 30 10310^{-3}

Experiments

对view-GCN在合成和真实数据集上进行三维形状分类和检索的评价,实验代码开源。

No. Dataset Categories Total
1 ModelNet40 40 12,311 = 9,843 (Train) + 2,468 (Test)
2 ShapeNet Core55 55 51,162 = 35,764 (Trian) + 5,133 (Vaild) + 10,265 (Test)
3 RGBD 51 300个家具物体,相机在水平30°、45°和60°方向上

Experiment for 3D shape classification

实验结果如表1和表2所示,其中表1是分类结果,表2是对比结果。

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

Experiment for 3D shape retrieval

对于3D形状检索,针对每个查询对象,首先将具有相同预测类标签的所有对象作为检索形状,并根据类标签预测概率得分的排序来确定检索等级。图3是实验结果,

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

Experiment on real multi-view image dataset

如表4所示,view-GCNs在分类准确率方面取得了最好的结果。

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

Experimental analysis on view-GCN

各种view-GCN架构的结果如表5所示。

【论文阅读】基于视图的图卷积神经网络3D物体形状识别算法

Conclusion

提出了一种新型的面向对象的图卷积网络3D物体形状识别算法。作者利用视图-图对物体形状的多个视图建模,并开发了一个新的基于层次视图图的GCN来学习全局形状描述子。大量的实验证明了它的有效性。在未来的工作中,作者计划将view-GCN应用于多模态特征融合