用于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
  • Focal Sparse Convolutional Networks
  • Review of Sparse Convolution
  • Focal Sparse Convolution
  • Experiments


Introduction

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

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

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

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

深度学习 大模型检测头_3D


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

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

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

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

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


Focal Sparse Convolutional Networks

Review of Sparse Convolution

首先回顾下稀疏卷积公式,在 深度学习 大模型检测头_Focal Conv_02 维空间位置 深度学习 大模型检测头_Focal Conv_03,输入特征为 深度学习 大模型检测头_深度学习 大模型检测头_04,其通道数量为 深度学习 大模型检测头_3D_05,卷积核权重为 深度学习 大模型检测头_卷积_06,在三维空间中 深度学习 大模型检测头_KITTI_07。则卷积过程可以表示为:
深度学习 大模型检测头_卷积_08

这里,深度学习 大模型检测头_3D_09 枚举卷积核空间 深度学习 大模型检测头_Focal Conv_10 中所有离散位置,深度学习 大模型检测头_卷积_11 为对应特征位置,深度学习 大模型检测头_3D_09 为相对位置 深度学习 大模型检测头_Focal Conv_03 的偏移距离。对上面的公式进行简单修改就可以得到大多数卷积类型。例如 深度学习 大模型检测头_卷积_14 加上一个可学习的偏移距离 深度学习 大模型检测头_3D_15

对于稀疏数据,定义输入和输出特征空间分别为 深度学习 大模型检测头_深度学习 大模型检测头_16深度学习 大模型检测头_深度学习 大模型检测头_17。公式(1)就可以写为:
深度学习 大模型检测头_3D_18

其中 深度学习 大模型检测头_3D_19深度学习 大模型检测头_卷积_20 的子集,取决于位置 深度学习 大模型检测头_Focal Conv_03 和输入特征空间 深度学习 大模型检测头_深度学习 大模型检测头_16,形式为:
深度学习 大模型检测头_3D_23

如果 深度学习 大模型检测头_深度学习 大模型检测头_17 包含 深度学习 大模型检测头_深度学习 大模型检测头_16 相邻周围 深度学习 大模型检测头_KITTI_26 内的所有扩展位置,则该过程被表示为:
深度学习 大模型检测头_KITTI_27

其中:
深度学习 大模型检测头_KITTI_28

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

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

深度学习 大模型检测头_3D_29 时,变成了 流形稀疏卷积。只有当卷积核中心位于输入端时才会发生这种情况。这种方式避免了计算负担,但放弃了要素之间的必要信息流。在不规则的点云数据中,这种信息流是常见的。因此,有效的感受野大小受到特征分离的限制,降低了模型的能力。


Focal Sparse Convolution

可以看到,无论是哪一种卷积形式,输出位置 深度学习 大模型检测头_深度学习 大模型检测头_17 都是静态的(不会动态变化)。这不是我们想要的,我们根据稀疏特征动态确定输出位置。在我们的公式中,输出位置 深度学习 大模型检测头_深度学习 大模型检测头_17所有重要位置及其扩展区域其他不重要位置的联合体。公式为:
深度学习 大模型检测头_卷积_32

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

- Cubic importance prediction :立方体重要性图 深度学习 大模型检测头_卷积_33 包含位置 深度学习 大模型检测头_Focal Conv_03 处输入特征周围的候选输出特征的重要性。通过一个附加的流行稀疏卷积sigmoid 函数来预测。
- Important input selection:我们选择 深度学习 大模型检测头_KITTI_35 为:
深度学习 大模型检测头_3D_36

其中 深度学习 大模型检测头_KITTI_37 是立方体重要性图的中心,深度学习 大模型检测头_卷积_38 是一个预定义阈值。当 深度学习 大模型检测头_卷积_38 为0或1时,就变成了常规稀疏卷积和流形稀疏卷积。
- Dynamic output shape generation:动态输出 深度学习 大模型检测头_深度学习 大模型检测头_40 可写为,可以看到可变形输出形状在原始膨胀内被修剪,需满足 深度学习 大模型检测头_KITTI_41

深度学习 大模型检测头_3D_42

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

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

深度学习 大模型检测头_Focal Conv_43


Experiments

在这里,作者选择了 PV-RCNN、Voxel R-CNN、CenterPoint 三种模型来验证本文提出的方法,阈值 深度学习 大模型检测头_Focal Conv_44。首先是 KITTI 数据集上的消融实验,这里选择重新训练后的 PV-RCNN 作为基准。

深度学习 大模型检测头_3D_45


然后是和其它方法的比较,这里选择 Voxel R-CNN 作为基准。

深度学习 大模型检测头_KITTI_46


下面是在 nuScenes 数据上的试验,这里选择 CenterPoint 作为基准。

深度学习 大模型检测头_KITTI_47