(PointNet++是PointNet结构的改良,它增强了对点云模型细节的捕捉能力)
摘要:PointNet并没有捕捉到点云的局部结构,而本文介绍了一种分层神经网络,用于捕捉点云的局部特征。
Introduction
背景:几何点集,即点云,是欧几里得空间中点的集合,通常由3D扫描仪获得。点云的处理需要有排列不变性(不同顺序的输入有相同输出)。此外,距离度量定义了点云局部区域的不同性质。如不同位置不同的密度定义了局部点不同的属性。
现有缺陷:PointNet不捕获局部结构特征。但是,CNN的成功证明了学习过程中利用局部结构信息对学习也非常重要。
本文概述:引入一种分层神经网络,被称为PointNet++,它以分层的形式处理点云。PointNet++的总体思想很简单。首先通过底层空间的距离度量将点集划分为重叠的局部区域。与CNN类似,我们从小邻域中提取捕捉精细几何结构的局部特征;这样的局部特征被进一步分组为更大的单元并且被处理以产生更高级别的特征。重复这个过程,直到我们获得整个点集的特征。
需要解决的两个问题:如何分区,如何通过局部特征学习器提取局部特征以及整个点云。
分区的过程需要使各个分区的结构相同,以便共享局部特征学习器的权重。本文使用PointNet作为局部学习器,它能将局部点集抽象为特征向量。
用球形邻域进行分区,参数包括质心位置和半径。通过最远点采样(farthest point sampling,FPS,FPS的核心思想是使得所有采样点之间的距离尽可能的远,也就是数据尽可能的离散均匀。详细算法可见最远点采样(Farthest Point Sampling,FPS)算法详解_生信小兔的博客-优快云博客)选择质心。
半径的选择要考虑到两个问题:一个是点云中不同位置的点密度是不同的,另一个是较小的半径反而可能会由于无法捕获局部特征而导致效果较差。
重要贡献:PointNet++在多个尺度上利用邻域来实现鲁棒性和细节捕获。在训练过程中随机输入丢失的辅助下,网络学习自适应地加权在不同尺度上检测到的模式,并根据输入数据组合多尺度特征。
Method
该工作是PointNet的扩展,在PointNet的基础上增加了层次结构,使其在非均匀点云结构下也能学习点云特征。
回顾PointNet:给定一个点集{x1,x2,x3,...,xn},PointNet所拟合的函数f可表示如下图。h可以被解释为对某一点的空间编码。f则由于MAX的存在因此具有输入点排列不变性。PointNet缺乏捕获局部特征的能力,这也是本文所改进的。
(需要了解PointNe