详解3D物体检测模型:Focal Sparse Convolutional Networks for 3D Object Detection

用于3D目标检测的焦点稀疏卷积神经网络【CVPR2022】【3D检测】

本文介绍一篇新的 3D 物体检测模型:Focals Conv,论文收录于 CVPR2022。在 3D 检测任务中,点云或体素数据不均匀地分布在3维空间中,不同位置的数据对物体检测的贡献是不同的。然而目前主流的 3D 检测网络(稀疏卷积网络)却使用同样的方式处理所有的数据,无论是常规的稀疏卷积,还是流形稀疏卷积 (Submanifold Sparse Conv)

在本文中,作者提出了两个模块来提高稀疏卷积网络的能力,这两个模块都是基于位置重要性预测使特征稀疏可学习。两个模块是 焦点稀疏卷积 (Focal Sparse Conv)多模态版本焦点稀疏卷积(Focals Conv-F)。两个模块可以很容易地替换现有稀疏卷积网络中的模块,并以端到端的方式进行联合训练。

本文首次证明了稀疏卷积中空间可学习的稀疏性对于复杂的 3D 物体检测是必不可少的。在 KITTI、nuScenesWaymo 数据集上的大量实验验证了本文提出的方法的有效性。值得一提的是,在 nuScenes 数据集上本文提出的方法取得了单一模型的最好结果

论文链接为:https://arxiv.org/abs/2204.12463

项目链接为:https://github.com/dvlab-research/FocalsConv


Introduction

首先是论文引言部分。3D 物体检测主要有两种方式,一种是直接使用 PointNet++ 网络学习点云特征,但是这种直接处理点云的方法非常耗时;另一种是将点云转换为 voxel,然后再使用 3D 稀疏卷积网络提取特征,3D 稀疏卷积网络通常由常规的稀疏卷积流形稀疏卷积组成。

尽管这两种卷积都已经得到了广泛地使用,但是它们都有各自的局限性。常规的稀疏卷积计算量很大(中间图所示,输入特征被扩展到其卷积核大小的相邻特征,最终增加了特征密度);而流形稀疏卷积则限制了输出特征位置(左图所示,只有当输入特征位于卷积核中间位置时,才有特征输出),会丢弃必要的信息。

以上限制来源于传统的卷积模式:所有的输入特征在卷积过程中被平等地对待。这对于 2D 卷积来说是很自然的,但对于 3D 稀疏特征却是不合适的。2D 卷积是为结构化数据设计的,同一层中的所有像素通常有个固定大小的感受野。但三维稀疏数据在空间上具有不同的稀疏性和重要性。 用统一的处理方式处理不一致的数据并不是最优的。

  • 在稀疏性方面,在距离激光雷达传感器的距离上,目标呈现出较大的稀疏性变化
  • 在重要性方面,对于 3D 物体检测,特征的贡献因位置不同而不同(如前景点和背景点)

在这里插入图片描述
本文提出了新的稀疏卷积一般形式。在三维物体检测中,本文引入了两个新的模块来提高稀疏卷积的表示能力。

  • 第一种是焦点稀疏卷积(Focals Conv)。卷积的输出模式中会预测重要性立方图,预测为重要特征的特征被扩展为可变形的输出形状(如上图右图所示);重要性是通过附加的卷积层来学习的,该卷积层是动态的,取决于输入特征。该模块提高了有价值的信息在所有特征中的比例
  • 第二种是它的多模态改进版的焦点稀疏卷积融合(Focals Conv-F)。由于图像特征通常包含丰富的外观信息和较大的接受范围,因此本文融合了RGB特征来增强重要性预测。

所提出的模块的创新点为:

  • Focals Conv 提出了一种学习特征空间稀疏性的动态机制。它使学习过程集中在更有价值的前景数据上。随着下采样操作的进行,有价值的信息会逐步增加。同时,移除了大量的背景体素。下图展示了包括常见、拥挤和远距离物体的可学习特征稀疏性(左边为普通的卷积方法,右边为本文提出的卷积方法,这里将 voxel 中心坐标投影到图像上),可以看到 Focals Conv 在前景上丰富了所学习的体素特征,而没有在其他区域中添加冗余体素。
  • 其次,这两个模块都是轻量级的。重要性预测需要很小的开销和计算。
    在这里插入图片描述

