0. 简介

之前作者前段时间在研究BEV的相关算法,当时就觉得BEV算法好是好,但是所需要的内存以及计算资源实在是太大了,无法实时在真实场景中运行。我们知道多视图(multi-view)三维目标检测具有低成本、高效率的特点,具有广阔的应用前景。然而,由于缺乏深度信息,通过透视图准确地检测目标是极其困难的。当前的方法倾向于为图像编码器采用重主干,使得它们不适用于现实世界的部署。与图像不同的是,激光雷达点在提供空间线索方面更优越,导致高度精确的定位。本文探索了基于激光雷达的检测器用于多视图(multi-view)三维目标检测。本文不是直接训练深度预测网络,而是在鸟瞰(BEV)空间中统一图像和激光雷达特征,并在师生范式中自适应地跨非同质表征传递知识。为此本文《Cross-Modal BEV Distillation for Multi-View 3D Object Detection》,目前我们可以在Github上找到对应的链接。

1. 主要贡献

本文通过设计一个跨模态的BEV知识蒸馏框架,即BEVDISTILL来解决上述挑战。本项目没有构建一个单独的深度估计网络,也没有显式地将一个视图投影到另一个视图中,而是将所有特征转换到BEV空间,同时保持几何结构和语义信息。通过共享BEV表示,不同模态的特征在不损失太多信息的情况下自然对齐。通过密集和稀疏监督,自适应地迁移空间知识:

  1. 引入软前景引导蒸馏,用于非均匀密集特征模仿,
  2. 提出稀疏式实例蒸馏范式,通过最大化互信息,有选择地监督学生

2. 相关工作

2.1 基于视觉的3d目标检测

基于视觉的3D目标检测旨在检测目标的位置、尺度和旋转,这在自动驾驶和增强现实中非常重要。其中一项工作是直接从单幅图像中检测3D盒子。Mono3D利用传统方法将2D对象提升到具有语义和几何信息的3D空间。考虑到位于不同距离的物体会出现在不同的尺度上,D4LCN提出利用深度预测进行卷积核学习。最近,FCOS3D将经典的2D范式FCOS扩展到单目3D目标检测。通过预测其2d属性,将回归目标转换到图像域。此外,PGD引入了关系图来改进对象定位的深度估计。MonoFlex认为位于不同位置的对象不应该被平等对待,并提供自动调整的监督。

另一项工作是从多视角图像中预测物体。DETR3D首先通过引入一个新的概念:3D参考点,将DETR纳入3D检测。之后, Graph-DETR3D通过动态图特征聚合丰富特征表示来扩展它。与上述方法不同,BEVDet利用Lift-splat-shoot将图像明确投影到BEV空间,然后使用传统的3D检测头。受最近开发的注意力机制的启发,BEVFormer以可学习的注意力方式自动化cam2bev过程,并取得了优越的性能。PolarFormer将极坐标引入到BEV空间的模型构建中,大大提高了性能。此外,BEVDepth通过明确地用投影的激光雷达点监督深度预测来改进BEVDet,并实现了最先进的性能。

2.2 目标检测中的知识蒸馏

大多数用于目标检测的KD方法专注于通过迫使学生的预测与教师的预测相匹配,在两个同质检测器之间迁移知识。更近期的作品发现模仿特征表示对检测更有效。一个重要的挑战是确定应该从教师模型中提取哪些特征区域。FGFI 选择由GT的IoU大于一定阈值的锚框所覆盖的特征。PGD 只关注几个关键的预测区域,使用分类和回归分数的组合作为质量的衡量标准。尽管有大量的工作讨论了目标检测中的KD,但只有少数工作考虑了多模态设置。MonoDistill 将点投影到图像平面,并应用修改后的基于图像的3D检测器作为提取知识的教师模型。这样的范式自然地解决了对齐问题,然而,它错过了追求更强大的基于点的教师模型的机会。LIGA-stereo利用激光雷达的信息,通过监督基于视觉的模型的BEV表示与第二个模型的中间输出。 最近,UVTR(Li et al.,2022a)提出在保持各自检测器结构的前提下,提取体素空间中的跨模态知识。 然而,它直接迫使二维分支模仿三维特征,忽略了不同模态之间的差异。

3. 详细内容

在本节中,我们将详细介绍我们提出的BEVDistill。我们首先在图1中概述了整个框架,并阐明了3.1节中教师和学生模型的模型设计。在3.2节中提出跨模态知识蒸馏方法,由两个模块组成:密集特征蒸馏和稀疏实例蒸馏。

