PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling(CVPR 2020)
论文 https://arxiv.org/pdf/2003.00492.pdf
代码 https://github.com/yanx27/PointASNL
李镇老师个人主页
本文来自于香港中文大学(深圳)、深度比特实验室,一作为颜旭,通讯作者为李镇。
PS:本人小白,此篇博客仅作为个人笔记,有很多用语不准确,如有错误请麻烦指出,谢谢!
0. Abstract
当原始点云由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的负面影响
4.如下图左半部分所示,黄色五角星就是由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模块,使得网络对噪声不敏感
实验效果都很不错,尤其是对那种有很多噪声的真实世界室外数据集,比如KITTI,效果相比其他算法来说,有很大的提升。
1. Introduction
点云由两部分组成:the points P ∈ R N ∗ 3 R^{N*3} RN∗3 and the features F ∈ R N ∗ D R^{N*D} RN∗D
和二维图像不同,3D点云具有稀疏性和无序性,使点云处理很困难。另外,在真实世界中获取的点云或者由重建算法得到的点云,不可避免地存在outlier或者噪声。
作者提出了PointASNL,可以很好地处理这些outlier和噪声。由两大部分组成,分别为adaptive sampling (AS) module和local-nonlocal (L-NL) module。
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
2.1 Volumetric-based and Projection-based Methods.
1.不是十分有效率
2.有一些算法进行了优化,计算效率得到提升,但是导致容量的下降。
3.还有一些投影的方法,但是缺少全局的特征学习。
2.2 Point-based Learning Methods.
1.PointNet、PointNet++ 、PointCNN。。。。
2.同样,缺少全局信息,想要全局信息要通过分层结构或者很深的层,从局部特征中进行获取。
2.3 Outlier Removal and Sampling Strategy.
1.outlier去除算法一般都需要很复杂的参数或者要求额外的信息。
2.有一些基于数据驱动的方法首先将outlier去除,再projects noisy points to clean surfaces,
但是不能将点云的特征学习和outlier去除算法结合起来。
3.通过对点云进行采样,可以减少计算量。但是采样算法的效果大多都因为
对噪声敏感、不是基于数据驱动、没有考虑到空间分布,而受到限制。
3. Our Method
3.1 Adaptive Sampling (AS) Module
FPS存在两个缺点:
1.对outlier敏感,使得它很难对真实世界的点云进行处理
2.对于缺失的地方,比如在采集过程中发生遮挡和丢失错误,则很难推断出原始几何信息。
如前面所述,运用AS模块可以克服上述缺点。先用FPS采样,获得相对均匀的点作为原始采样点后,再用AS模块对原始采样点进行处理,自适应地学习每个采样点地位移量,进行坐标调整。再利用KNN寻找到每个采样点的neighbors,最后通过自注意力机制对每一组的特征进行更新。接下来介绍方法。
P s ϵ R N S ∗ 3 P_{s}\epsilon R^{N_{S}*3} PsϵRNS∗3: 表示从某个层用FPS下采样后得到的点集,其中可能包含噪点,总共有 N S N_{S} NS个
F s ϵ R N S ∗ D l F_{s}\epsilon R^{N_{S}*D_{l}} FsϵRNS∗Dl: 表示下采样得到的点集的feature集合
x i , f i x_{i}, f_{i} xi,fi: 表示下采样得到的点集里面的某个点的坐标和feature
1. AS模块首先从上一层的点集中,运用FPS下采样,得到 P S P_{S} P