在研究工作部分,作者介绍了卷积动态机制3D物体检测研究现状,这里就不一一介绍了。其实,从上面的图就可以看出本文的主要贡献是:对稀疏卷积进行了改进,提出了位置重要性预测。下面我们来看看是如何实现的。


Focal Sparse Convolutional Networks

Review of Sparse Convolution

首先回顾下稀疏卷积公式,在 d d d 维空间位置 p p p,输入特征为 x p \mathbf{x}_p xp,其通道数量为 c i n c_{in} cin,卷积核权重为 W ∈ R K d × c i n × c o u t \mathrm{W} \in \mathbb{R}^{K^{d} \times c_{\mathrm{in}} \times c_{\mathrm{out}}} WRKd×cin×cout,在三维空间中 K d = 3 3 {K^{d}}=3^3 Kd=33。则卷积过程可以表示为:
y p = ∑ k ∈ K d   W k ⋅ x p ˉ k (1) \mathrm{y}_{p}=\sum_{k \in K^{d}} \mathrm{~W}_{k} \cdot \mathrm{x}_{\bar{p}_{k}} \tag{1} yp=kKd Wkxpˉk(1)

这里, k k k 枚举卷积核空间 K d {K^{d}} Kd 中所有离散位置, p ˉ k = p + k \bar{p}_{k}=p+k pˉk=p+k 为对应特征位置, k k k 为相对位置 p p p 的偏移距离。对上面的公式进行简单修改就可以得到大多数卷积类型。例如 p ˉ k \bar{p}_{k} pˉk 加上一个可学习的偏移距离 Δ p ˉ k \Delta \bar{p}_k Δpˉk 就是一个可变形卷积,权重改为注意力形式就变成了动态卷积。

对于稀疏数据,定义输入和输出特征空间分别为 P i n P_{in} Pin P o u t P_{out} Pout。公式(1)就可以写为:
y p ∈ P o u t = ∑ k ∈ K d ( p , P i n ) W k ⋅ X p ˉ k (2) \mathrm{y}_{p \in P_{\mathrm{out}}}=\sum_{k \in K^{d}\left(p, P_{\mathrm{in}}\right)} \mathrm{W}_{k} \cdot \mathrm{X}_{\bar{p}_{k}} \tag{2} ypPout=kKd(p,Pin)WkXpˉk(2)

其中 K d ( p , P i n ) K^{d}\left(p, P_{\mathrm{in}}\right) Kd(p,Pin) K d K^{d} Kd 的子集,取决于位置 p p p 和输入特征空间 P i n P_{in} Pin,形式为:
K d ( p , P i n ) = { k ∣ p + k ∈ P i n , k ∈ K d } (3) K^{d}\left(p, P_{\mathrm{in}}\right)=\left\{k \mid p+k \in P_{\mathrm{in}}, k \in K^{d}\right\} \tag{3} Kd(p,Pin)={kp+kPin,kKd}(3)

如果 P o u t P_{out} Pout 包含 P i n P_{in} Pin 相邻周围 K d K_d Kd 内的所有扩展位置,则该过程被表示为:
P o u t = ⋃ p ∈ P i n P ( p , K d ) (4) P_{\mathrm{out}}=\bigcup_{p \in P_{\mathrm{in}}} P\left(p, K^{d}\right) \tag{4} Pout=pPinP(p,Kd)(4)

其中:
P ( p , K d ) = { p + k ∣ k ∈ K d } (5) P\left(p,K^d\right)=\left\{p+k \mid k \in K^{d}\right\} \tag{5} P(p,Kd)={p+kkKd}(5)

在此条件下,该公式成为常规稀疏卷积。它在其核空间中存在任何体素的所有位置起作用。这一策略有两个缺点:

  • 它引入了相当大的计算代价。稀疏特征的数量变为二倍甚至三倍,增加了后续层的负担。
  • 经验发现,不断增加稀疏特征的数量可能会损害 3D 物体检测。因为这可能会模糊有价值的信息,它降低了前景特征,并进一步降低了 3D 物体检测器的特征辨别能力。

