一.Abstrcat
二.Intorduction
三.Method
四.Experiments
一.Abstract
1.pointNet是在该领域先驱者但是它不能在多尺度下捕获局部结构信息,对于细粒度的识别任务以及复杂场景的泛化能力都有限制
2.PointNet++提出了分层神经网络,一个递归地将PointNet应用于输入点集的嵌套分区的层次神经网络
3.PointNet++利用度量空间距离,网络能够随着上下文尺度的增加而学习局部特征
4.因为点集密度不同,提出一种自适应的学习层取结合多尺度特征
二.Intorduction
1.PointNet的设计,它不捕获由不同尺度的度量的局部结构。然而,利用局部结构对于卷积网络架构的成功是非常重要的。CNN将定义在规则网格上的数据作为输入,并能够逐步捕获越来越大的特征。
2.首先通过底层空间的距离度量将一组点划分为重叠的局部区域。与CNNs相似,我们提取局部特征,捕捉小邻域的精细几何结构;这些局部特性被进一步分组成更大的单元,并被处理以生成更高级别的特性。这个过程不断重复,直到我们得到整个点集的特征。
3.PointNet++利用多个尺度上的邻域来实现健壮性和细节捕获。该网络在训练过程中辅助随机输入缺失,学习自适应地检测不同尺度下的权值,并根据输入数据结合多尺度特征。实验表明,PointNet++能够高效、鲁棒地处理点集。特别是,在具有挑战性的3D点云基准测试中,获得了明显优于最先进水平的结果。
三.Method
PointNet++增加了分层结构:
1.Sampling layer
2.Grouping layer
3.PointNet layer
1.PointNet使用一个最大池操作来聚合整个点集,PointNet++构建了一个点的层次结构分组,并沿着层次结构逐步抽出越来越大的局部区域
2.采样层从输入点中选择一组点,这些点定义了局部区域的质心。然后对层进行分组,通过找到中心点周围的“邻近”点来构造局部区域集。PointNet层使用一个微型PointNet将局部区域模式编码为特征向量
1.Sampling layer
通过input点击{x1,x2,x3…xn},通过使用最远点采样(FPS)得到不同的点集,相比较随机采样,最远点采样可以覆盖整个数据点
FPS 最远点采样法:Farthest Point Sampling 的原理是先随机选一个点,然后选择离这个点距离最远的点加入点集,然后继续迭代,选择距离点集中所有点最远的点,直到选出需要的个数为止
2.Grouping layer
input尺寸为N(d+C),N代表点云个数,d为坐标维度,c为点的特征,output为
N
,
×
K
×
(
d
+
c
)
N^,\times K \times(d+c)
N,×K×(d+c) ,K为形心邻近点的数量。注意,K在组之间是不同的,但是后续的PointNet层能够将灵活的点数转换为固定长度的局部区域特征向量。
1.Ball query 查找点半径内的所有点(在实现中设置了K的上限)。
2.另一种范围查询是K近邻(kNN)搜索,它查找一个固定的范围相邻点的个数。与kNN相比,ball query的局部邻域保证了固定的区域尺度,从而使得局部区域特征在空间上更加一般化,这对于需要局部模式识别的任务(例如语义点标记)是首选的。
3.PointNet layer
该层输入为N个数据大小为N×K×(d+C)的点的局部区域。输出中的每个局部区域由其质心和编码质心邻域的局部特征抽象而成。输出数据大小为N ×(d + C)
4.Robust Feature Learning under Non-Uniform Sampling Density
1.点集在不同区域具有不均匀密度是很常见的。这种不均匀性给点集特征学习带来了巨大的挑战。在密集数据中学习到的特征可能不适用于稀疏采样区域。因此,针对稀疏点云训练的模型可能无法识别细粒度的局部结构
2.理想情况下,我们希望尽可能近距离地检查一个点集,以捕获密集采样区域中的最佳细节。然而,在低密度地区,这种检查是禁止的,因为局部模式可能会被采样不足所破坏。在这种情况下,我们应该在更大的区域寻找更大的尺度模式。为了实现这一目标,我们提出了密度自适应切入点层,当输入采样密度发生变化时,学习结合不同尺度区域的特征。我们将具有密度自适应PointNet层的分层网络称为PointNet++
在PointNet ++中,每个抽象级别提取了多个局部模式尺度,并根据局部点密度将它们智能地组合起来。在对局部区域进行分组并结合不同尺度特征的基础上,我们提出了两种类型的密度自适应层:
(1)捕获多尺度模式的一种简单而有效的方法是,应用不同尺度的分组层,然后根据切入点提取每个尺度的特征。将不同尺度的特征串联起来形成多尺度特征,我们训练网络学习一种结合多尺度特征的优化策略。这是通过对每个实例随机删除具有随机概率的输入点来实现的,我们称之为随机输入删除
(2)上面的MSG方法在计算 上消耗很大,因为它对每个质心点在大型邻域上运行局部PointNet。特别是,由于质心点的数目在最低水平上通常是相当大的,因此时间成本是显著的
1.当局部区域的密度较低时,第一个向量可能不如第二个向量可靠,因为计算第一个向量时,子区域包含更稀疏的点,并且更容易受到采样不足的影响。在这种情况下,第二个向量的权重应该更高。
2.当局部区域的密度较高时,第一个向量提供更精细的细节信息,因为它具有在较低级别以较高分辨率递归检查的能力
5. Point Feature Propagation for Set Segmentation
1.在语义分割中每个点都需要被分类因此我们需要获得所有原始点的点特征,在前面的多尺度Grouping的PointNet中,如何反向将经过PointNet的点传播回原始点,本文有两种解决方式:
(1)在Sample阶段,将所有的原始点作为中心点进行Grouping结合邻近点的信息,这会导致较高的计算成本
(2)将特征从子采样点传播回原始点
2.采用了基于距离插值的分层传播策略和跨级跳转链接,本文使用的是将特征从采样点传播回原始点,将PointNet的点通过权重W和K近邻个点f得出。在众多插值选择中,我们使用基于k个最近邻的逆距离加权平均,公式如下:
由上述公式可知,聚类距离越短获得的信息越多
w
i
(
x
)
w_i(x)
wi(x)就越大,插值点包含该距离短的信息就越多
四.Experiments
我们评估了四个数据集,从二维对象(MNIST)手写数字体识别,三维对象(Model-Net40[31]刚体,SHREC15[12]非刚体)到真实3D场景(ScanNet [5])
刚性就是物体的外部形状等不随运动等发生变化,非刚性就是物体会在力等外界因素下发生形态的变化。刚体就是一个理想化模型,用来讨论一些物体的转动,平动等规律。
四.一 Point Set Classification in Euclidean Metric Space
PointNet (vanilla)是指没有T-Net的pointNet
1.Table1展示了:分层学习体系结构比非分层切入点[20]获得了更好的性能。在MNIST中,我们看到相对的60.8%和34.6%的错误率降低。
错误率降低=PointNet-Ours/PointNet 这就是本文的方法对于PointNet方法错误率的降低
2.Table2展示了:在MNIST中,PointNet++方法(基于二维点集)在Network in Network CNN中达到了接近该网络的精度。在ModelNet40中(三维刚性物体),我们使用正常信息的方法显著优于以前最先进的MVCNN[26]方法,加入法线信息后性能更加显著。
3.现实世界中传感器采样往往点云是不均匀的,如下图所示:
所以我们的方法选择多个尺度的点邻域,通过适当的加权来平衡描述性和鲁棒性
MSG+DP(训练时随机输入dropout的多尺度分组)和MRG+DP(训练时随机输入dropout的多分辨率分组)对采样密度变化具有很强的鲁棒性。MSG+DP性能从1024点下降到256点,降幅不到1%。此外,与其他方法相比,该方法在几乎所有采样密度上都取得了最好的性能。因为分类任务更加关注全局信息所以PointNet(发挥优势)的表现比单独的SSG(类木桶效应)要好(SSG采用单尺度捕获信息,稀疏地方通过不断的PointNet越来越不可信),加入DP机制类似于Attention(发挥优势)使得性能提升。
四.二 Point Set Segmentation for Semantic Scene Labeling
1.MSG保证了固定的区域尺度,语义分割中MSG有固定的半径尺度对语义分割有很大的帮助,MSG性能要优于MRG(因为毕竟MRG的点云的细粒度尺度是经过粗粒度尺度进行PointNet)