Author
和PointNet是同一批作者,这是对PointNet的一个改进版本
Abstract
PointNet不能很好的捕捉由度量空间引入的局部结构,也就限制了它识别细粒度类别的能力以及对复杂场景的泛化能力
本文提出一个层级的神经网络递归地应用在嵌套划分的输入点云集。
通过探索度量空间的距离,本文设计的网络结构随着上下文尺度的增加可以学习到局部特征
更深的观察发现,点云集的密度一般都是不均匀的,但PointNet是在均匀采样密度的点集上训练的,这会造成很大的性能下降,我们提出新型的点集学习方法可以适应性的组合不同尺度的特征。
Introduction
在这种距离尺度空间中,局部领域可能会展现出不同的性质,比如说不同的部分它的点云密度不同
PointNet的基本思想是是学习每个点的空间编码然后聚合所有的点的特征到全局特征中,但是这种结构捕捉不到测度引入的局部结构。然而探究局部结构在CNN中被证明非常重要,传统2D CNN中接受规则输入,并且不断的在不同层捕获不同尺度的特征,通过层级结构不断地抽象特征能更好地泛化到unseen cases.
本文提出了一个层级的神经网络,去处理层级采样的点云。
类似于CNN结构,我们先从小的领域提取局部特征,然后group去产生更高层的特征,这个过程不断的重复直到获取整个点云集合的全局特征
要解决两个问题:
- 怎么划分这个点云集合
- 怎么组合点云集的局部特征
这两个问题是紧密联系的,因为划分点集是要让他们有共同的结构,所以local feature learner的权重就可以共享,类似于CNN, 本文使用PointNet作为局部特征学习器
作为一个基础的结构部件,PointNet要在局部点集中抽取特征,或者把特征组合成更高层表示,所以PointNet++递归地使用PointNet在一个嵌套划分的输入点云集合上
一个问题是如何划分输入:
每个局部划分都是一个领域球,参数包括中心点的位置和尺度,为了更加均匀地覆盖整个数据集,中心点是使用farthest point sampling(FPS)算法进行采样的
FPS: 先随机选择一个点,然后再选择离这个点最远的点作为起点,再继续迭代,知道选出需要的个数为止
参考:
https://www.cnblogs.com/li-yao7758258/p/8182846.html
它本质上是PointNet的分层版本。每个图层都有三个子阶段:采样,分组和PointNeting。在第一阶段,选择质心,在第二阶段,把他们周围的邻近点(在给定的半径内)创建多个子点云。然后他们将它们给到一个PointNet网络,并获得这些子点云的更高维表示。然后,他们重复这个过程(样本质心,找到他们的邻居和Pointnet的更高阶的表示,以获得更高维表示)。使用这些网络层中的3个。还测试了不同层级的一些不同聚合方法,以克服采样密度的差异(对于大多数传感器来说这是一个大问题,当物体接近时密集样本,远处时稀疏)。他们在原型PointNet上进行了改进,在ModelNet40上的准确率达到了90.7%。