SphereFormer

SphereFormer

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ec3f8bc5a6bd472c9bd57da789037751.png)

abstract

  • 采用球坐标进行特征处理,以解决立方滑动窗口对远处稀疏区域特征提取不足的问题。
  • 提出了适配的exponential-spiltting PE 和 动态特征选取机制
    在这里插入图片描述

Related work

3D Semantic Segmentation
大体分为三种技术路线:view-based, point-based, voxel-based.

  • view-based: 将点云转换到RV或BEV视角后,利用基于2D CNN的主干进行特征提取,再进行分割。
  • point-based: 直接对点云及其坐标位置进行处理,通过额外的算子设计来获取点间/范围内的相互关系。
  • voxel-based: 将点云划分为特定大小的体素,再利用sparse conv 对体素进行特征提取,最后进行分割。

3D Object Detection
3D对象检测框架可以大致分为One-stage和Two-stage方法。VoxelNet通过PointNet提取体素特征,并应用RPN来获得初步的定位区域。SECOND通过引入sparse conv来实现高效检测。VoTr 将立方窗口注意力应用于体素。LiDARMultiNet将语义分割、全景分割和目标检测统一为一个多任务网络,具有多种类型的监督。本文基于anchor-free的 CenterPoint实现。

Method

Spherical Transformer
即插即用
为了对long-range特征进行建模,依旧采用了window-attention的范式,但是采用锥形区域来表征
在这里插入图片描述

  • Radial Window Partition
    依据Radial Window的划分方式,window index则按照如下方式进行标记:win_indexi=(⌊θiΔθ⌋,⌊ϕiΔϕ⌋)win\_index_i = (\lfloor \frac{\theta_i}{\Delta\theta}\rfloor, \lfloor \frac{\phi_i}{\Delta\phi}\rfloor)win_indexi=(⌊Δθθi,Δϕϕi⌋)
  • Comparison with Cylinder3D
    虽然都是采用球坐标,但是有两个显著的不同:
    1.Cylinder3D 的目标是更平衡的点分布,而我们的目标是平滑地扩大感受野,并使稀疏的远处点能够直接从密集点区域聚合远程信息。
    2. Cylinder3D将立方体素形状替换为扇形体素形状。它仍然像立方滑动窗口一样使用局部的相邻区域,并且对于稀疏远处点仍然受到有限的感受野的影响。然而,我们的方法采用了MSA,直接得到全局关联信息。从而避免了近物体和远物体之间的信息分离,并以自然的方式将它们连接起来。

Position Encoding
点云本身包含了绝对xyz坐标,因此不需要APE,Stratified Transformer中提出了一种RPE:将连续的相对位置转化为int作为位置索引嵌入到embedding中,但是这种做法忽略了r值d变化d带来的n影响,如图所示:
在这里插入图片描述

  • Exponential Splitting
    编码关系如图(懒得打了):
    在这里插入图片描述

根据 idxijr\text{idx}_{ij}^ridxijr, idxijθ\text{idx}_{ij}^\thetaidxijθ, idxijϕ\text{idx}_{ij}^\phiidxijϕ,获取到对应的PE pijr,pijθ,pijϕ∈Rh×dp_{ij}^r, p_{ij}^\theta, p_{ij}^\phi \in \mathbb{R}^{h×d}pijr,pijθ,pijϕRh×d,最终位置编码向量为:p=pijr+pijθ+pijϕ\textbf{p} = p_{ij}^r+p_{ij}^\theta+p_{ij}^\phip=pijr+pijθ+pijϕ

Dynamic Feature Selection
由于点云数据近多远少的属性,因此采用动态选取的策略,提供更多long-range的关联信息
在这里插入图片描述

多头中一半采用球坐标系下的MSA,一半采用局部窗口下的MSA,从而实现动态特征选取。关键点在于,无论采用哪种形式,数据的表征形式是统一的,区别在于选取的范围不同。
attnkradial=softmax(qkradial,kkradialT)\textbf{attn}_k^{radial} = \text{softmax}(\textbf{q}_k^{radial}, \textbf{k}_k^{radial^T})attnkradial=softmax(qkradial,kkradialT),
zˉkradial=attnkradial⋅vkradial{\bar{\textbf{z}}}_k^{radial} = {\textbf{attn}}_k^{radial}·\textbf{v}_k^{radial}zˉkradial=attnkradialvkradial,
attnkcubic=softmax(qkcubic,kkcubicT)\textbf{attn}_k^{cubic} = \text{softmax}(\textbf{q}_k^{cubic}, \textbf{k}_k^{cubic^T})attnkcubic=softmax(qkcubic,kkcubicT),
zˉkcubic=attnkcubic⋅vkcubic{\bar{\textbf{z}}}_k^{cubic} = {\textbf{attn}}_k^{cubic}·\textbf{v}_k^{cubic}zˉkcubic=attnkcubicvkcubic,
zˉ=concat({zˉ0radial,zˉ1radial,…,zˉh/2−1radial,zˉh/2cubic,…,zˉh−1cubic})\bar{\textbf{z}} = \text{concat}(\{ \bar{\textbf{z}}_0^{radial}, \bar{\textbf{z}}_1^{radial},…, \bar{\textbf{z}}_{h/2-1}^{radial},\bar{\textbf{z}}_{h/2}^{cubic},…,\bar{\textbf{z}}_{h-1}^{cubic} \})zˉ=concat({zˉ0radial,zˉ1radial,,zˉh/21radial,zˉh/2cubic,,zˉh1cubic})

Experimental

基于U-Net范式完成分割任务,基于SparseConv作为baseline model
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值