【点云识别】Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling 论文笔记

本文介绍CVPR2020中一篇关于点云识别的文章,提出AdaptiveSampling(AS)和localnonlocal(L-NL)模块解决有噪声情况下的点云处理问题。通过实验验证了其在分类精度上的提升。

PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling (CVPR 2020)

本文介绍一篇cvpr2020里面关于点云识别的文章。
论文
代码

1. 问题

解决有噪声情况下的点云处理问题

刚开始看见这个问题觉得还蛮吸引人的。

2. 思想

提出两个模块来解决噪声情况下的点云处理问题,分别是adaptive sampling (AS) 和local nonlocal (L-NL) module。
在这里插入图片描述
其中基础模块local nonlocal (L-NL) 包含了Point Local (PL) cell 和Point NonLocal (PNL) cell。

3. 模块

3.1 Adaptive Sampling (AS) Module

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就是point attention, 这里被他包装成adaptive sampling。根本就没有sampling的操作,这个模块的输入是FPS后的采样结果。他将point attention理解成了一种修正和移位,使点云变得更紧凑。

3.2 local nonlocal (L-NL) module

在这里插入图片描述
这个Point NonLocal (PNL) cell 和DPAM(ICCV2019)论文的思想比较像,遗憾的是DPAM到现在也没有开源代码,我自己复现这种操作达不到论文中的效果。细节上可能有差异,但是这种想法和思路不算独创了。

最后呢,给出一种融合的机制
Local-NonLocal (L-NL) Fusion
在这里插入图片描述

4 实验结果

在这里插入图片描述
分类精度还不错,但是贯穿全文也没有找到整个分类网络的架构,不知道是否是故意为之。
这里还有个挺让我诟病的实验
在这里插入图片描述

为了说明自己的架构更能抵抗位移噪声,也算是对应题目吧。他选择了PointNet,KCNet进行噪声的测试,但是人家都是三年前的架构了,这么对比合适吗?而且看PointCov抗位移噪声的性能还是不错的,因此并不能有力的证明本文提出的两个模块可以很好的抵抗位移噪声。我推测DGCNN的抵抗能力应该很强,所以这篇文章没有和他进行对比。

总结

文章包装的不错,提出的两个模块能提点是毋庸置疑的,但是不能认定因为这两个模块具有增强抵抗噪声的能力。换个角度讲,如果这篇论文没有包装在抵抗噪声的问题下,不太可能被接受,因为这两个模块的创新性不足。但是,他成功的将AS抽象成位移的修正,那么就显得比较新颖了,给人眼前一亮。
所以,论文的包装和整体的逻辑架构很重要啊,向他学习。

树突在人工神经网络中能赋予其准确、稳健和参数高效的学习能力,主要体现在以下几个方面。 从准确学习能力来看,树突可以通过非线性处理增强网络对复杂模式的捕捉能力。树突具有非线性的整合特性,能够对输入信号进行复杂的加权和非线性变换,这使得网络可以更精准地拟合复杂的函数。例如,在处理图像识别任务时,树突的非线性整合可以帮助网络更好地区分不同物体的特征,提高识别的准确性。 在稳健学习能力方面,树突能够增强网络对噪声和干扰的抵抗能力。树突的多分支结构可以对输入信号进行分布式处理,当部分输入受到噪声干扰时,其他分支的正常输入仍能保证网络的稳定输出。比如在语音识别中,即使输入的语音信号存在一定的背景噪声,树突的分布式处理特性可以使网络依然能够准确识别语音内容。 对于参数高效学习能力,树突的引入可以减少网络所需的参数数量。树突的局部计算特性使得网络可以在局部区域进行高效的信息处理,避免了传统神经网络中大量全局参数的使用。这不仅降低了网络的计算复杂度,还减少了过拟合的风险。例如在自然语言处理任务中,使用带有树突的神经网络可以在较少参数的情况下实现较好的语言模型效果。 ```python # 以下是一个简单的带有树突模拟的神经网络示例 import numpy as np # 模拟树突的非线性函数 def dendritic_nonlinearity(x): return np.tanh(x) # 简单的神经网络层带有树突模拟 class DendriticNeuralLayer: def __init__(self, input_size, output_size): self.weights = np.random.randn(input_size, output_size) self.bias = np.random.randn(output_size) def forward(self, x): # 树突的非线性处理 dendrite_output = dendritic_nonlinearity(np.dot(x, self.weights) + self.bias) return dendrite_output # 示例使用 input_size = 10 output_size = 5 layer = DendriticNeuralLayer(input_size, output_size) input_data = np.random.randn(1, input_size) output = layer.forward(input_data) print(output) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值