BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏 原创

自动驾驶之心
发布于 2022-11-4 07:48
浏览
0收藏

作者 | 王汝嘉
来源 | 自动驾驶之心
ICLR2023双盲审中

论文链接:https://openreview.net/forum?id=-2zfgNS917

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

摘要

基于多视图的三维目标检测是视觉场景理解的基础和挑战性任务。 多视图(multi-view)三维目标检测具有低成本、高效率的特点,具有广阔的应用前景。 然而,由于缺乏深度信息,通过透视图准确地检测目标是极其困难的。 当前的方法倾向于为图像编码器采用重主干,使得它们不适用于现实世界的部署。 与图像不同的是,激光雷达点在提供空间线索方面更优越,导致高度精确的定位。本文探索了基于激光雷达的检测器用于多视图(multi-view)三维目标检测。 本文不是直接训练深度预测网络,而是在鸟瞰(BEV)空间中统一图像和激光雷达特征,并在师生范式中自适应地跨非同质表征传递知识。 为此,本文提出了一个用于多视图(multi-view)三维目标检测的跨模态BEV知识蒸馏(KD)框架BEVDISTILL。 大量的实验表明,在一个高度竞争的基线Bevformer上,该方法的性能优于现有的KD方法,并且在推理阶段没有引入任何额外的代价。 值得注意的是,本文的最佳模型在Nuscenes测试排行榜上获得了59.4NDS,与各种基于图像的检测器相比,达到了新的最先进水平

研究背景

三维目标检测是三维场景理解的一个重要组成部分,其目的是定位三维空间中的目标。 它已被广泛应用于各种应用,如自动驾驶(Chen et al.,2022a;Shi et al.,2020;Wang et al.,2021b)、机器人导航(Antonello et al.,2017)、虚拟现实(Schuemie et al.,2001)。 近年来,多视图(multi-view)三维目标检测技术以其低成本、高效率而受到广泛关注。 由于图像具有清晰的外观和丰富的纹理,像素密集,即使在很远的距离上,检测器也可以很容易地发现和分类目标。 尽管有很好的部署优势,但仅从摄像机视角准确定位实例是极其困难的,主要是由于单目图像的不适定(ill-posed)特性。 因此,最近的方法采用重主干(例如,Resnet-101-DCN(He et al.,2016)、Vovnetv2(Lee&Park,2020))进行图像特征提取,使得它不适用于实际应用。

点云在3D目标检测中的两大技术路线

激光雷达点捕捉精确的三维空间信息,为摄像目标检测提供自然的指导。 鉴于此,最近的一些工作(Guo et al.,2021b;Peng et al.,2021)开始探索将点云引入三维目标检测以提高性能。

一种工作(Wang et al.,2019b)将每个点投影到图像上形成深度图标签,随后训练深度估计器来显式提取空间信息。 这样的范例产生中间产品,即深度预测地图,因此引入额外的计算成本。

另一项工作(Chong et al.,2021)是利用师生范式进行知识转移。 (Chong et al.,2021)将激光雷达指向图像平面,为教师模型构建2D输入。 由于学生模型和教师模型在结构上完全相同,因此可以在该框架下自然地进行特征模仿。 虽然它解决了跨不同模态的一致性问题,但它错过了追求一个强大的基于Lidar based的教师的机会,这在知识蒸馏(KD)范式中确实很重要。 最近,UVTR(Li et al.,2022a)提出在保持各自检测器结构的前提下,提取体素空间中的跨模态知识。 然而,它直接迫使二维分支模仿三维特征,忽略了不同模态之间的差异。

跨模态知识蒸馏的两大技术挑战

本文通过仔细研究二维和三维空间中的非同质特征,探讨了将知识蒸馏技术应用于多视图(multi-view)三维目标检测的方法。 然而,存在两个技术挑战。

首先,图像和激光雷达点的视图不同,即相机特征在透视图中,而激光雷达特征在3D/鸟瞰视图中。 这种观点差异表明,自然的一对一模仿(Romero et al.,2014)可能并不合适。

其次,RGB图像和点云以各自的方式具有各自的表示。 因此,直接模拟特征可能是次优的,这通常在2D检测范式中被采用(Yang et al.,2022a;Zhang&Ma,2020)。

本文的解决方式

本文通过设计一个跨模态的BEV知识蒸馏框架,即BEVDISTILL来解决上述挑战。

本文不是构造一个单独的深度估计网络或显式地将一个视图投影到另一个视图中,而是将所有特征转换到BEV空间,既保持几何结构又保持语义信息。 通过共享的BEV表示,来自不同模态的特征可以自然地对齐,而不会丢失太多信息。

在此基础上,通过密集和稀疏监督两种方式对空间知识进行自适应传递:

  • (一)引入前景引导的软蒸馏,用于非同质密集特征模仿;

  • (二)提出了稀疏式实例蒸馏范式,通过最大限度地利用互信息对学生进行选择性监督。

取得实验效果

在竞争性的Nuscenes数据集上的实验结果表明了该方法的优越性和通用性。

