回答思路
(1)概念
Pointnet++的提出源于pointnet的缺点:缺失局部特征,从以往的实验来看,pointnet对于场景的分割效果比较一般,因为其网络直接暴力地将所有点最大池化为了一个全局特征,因此局部点与点之间的联系并没有被网络学习到。在分类和物体的局部分割中,这样的问题可以通过中心化物体的坐标轴部分地解决,但在场景分割中,就导致效果十分一般了。
(2)网络结构
Pointnet++采用了分层提取点云特征的策略,把每一个层级的操作叫做一次set abstraction,包括采样、分组和特征提取,首先通过最远点采样法(FPS)在点云上采样一些点,然后以这些点为中心点在某一范围内寻找k个邻近点组成局部子点云,接着对每个子点云使用pointnet进行特征提取和池化操作,继续进行下一个set abstraction,这样每一层采样的中心点都是上一层中心点的子集,随着层数的增加,中心点的个数越来越少,但是点的特征中编码了输入点云从局部到全局的特征信息,克服了pointnet的缺点。
(3)分组策略
对于输入点云数据各局部区域密度不同的问题,在固定的邻近范围内选取固定数量的邻近点是不合适的,pointnet++提出两种方案:
多尺度分组,即在分组时对每个中心点都采用多种尺度来确定邻域范围,并把每个尺度下分组得到的点进行特征提取后联接起来,得到一个多尺度的点云特征。因为对于每个中心点都需要进行多次分组和特征提取,所以这个方案的计算成本非常高。
多分辨率分组,该方案每个分组区域的布局点云特征都是由两部分联接得到的,第一部分是上一层通过set abstraction操作后得到的特征,第二部分是直接对当前局部区域包含的所有原始点云数据中的点进行特征提取得到的特征,避免了多尺度分组中计算成本高的问题,并且可以根据当前局部区域点的密度来给与两部分特征不同的权重。