3.1 基线模型

学生模型。采用当前最先进的基于相机的检测器BEVFormer作为学生模型。它由用于特征提取的图像主干、用于cam2bev视图转换的空间交叉注意力模块和用于3D目标检测的transformer头组成。此外,它提供了一个时间交叉注意力模块来感知子序列的多帧信息,以更好地预测。

老师模型。为了保持与学生模型的一致性,我们选择Object-DGCNN作为我们的教师模型。为简单和通用性,将DGCNN注意力替换为普通的多尺度注意力模块。它首先将3D点投射到BEV平面,然后用基于transformer的标签分配进行一对一监督。通过从预训练的中心点模型初始化来训练模型,并在知识蒸馏过程中固定所有参数。

3.2 BEVDISTILL模型

BEVDistill遵循常识蒸馏范式,将3D点云检测器作为老师,图像检测器作为学生。与之前的知识蒸馏方法不同,这些方法对学生和教师模型保持相同的架构(除了骨干),BEVDistill探索了具有非同质表示的更具挑战性的设置。

3.2.1 稠密特征蒸馏

为了对特征蒸馏进行密集监督,我们首先需要确定两个模型生成的BEV特征。对于学生,我们直接采用bevtransformer编码器产生的BEV特征映射F^2D。为了对齐教师和学生之间的特征表示,我们为教师模型选择了transformer编码器输出的相同的BEV特征F^3D。与直接模拟从3D主干中提取的BEV特征的LIGA-Stereo 不同,我们将这种监督推迟在transformer编码器之后(如图1所示),这为网络提供了更多机会来对齐不同模态的信息。

考虑到只有在点存在的情况下,区域3D特征才能保留有意义的信息,将前景区域内的蒸馏规范化。此外,我们注意到前景的边界也可以提供有用的信息,因此,我们没有对每个前景区域进行硬监督,而是引入了类似于(Zhou等人,2019)的软监督方式。具体来说,我们在BEV空间中为每个真值中心(x_i, y_i)绘制高斯分布


之后,本文强制学生用前景引导掩码W模拟特征,以进行密集特征蒸馏


这种前景引导的重权重策略允许模型从教师模型那里关注前景区域,同时避免了对背景区域中无用的空3D特征的模仿。这种方式与以前的同质知识蒸馏工作中的发现相反

3.2.2 稀疏实例蒸馏

实例级蒸馏可以很容易地在密集预测设置下进行,其中只需要一个像素到像素的映射来进行监督。然而,BEVDistill中的学生模型和教师模型都具有稀疏预测风格。因此,需要一个集合到集合的映射来保证实例级蒸馏。为了实现这一目标,我们只需遵循中的实践来构建学生和教师预测之间的对应关系。具体来说,假设教师模型的第$i$个查询输出的分类预测和本地化预测是c^T_ib^T_i,学生可以表示为c^S_ib^S_i,可以在教师和学生的输出集合之间以最低的代价找到$\hat{σ}$的排列:

其中\mathcal{L}_{match}(y_i, \hat{y}_i)是成对匹配代价,定义为:

本文根据经验可以发现,这种普通的蒸馏方法在跨领域监督方式下效果不佳。 有两个主要问题阻碍了模型进一步的性能改进。 一方面,并不是所有来自教师的预测都应该被视为有价值的线索,因为大多数预测都是假阳性,分类得分很低。 另一方面,尽管分类日志可以代表丰富的知识(Hinton et al.,2015),但当输入数据不同时,它可能不成立。 直接提取这些预测会给模型引入很大的噪声,使性能恶化。

为此本文利用从教师模型中得到的可靠质量分数来度量实例级伪标签的重要性,并使用该分数作为软加权因子来消除教师所做的潜在噪声预测。通过考虑分类分数$c_i$(类别信息)和预测b^{pred}_i与真实值b^{GT}_i(定位信息)之间的IoU,以形成质量分数$q_i$:

质量分数作为一个指标,指导学生哪位老师的预测应该得到更多的重视。因此,最终的实例级蒸馏可以写成

其中,L_{cls}是KL散度损失,L_{box}是文章(Wang&Solomon,2021)中的L1损失,αβ是平衡监督的重新加权因子。

为此,最终稀疏实例蒸馏损失可表示为

4. 参考链接

https://zhuanlan.zhihu.com/p/580244898