1.动机
之前有些工作是基于point set的,PointNet 是这方面的先驱,但是,它不能捕捉其中度量空间的点的局部结构,这限制了它识别细粒度模式的能力和对复杂场景的概括能力。
2.创新点
1.解决了生成点集的划分。(farthest point sampling (FPS) algorithm)
2.解决了如何通过局部特征学习器提取点集或局部特征。(用之前效果不错的PointNet)
3.回顾PointNet(可以完成分类与分割)
可以总结成一个函数
其中γ和h都是MLP,即函数f可以得到点的语义特征或者其分类标签。
4.本文的方法
分层点集特征学习(Hierarchical Point Set Feature Learning)
分层结构由许多set abstraction组成,每个set abstraction里,一系列点被处理,被提取和产生出更少的点。set abstraction包括:Sampling layer, Grouping layer and PointNet layer。
Sampling layer层从输入点中选择一组点,定义局部区域的质心。
Grouping layer然后通过寻找质心周围的“邻近”点来构建局部区域集。
PointNet layer使用mini-PointNet将局部区域模式编码成特征向量。
set abstraction level将N × (d + C) matrix作为输入,N为点的数量,d为坐标的维数,C为点的特征的维数。输出为N‘ × (d +C’) matrix,N‘为减少后点的数目(这N‘个点相当于找到了点云各个局部位置的中心),C’为总结局部信息后的特征维数。
Sampling layer
采用iterative farthest point sampling (FPS),选出m个点,选择时,就比如,xij是距离点集{xi1
, xi2 , …, xij−1} 最远的点,相比随机采样(random sampling),FPS能够更好的覆盖整个点云。
Grouping layer
输入为N × (d +C)和N’× d,输出为N’ ×K × (d + C),K是每个N’点(局部中心点)邻近的K个点。注意的是K在不同的组中可能有所不同,但是经过PonitNet后能够将不同数目的点转化到固定长度的局部区域特征向量。
用了球查询(Ball query)查找查询点半径内的所有点(实现中设置了一个K的上限)。一种可以替代的方法是K nearest neighbor (kNN),它可以寻找附近的固定数目的点。相比KNN,ball查询的局部邻域保证了固定的区域规模,从而使局部区域特征在空间上更具普遍性,这对于需要局部模式识别的任务(如语义点标注)是首选的。
PointNet layer
输入为N‘×K×(d+C),输出为N‘ × (d +C’),使用PointNet得到局部特征。
非均匀采样密度下的鲁棒特征学习(Robust Feature Learning under Non-Uniform Sampling Density)
理想情况下,我们希望尽可能仔细地检查一个点集,以捕捉密集采样区域的最细微的细节。但是,在低密度区域禁止这种密切检查,因为局部图案可能会被抽样缺陷破坏。在这种情况下,我们应该在更大范围内寻找更大规模的模式。为了实现这一目标,我们提出了density adaptive PointNet layers(密度自适应点网络层)(图3),当输入采样密度发生变化时,该层学习结合来自不同尺度区域的特征。我们将具有密度自适应PointNet层(density adaptive PointNet layers)的分层网络(hierarchical network)称为PointNet++。
每个抽象层次包含单个尺度的分组和特征提取。在PointNet++中,每个抽象层提取局部模式的多个尺度,并根据局部点密度智能组合。在分组局部区域和结合不同尺度的特征方面,我们提出了两种类型的密度自适应层。
Multi-scale grouping (MSG). (图a)
如图3 (a)所示,捕获多尺度模式的一种简单但有效的方法是应用具有不同尺度的分组层,然后根据点网提取每个尺度的特征。不同比例的要素连接在一起形成多比例要素。
Multi-resolution grouping (MRG). (图b)
上面的MSG方法计算量很大,因为它在每个质心点的大规模邻域运行局部点网。特别是,由于质心点的数量通常在最低级别相当大,因此时间成本很大。
在这里,我们提出了一种替代方法,避免了这种昂贵的计算,但仍然保留了根据点的分布特性自适应地聚合信息的能力。在图3 (b)中,在某一水平L1的区域的特征是两个向量的连接。一个向量(图中左侧)是通过使用集合抽象级别从较低级别Li-1总结每个子区域的特征而获得的。另一个向量(右)是通过使用单个点网直接处理局部区域中的所有原始点而获得的特征。
当局部区域的密度较低时,第一向量可能不如第二向量可靠,因为计算第一向量的子区域包含甚至更稀疏的点,并且更受采样不足的影响。在这种情况下,第二个向量的权重应该更高。当局部区域的密度较高时,第一个向量提供了更精细的细节信息,因为它具有在较低级别以较高分辨率递归检查的能力。
与MSG相比,该方法的计算效率更高,因为我们避免了在最底层的大规模邻域中提取特征。
Point Feature Propagation for Set Segmentation
在集合抽象层,原始点集被二次抽样。然而,在诸如语义点标记的集合分割任务中,我们希望获得所有原始点的点特征。一种解决方案是总是将所有集合抽象层中的所有点采样为质心,然而这导致高计算成本。另一种方法是将特征从二次采样点传播到原始点。
我们采用基于距离的插值和跨层跳跃链接的分层传播策略(如图2所示)。在要素传播级别,我们将点要素从Nl × (d+C)点传播到Nl 1点,其中Nl 1和Nl(Nl≤Nl 1)是集合抽象级别l的输入和输出的点集大小。我们通过在Nl 1点的坐标上插值Nl点的特征值f来实现要素传播。在插值的许多选择中,我们使用基于k个最近邻的反向距离加权平均(如等式。2,默认情况下我们使用p = 2,k = 3)。然后,Nl-1点上的插值特征与集合抽象级别中的跳过链接点特征相连接。然后级联的特征通过一个“单位点网”,类似于CNNs中的一一卷积。应用一些共享的完全连接和ReLU层来更新每个点的特征向量。重复该过程,直到我们将特征传播到原始的点集合。
5.实验