CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL)

PointASNL: Robust Point Clouds Processing Using Nonlocal Neural Networks With Adaptive Sampling

论文地址:

https://openaccess.thecvf.com/content_CVPR_2020/html/Yan_PointASNL_Robust_Point_Clouds_Processing_Using_Nonlocal_Neural_Networks_With_CVPR_2020_paper.html

代码地址: https: //github.com/yanx27/PointASNL

摘要

原始点云数据通过从三维传感器获取或重建算法不可避免地包含异常值或噪声。本文提出了一种新的用于点云处理的端到端网络,称为PointASNL,能有效地处理有噪声的点云。该方法的关键部分是自适应采样(AS)模块。首先从最远点采样(FPS)对初始采样点周围的邻域进行加权,然后自适应调整整个点云之外的采样点。AS模块不仅有利于点云的特征学习,而且可以减轻离群点的偏差效应。为了进一步捕获采样点的邻域和长程相关性,在非局部运算的启发下,提出了一个局部非局部(L-NL)模块。这种L-NL模块使学习过程对噪声不敏感。大量的实验验证了方法在点云处理任务中的鲁棒性和优越性,无论合成数据、室内数据和室外数据有无噪声。具体地说,PointASNL在所有数据集上实现了最先进的分类和分割任务的鲁棒性能,并且在考虑噪声的实际室外SemanticKITTI数据集上显著优于以前的方法。

随着3D传感器的普及,对于将获得更多原始3D数据,例如RGB-D数据、激光雷达数据和MEMS数据[44]。将点云视为三维数据的基本代表,理解点云在各种应用中引起了广泛的关注,例如,自动驾驶[29],机器人技术[37],以及地点识别[23]。在这里,点云有两个组件:

与二维图像不同,稀疏性和无序性使健壮的点云处理成为一项具有挑战性的任务。此外,从这些三维传感器获得的原始数据或重建算法不可避免地包含离群值或现实世界中的噪音。在这项工作中,提出了一个新颖的端到端网络健壮的点云处理,名为PointASNL,能有效地处理含有噪声或离群点的点云。建议的PointASNL主要包括两个通用模块:自适应采样(AS)模块和localnonlocal(L-NL)模块。AS模块用于调整采样点的坐标和特征L-NL模块用于捕获邻居和远程数据采样点的相关性。与二维图像的情况不同,传统的卷积操作不能直接作用于非结构化点云数据。因此,目前大多数的方法通常使用采样从原点选择点的方法用于进行局部特征学习的云。其中采样算法,最远点采样(FPS)[25],泊松圆盘抽样(PDS)[11]和甘贝尔子集抽样(GSS)[48]在先前的工作中提出。然而,作为最具代表性的一种,FPS植根于欧几里得距离,这是任务相关的和离群值敏感。PDS是一种预定义的均匀采样方法无法以数据驱动的方式解决上述问题。GSS公司仅从高维嵌入执行采样而忽略了点的空间分布。此外,这些方法的共同关键问题是采样点仅限于原始点的一个子集云。因此,如图1的左侧所示,假设一个离群点被抽样,会影响下游过程不可避免。

为了克服上述问题,建议可微自适应采样(AS)模块用于调整初始采样点的坐标(例如,从FPS)通过数据驱动的方式。这种坐标调整有助于拟合内在几何子流形和进一步的移位更正原始点云之外的点而不使用离群值的影响。因此,AS模块不仅可以受益点特征学习,同时也改进了模型对噪声的鲁棒性。为了进一步提高性能学习过程对噪声不敏感,提出了一种局部非局部的方法NL-L近距离捕获模块(NL)采样点的相关性。潜在的原因是,目前,最吸引人的方法是特征学习就是在每个局部组周围进行查询采样点,然后构造基于学习[30,42,50,14]或定义类似卷积的运算[12,47,8,3,44,34](将表示为局部点电池)。

然而,这样的点局部单元只考虑局部相邻区域的信息交互通过层次结构获取全局上下文,这通常导致自下而上的特征学习。受到启发的通过非本地网络的成功[41],创新性地设计了L-NL模块,其中的关键部件是点非局部单元。尤其是非局部单元允许计算采样点作为整个点云,而不是仅仅在一个有限的邻居内范围。通过学习到的长依赖关系L-NL模块可以提供更精确的信息,使系统具有更强的鲁棒性点云处理。如右侧所示图1,虽然取样点在发动机下部L-NL模块仍然可以学习具有不同噪声分布的其发动机的特征。

主要贡献如下:1)提出了一个稳健点云的端到端模型处理,PointASNL,可以有效缓解影响离群值或噪声;2)与建议的自适应采样(AS)模块,点ASNL可自适应调整初始采样点的坐标,使更适合具有内在几何的特征学习并且对于噪声异常更为稳健;3)进一步设计在所提出的局部非局部(L-NL)模块中加入了一个点非局部单元,增强了点局部的特征学习能力细胞。关于分类和分割的广泛实验任务验证了方法的健壮性。

2.相关工作基于体积和基于投影的方法。

