【论文阅读】基于视图的图卷积神经网络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在聚合多视图特征时自动调查视图之间的关系。
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形状,每一个视图对应图中的一个节点。节点间的边由摄像机坐标的近邻确定。因此,作者在view-graph上设计了一种图卷积神经网络view-GCN(如图1所示)用于聚合多视图特征以学习全局形状描述子。
View-GCN主要具有两个优点:
- 能够灵活建模多视图配置(如图4????位置);
- 通过视图-图表示利用GCN聚合关于图节点关系聚合多视图特征。
View-GCN是一个层次化的GCN架构,在越来越粗糙的视图图上有多个层次。在每层设计了一个局部图卷积操作和一个非局部消息传递操作,通过研究相邻视图和远程成对视图之间的关系来聚合多视图特征。为了使图粗化,作者提出了一种选择性视图抽样策略,通过视图选择器对有代表性的视图进行抽样。所有学习到的不同层次的特征被组合成一个全局形状描述子。
实验取得良好的效果,在真实多视图数据集RGBD上优于当前的先进方法。
Overview of View-GCN
如图2所示,view-GCN主要包括三个部分,分别是view-graph创建、view-GCN和训练损失。
- 3D物体的多视图特征由主干网络提取,然后建立一个view-graph表示,其中节点由视图特征表示;
- 在view-graph上设计一个GCN分层地聚合多视图特征;
- 提取全局形状描述子用于形状识别。
From 3D shape to view-graph
No. | Symbol | Meaning |
---|---|---|
1 | 有向图 | |
2 | 相机坐标 | |
3 | 邻接矩阵, | |
4 | 两个视图和的空间关系 | |
5 | 带有参数的非线性成对节点嵌入 | |
6 | 稀疏矩阵 | |
7 | 二值指示函数 |
旨在由3D物体地视图来构建一个有向图,称之为视图-图(view-graph),邻接矩阵可以表示为
其中,表示的是两个视图的空间关系。在实现中,设置为具有LeakyReLU**函数的三层MLP,且前两层具有10个隐藏单元,输出为一个标量。
使用kNN利用坐标距离找到每个节点固定数量的相邻节点,并只保留邻居间的边。因此,稀疏矩阵可以表示为
View-based graph convolutional network
View-GCN是在粗糙的视图-图的多个级别上定义的层次结构网络。
Initial view feature extraction
No. | Symbol | Meaning |
---|---|---|
1 | 视图数量 | |
2 | 第个视图 | |
3 | 由2D图像分类网络(如ResNet-18和ImageNet)提取的视图的特征 |
使用所有训练3D对象的混合多视图2D图像对网络进行微调进行分类,并将上一层FC(fully connected)之前不同视图的特征向量化为视图特征,作为初始图中节点初始化特征。
Local graph convolution
No. | Symbol | Meaning |
---|---|---|
1 | 第级视图-图 | |
2 | 视图-图的节点数量 | |
3 | 特征矩阵,每一行代表一个节点的特征 | |
4 | 可学习权值矩阵 | |
5 | 由批处理归一化操作与紧随其后的带有参数的LeakyReLU**函数组成的非线性变换 |
定义局部图卷积层,通过考虑由摄像机坐标的kNN确定的相邻节点之间的关系来更新节点特征,即
输入的特征首先由稀疏邻接矩阵扩散,然后由线性变换更新每个节点,经过一个非线性变换得到更新之后的特征。
Non-local message passing
No. | Symbol | Meaning |
---|---|---|
1 | 含参数的关系函数 | |
2 | 三层MLP含有个隐含单元,每层都使用LeakyReLU**函数, 输出消息为 | |
3 | 含参数的融合函数,由一层MLP和批处理归一化实现 | |
4 | 融合特征矩阵,第个节点的融合特征为$ \hat{f}_i^l$ |
通过非局部信息传递来捕获视图-图中节点的远程关系。作者定义消息由节点到作为一个节点对关系
其中,。
进一步从图中所有节点收集节点的消息,然后将累积的消息与原始特征融合为
其中,。
通过上式更新后的特征就可以在局部图的卷积中吸收远处视图的信息,超越局部邻近视图的信息。
Selective view-sampling for graph coarsening
在更新完第级视图-图的节点特征后,然后对图进行粗化派生出级视图-图,图粗化被广泛地实现GCN中的最远点采样(FPS),对视图子集进行采样,以构建粗化图,以扩大GCN的接受域。此工作为图粗化设计了一种新的选择性视图采样策略。
No. | Symbol | Meaning |
---|---|---|
1 | 第级视图-图的相机的第个坐标 | |
2 | 采样率 | |
3 | 含参数的视图选择器,输出具有形状类别的概率,被定义为一个两层的MLP网络,含有个隐含单元 |
FPS迭代地采样一个相机坐标视图地子集
其中,。FPS基于摄像机坐标对每个新视图与已采样的视图集之间的最大距离进行采样。基于FPS的样本可以保持视图的多样性,但不能保证所采样的视图对下游的判别学习任务具有代表性。
为了利用FPS的优点同时客服FPS的缺点,如图5所示:
- 初始化通过FPS采样一个一个子集;
- 对于相机坐标,通过视图选择器在kNN视图上选择一个初始视图中的抽样视图,新采样视图在局部邻域内对视图选择器的响应最大,即
其中,。
通过这个策略,可以得到一个由视图选择器产生的粗图。在非局部消息传递后,每个图节点附加其相应的更新视图特征,这些特则和那个可以表示为一个特征行矩阵。
Hierarchical network architecture
由图5可知一层view-GCN网络由局部图卷积、非局部消息传递和选择视图采样三部分组成。将多个这样的网络连接在一起组成一个深度层次网络结构,如图2所示。为了得到每一级层网络上的信息,作者使用最大pooling操作通过图卷积对节点特征进行更新得到一个池化描述子
其中,。
则,全局形状描述子为
作者提取两种不同的多视图空间配置方法:
- 由12个视图的组成的圆形配置的view-GCN(类似于图4(a)):,(粗图节点个数);
- 由20个视图的组成的二十面体配置的view-GCN(类似于图4(b)):,(粗图节点个数)。
Network training
Training loss
损失函数由基于全局形状描述符的交叉熵损失和视图选择器定义的交叉熵损失(强制每个视图选择器可以根据视图的局部邻域的视图特征区分形状类别)组成。给定一分类器,其FC层权重为,紧接着是一个softmax
**层。总的训练损失为
Trainable parameters
这些参数记为,包括, ,且和分类器参数。
特别地,对于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 | 400 | 30 | ||
SGD | 0.9 | 400 | 30 |
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是对比结果。
Experiment for 3D shape retrieval
对于3D形状检索,针对每个查询对象,首先将具有相同预测类标签的所有对象作为检索形状,并根据类标签预测概率得分的排序来确定检索等级。图3是实验结果,
Experiment on real multi-view image dataset
如表4所示,view-GCNs在分类准确率方面取得了最好的结果。
Experimental analysis on view-GCN
各种view-GCN架构的结果如表5所示。
Conclusion
提出了一种新型的面向对象的图卷积网络3D物体形状识别算法。作者利用视图-图对物体形状的多个视图建模,并开发了一个新的基于层次视图图的GCN来学习全局形状描述子。大量的实验证明了它的有效性。在未来的工作中,作者计划将view-GCN应用于多模态特征融合。