论文:https://arxiv.org/pdf/1911.11236.pdf
代码:https://github.com/QingyongHu/RandLA-Net
应用领域:大场景(如室外)的点云语义分割
数据集:
主要贡献:提出更快的点云语义分割模型。
- 对比现有的采样方法,发现随机采样最好。
- 为了减小随机采样丢失的信息,提出局部特征采样器,包括 Local Spatial Encoding (LocSE) 和 Attentive Pooling。
总的来说,这篇论文讲述详实,内容容易理解,简单而又高效。
采样
作者对比了现有的几种采样方法,包括 PointNet、PointNet++ 等中使用的最远点采样(Farthest Point Sampling,FPS),其计算复杂度为 O ( N 2 ) O(N^{2}) O(N2),处理 N 1 0 6 N ~ 10^{6} N 106 点云数据需要约 200 秒;逆密度采样(Inverse Density Importance Sampling,IDIS),其计算复杂度为 O ( N ) O(N) O(N),处理等量点云需要约 10 秒;随机采样的计算复杂度为 O ( 1 ) O(1) O(1),与数据量无关,处理等量点云需要约 0.004 秒;其他基于学习的采样方法或花费更多时间,或有更大的内存需求。
局部特征聚集
随机采样会丢失部分有用的信息,所以在丢失这些信息之前,先把信息收集起来。这部分可分为三步:局部空间编码(Local Spatial Encoding,LocSe)、下采样(Attentive Pooling) 和 残差模块。如图1所示。

局部特征编码
输入数据为 N × ( 3 + d ) N \times (3+d) N×(3+d) 的点云数据,其中 3 3 3 为点的空间坐标 ( x , y , z ) (x,y,z) (x,y,z), d d d 为点的特征 f f f,可以是点云原始特征,也可以是通过前一网络层获得的特征。
- 与大部分处理点云的方法一样,先找到每个点的邻域,使用 K 近邻方法(K-Nearset Neighbouts,KNN)。
- 针对每一个点,编码其邻域中所有 k 个点的三维坐标,即 ( x , y , z ) (x,y,z) (x,y,z)。用 p i p_{i} pi 表示某中心点, p i k p^{k}_{i} pik 表示其邻域点,那么通过如下公式可得到新的坐标编码:
r i k = M L P ( p i ⊕ p i k ⊕ ( p i − p i k ) ⊕ ∥ p i − p i k ∥ ) r^{k}_{i} = MLP(p_{i} \oplus p^{k}_{i} \oplus (p_{i} - p^{k}_{i}) \oplus \Vert p_{i} - p^{k}_{i} \Vert) rik=MLP(pi⊕pik⊕(pi−pik)⊕∥pi−pik∥)
其中,
⊕
\oplus
⊕ 表示级联运算,
∥
⋅
∥
\Vert \cdot \Vert
∥⋅∥ 为二范式。
3. 将
r
i
k
r^{k}_{i}
rik 与点原有的特征
f
i
k
f^{k}_{i}
fik 级联得到增强的特征
f
^
i
k
\hat{f}^{k}_{i}
f^ik。
下采样
- 计算每个特征的得分,其作用类似于掩码。定义函数 g ( ) g() g() 是一个参数共享的多层感知机(MLP)和 softmax, W W W为 MLP 的可学习权重,那么掩码为:
s i k = g ( f ^ i k , W ) s^{k}_{i} = g(\hat{f}^{k}_{i}, W) sik=g(f^ik,W)
- 通过掩码去掉不重要的特征:
f ~ i = ∑ k = 1 K ( f ^ i k ⋅ s i k ) \tilde{f}_{i} = \sum_{k=1}^{K}(\hat{f}^{k}_{i} \cdot s^{k}_{i}) f~i=k=1∑K(f^ik⋅sik)
残差模块
参考 ResNet,用局部特征聚集和下采样搭建了残差模块。作者认为一个残差块中有两个由局部特征聚集和下采样组成的单元是合适的。
性能

本文介绍了RandLaNet,一种用于大场景点云语义分割的快速模型。研究发现随机采样在处理效率上优于其他采样方法,但可能丢失信息。为了解决这个问题,提出了局部特征采样器,包括LocSE和Attentive Pooling,以减少信息损失。通过局部特征编码、下采样和残差模块,该模型实现了高效且准确的点云处理。论文详细比较了不同的采样方法,并提供了实现代码链接。

1607

被折叠的 条评论
为什么被折叠?