考虑到点云的稀疏性和内存消耗,直接体素化不是很有效点云,然后使用三维卷积进行特征提取学习。各种后续改进方法例如,高效的时空卷积MinkowskiNet[5],计算有效子流形稀疏卷积[7],和基于Oc树的神经网络O-CNN[39]和OctNet[27]。这样的方法大大改进了计算效率,从而导致点云作为输入,无需采样和优越的容量。还有其基于网格的方法使用传统的卷积运算,例如,将三维数据投影到多视图二维图像[32]和晶格空间[31]。然而这些方法的卷积运算缺乏捕捉非局部几何特征。基于点的学习方法。PointNet[24]是先锋直接处理稀疏和非结构化点云,通过使用点态多层感知最大池操作。PointNet++[25]进一步适用k-NN分组后接最大限度地收集区域信息。因为聚集在一起地方特色简单到最大的激活,区域性信息尚未得到充分利用。

最近,很多已经为有效的本地特性聚合做出了努力。PointCNN[20]将相邻点转换为规范点顺序,使传统的卷积可以正常角色。Point2Sequence[21]使用注意力机制收集不同地区的信息。方法[47,44,11,22,30,40]直接使用关系式在社区和地方中心之间学习动态卷积重量,其中ECC[30]和RS-CNN[22]使用特别定义的6-D和10-D向量作为边缘关系,PCCN[40]和PointConv[44]投射了相对位置一个卷积重量的两点。A-CNN网[16]使用环卷积对具有不同与本地中心点和PointWeb的距离[50]进一步连接局部区域中的每个点对以获得更具代表性的区域特色。不过,这些方法只关注局部特征聚合,获取全局特征从局部特征到层

次结构的上下文。另一方面,还有各种各样的作品从局部特征的全局上下文。A-SCN[46]使用一种聚集全局特征的全局注意机制但缺乏当地信息的支持取得良好效果。DGCNN[42]提出了EdgeConv生成边缘特征和在特征空间中搜索邻域的模块。LPD Net[23]进一步扩展了DGCNN空间邻域和特征邻域聚合。然而,特征空间中的邻域并不具有代表性以及空间感受野网络逐渐变得混乱无层次结构。异常值去除和抽样策略。异常值和噪声通常存在于原始点云数据中。以前的健壮用于去除离群值的统计方法[1]受到非平凡的参数调整或需要额外的信息[43]。

提出了各种数据驱动方法[9,26]对于离群值移除,首先丢弃一些离群值,然后然后将噪波点投影到干净的曲面上。然而,这些方法无法固有地合并健壮的点云特征以联合学习的方式去除离群值进行学习。打开另一方面,基于深度学习的点云处理方法通常是采样点,以减少计算量消费。然而,大多数抽样方法都是有限的由噪声敏感度而非数据驱动[25,11],或者不考虑空间分布[48]。所以网络[19]使用了一个无监督的神经网络,比如说自组织地图(SOM),利用点云。然后使用PointNet++[25]对较小的采样“节点”。但是,这样的网不属于在线自适应采样。在局部假设下标签一致性,有些作品使用的几何中心体素网格统一表示采样点[34,30],忽略了点分布影响的差异。不过,这些方法对噪声和无法学习采样点的空间分布同一时间。

3. Our Method

3.1.自适应采样(AS)模块

最远点采样(FPS)广泛应用于许多领域点云框架,因为可以生成一个相对统一的采样点。因此,邻居可以尽可能多的输入点云。尽管如此,FPS主要有两个问题:(1)非常敏感对于离群点,这使得在处理时非常不稳定使用真实的点云数据。(2) 取样点来自FPS必须是原始点云的子集,这使得如果在采集过程中会出现遮挡和丢失错误。

3.2.本地非本地(L-NL)模块

在L-NL模块中,有两个单元:局部点(PL)单元和点非局部(PNL)单元。特别是cell可以是任何吸引人的算法(例如PointNet++[25],PointConv[44]),并且PNL cell创新性地考虑采样点与整点的相关性多尺度云。因此,语境学习通过结合局部和全局信息(见图2(b))。

3.3.PointASNL

在每一层中将两个部分结合起来,可以实现分类和分割任务的体系结构。对于分类,设计了一个三层网络并在两个级别上向下采样输入点。特别地,前两层采样512和124个点。第三个层将前两层的全局特征与最大池,其中新功能完全由分别连接层、dropout和softmax层。批处理规范化层和ReLU函数是用于每层。此外,跳过连接[10]是用于前两层。对于分段(参见图4),每个编码器层与分类中的设置类似,但网络有更深的结构(1024-256-64-16)。在解码器部分,使用3-最近插值[25]获得上采样特征也可以使用L-NL块进行更好的特征学习。此外,跳过连接被用来传递特征在编码器和解码器。

4. Experiment

在各种任务上评估PointASNL,包括合成数据集,大型室内外场景分割数据集。在所有的实验中,实现了在一个GTX 1080Ti GPU上使用Tensorflow的型号。

