首页 > 其他分享 >自适应采样非局部神经网络的点云鲁棒操作

自适应采样非局部神经网络的点云鲁棒操作

时间:2022-10-05 10:05:10浏览次数:71  
标签:采样 特征 局部 PointASNL 神经网络 模块 点云 点云鲁棒


原始点云数据不可避免地从3D传感器或在重建算法中包含异常值。本文提出了一种用于鲁棒点云处理的新型端到端网络,称为 PointASNL,可以有效地处理带噪声的点云。我们方法中的关键部分是自适应采样(AS)模块。它首先从最远点采样点的周围对点的邻域加权,然后在整个点云中自适应的调整采样。AS模块不仅有益于点云的特征学习,而且缓解受异常值的影响。为了进一步捕捉邻域信息和长期依赖于采样点,我们从非局部操作的角度出发,提出了局部-非局部 (local-Nonlocal, L-NL) 模块。这种L-NL模块使学习过程对噪声不敏感。大量的实验证明了在分类和语义分割任务上,在合成数据,室内、室外数据,是否有噪声的数据,都有良好性能和鲁棒性。并且在有大量噪声的真实户外数据集SemanticKITTI上,明显优于以前的方法。代码发布在: 

​https://github.com/yanx27/PointASNL。​

本文的主要贡献:1) 提出了端到端鲁棒点云处理的模型 PointASNL,可以有效缓解异常值或噪声的影响;2)提出自适应采样(AS)模块,PointASNL可以自适应调整初始采样点的坐标,特征更能学习到内蕴几何 (intrinsic geometry) 信息,对异常值更鲁棒;3)进一步在点非局部单元提出了 局部-非局部(LNL)模块中,从而增强了点在局部单元的特征学习。大量实验证明在分类和语义分割任务了我们方法的稳健性。

模型框架

作者提出了一个新颖的端到端网络健壮的点云处理,名为 PointASNL,其中可以有效地处理带有噪声或异常值的点云。PointASNL 主要包括两个通用模块:自适应采样(AS)模块和localNonlocal(L-NL)模块。AS模块用于调整采样点的坐标和特征,而L-NL模块用于捕获采样点的邻居和远程依赖关系。

自适应采样(AS)模块:因为最远点采样(FPS)有两个主要问题:(1)对异常点非常敏感。(2)对缺失地方,很难推断出原始几何信息。所以为了解决上述问题,再用 FPS 获得相对均匀的点作为原始采样点后,用提出的AS模块自适应地学习每个采样点的位移量。对于AS模块,令 作为某层的从 个输入点的 个采样点,采样点为 ,其特征 ,组成的特征矩阵为

自适应采样非局部神经网络的点云鲁棒操作_自适应

如图2(a)所示,我们通过组中所有点来更新组特征。对于 ,其中 是采样点 的k个近邻,可以将组中的关注机制写为

其中函数 计算采样点 和其邻域 之间的关系。一元函数 γ 将每个组特征 从维度 变为另一个隐藏维度 ,

为了减少计算量,作者考虑点特征 γ 的线性变换 ,关系函数

(2)

其中 φ 和 θ 是两个独立的线性变换并且可以应用独立的一维卷积:, 和

此后,在K个组元素上使用逐点 MLP 和 softmax 激活函数 σ 和 σ


其中 。最后,通过加权和运算实现对坐标空间 和特征空间 的更新。从而获得一个新的采样点 及其特征



L-NL模块  在L-NL模块中有两个单元:点局部(PL)单元和点非局部(PNL)单元。PL单元可以用在算法上(例如PointNet ++,PointConv),PNL 单元考虑采样点与整个点云的多尺度关系。

点局部(PL)单元中,特征挖掘利用从局部到全局策略,逐渐增加感受野。对局部采样点 ,对应特征 和邻域 ,使用 PL 的广义局部聚集函数可以表示为


其中 是局部中心 更新的特征。对于PointNet ++ [26], 是多层感知机(MLP),


其中 为 将三维相对位置转换到 变换矩阵。 代表输入的通道,

自适应采样非局部神经网络的点云鲁棒操作_自适应_02

点非局部(PNL)单元  :(1)我们使用我们的采样点作为查询点,以计算与某些层中整个点的相似度(例如,关键点PK)。此外,我们的查询点不限于输入点云的一个子集,因为每个采样点都通过AS模块自适应地更新其坐标和特征(第3.1节)。(2)随着每一层的下采样操作,我们的输出通道逐渐增加,这避免了下采样编码器中的信息丢失。具体来说,与等式1类似,给定查询点 和 的关键点,非局部运算


其中  代表整个关键点 的某一层。最后,经过一个非线性卷积层 σ 。因此,对于采样点


通过结合PL和PNL,我们构建了一个Local-Nonlocal 模块以同时编码局部和全局特征。如图2(b)所示,它使用查询点和关键点作为输入,并利用邻域的k-NN分组搜索每个查询点。PL将组坐标和特征进行局部编码。对于PNL,使用通过注意力机制得到查询点的全局信息。最后对于每个更新的点,使用具有非线性卷积 σ

实验

作者在合成数据集,大型室内和室外场景分割数据集评估PointASNL。

