题目:PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling
摘要
- 当原始点云由3D传感器采集或者重建算法生成时,必然会包括一些 离群点(outliers) 或者噪声。
- 本文提出了一种用于处理点云的端到端网络:PointASNL。此网络对处理这些包含outliers或者noise的点云十分有效。
此网络主要由两大部分组成,分别为adaptive sampling (AS) module和local-nonlocal (L-NL) module。
adaptive sampling (AS) module
1.对FPS得到的初始采样点周围的neighbors进行re-weight
2.自适应地调整采样点,其中,这个采样点可能就是一个outlier
3.作用:有利于点云数据的特征学习,抑制outlier的负面影响
🎈如下图左半部分所示,黄色五角星就是由FPS得到的初始采样点,运气不好,它是一个outlier。直接用它进行接下去的学习,那必然会出现很多问题。
🎈而AS通过步骤1和2,将这个采样点调整到了点云内部,也就是红色五角星的位置。将这个红色五角星作为新的采样点,进行接下去的步骤。如此,就抑制了outlier的影响。
local-nonlocal (L-NL) module
1.受论文Non-local Neural Networks(CVPR 2018)启发,提出L-NL模块。
2.目的是为了进一步获取采样点(AS处理后的)的neighbor和long-range dependencies(远程依存关系?不知道如何翻译)
🎈总之就是,L-NL模块,通过使用局部和全局的信息,进一步对feature进行增强。
3.L-NL模块,使得网络对噪声不敏感
1. Introduction
点云由两部分组成:点云 P ∈ 和特征 F ∈
。提出的PointASNL,可以很好地处理outlier和噪声。
adaptive sampling (AS) module
🎈由于传统卷积无法直接用在点云上,所以大多数方法采取的策略是:从原始点云中,运用采样法选择采样点,再进行局部特征的学习。
🎈论文中提到的采样算法有FPS:farthest point sampling、PDS:Poisson disk sampling、GSS:Gumbel subset sampling等。
🎈它们各自存在缺点,且有一个共同的问题:它们都可能将outlier选为采样点,然后继续接下去的流程肯定会造成负面影响,即对outlier敏感。
🐸提出AS模块,利于fit the intrinsic geometry submanifold (拟合固有几何子流形),且使得学习不受outlier影响。
🐸AS模块不仅有利于点云特征的学习,还有利于减弱噪声和outlier的影响
local-nonlocal (L-NL) module
🎈为了使学习过程对噪声不敏感,提出了 local-nonlocal (L-NL) 模块。
🎈过去的特征提取算法大多都是先弄一个采样点,再结合基于图的点云学习或者类卷积的方式进行局部特征的学习,作者将这些操作命名为Point Local Cell。
🎈然而这仅仅考虑了局部区域的信息交互,想要获取全局的上下文信息必须通过分层结构来获取,这样的话,层数较大的时候,可能会出现计算量增大、梯度爆炸消失、信息丢失等情况。
🐸L-NL分为L部分和NL部分。前者就是局部特征学习,后者则是全局特征学习。
🐸NL本质上是self-attention,对每个采样点,在整个点云范围内进行融合,为每个采样点计算出一个包含全局信息的feature。这样,N-NL模块就可以为点云处理提供一个更加准确且鲁棒的信息。比如,即使上图中,下侧引擎的采样点(红色五角星)被noise覆盖,L-NL还是可以从另一侧的引擎学习特征。
2. Related Work
- Volumetric-based and Projection-based Methods:不是十分有效。有的算法计算效率提升了,但是容量下降了。有的投影方法缺少全局的特征学习。
- Point-based Learning Methods:PointNet、PointNet++ 、PointCNN等,缺少全局信息,想要全局信息要通过分层结构或者很深的层,从局部特征中进行获取。
- Outlier Removal and Sampling Strategy:outlier去除算法一般都需要很复杂的参数或者要求额外的信息。
3. Our Method
3.1 Adaptive Sampling (AS) Module
FPS的缺点:
1.对outlier敏感,使得它很难对真实世界的点云进行处理
2.对于缺失的地方,比如在采集过程中发生遮挡和丢失错误,则很难推断出原始几何信息。
AS克服缺点:先用FPS采样,获得相对均匀的点作为原始采样点后,再用AS模块对原始采样点进行处理,自适应地学习每个采样点地位移量,进行坐标调整。再利用KNN寻找到每个采样点的neighbors,最后通过自注意力机制对每一组的特征进行更新。
方法:
Ps∈
:表示从某个层用FPS下采样后得到的点集,其中可能包含噪声点,共
个
Fs∈
:表示下采样得到的点集的feature集合
xi,fi :表示下采样得到的点集里面的某个点的坐标和feature
STEP1:AS模块首先从上一层的点集中,运用FPS下采样,得到Ps和Fs
STEP2:用KNN为每个采样点寻找neighbors,拥有K个。
STEP3:使用Self-attention机制对所有neighbors进行group features的更新,论文中给出的公式如下:
到此,我们就得到了,也就是第i个采样点的第k个neighbor更新之后的特征。然后通过多层MLP网络,再加softmax,即可获得
和
,即可获得采样点xi调整之后的坐标xi* 和 特征fi*。
解释 self-attention机制:
这样来看待Attention机制:将Source中的构成元素想象成是由一系列的<Key,Value>数据对构成,此时给定元素Query,通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。所以本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数。即可以将其本质思想改写为如下公式:
3.2 Local-Nonlocal (L-NL) Module
该模块通过使用局部、全局信息,进一步对采样所得点的feature进行增强。
3.2.1 Point Local Cell
对于每个经过AS模块处理后得到的采样点x i ,local cell主要是对这些采样点的局部领域内,对其neighbors的特征进行融合,计算出一个新的特征。公式如下;其中,L是 local feature transformation function, A是一个aggregation function。PointNet++中,L是一个多层MLP,A是max-pooling。
这篇文章中,主要使用了PointConv的思想(连续空间下的卷积操作)。将每个邻居点的相对坐标映射为一组卷积操作的系数矩阵,然后用每个邻居点的系数矩阵对其feature进行变换,最后用一个Aggregation操作,将邻居点的feature融合为local feature。
3.2.2 Point Nonlocal Cell
NonLocal本质上,使用的就是Self-Attention机制。和AS模块几乎相同。对每一个采样点,在整个点云范围内进行feature融合,为每个采样点计算出一个包含全局信息的feature。
3.2.3 Local-Nonlocal (L-NL) Fusion
除了Local和NonLocal这两个分支之外,代码中其实还有一个skip connection的分支。对于每个采样所得点,该分支直接对采样点的邻居点的feature执行max_pool,最后通过一个1d convolution给每个采样点计算出来一个新的feature。
最后将local、nonlocal、skip-connection三个分支的feature加到一起,再用一个1d convolution对feature的channel进行变换,得到每个采样点的feature。
3.3. PointASNL
通过AS模块和L-NL模块,就可以搭建分类和分割网络。
以segmentation为例:
每个下采样操作,相当于FPS -> Adaptive Sampling -> Local-Nonlocal
每个上采样操作,相当于Up-Sampling -> Local-Nonlocal
4. Experiment
5. Conclusion
本文核心即Adaptive Sampling、Local-NonLocal这两个模块。
Adaptive Sampling的核心是Self-Attention、Attention。
Local-NonLocal的核心是Self-Attention、PointConv。
总体上,这篇文章演示了如何融合local、global范围内的feature,进行feature增强。比较特别的是,作者从“噪点“这个角度作为文章的出发点,如此一来,就有别于其它点云feature融合的文章了。