例如,在单帧和多帧设置下,本文分别在竞争性多视图3D检测器Bevformer(Li et al.,2022C)上实现了3.4nds和2.7nds的改进。 此外,本文还提供了大量的backbone的实验,以及详细的消融研究来验证本文方法的有效性。

值得注意的是,本文最好的模型在Nuscenes测试排行榜上达到59.4NDS,在所有已发表的多视图(multi-view)检测器中实现了新的最先进的结果。

论文设计

基线模型

学生模型。 本文采用当前最先进的基于摄像机的检测器Bevformer(Li et al.,2022C)作为本文的学生模型。 它由用于特征提取的图像主干、用于CAM2BEV视图转换的空间交叉注意模块和用于三维目标检测的Transformer头组成。 此外,它提供了一个时间交叉注意模块来感知子序列多帧信息,以便更好地预测。

教师模型。 为了与学生模型保持一致,本文选择Object-DGCNN(Wang&Solomon,2021)作为教师模型。 为了简单性和通用性,本文将DGCNN注意力替换为一个普通的多尺度注意力模块。 它首先将3D点投射到BEV平面,然后使用基于Transformer的标签分配进行一对一的监督。 本文先从一个预先训练好的中心点模型对模型进行初始化,然后在知识提取过程中确定所有的参数。

BEVDISTILL

BEVDISTILL遵循一般知识蒸馏范式,以3D点云检测器为教师,以图像检测器为学生。与以前的知识提取方法不同,它们对学生模型和教师模型都保持相同的体系结构(除了主干),而BevDistill探索了一种更具挑战性的非同质表示的情形。

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

**BEVDISTILL的总体结构由三个主要部分组成:**基于Transformer的激光雷达检测器、基于Transformer的图像检测器和提出的交叉蒸馏模块。 它遵循师生范式,以RGB图像和激光雷达点作为输入,保持各自模型结构的原始结构。

稠密特征蒸馏

为了对特征提取进行密集监督,本文首先需要确定从两个模型中生成的BEV特征。 对于学生,本文直接采用BEVTransformerEncoder生成的BEV特征映射$F^{2D}$。 为了使教师和学生之间的特征表示对齐,本文选择Transformer编码器输出的相同的BEV特征$F^{3D}$作为教师模型。 与直接模拟体素空间特征的UVTR(Li et al.,2022a)不同,本文将这种监督推迟到Transformer编码器之后,这为网络提供了更多的机会来在不同的模态下对齐信息。

一般知识蒸馏的范式

以前的工作(Romero et al.,2014;Li et al.,2022a)直接迫使学生从老师那里模仿特征图,并实现了显著的性能改进:

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

存在的问题

然而,这样的策略在跨模态特征设置下可能效果不佳。 虽然通过将两个特征都投影到BEV平面上消除了视图差异,但不同模态之间仍然存在域差异:尽管用点云和经过仔细对齐的图像捕获相同的场景,但在不同模态下表示本身可能是不同的。 例如,图像包含前景和背景区域的像素,而激光雷达只有在有目标反射光线时才会出现点

本文的解决方式

考虑到区域三维特征只有在点存在的情况下才能保留有意义的信息,本文对前景区域内的提取进行了规则化处理。 此外,本文注意到前景的边界也可以提供有用的信息,因此,本文引入了一种类似于(Zhou et al.,2019)的软监督方式,而不是对每个前景区域进行硬监督。 具体地,本文给出了BEV空间中每个地面真值中心 (xi,yi) 的高斯分布,

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

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

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

这种前景引导的重新权重策略允许模型从教师那里聚焦于前景区域,同时避免了对背景区域中无用的空3D特征的模仿。

稀疏实例蒸馏

在密集预测设置下,只需要像素到像素的映射就可以很容易地进行实例级蒸馏。 然而,BevDistill中的学生模型和教师模型都以稀疏预测的方式运行。 因此,需要一个集到集的映射来确保实例级的精馏。 为了实现这一目标,本文简单地遵循(Wang&Solomon,2021)中的实践来构建学生和教师预测之间的对应关系。

具体来说,假设教师模型中的$i_{th}$查询输出的分类预测和定位预测是$c_i^T and b_i^T$,学生可以表示为$c_i^S and b_i^S$,在成本(cost) 最低的教师和学生的输出集之间可以找到$\hat {\sigma}$的排列:

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

式5是一个成对匹配损失。

此损失存在的问题

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

改进方式

本文利用从教师模型中得到的可靠质量分数来度量实例级伪标签的重要性,并使用该分数作为软加权因子来消除教师所做的潜在噪声预测。

具体而言,本文考虑 分类得分以及预测和真值之间的IoU关系(局部信息),来一起形成质量得分

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

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

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

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

现在得到的损失仍然存在的问题

鉴于类上的预测概率质量函数比单热标签包含更丰富的信息,学生模型被证明受益于这种额外的监督(Hinton et al.,2015)。 然而,这种低维预测分布(类数)意味着只有少量的知识被编码,从而限制了可以转移的知识,尤其是在跨模态设置下。 此外,表征知识往往是结构化的,在不同的维度上具有隐含的复杂的相互依赖关系,而KL目标独立地对待所有维度。

