RandLA-Net——大规模点云的高效语义分割

RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

 这张图片出自于论文:Deep Learning for 3D Point Clouds: A Survey

论文地址:https://arxiv.org/abs/1912.12033

一、Abstract

RandLA-Net是基于point-wise MLP的方法。特点:之前的方法只要运用于小规模的点云语义分割,此方法可以运用在大规模点云的语义分割上面。

创新点主要是:

1、采取了随机点取样,而不是更复杂的点选择方法(比如pointnet++使用的是最远距离取样fps),可以使计算复杂度和内存效率变得显著。

2.引入了一种新的局部特征聚合模块,逐步增加每个三维点的接受域,从而有效地保留几何细节。

最后实验证明:RandLA-Net可以一次处理100万个点,比现有的方法快200倍。此外,RandLA-Net在两个大规模的基准测试、语义三维和语义kitti上明显超过了最先进的语义分割方法。

二、网络部分结构

 Local Feature Aggregation模块

Local Feature Aggregation主要由局部空间编码(Local Spatial Encoding)以及注意池化层(Attentive Pooling)和残差块(Dilated Residual Block)三个模块所组成

1.Local Spatial Encoding

输入N个点云数据,点云的特征是3+d,3代表x,y,z三维空间信息,d代表其他特征,比如(RGB信息,或者其他中间可学习的特征变量),这样就可以知道它们的相对空间位置。这允许LocSE模块明确地观察局部几何模式,从而最终使整个网络能够有效地学习复杂的局部结构。LocSE主要有如下几个步骤:KNN算法可以参考这篇博客:https://www.cnblogs.com/pinard/p/6061661.html

1.1寻找最近邻点

比如对于第i个点Pi,使用基于欧式距离的KNN算法收集与之相邻的k-1个点,然后使用对这收集的总共k个点进行位置编码,编码公式如下:

 pi代表第i个点,pik 代表与i相邻的第k个点,它们都采用的是x,y,z坐标信息,为连接操作,

|| · || 为计算pi与pik之间的欧式距离,此公式目的为将pi空间信息,pik空间信息,pi-pik的差值信息,以及pi与pik的欧式距离信息连接,这样就有12维度的信息,然后经过一个MLP层变为d维度,相当于将这些信息融合,得到pi点最近邻的一组k个点的相对位置编码rik。
1.1.2点特征增强:

将上述得到的相对位置编码rik,与与之对应的fik连结,得到形状为(k,2d)的特征增强向量\widehat{fik}

 2.Attentive Pooling

之前的工作大多用最大池化和平均池化,这样会导致大部分信息丢失。此网络使用注意力机制来学习重要的局部特征。

2.1计算注意力分数

通过共享的g()函数,来学习每一个特征值的注意力分数,\widehat{fik}是上面得到的局部特征集,

W是可学习的MLP的权重参数。

2.2计算加权

 计算局部特征与之相对应的注意力分数的乘积,得到每个点各个维度特征的特征加权值,张量的size为(k,2d)然后对所有点的同一维度求和(也就是对每一列求和),形状变为(1,2d)经过MLP使得形状变为(1,{d}')。

对于每一个输入点都进行如上的操这样(N,3+d)的点云将得到一组(N,{d}')的特征向量。

Dilated Residual Block模块

该模块使用堆叠的两组LocSE和Attentive pooling模块作为残差块,然后进行残差连接组成了Dilated Residual Block 模块,该模块能够有效的增加感受野。如图

经过两次LocSE和Attentive pooling模块,使得点的感受野变大(虚线圈表示感受野),从第一次L/A模块的感受k个点,到第二次扩大了K^{2}个点。

该模块的流程为:

输入(N,d_{in})尺寸的点云,经过共享MLP变为(N,C),然后将点云的空间信息x,y,z抽取出来(N,3)做LocSE模块,进行寻找最邻点和特征增强,得到(N,d_{out})。然后做一次Attentive pooling 模块输出为(N,d_{out}  /2),重复上面的操作再来一次,略有不同的是第二次Attentive pooling 模块输出为(N,d_{out}),经过共享MLP变化为(N,2d_{out})。将这个张量与初始的点云特征x经过的共享MLP变化尺度为(N,2d_{out}),使之形状匹配,进行残差连接操作。最终该模块输出

(N,2d_{out})的局部点云特征

三、网络总体架构

 该网络采用encoder-decoder的架构

3.1网络输入

输入的点云(N,d_{in})N为点云数量,d_{in}为点云特征维度,在S3DIS和Semantic 3D中采用的是(N,X-Y-Z-R-G-B)的输入。

3.2Enconding Layer

采用四个enconding layer 层用来减少点云的数量,而增加点云的特征维度,每个enconding layer 包括了随机取样RS和局部特征提取LFA(local feature aggregation)。在enconding层之前进行了一次FC(全连接层)使得特征维度变为8。

点云在encoding layer层以4倍的倍率进行下采样,经过4层encoding layer层使得将点云数量变化为

N--N/4--N/16--N/64--N/256 ,而特征维度变化为 8--32--128--256--512。

3.3Decoding Layer

解码层中对于每一层,先用KNN找到每个点的最近邻点然后通过最近邻插值对点特征集进行上采样,然后将上采样的特征与编码层对应维度的中间特征图连接起来,最后经过一个共享MLP。

经过四次decoding layer 上采样到维度为(N,8)

3.3语义分割预测

最后接全连接层,特征维度从8--64--32--nclass,其中还有dropout操作,dropout率为0.5,

最终得到每个点都有对应的标签完成语义分割,最终输出的维度为(N,nclass)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值