PointNet++:Deep Hierarchical Feature Learning on Points Sets in a Metrci Space

310 阅读9分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


一:摘要

PointNet缺陷:不能捕捉由点所在的度量空间引起的局部结构,限制了它识别细粒度模式的能力和对复杂场景的概括能力。

PointNet++:分层神经网络,递归的应用pointnet到输入点云的嵌套分区。通过利用度量空间距离,我们的网络能够随着上下文尺度的增加学习局部特征。进一步观察到点集通常以变化的密度采样,这导致在均匀密度上训练的网络的性能大大降低,我们提出了新的集合学习层来自适应地组合来自多个尺度的特征。

可见主要解决的是:

  • 1)学习局部特征
  • 2)适应点云密度变化
  • 3)平移不变性-----www.bilibili.com/video/av529… 使用相对位置来解决的,而pointnet解决的是旋转不变形

二:介绍

  • CNN将规则网格上定义的数据作为输入,并能够在多分辨率层次结构中以越来越大的比例逐渐捕获特征。在较低的水平,神经元有较小的感受野,而在较高的水平,它们有较大的感受野。沿着层次结构抽象局部模式的能力允许对看不见的情况进行更好的概括。

  • 我们引入了一个分层神经网络,命名为PointNet++,以分层方式处理在度量空间中采样的一组点。PointNet++的总体思路很简单。我们首先通过底层空间的距离度量将点集划分为重叠的局部区域。与CNNs相似,我们从小邻域中提取捕捉精细几何结构的局部特征;这种局部特征被进一步分组为更大的单元,并被处理以产生更高级别的特征。重复这个过程,直到我们获得整个点集的特征。

  • PointNet++的设计必须解决两个问题:如何生成点集的划分,以及如何通过局部特征学习器抽象点集或局部特征。因为点集的划分必须产生跨分区的公共结构,从而可以共享局部特征学习者的权重,如在卷积设置中。我们选择本地特征学习者作为点网。

  • 仍然存在的一个问题是如何生成点集的重叠划分。每个分区被定义为底层欧氏空间中的一个邻域球,其参数包括质心位置和尺度。为了均匀覆盖整个集合,质心通过最远点采样算法从输入点集中选择。与以固定步幅扫描空间的体积中枢神经系统相比,我们的局部感受野既依赖于输入数据,也依赖于度量标准,因此更加高效和有效。

  • 由于特征尺度的纠缠和输入点集的不均匀性,决定局部邻域球的合适尺度是一个更具挑战性但更有趣的问题。然而,我们在点集数据上的实验给出了与这个规则相反的证据。由于采样不足,小邻域可能由太少的点组成,这可能不足以允许点网鲁棒地捕获模式。

  • PointNet++在多个尺度上利用邻域来实现鲁棒性和细节捕捉。在训练期间随机输入丢失的帮助下,网络学习自适应地加权在不同尺度检测到的模式,并根据输入数据组合多尺度特征。实验表明,我们的PointNet++能够高效、鲁棒地处理点集。特别是,在具有挑战性的3D点云基准上,获得了明显优于现有技术的结果。

  • 总结:解决点集如何划分以及局部特征如何学习,其中在点集划分的同时,涉及到了密度不均匀性,其中质心的选择利用到了FPS算法,而半径则利用到了MRG,保证了适应密度的不均匀性。

    • 1.为了均匀覆盖集合-----质心根据最远点采样算法从输入点集中选择!
    • 2.尺度划分,但密度下降在准确率下降很大------因为密度不均匀,又增加了MRG/MSG--更加鲁棒
    • 3.每一个采样后分组的学习则利用pointnet!
    • 4.迭代多次。

三:问题陈述

在这里插入图片描述

总结:学习函数f:输入是点集+每个点的特征,输出是分类和分割的语义信息


四:方法

4.1 PointNet的回顾

image.png

  • 其中γ和h通常是多层感知器(MLP)网络。方程中的集合函数f。1对于输入点排列是不变的,并且可以任意逼近任何连续集函数。
  • 主要解决:置换不变性---maxpooling、旋转不变性----T-net、平移不变性----所有点规范到一个单位球体内(对于分类单物体!)、每个点特征以及所有点特征的学习详情见:https://juejin.cn/post/7092688218348322853

4.2 Hierarchical Point Set Feature Learning

image.png

以2D欧氏空间中的点为例,说明我们的分层特征学习体系结构及其在集合分割和分类中的应用。此处显示了单个比例点分组。关于密度自适应分组的细节,见图3