P i n = P o u t P_{in}=P_{out} Pin=Pout 时,变成了 流形稀疏卷积。只有当卷积核中心位于输入端时才会发生这种情况。这种方式避免了计算负担,但放弃了要素之间的必要信息流。在不规则的点云数据中,这种信息流是常见的。因此,有效的感受野大小受到特征分离的限制,降低了模型的能力。


Focal Sparse Convolution

可以看到,无论是哪一种卷积形式,输出位置 P o u t P_{out} Pout 都是静态的(不会动态变化)。这不是我们想要的,我们根据稀疏特征动态确定输出位置。在我们的公式中,输出位置 P o u t P_{out} Pout所有重要位置及其扩展区域其他不重要位置的联合体。公式为:
P o u t = ( ⋃ p ∈ P i m P ( p , K i m d ( p ) ) ) ∪ P i n / i m (6) P_{\mathrm{out}}=\left(\bigcup_{p \in P_{\mathrm{im}}} P\left(p, K_{\mathrm{im}}^{d}(p)\right)\right) \cup P_{\mathrm{in} / \mathrm{im}} \tag{6} Pout=pPimP(p,Kimd(p))Pin/im(6)

上述过程包含三步:立方体重要性预测、重要输入选择、动态输出形状生成。

- Cubic importance prediction :立方体重要性图 I p I^p Ip 包含位置 p p p 处输入特征周围的候选输出特征的重要性。通过一个附加的流行稀疏卷积sigmoid 函数来预测。
- Important input selection:我们选择 P i m P_{im} Pim 为:
P i m = { p ∣ I 0 p ≥ τ , p ∈ P i n } (7) P_{\mathrm{im}}=\left\{p \mid I_{0}^{p} \geq \tau, p \in P_{\mathrm{in}}\right\} \tag{7} Pim={pI0pτ,pPin}(7)

其中 I 0 p I_{0}^{p} I0p 是立方体重要性图的中心, τ \tau τ 是一个预定义阈值。当 τ \tau τ 为0或1时,就变成了常规稀疏卷积和流形稀疏卷积。
- Dynamic output shape generation:动态输出 K i m d ( p ) K_{\mathrm{im}}^{d}(p) Kimd(p) 可写为,可以看到可变形输出形状在原始膨胀内被修剪,需满足 I k p ≥ τ I_{k}^{p} \geq \tau Ikpτ

K i m d ( p ) = { k ∣ p + k ∈ P i n , I k p ≥ τ , k ∈ K d } (8) K_{\mathrm{im}}^{d}(p)=\left\{k \mid p+k \in P_{\mathrm{in}}, I_{k}^{p} \geq \tau, k \in K^{d}\right\} \tag{8} Kimd(p)={kp+kPin,Ikpτ,kKd}(8)

这里,作者使用 Focal loss 作为目标损失函数来监督重要性预测,将真值 boxesvoxel 的中心作为目标,损失权重设为1。

下图是本文设计的焦点稀疏卷积和它的多模态版本框架。激光雷达点云特征(实线)首先会经过一个附加的流形稀疏卷积来预测立方体重要图,然后根据设定的阈值确定输出特征的位置;在多模态版本中,图像特征和点云特征相加后进行更好地预测,其次图像特征只和重要的输出稀疏卷积一起融合。
在这里插入图片描述


Experiments

在这里,作者选择了 PV-RCNN、Voxel R-CNN、CenterPoint 三种模型来验证本文提出的方法,阈值 τ = 0.5 \tau=0.5 τ=0.5。首先是 KITTI 数据集上的消融实验,这里选择重新训练后的 PV-RCNN 作为基准。
在这里插入图片描述
然后是和其它方法的比较,这里选择 Voxel R-CNN 作为基准。

下面是在 nuScenes 数据上的试验,这里选择 CenterPoint 作为基准。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值