在合成数据集ModelNet10和ModelNet40进行分类,其中ModelNet40 由 40个类9843个训练模型和2468个测试模型组成,而ModelNet10是ModelNet40的子集, 包括10个类别,包含3991个训练模型和908个测试模型。结果如表1所示,除RS-CNN外,我们的方法在1024个输入点上几乎胜过所有最新技术。注意RS-CNN 采用了 tricky 的投票策略的情况下,可以从92.9%达到93.6%(最好的300重复测试),这与正常的随机抽样和一次投票设置不同。

自适应采样非局部神经网络的点云鲁棒操作_自适应_03

对于室内3D场景分割,作者用3D大型室内空间 S3DIS 和ScanNet v2 数据集评估模型。S3DIS 数据集是从3座不同的建筑物中采样的, 其中包括6个拥有271个房间的大型室内区域。此数据集中的每个点都有一个语义标签,标签共有13个类别,作者比较每类平均IoU (mIoU)。ScanNet 数据集包含1513 个扫描室内点云进行训练和100个进行测试。标签共有21个类别。表2中展示了在相同的训练和测试下,PointASNL与其他最新方法比较的结果。PointASNL胜过所有方法。尤其是 PointASNL 的结果比 ScanNet 上最新的 PointConv 高8%。虽然 PointConv 的卷积设计与点局部PL单元很像,但是没有合适的采样和全局信息,相同的网络结构很难达到这样的结果。

自适应采样非局部神经网络的点云鲁棒操作_自适应_04

自适应采样非局部神经网络的点云鲁棒操作_3d_05

图6展示了模型即使在复杂的情况下也可以正确分割对象场景。

户外场景分割。与室内相比相应的,室外点云覆盖的区域更广,具有相对稀疏的点分布和噪声。因此从室外场景更具挑战性。作者在SemanticKITTI 上评估了模型。表3展示了 PointASNL 与其他最新方法的比较。Point ASNL 在很大程度上优于其他方法。,在19个类别中的13个类别中排名最佳。此外,图7展示了两个样本的可视化,即使数据中有大量噪声,模型仍然可以完美预测。

自适应采样非局部神经网络的点云鲁棒操作_点云_06


自适应采样非局部神经网络的点云鲁棒操作_自适应_07

此外模型还做了消融实验和鲁棒性分析。模型在多个数据集中都有不错的表现,与自适应采样(AS)和局部-非局部(L-NL)模块的作用密切相关。初次以外,因为自适应采样是一种微分采样策略,可以微调采样点的空间分布,大大提高采样点的鲁棒性。

本文仅做学术分享,如有侵权,请联系删文。


自适应采样非局部神经网络的点云鲁棒操作_点云_08

标签:采样,特征,局部,PointASNL,神经网络,模块,点云,点云鲁棒
From: https://blog.51cto.com/u_14439393/5732226

相关文章

  • 对循环神经网络参数的理解|LSTM RNN Input_size Batch Sequence
    在很多博客和知乎中我看到了许多对于pytorch框架中RNN接口的一些解析,但都较为浅显甚至出现一些不准确的理解,在这里我想阐述下我对于pytorch中RNN接口的参数的理解。我们经......
  • 作者解读ICML接收论文:如何使用不止一个数据集训练神经网络模型?
     Datawhale干货 作者:欧明锋,浙江大学导读:在实际的深度学习项目中,难免遇到多个相似数据集,这时一次仅用单个数据集训练模型,难免造成局限。是否存在利用多个数据集训练的可能......
  • Python两层神经网络
    参考神经网络15分钟入门——使用python从零开始写一个两层神经网络_Mr.看海的博客-CSDN博客_神经网络入门python #参考https://blog.csdn.net/fengzhuqiaoqiu/arti......
  • 神经网络
    神经网络前馈神经网络博客激活函数相当于神经元有部分激活(人脑有在思考一件事的时候这么多神经元不可能都在工作)来验证某一单一性特征标准化(standard)和归一化(nor......
  • 卷积神经网络知识
    CNN感觉这个人的博客很懂1感知机2激活函数2.1激活函数实例2.2常用的激活函数优缺点3卷积核3.1卷积核是什么,为什么要用它,CNN里面的卷积核是训练得到的,同时学习......
  • 基于BP神经网络的手MNIST写数字识别
    importnumpyimportmathimportscipy.special#特殊函数模块importmatplotlib.pyplotasplt#创建神经网络类,以便于实例化成不同的实例classBP_mnist:def__in......
  • pytorch中神经网络的学习记录
    (记录疑惑点,部分内容省略)神经网络的构造:Module类是nn模块里提供的一个模型构造类,是所有神经⽹网络模块的基类,我们可以继承它来定义我们想要的模型。多层感知机(MLP类)重载......
  • python MLPRegressor神经网络回归预测
       '''载入数据'''fromsklearnimportdatasetsimportsklearnboston=datasets.load_boston()x,y=boston.data,boston.target'''引入标准化函数'''from......
  • FFT采样频率和采样点数
    1、一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍。2、采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可......
  • Pytorch实战:8层神经网络实现Cifar-10图像分类验证集准确率94.71%
    实验环境:Pytorch1.7.0torchvision0.8.2Python3.8CUDA10.2+cuDNNv7.6.5Win10+PycharmGTX1660,6G网络结构采用最简洁的类VGG结构,即全部由3*3卷积和最大池......