改进方式

为了克服这一问题,本文不是最小化两个分布上的KL散度,而是选择直接最大化师生网络倒数第二层(logits之前)表示$h^S,h^T$之间的互信息(MI)

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

然后本文定义一个以η为条件的分布q,它捕捉到该对是全等还是不全等:

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

利用贝叶斯法则,本文可以得到η=1:

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

通过取两边的对数,本文有

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

因此,可以对目标进行变换,使MI的下界最大化。因为没有和$q$接近的形式,本文利用神经网络$g$,称为Critictic(Tian et al.,2019a)来逼近NCE loss :

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

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

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

实验结果

与最新技术的比较

本文首先在RESNET50主干的Nuscenes验证子集上实现了Bevformer和Bevformer-T,并将Bevdistill与其他先进的知识提取方法进行了比较。 最终结果如表1所示。 本文的BevDistill极大的提升了其普通的学生模型Bevformer,分别提升了超过3.4/2.3MAP和3.4/2.7NDS,且不引入任何额外的推理成本。 这验证了该方法在单帧和多帧环境下的有效性和推广性。 经典有效的蒸馏方法如FITNET(Romero et al.,2014)未能带来任何增强,甚至恶化了最终性能,即-1.2%NDS。 Set2Set(Wang&Solomon,2021)由于没有考虑到不同模态特征之间的差异,在检测精度(-1.3%NDs)方面也受到了打击。 UVTR(Li et al.,2022a)是第一个利用3D点进行多视图(multi-view)3D目标检测的工作,它得到了0.8NDS的改进。 然而,它只关注基于特征的蒸馏而忽略了其他方面的潜在好处。 本文还通过将单目版本扩展到多视图版本来重新实现MonoDistill(Chong et al.,2021),从而提高了0.7NDS。 此外,本文基于BevDepth的最佳模型在Nuscenes测试排行榜上达到59.4NDS,实现了新的最先进的性能(见附录B.3)。

蒸馏到一个轻质的主干

知识蒸馏实际上是模型压缩最常见的解决方案之一。 通常采用的是将有用信息从大型更强的模型转移到轻量级更弱的模型,适合在边缘部署。 考虑到基于视觉的检测器需要一批图像作为周围视图的输入,减小图像主干的大小是极其重要的。 考虑到这一点,本文使用较小的主干进行实验,包括Resnet-18和MobileNetv2,这是实际应用程序中更需要的设置。 最终结果如表2所示。 BevDistill将Resnet-18和MobileNetv2主干网提高了2.1/1.7nds以上,指出其在资源有限的应用中的巨大潜力,包括自动驾驶和边缘计算。

主要消融实验:

本文提供了详细的消融实验本文模型的不同组成部分,以获得更深的理解BevDistill。 为了提高效率,本文采用BevFormer-R50作为本文的基线模型,如果没有指定,则在Nuscenes训练集的1/2子集上进行1×调度(with 1× schedule on 1/2 subset of the nuScenes training set if not specified)。

为了了解每个模块对BEVDISTILL中最终检测性能的贡献,本文独立测试每个组件,并在表3中报告其性能。 总体基线从42.2 NDS开始。 当采用稠密特征蒸馏时,NDS提高了2.5个点,其验证了通过软监督来分离前景区域,可以大大提高学生的检测能力。 然后,本文加入了稀疏实例蒸馏,给本文带来了1.7%的NDS增强。 最后,当所有组件都被应用时,NDS得分达到45.7,绝对提高了3.4%,验证了BEVDISTILL的有效性。

表格如下

Nuscenes验证集与Resnet-50图像主干的最新蒸馏工作的比较。 *表示本文自己的修改重新实现,因为它最初是为单目3D检测设计的。

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

BevDistill在较小图像骨干上的实验结果:Resnet-18和MobileNetv2在Nuscenes验证子集上。

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

BevDistill中各成分的有效性。 结果是在标准2×时间表设置的(standard 2 × schedule setting)BevFormer-R50上报告的。

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

基于特征的知识蒸馏方法的比较。

BEV蒸馏来了!BEVDistill:用于多目3D目标检测的跨模态BEV蒸馏-鸿蒙开发者社区

总结

本文介绍了一种用于多视图(multi-view)3D目标检测的跨模态知识蒸馏框架,即BEVDISTILL。 它将不同的模态统一在BEV空间中,以方便模态对齐和特征模仿。 通过密集的特征提取模块,可以有效地将丰富的教师知识跨越二维和三维数据传递给学生。 BevDistill还在基于Transformer的检测范式下探索了一种稀疏实例蒸馏方法。 没有什么trick,它在竞争激烈的Nuscenes测试排行榜上实现了新的最先进的表现。 本文希望它可以用作利用空间信息来实现高精度多视图3D目标检测器的简单基线。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
1
收藏
回复
举报
回复
    相关推荐