CVPR2020:基于自适应采样的非局部神经网络鲁棒点云处理(PointASNL)的更多相关文章

  1. 非局部模块(Non Local module)

    Efficient Coarse-to-Fine Non-Local Module for the Detection of Small Objects 何恺明提出了非局部神经网络(Non-local ...

  2. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...

  3. 陕西中际现代:基于自适应算法的PLC滴灌控制系统

    基于自适应算法的PLC滴灌控制系统 陕西中际现代包装科技有限公司滴灌部 1.介绍 水资源正在成为一种珍贵的资源.城镇的市民使用成千上万立方的水来浇灌花园和绿地.他们依赖于使用固定灌溉计划的控制器.而这 ...

  4. 【转】浅析C语言的非局部跳转:setjmp和longjmp

    转自 http://www.cnblogs.com/lienhua34/archive/2012/04/22/2464859.html C语言中有一个goto语句,其可以结合标号实现函数内部的任意跳转 ...

  5. 腾讯优图&港科大提出一种基于深度学习的非光流 HDR 成像方法

    目前最好的高动态范围(HDR)成像方法通常是先利用光流将输入图像对齐,随后再合成 HDR 图像.然而由于输入图像存在遮挡和较大运动,这种方法生成的图像仍然有很多缺陷.最近,腾讯优图和香港科技大学的研究 ...

  6. NLM非局部均值算法相关

    NLM原文: 基于图像分割的非局部均值去噪算法 基于图像分割的非局部均值去噪算法_百度文库 https://wenku.baidu.com/view/6a51abdfcd22bcd126fff705c ...

  7. 二十、Linux 进程与信号---非局部跳转

    20.1 setjmp 和 longjmp 函数 20.1.1 函数介绍 #include <setjmp.h> int setjmp(jmp_buf env); 函数功能:设置非局部跳转 ...

  8. 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-4 基于重要性采样的材质初探

     Preface 我们今天来把第三本书从开局到现在讲的一大堆理论运用到我们的框架中,那么今天我们首先将原始的材质改为基于重要性采样原理的材质 这一篇是代码工程中进行MC理论应用的初步尝试篇  Read ...

  9. Socket-IO 系列(三)基于 NIO 的同步非阻塞式编程

    Socket-IO 系列(三)基于 NIO 的同步非阻塞式编程 缓冲区(Buffer) 用于存储数据 通道(Channel) 用于传输数据 多路复用器(Selector) 用于轮询 Channel 状 ...

随机推荐

  1. Java中常见的包

    目录 JDK自带的包 第三方包 JDK自带的包 JAVA提供了强大的应用程序接口,既JAVA类库.他包含大量已经设计好的工具类,帮助程序员进行字符串处理.绘图.数学计算和网络应用等方面的工作.下面简单 ...

  2. UVA11134传说中的车(放棋子)

    题意:       给你一个n*n的棋盘,让你在棋盘上放n个棋子,要求是所有棋子不能相互攻击(同行或者同列就会攻击),并且每个棋子都有一个限制,那就是必须在给定的矩形r[i]里,输出每个棋子的位置,s ...

  3. W32Dasm缓冲区溢出分析【转载】

    课程简介 在上次课程中与大家一起学习了编写通用的Shellcode,也提到会用一个实例来展示Shellcode的溢出. 那么本次课程中为大家准备了W32Dasm这款软件,并且是存在漏洞的版本.利用它的 ...

  4. Nacos使用 MySQL 8.0 提示Public Key Retrieval is not allowed

    原因如下(参考官网给出的连接选项): 如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥:可以在连 ...

  5. 联想R720Y空间问题

    由于之前Y空间在启动项中,所以将他关闭,这次想找到他却找不到 备注:因为在解决问题前,没有把图片保存下来,所以下面用一个颜色框挡住,表示之前的效果 第一个问题 在电脑上找到Y空间 百度上很多说在开始中 ...

  6. 百度地图api根据用户IP获取用户位置(PHP)

    1.百度地图开放平台找的你的ak ,链接:http://lbsyun.baidu.com/apiconsole/key 2.获取用户ip地址(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获 ...

  7. 大数据开发-Flink-数据流DataStream和DataSet

    Flink主要用来处理数据流,所以从抽象上来看就是对数据流的处理,正如前面大数据开发-Flink-体系结构 && 运行架构提到写Flink程序实际上就是在写DataSource.Tra ...

  8. 面试 CSS篇清除浮动及display:inline-block

    一. 在div使用display:inline-block时,HTML代码中的回车换行键会被转化为一个空白符 如图 <style type="text/css"> *{ ...

  9. Django(31)模板中常用的过滤器

    模版常用过滤器 在模版中,有时候需要对一些数据进行处理以后才能使用.一般在Python中我们是通过函数的形式来完成的.而在模版中,则是通过过滤器来实现的.过滤器使用的是|来使用. add 将传进来的参 ...

  10. [Qt] 《开发指南》samp4.1 源码分析

    界面: 功能: 输入单价和数量,计算总价:进制转换 控件: Qlabel QLineEdit QPushButton 文件依赖关系图(depend on): main.cpp:程序入口 widget. ...