用于3D目标检测的焦点稀疏卷积神经网络【CVPR2022】【3D检测】
本文介绍一篇新的 3D
物体检测模型:Focals Conv
,论文收录于 CVPR2022。在 3D
检测任务中,点云或体素数据不均匀地分布在3维空间中,不同位置的数据对物体检测的贡献是不同的。然而目前主流的 3D
检测网络(稀疏卷积网络)却使用同样的方式处理所有的数据,无论是常规的稀疏卷积
,还是流形稀疏卷积 (Submanifold Sparse Conv)
。
在本文中,作者提出了两个模块来提高稀疏卷积网络的能力,这两个模块都是基于位置重要性预测使特征稀疏可学习。两个模块是 焦点稀疏卷积 (Focal Sparse Conv)
或多模态版本焦点稀疏卷积(Focals Conv-F)
。两个模块可以很容易地替换现有稀疏卷积网络中的模块,并以端到端的方式进行联合训练。
本文首次证明了稀疏卷积中空间可学习的稀疏性对于复杂的 3D
物体检测是必不可少的。在 KITTI、nuScenes
和 Waymo
数据集上的大量实验验证了本文提出的方法的有效性。值得一提的是,在 nuScenes
数据集上本文提出的方法取得了单一模型的最好结果
。
论文链接为:https://arxiv.org/abs/2204.12463
项目链接为:https://github.com/dvlab-research/FocalsConv
文章目录
- Introduction
- Focal Sparse Convolutional Networks
- Review of Sparse Convolution
- Focal Sparse Convolution
- Experiments
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
首先回顾下稀疏卷积公式,在 ddd 维空间位置 ppp,输入特征为 xp\mathbf{x}_pxp,其通道数量为 cinc_{in}cin,卷积核权重为 W∈RKd×cin×cout\mathrm{W} \in \mathbb{R}^{K^{d} \times c_{\mathrm{in}} \times c_{\mathrm{out}}}W∈RKd×cin×cout,在三维空间中 Kd=33{K^{d}}=3^3Kd=33。则卷积过程可以表示为:
yp=∑k∈KdWk⋅xpˉk(1)\mathrm{y}_{p}=\sum_{k \in K^{d}} \mathrm{~W}_{k} \cdot \mathrm{x}_{\bar{p}_{k}} \tag{1} yp=k∈Kd∑ Wk⋅xpˉk(1)
这里,kkk 枚举卷积核空间 Kd{K^{d}}Kd 中所有离散位置,pˉk=p+k\bar{p}_{k}=p+kpˉk=p+k 为对应特征位置,kkk 为相对位置 ppp 的偏移距离。对上面的公式进行简单修改就可以得到大多数卷积类型。例如 pˉk\bar{p}_{k}pˉk 加上一个可学习的偏移距离 Δpˉk\Delta \bar{p}_kΔpˉk 就是一个可变形卷积,权重改为注意力形式就变成了动态卷积。
对于稀疏数据,定义输入和输出特征空间分别为 PinP_{in}Pin 和 PoutP_{out}Pout。公式(1)就可以写为:
yp∈Pout=∑k∈Kd(p,Pin)Wk⋅Xpˉ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} yp∈Pout=k∈Kd(p,Pin)∑Wk⋅Xpˉk(2)
其中 Kd(p,Pin)K^{d}\left(p, P_{\mathrm{in}}\right)Kd(p,Pin) 是 KdK^{d}Kd 的子集,取决于位置 ppp 和输入特征空间 PinP_{in}Pin,形式为:
Kd(p,Pin)={k∣p+k∈Pin,k∈Kd}(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)={k∣p+k∈Pin,k∈Kd}(3)
如果 PoutP_{out}Pout 包含 PinP_{in}Pin 相邻周围 KdK_dKd 内的所有扩展位置,则该过程被表示为:
Pout=⋃p∈PinP(p,Kd)(4)P_{\mathrm{out}}=\bigcup_{p \in P_{\mathrm{in}}} P\left(p, K^{d}\right) \tag{4} Pout=p∈Pin⋃P(p,Kd)(4)
其中:
P(p,Kd)={p+k∣k∈Kd}(5)P\left(p,K^d\right)=\left\{p+k \mid k \in K^{d}\right\} \tag{5} P(p,Kd)={p+k∣k∈Kd}(5)
在此条件下,该公式成为常规稀疏卷积
。它在其核空间中存在任何体素的所有位置起作用。这一策略有两个缺点:
- 它引入了相当大的计算代价。稀疏特征的数量变为二倍甚至三倍,增加了后续层的负担。
- 经验发现,不断增加稀疏特征的数量可能会损害
3D
物体检测。因为这可能会模糊有价值的信息,它降低了前景特征,并进一步降低了3D
物体检测器的特征辨别能力。
当 Pin=PoutP_{in}=P_{out}Pin=Pout 时,变成了 流形稀疏卷积
。只有当卷积核中心位于输入端时才会发生这种情况。这种方式避免了计算负担,但放弃了要素之间的必要信息流。在不规则的点云数据中,这种信息流是常见的。因此,有效的感受野大小受到特征分离的限制,降低了模型的能力。
Focal Sparse Convolution
可以看到,无论是哪一种卷积形式,输出位置 PoutP_{out}Pout 都是静态的(不会动态变化)。这不是我们想要的,我们根据稀疏特征动态确定输出位置。在我们的公式中,输出位置 PoutP_{out}Pout 为所有重要位置及其扩展区域和其他不重要位置的联合体。公式为:
Pout=(⋃p∈PimP(p,Kimd(p)))∪Pin/im(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=⎝⎛p∈Pim⋃P(p,Kimd(p))⎠⎞∪Pin/im(6)
上述过程包含三步:立方体重要性预测、重要输入选择、动态输出形状生成。
- Cubic importance prediction :立方体重要性图 IpI^pIp 包含位置 ppp 处输入特征周围的候选输出特征的重要性。通过一个附加的流行稀疏卷积和 sigmoid 函数来预测。
- Important input selection:我们选择 PimP_{im}Pim 为:
Pim={p∣I0p≥τ,p∈Pin}(7)P_{\mathrm{im}}=\left\{p \mid I_{0}^{p} \geq \tau, p \in P_{\mathrm{in}}\right\} \tag{7} Pim={p∣I0p≥τ,p∈Pin}(7)
其中 I0pI_{0}^{p}I0p 是立方体重要性图的中心,τ\tauτ 是一个预定义阈值。当 τ\tauτ 为0或1时,就变成了常规稀疏卷积和流形稀疏卷积。
- Dynamic output shape generation:动态输出 Kimd(p)K_{\mathrm{im}}^{d}(p)Kimd(p) 可写为,可以看到可变形输出形状在原始膨胀内被修剪,需满足 Ikp≥τI_{k}^{p} \geq \tauIkp≥τ 。
Kimd(p)={k∣p+k∈Pin,Ikp≥τ,k∈Kd}(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)={k∣p+k∈Pin,Ikp≥τ,k∈Kd}(8)
这里,作者使用 Focal loss
作为目标损失函数来监督重要性预测,将真值 boxes
中 voxel
的中心作为目标,损失权重设为1。
下图是本文设计的焦点稀疏卷积和它的多模态版本框架。激光雷达点云特征(实线)首先会经过一个附加的流形稀疏卷积来预测立方体重要图,然后根据设定的阈值确定输出特征的位置;在多模态版本中,图像特征和点云特征相加后进行更好地预测,其次图像特征只和重要的输出稀疏卷积一起融合。
Experiments
在这里,作者选择了 PV-RCNN、Voxel R-CNN、CenterPoint
三种模型来验证本文提出的方法,阈值 τ=0.5\tau=0.5τ=0.5。首先是 KITTI
数据集上的消融实验,这里选择重新训练后的 PV-RCNN
作为基准。
然后是和其它方法的比较,这里选择 Voxel R-CNN
作为基准。
下面是在 nuScenes
数据上的试验,这里选择 CenterPoint
作为基准。