NIPS 2017

Abstract

PointNet在设计之初没有考虑shape的局部特征,这限制了其在复杂场景下的细粒度分类能力。本文基于PointNet,提出了一种分层的网络结构,其在输入point cloud的嵌套划分上迭代的使用PointNet,从而对不同上下文尺度的局部特征进行学习。同时,point cloud在采样时通常会出现采样密度上的不一致性,当网络模型在相同的采样密度上进行训练时性能并不理想。针对这一问题,本文提出了一种density adaptive PointNet layer,以在采样密度不同时进行多尺度的特征融合。结合了上述两种设计的网络模型称为PointNet++。

注:作者所有的分析都是从测度空间的角度来进行分析的,具有很强的数学性。

PointNet++

image.png

PointNet++以一种分层的形式来对point cloud进行处理:首先,PointNet++将point cloud分成若干个区域,在每个区域中使用PointNet对区域特征进行提取。之后小区域合并成大区域,再使用PointNet进行提取,依次类推,直至对整个point cloud进行特征提取。这样,PointNet++面临着两个问题:

  1. 如何对point cloud进行划分?
  2. 如何对划分好的区域进行局部特征的提取?

对于第二个问题,PointNet++使用了PointNet作为local feature learner。对于第一个问题,PointNet++进行了如下设计。

Hierarchical Point Set Feature Learning

PointNet++将对整个point cloud的特征提取过程分成了若干个set abstraction levels(SAL)。每个SAL包含三个步骤,分别为Sampling Layer,Grouping Layer和PointNet Layer。每个SAL接受一个$N\times(d+C)$维的输入,Sampling Layer找到$N′$个centroid,Grouping Layer为每个region partition组合出$N′\times K_i \times (d+C)$维的特征,然后PointNet Layer提取出$N′ \times (d+C′)$维的特征。其中,C是附加特征的数量,$N′$是每个region partition中的点数。下一个SAL的输入只有上一个SAL的centroid。

  1. Sampling Layer从输入point cloud中选择出一些点作为每个region partition的centroid。此时在采样时PointNet++使用了farthest point sampling(FPS)。与随机采样相比,FPS可以获得更好的收敛。其中第一个点随机选取。
  2. Grouping Layer找出每个centroid的neighbor point,并组成region partition。在选择neighbor point时,PointNet++使用了ball query(Euclidean distance)而不是kNN,因为作者发现这样泛化性能更好。二者的区别在于:kNN有且仅有k个point,而ball query将radius范围内的全部包含,个数不确定。
  3. PointNet Layer为每个region partition提取特征。注意的是,每个点的坐标信息转化为相对于centroid的相对坐标,这有利于编码point-to-point的关系。

image.png

Robust Feature Learning under Non-Uniform Sampling Density

在point cloud采样时,不同区域的采样密度不同时非常常见的情况。如果模型在训练时采用相同的scale,那么会导致提取到的特征与区域密度的不匹配。在密集数据上学到的特征无法很好的泛化到稀疏的数据上去,导致在稀疏数据上无法对细节特征进行有效的建模。此时,需要在更大的scale上进行特征提取。为了解决这个问题,PointNet++提出了density adaptive PointNet layers,通过将不同尺度的区域的特征进行融合,来应对采样密度不一致的问题。

image.png

PointNet++使用了两种方式:

  1. Multi-scale grouping(MSG):每个SAL使用不同scale的grouping layer和PointNet layer提取特征,并将特征concat起来,作为最后的feature vector。
  2. Multi-resolution grouping(MRG):在第L个SAL,使用L-1的subregion的特征和该region所有point cloud点的分别做grouping layer和PointNet layer,并concat起来。

在实际应用中,MSG效果更好,MRG速度更快。

image.png

PointNet还提出了一种random input dropout,即先从[0, p]中随机一个𝜃,在从[0, 𝜃]中随机dropout的概率。

image.png

Point Feature Propagation for Set Segmentation

在分割问题中,之前的网络结构通过region partition进行了下采样。为了解决这一问题,PointNet++提出了一种利用空间插值进行上采样的方法,整体结构类似Encoder-Decoder。插值算法如下图:

image.png

Experiment

image.png

image.png

在非刚体shape的分类中,作者发现non-Euclidean distance和传统的intrinsic features非常重要。作者在这里使用了geodesic distance:连接两点的最短路径的边数。

image.png

标签: none

添加新评论