Relation-Shape Convolutional Neural Network for Point Cloud Analysis

霸气de小男生 提交于 2020-05-06 01:32:02

Yongcheng Liu, 2019 CVPR

1. Intuition

点之间的关系(几何拓扑结构)可能蕴含了3D点云的形状信息,所以作者设计了可以学习点之间关系(relation)的模型。从总体上看,本作符合经典的local-to-global结构,并且由FPS(Farthest Point Sampling)确定中心点,使用球查询(ball query)获取邻域,在邻域内随机采样固定数目的点。在此基础上,建模如下: $$ f_{P_{sub}} = \sigma(\mathcal{A}({\mathcal{T}(f_{x_j}), \forall x_j\in \mathcal{N}(x_i)})), \mathcal{N}(x_i)={x_j \arrowvert d(x_i, x_j) \lt r} $$ $\mathcal{T}$用于转化单点特征,比如空间转换矩阵,所以通常也就是shared mlp;$\mathcal{A}$用于综合(aggregate)各个点特征,通常是max、average、sum等;$\sigma$是激活函数。这个模型在传统2D卷积操作上也适用。

传统的卷积操作中,$\mathcal{T}(f_{x_j})=w_j \cdot f_{x_j}$,作者认为$w_j$只与$f_{x_j}$有关,并不能学习到$x_j$与$x_i$的关系,所以提出$\mathcal{T}(f_{x_j})=w_{ij}\cdot f_{x_j}=\mathcal{M}(h_{ij})\cdot f_{x_j}$。$h_{ij}$是两点之间关系的低维表示;$\mathcal{M}$将点之间的关系映射成高维的表示。(PS:实际上,之前的点云上的工作,会把邻域中的点移到中心点的坐标系中,所以其实也能学习到$x_i$与$x_j$的相对位置关系?)

2. Implement

FPS采样中心点,ball query确定邻域,采样固定数目的点。同样采取了MSG的策略,但是与pointnet++不同的是这里用在不同组上的$w​$是shared的。

$h_{ij} =(Ed(x_1, x_2), x_i-x_j, x_i, x_j)$,$\mathcal{M}$是shared mlp,$\mathcal{A}$是max,$\sigma$是ReLU。

提取局部特征后,过shared mlp提升维度,最后通过fc进行分类。与之前的工作一致,用于segmentation的网络会增加一些skip connection。

3. Experiment

实验:classification, segmentation, normal estimation

baseline:pointnet, pointnet++, PCNN, DGCCNN, ...

4. Code

pytorch https://github.com/Yochengliu/Relation-Shape-CNN

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!