1. Motivation
- However, by design PointNet does not capture local structures induced by the metric space points live in, limiting its ability to recognize fine-grained patterns and generalizability to complex scenes.
- In addition, the distance metric defines local neighborhoods that may exhibit different properties
limitation of PoinNet
- No local context
- Limited translation invariance
根据作者的讲解:PointNet either one point or all point,很难分割精细的物体,对于分割任务有局限性;其次对于平移不变性也有局限性,如果是多个物体的点云(而不是当个物体),那么平移后,所有的xyz都不一样了,全局特征以及分类也不一定了。
2. Contribution
-
本文作者提出了一个基于PointNet的分级的神经网络。
In this work, we introduce a hierarchical neural network that applies PointNet recursively on a nested partitioning of the input point set.
-
正对点云集合中密度的稀疏性不同的问题,这会导致统一在某一个densities下训练的网络的性能下降,作者提出了multi-scale 多尺度特征的方式,来自适应的学习联合特征。
With further observation that point sets are usually sampled with varying densities, which results in greatly decreased performance for networks trained on uniform densities, we propose novel set learning layers to adaptively combine features from multiple scales.
-
In particular, results significantly better than state-of-the-art have been obtained on challenging benchmarks of 3D point cloud
3. Method
3.1 Hierarchical Point Set Feature Learning
如图2所示,作者提出的分层结构是由set abstract组成,对于SA模块来说,由三个layer组成,Sampling layer,Grouping Layer和PointNet layer。
- The Sampling layer selects a set of points from input points, which defines the centroids of local regions.
- Grouping layer then constructs local region sets by finding “neighboring” points around the centroids
- PointNet layer uses a mini-PointNet to encode local region patterns into feature vectors
SA的输入是Nx(d+C),N表示N个点,d表示三维坐标,C表示point feature。
SA的输出为N’ x (d+C’),其中N是采样后的点,C’是new feature vectors。
之后得到的特征分别根据分类和分割任务设计2个框架,需要注意的是对于分割来说,除了要应用插值进行还原,作者使用了skip link concatenating操作,也就是将第一维采样点相同的特征进行cat操作,作为pointnet的输入。
3.1.2 Sampling layer
给定 { x 1 , x 2 , . . . . , X n } \{x_1, x_2,....,X_n\} {x1,x2,....,Xn}, 首先作者使用farthest point sampling(FPS)来选择每一个子集合 {} { x i 1 , x i 2 , . . . , x i m } \{x_{i_1}, x_{i_2},...,x_{i_m} \} {xi1,xi2,...,xim},其中选取一个离这个子集合其余点最远的 x i j x_{i_{j}} xij。
与随机采样相比,在给定相同数量的质心的情况下,它对整个点集具有更好的覆盖率。
3.1.3 Grouping layer
grouping layer的输入是Nx(d+C)以及坐标的集合N’xd,这层的输出是N’xKx(d+C),其中K和N’是重点理解的,N’是采样的点(每个子集合中的质心),K作为每个local region内的点的集合
- K is the number of points in the neighborhood of centroid points.
对于local region的选取,作者采用Ball query。
- Ball query finds all points that are within a radius to the query point (an upper limit of K is set in implementation).
与kNN相比,球形查询的局部邻域可确保固定的区域比例,从而使局部区域的功能在整个空间中更具通用性,这对于需要局部模式识别(例如语义点标记)的任务是首选。
3.1.4 PointNet layer
在这一层中,输入是N’x K x(d+C),相当于对N’中的每一个subsample point的 Kx(d+C)做pointnet中的mlp,pooling等操作,得到d+C’的vector,因此输出就是N’x(d+C’)。其中N’就是上述提到的centroid point。
局部局域point的坐标是从之前的全局坐标准变为以每一个N’的相对坐标,也就是 X i j = x i j − x ^ ( j ) X_i^{j} = x_i^{j}-\hat x^{(j)} Xij=xij−x^(j), x ^ ( j ) \hat x^{(j)} x^(j)是centroid 坐标。
3.2 Robust Feature Learning under Non-Uniform Sampling Density
3.2.1 Multi-scale grouping (MSG)
由于采样区域的不均匀的问题,如果使用相同的radius,那么采样得到的密度是不同的。
MSG是在同一层中,使用半径不同的采样区域提取特征,最后在将它们cat在一起。
作者在附录中给出的MSG的训练细节如下:
SA(K,R,[l1,…ld]),K是局部局域,R是radius,L就是FC层。这里的K是K local regions,相当于是K个subsample point(与上文的K表示局域区域内的point数量不同。)
中午想了很久,发现有一点是想当然了,MSG通过cat操作,具体cat是第一维,例如经过了3个radius不同的fc层后,他们是64,128,128,然后他们会经过max pooling,那么最后输出分别是N’ x 64 N’ x128, N’ x 128(这里的N’就是这里的K)。他们的N‘都是一样的都是采样得到的点,因此可以进行cat操作。
3.2.2 Multi-resolution grouping (MRG)
MSG是在不同的分辨率下进行的cat操作。作者说这样子可以减少计算量。
3.3 Point Feature Propagation for Set Segmentation
-
We adopt a hierarchical propagation strategy with distance based interpolation and across level skip links (as shown in Fig. 2).
-
we use inverse distance weighted average based on k nearest neighbors (as in Eq. 2, in default we use p = 2, k = 3).
分割过程中使用的插值方法如下,直到将points的数量还原回原始输入的数量。