注:此处在2D图上为例,并且对于分组来说只是单个比例点分组,还没有使用密度自适应分组,此时对于样本的密度的干扰性是比较菜的!!!

一系列的集合抽象层(set abstraction layers)的结构:

image.png image.png

image.png

4.3 Robust Feature Learning under Non-Uniform Sampling Density

在密集数据中学习的特征可能无法推广到稀疏采样区域;并且之前分组都是单尺度的,所以下面提出多尺度,并根据局部点密度智能的结合!!!!!!!!

密度自适应点网层: 文章认为,实际点云很少是均匀分布的,

学习目标:在采样的时候,对于密集的区域,应该使用小尺度采样,以深入细致的特征(finest details),但在稀疏区域,应该使用大尺度采样,因为过小的尺度会导致稀疏处的采样不足。因此,本文提出了改良的特征提取层,density adaptive PointNet layers。又分为以下两种方案

image.png

image.png

注:MSG叫做多尺度分组;MRG叫做多分辨率分组;因为计算量的问题,该文章推荐MRG!!!!

  • 1.MSG理解: 对于同一个中心点,如果使用3个不同尺度的话,就分别找围绕每个中心点画3个区域,每个区域的半径及里面的点的个数不同。对于同一个中心点来说,不同尺度的区域送入不同的PointNet进行特征提取,之后concat,作为这个中心点的特征。也就是说MSG实际上相当于并联了多个hierarchical structure,每个结构中心点数量一样,但是区域范围不同(可以理解成感受野?),PointNet的输入和输出尺寸也不同,然后几个不同尺度的结构在PointNet有一个Concat。 其中训练的时候,结合一种优化策略来结合多尺度特征;通过对每个实例以随机概率随机丢弃输入点来实现的,我们称之为随机输入丢弃。就是在输入到点云之前,对点集进行随机的Dropout,比例使用了95%,也就是说进行95%的重新采样。某种程度有点像数据增强,也是提高模型的robustness,不能100%,防止都是空集,其中对于95%的数据进行概率p的随机丢弃!!!测试集则不会这么干!这部分的细节处待完善。。。。。

  • 2.MRG理解: 这种方法应该是对不同level的grouping做了一个concat,但是由于尺度不同,对于low level的先放入一个pointnet进行处理再和high level的进行concat。感觉和ResNet中的跳连接有点 类似。我的理解是,Li的特获获取分别来自:下图左部分是“通过使用集合抽象级别从较低级别Li-1总结每个子区域的特征而获得的 ”;下图右部分是pointnet直接处理局部区域所有原始点而获得的特征;---------详细理解见代码!这部分的右部分直接处理局部区域的原始点,是上一级的,还是最初的!!!这里不清楚 结果: 当局部区域的密度较低时,第一向量可能不如第二向量可靠,因为计算第一向量的子区域包含甚至更稀疏的点,并且更受采样不足的影响。在这种情况下,第二个向量的权重应该更高。 另一方面,当局部区域的密度较高时,第一个矢量提供更精细的细节信息,因为它具有在较低级别以较高分辨率递归检查的能力。

4.4 Point Feature Propagation for Set Segmentation

在集合抽象层,原始点集被下采样。然而,在诸如语义点标记的集合分割任务中,我们希望获得所有原始点的点特征。一种解决方案是总是将所有集合抽象层中的所有点采样为质心,然而这导致高计算成本。另一种方法是将特征从下采样点传播到原始点。----因为分割,最后的点数肯定是不变的!!

image.png

image.png


image.png

五:实验

image.png

5.1 分类

image.png

5.2 分割

image.png


六:结论

在这项工作中,我们提出了PointNet++,一个强大的神经网络架构,用于处理在度量空间中采样的点集。PointNet++递归地在输入点集的嵌套分区上运行,并且在学习关于距离度量的分层特征方面是有效的。为了处理非均匀点采样问题,我们提出了两个新的集合抽象层,根据局部点密度智能地聚合多尺度信息。这些贡献使我们能够在具有挑战性的3D点云基准上实现最先进的性能。在未来,如何通过在每个局部区域共享更多的计算来加快我们提出的网络的推理速度,特别是对于MSG和MRG层,是值得思考的。在更高维度的度量空间中找到应用也很有趣,在这些空间中,基于CNN的方法在计算上是不可行的,而我们的方法可以很好地扩展。