用于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
首先是论文引言部分。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}}}
W∈RKd×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=k∈Kd∑ Wk⋅xpˉ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}
yp∈Pout=k∈Kd(p,Pin)∑Wk⋅Xpˉ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)={k∣p+k∈Pin,k∈Kd}(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=p∈Pin⋃P(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+k∣k∈Kd}(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=⎝⎛p∈Pim⋃P(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={p∣I0p≥τ,p∈Pin}(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)={k∣p+k∈Pin,Ikp≥τ,k∈Kd}(8)
这里,作者使用 Focal loss
作为目标损失函数来监督重要性预测,将真值 boxes
中 voxel
的中心作为目标,损失权重设为1。
下图是本文设计的焦点稀疏卷积和它的多模态版本框架。激光雷达点云特征(实线)首先会经过一个附加的流形稀疏卷积来预测立方体重要图,然后根据设定的阈值确定输出特征的位置;在多模态版本中,图像特征和点云特征相加后进行更好地预测,其次图像特征只和重要的输出稀疏卷积一起融合。
文章来源:https://www.toymoban.com/news/detail-402657.html
Experiments
在这里,作者选择了 PV-RCNN、Voxel R-CNN、CenterPoint
三种模型来验证本文提出的方法,阈值
τ
=
0.5
\tau=0.5
τ=0.5。首先是 KITTI
数据集上的消融实验,这里选择重新训练后的 PV-RCNN
作为基准。
然后是和其它方法的比较,这里选择 Voxel R-CNN
作为基准。
下面是在 nuScenes
数据上的试验,这里选择 CenterPoint
作为基准。
文章来源地址https://www.toymoban.com/news/detail-402657.html
到了这里,关于详解3D物体检测模型:Focal Sparse Convolutional Networks for 3D Object Detection的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!