南大等最新QD-BEV:高效量化解决方案助力多视角3D检测 !

作者 | AI 驾驶员  编辑 | 智驾实验室

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心BEV感知技术交流群

本文只做学术分享,如有侵权,联系删文

8c1d112e6bc2d49ddf87f7e5fdca7356.jpeg

基于鸟瞰图(BEV)的多视角3D检测最近取得了显著改进。然而,最先进模型的巨大内存消耗使得它们难以在车辆上部署,而非同小可的延迟将影响流式应用的真实感知。

尽管量化技术在减轻模型方面的广泛应用,但作者在本文中展示,直接在BEV任务中应用量化会导致1 )训练不稳定,2)造成无法容忍的性能下降。

为了解决这些问题,作者的方法QD-BEV引入了一种新颖的视图引导蒸馏(VGD)目标,它可以在稳定量化感知训练(QAT)的同时,通过利用图像特征和BEV特征来增强模型性能。

作者的实验表明,QD-BEV在保持相似甚至更好的准确度的同时,比之前的方法具有显著的效率提升。

在nuScenes数据集上,4位权重和6位激活量化的QD-BEV-Tiny模型仅用15.8 MB的模型大小就实现了37.2%的NDS,比BevFormer-Tiny模型提高了1.8%,模型压缩比为8倍。在 Small 和Base变体上,QD-BEV模型也表现出色,分别实现了47.9% NDS(28.2 MB)和50.9% NDS(32.9 MB)。

1 Introduction

基于鸟瞰图(BEV)的多视角3D检测由于其潜在的自动驾驶能力,已成为自动驾驶的重要研究方向。根据输入传感器,以前的工作可以分为基于激光雷达的方法和仅基于相机的方法。与基于激光雷达的方法相比,仅基于相机的方法具有部署成本低、更接近人眼、更容易获取驾驶环境中的视觉信息等优点。然而,即使使用仅基于相机的方法,运行最先进的BEV模型的计算和内存成本仍然很高,使得它们难以部署到车辆上。例如,BEVFormer-Base在单个NVIDIA V100 GPU上的推理延迟为540毫秒(相当于1.85帧/秒),这对于通常需要30帧/秒的实际应用来说是不可行的。由于相当大的延迟会损害流式感知,因此探索和设计基于BEV的仅相机3D目标检测的轻量级模型尤为重要。

量化可以减少用于表示深度神经网络中的权重和激活的比特宽度,从而在提高模型推理速度的同时,大幅节省模型大小和计算成本。然而,直接应用量化会导致性能显著下降。与在图像分类和2D目标检测任务中量化标准方法表现突出相比,由于存在多视角和多维度信息(例如,BEVFormer[23]中使用的时域信息和空域信息),多相机3D检测任务要复杂和困难得多。因此,BEV网络的架构往往变得更复杂,具有更深的卷积神经网络 Backbone 以从多视角提取图像信息,以及用于编码和解码BEV域特征的 Transformer 。不同神经架构的存在、多个目标和来自不同模态的知识极大地挑战了标准量化方法,降低了它们的稳定性和准确性,甚至使整个训练过程发散。在图1中,作者展示了在BEVFormer-Tiny模型上应用W4A6量化时的训练曲线。可以看出,量化感知训练(QAT)在不同时期的性能波动显著,而作者所提出的QD-BEV方法显示出稳定的上升趋势。作者在第5节进行更多实验以验证QD-BEV的有效性。

5b873eef6961b931496058aa47ca4b92.jpeg

为了解决标准QAT的问题,在这项工作中,作者首先对量化BEV网络进行了系统的实验和分析。然后,作者设计了一种量化感知的视角引导蒸馏方法,该方法既解决了稳定性问题,又提高了紧凑型BEV模型的最终性能。作者提出的视角引导蒸馏可以更好地利用来自图像域和BEV域的信息进行多视角3D目标检测。这显著优于无法联合处理BEV网络中不同类型损失的先前蒸馏方法。具体来说,如图2所示,作者首先将FP(浮点)模型作为教师模型,将量化模型作为学生模型,然后分别计算图像特征和BEV特征的KL散度。最后,作者利用映射关系,通过相机的外部参数有机地结合图像特征和BEV特征,实现 VGD。需要注意的是,在QD-BEV中,作者没有使用额外的训练数据或更大的强大教师网络来调整精度,但 QD-BEV 模型仍然能够在模型大小和计算要求显著较小的情况下超越先前的 Baseline 。

作者的贡献如下:

a802fa6432298da1ac3e730341cc6c49.jpeg
  • 作者对量化BEV模型进行了系统实验,揭示了阻碍标准量化感知训练方法在BEV上的主要问题。

  • 作者特别为BEV模型设计了视角引导蒸馏(VGD),它联合利用了图像域和BEV域的信息。VGD在解决标准QAT的稳定性的同时,提升了最终性能。

  • 作者的W4A6量化的QD-BEV-Tiny模型仅拥有15.8 MB的模型大小,却达到了37.2%的NDS,比8倍大的BevFormer-Tiny模型性能高出1.8%。

2 Related Works

Camera-only 3D object detection

在仅使用相机的3D目标检测任务中,基于鸟瞰图(BEV)涌现出了许多优秀的方法。先前的工作,如LSS [31]和BEVDet [14],采用自下而上的方式将图像特征投影到BEV空间。基于DETR 和 Deformable DETR [48],DETR3D [38]通过Backbone + FPN + 解码器的架构将2D目标检测扩展到3D空间。此外,PETR [24]在DETR3D [38]的基础上引入了3D位置编码。在BEVFormer [23]中,作者使用密集的BEV Query 在BEV空间与多视角图像空间之间交换信息。通过具有时间自注意力和空间交叉注意力的 Transformer 结构提取时间和空间信息,获得了更稳定的BEV特征。基于BEVFormer中的时间交互,最近的工作PETRv2 [25]和BEVDet4D [13]取得了进一步的改进。除了上述工作之外,BEVDepth  和BEVstereo  分别是单目深度估计和立体视觉在鸟瞰图(BEV)领域的两种最先进的方法,它们利用BEV表示的独特特性实现了高精度和高效率。

Quantization

为了减少模型大小,量化方法使用低比特宽度来表示神经网络中的权重和激活值。通过使用低精度矩阵乘法或卷积,量化还可以使推理过程更快、更高效。给定一个预训练模型,直接进行量化而不进行任何微调的方法称为后训练量化(PTQ)。尽管有其优点,但低比特宽度的PTQ仍然会导致显著的准确度下降。因此,提出了量化感知训练(QAT)来训练模型以更好地适应量化。与PTQ相比,QAT方法[9, 7, 40]成本更高,但有可能获得更高的准确度。此外,在超低量化比特宽度(例如,4比特)的情况下,即使是QAT也无法弥合准确度差距。解决这一问题的有希望的方向是使用混合精度量化[46, 36, 39],其中某些敏感层保持较高精度以恢复准确度。虽然有效,但混合精度量化在通用计算机(CPU和GPU)上的支持目前尚不成熟,可能会导致额外的延迟开销。

尽管标准量化方法在卷积神经网络上已经取得了很好的结果,但近期的研究[27, 44]提到,它可能在其他神经架构(如 Transformer )中表现不佳。在BEV网络中同时存在卷积块和 Transformer ,使得它们对传统量化方法提出了挑战。

Distillation

模型蒸馏通常使用大型模型作为教师来训练一个紧凑的学生模型。在训练学生模型时,不是使用类别标签,关键思想是利用教师产生的软概率来指导学生的训练。之前的蒸馏方法探索了不同的知识来源(例如,[12, 22, 30]使用逻辑值,即软概率)。教师模型的选择也进行了研究,其中[41, 34]使用多个教师模型,而[8, 43]应用自蒸馏,无需额外的教师模型。其他先前的努力在不同的应用上应用了不同的设置进行蒸馏。关于鸟瞰图(BEV)网络,之前的工作[6]试图通过蒸馏将激光雷达信息传授给基于相机的网络,但在作者纯基于相机的设置中,对激光雷达数据的额外要求使其变得不可行。此外,BEV网络中存在不同类型的损失使得标准的蒸馏方法无效。任意或次优的知识来源组合也会使得训练不稳定,表现不佳,甚至发散。

3 Method

Overview of QD-BEV pipeline

本研究旨在提高现有顶尖的鸟瞰图(BEV)模型的效率。作者从广泛使用的BEVFormer模型[23]出发,采用逐步的量化感知训练过程,分阶段进行(具体细节在3.2节介绍)。作者进一步通过一种新颖的视图引导的蒸馏过程来提升其稳定性和性能,这在图2中进行了突出展示,其中作者使用浮点教师模型来促进作者量化的QD-BEV学生模型的学习。具体来说,输入的多摄像头图像分别输入到教师模型和学生模型中,然后使用网络的图像 Backbone 和图像 Neck 部分来提取多摄像头图像特征。在网络 Transformer 部分之后,提取BEV特征,并分别使用教师模型和学生模型的两个部分来计算图像蒸馏损失和BEV蒸馏损失。然后通过摄像头的额外参数将这两个蒸馏损失融合起来,实现作者独特的视图引导蒸馏机制。作者在3.3节提供了视图引导蒸馏过程的详细公式。

Quantization-aware training

在对称线性量化中,量化器将权重和激活映射为带有缩放因子的整数。以k位均匀量化可以表示为:

其中是被量化的浮点数,是中最大的绝对值,是量化后的整数。在这项工作中,作者进行了系统的实验来分析量化在BEV网络上的性能。对于PTQ,作者在推理阶段直接将上述量化应用于预训练模型。对于QAT,作者使用直通估计器(STE)[2]来定义上述量化操作的向前和向后过程,然后作者训练模型以更好地适应量化。如第1节和第2节所述,考虑到标准的QAT可能由于BEV模型的特性导致发散,作者应用了分阶段逐步QAT,作者在四个阶段( Backbone 、 Neck 、编码器和解码器)中逐步降低权重精度,基于BEVFormer [23]的设计。这种逐步QAT的性能在图3中有所展示。并且作者在4.2.2节中比较了逐步QAT与标准QAT的有效性。

1a4e2cf5b3cc455e7b5f1a7b33341c9d.jpeg

View-guided distillation

与传统的单领域蒸馏方法相比,作者的方法利用了BEV(鸟瞰图)和图像领域的互补特性,它们提供了不同的视角并捕捉场景的不同方面。BEV领域提供了一个自上而下的视图,能够准确感知和识别周围环境,例如道路的结构、车辆的位置和车道标记。另一方面,图像领域提供了更真实的视觉信息,捕捉丰富的场景细节和颜色信息。在以下各节中,作者将详细介绍VGD:在第3.3.1节中介绍图像特征蒸馏的计算,第3.3.2节中介绍BEV特征蒸馏,以及第3.3.3节中结合前两个蒸馏损失的观点引导蒸馏。

3.3.1 Image feature distillation

在给定一对对齐的教师和学生模型的情况下,作者首先计算图像特征上的逐元素蒸馏损失。作者将图像 Neck 输出作为要提炼的图像特征。为了提高蒸馏损失的平滑性,作者遵循之前的尝试[33]使用基于KL散度的蒸馏损失。具体来说,作者将学生模型和教师模型的展平图像特征视为逻辑值,通过具有温度的softmax函数将其转换为概率分布,如方程式(2)中定义。

然后,作者分别计算每个摄像头的输出之间的KL散度,以获得图像特征蒸馏损失,如方程式(3)。

其中B代表批量大小,W、H、C分别表示图像特征的宽度、高度和通道数。和分别表示教师模型和学生模型的图像特征。

3.3.2 BEV feature distillation

作者首先将学生模型和教师模型的鸟瞰图(BEV)特征转换为概率分布,这一过程与图像特征的转换相同。然后作者根据公式(4)计算鸟瞰图特征上每一点的KL散度。

其中B代表批大小,C指的是BEV特征的通道数。和分别表示教师模型和学生模型的鸟瞰图特征。作者将得到一个形状为的损失。

3.3.3 View-guided distillation objective

在前两节中,作者获得了每个摄像头在图像特征上的损失以及BEV特征上每个点的对应损失。在nuScenes数据集上,摄像头的外部参数是已知的,因此作者可以获得每个摄像头对应于BEV特征的分布范围。然后作者生成可以应用于图像特征的视角BEV Mask  ,这与在BEVFormer [23]中定义的是相同的。是一个具有四个维度的张量:摄像头数量、批处理大小、BEV大小  和3D高度,每个元素具有二进制值。通过沿最后一个维度(3D高度)计算平均值,作者可以将BEV Mask   在2D平面上展开为BEV大小 。然后,为每个摄像头计算的  可以扩展到对应于BEV特征上每个点的损失,作者将其称为 :

其中  表示哈达玛积。

最后,作者使用  来获得等式 (6) 中的视图引导蒸馏目标:

视图引导蒸馏的整个流程如算法1所示。

1b823693af96ca5b6ade293eae56bb6c.jpeg

算法1 渐进量化感知的VGD视图引导蒸馏

4 Experiments

在本节中,作者首先详细阐述实验设置,然后在BEV网络上评估PTQ和QAT方法。基于这些结果的分析,作者提出了QD-BEV来克服标准PTQ和QAT的不足,并且作者专门在不同的设置和约束下将作者的结果与之前的工作进行比较。

Experimental settings

4.1.1 Dataset

作者使用nuScenes数据集[3]对作者的 Proposal 方法进行了具有挑战性的3D检测任务评估,这是一个由Motional(前身为nuTonomy)团队开发的大规模公开自动驾驶数据集。该数据集包含了在波士顿和新加坡收集的1000个手动挑选的20秒驾驶场景,其中750个用于训练,100个用于验证,150个用于测试。数据集中的图像来自6个具有已知内外参数的相机。

4.1.2 Evaluation metrics

在nuScenes 3D测试数据集上,主要的测量指标是平均精度(mAP),以及独特的评估指标nuScenes检测得分(NDS)。NDS是一个包含多方面信息的综合评估指标。其他指标包括平均平移误差(mATE)、平均尺度误差(mASE)、平均方向误差(mAOE)、平均速度误差(mAVE)和平均属性误差(mAAE)。为了评估鸟瞰图(BEV)网络的效率,作者使用模型大小和BOPS作为度量标准。模型大小是存储特定网络所需的内存,它由模型中的参数总量以及存储这些参数的量化位宽决定。BOPS测量一个网络推理的总位操作数[35]。它是评估量化神经网络计算的一个常见指标。对于一个具有层的模型,定义和分别为第层权重和激活值使用的位宽,那么作者有:

其中是计算第层的总乘累加操作数。为了更好地展示作者的QD-BEV模型相对于浮点模型的优势,作者引入了sAP[19](流式平均精度)作为评估作者模型性能的一个指标。sAP是一个动态指标,它将随着新数据的到达而更新,这使得它非常适合评估实时场景下的模型。

4.1.3 Baselines & Implementation Details

作者主要与BEVFormer [23]提出的不同输入图像分辨率的浮点基准模型进行比较(具体来说,分别是BEVFormer-Tiny、BEVFormer-Small和BEVFormer-Base)。对于量化基准,作者应用先前的PTQ方法DFQ [29]以及QAT方法PACT [7]和HAWQv3 [40]对BEVFormer模型进行量化,并与QD-BEV进行比较。

对于浮点模型,作者使用了BEVFormer的开源库,并采用了两种不同的 Backbone 网络:ResNet50和ResNet101-DCN。作者在权重上采用逐通道的对称线性量化,在激活上采用逐层的量化,这些都是先前量化方法的标准设置。由于在作者的设置中几乎没有相关的工作可供参考,作者让作者的训练采用与BEVFormer原始训练策略相同的方案,即每个步骤训练24个周期,使用AdamW优化器,初始学习率设为2e-4,线性预热500次迭代,然后使用余弦退火。

Analysis on BEV Quantization

4.2.1 PTQ results

作者首先在表1中分析了不同模块对量化的敏感性。可以看出,网络的主体部分和编码器部分对量化更为敏感,而 Neck 和解码器部分的量化对准确度仅带来轻微的干扰。作者要指出的是,基于敏感性分析,可以应用混合精度量化来更好地保护敏感模块,但鉴于这超出了本文的研究范围,作者将其作为未来的工作。

381fefd573d843a7f55b6e17992937d6.jpeg

然后,作者分析了不同量化位宽对最终性能的影响。表2显示,直接应用少于8位精度的PTQ会导致显著的准确度下降,特别是当量化到W4A4时,结果几乎变成了纯噪声,大约0 mAP。从表2可以观察到,为了在实现超低比特量化时保持准确度,进行QAT是必要的。

4.2.2 QAT结果
28f230dbdf8573768ace0389423a415d.jpeg

表4:与先前方法或 Baseline 相比的QD-BEV结果。

b1053b4cee10a9d3079bf567587c4781.jpeg

为了解决PTQ严重的准确度退化问题,作者应用QAT以更好地使模型适应4位量化。在所有实验中,直接将整个网络量化到目标位宽的标准QAT方法会导致不稳定的QAT过程,在大模型中会引起梯度爆炸或准确度迅速下降(例如,W4A6的BEVFormer-Base仅有0.07 mAP)。基于这一观察,作者假设标准QAT中引入的量化扰动太大,无法恢复。因此,作者应用渐进式QAT来限制训练过程中的量化扰动。表3比较了在相同训练周期数下渐进式QAT与标准QAT的性能。作者可以看到,在BEVFormer-Tiny和BEVFormer-Small中,渐进式QAT一致优于标准QAT(高达5% mAP),在BEVFormer-Base上取得了更大的性能提升。为了更好地验证作者的分析,作者在图3中绘制了前60个周期的渐进式QAT训练曲线,其中对BEVFormer-Tiny进行W4A6量化。作者将渐进式QAT分为4个阶段,并在每个阶段迭代量化一个新的模块。可以看出,在每阶段的开始,NDS都会下降,对应于量化每个新模块引入的量化扰动。

60d53929d7552599fb72529c869402ed.jpeg

尽管渐进式QAT有其优点,但作者要注意的是,它仍然存在训练不稳定和性能下降的问题。如图1所示,对应于图3的最后20个周期,渐进式QAT在达到平台期后持续上下波动,而VGD的训练曲线显示出更为稳定上升的趋势。

Main Results of QD-BEV

为了获得更好的准确性和稳定性,作者应用了以浮点模型为教师、量化模型为学生的视图引导蒸馏。图3展示了VGD对BEVFormer-Tiny进行W4A6量化时的影响。需要注意的是,在最初的60个周期内,作者将VGD与逐步量化训练(QAT)分开,以便更清晰地比较和说明,实际上VGD是一个即插即用的功能,可以始终与QAT联合应用,正如作者在最后20个周期中所做的那样。得益于图像域和BEV域的知识,QD-BEV网络能够完全恢复量化退化,甚至超越浮点 Baseline 。如表4所示,该模型的NDS和mAP不仅优于先前的浮点 Baseline ,也优于量化网络。由于目前还没有紧凑型BEV网络的现有结果,作者在BEVFormer上实施了标准量化方法DFQ [29],HAWQv3 [40]和PACT [7]作为比较。对于DFQ(DFQ是一种PTQ方法,较低的位宽会导致无法容忍的准确度下降),作者应用W8A8量化,对于QAT方法和QD-BEV模型,作者使用W4A6量化。作为比较,QD-BEV仅用32.9 MB的模型大小就能达到0.509的NDS,与BEVFormer-T-DFQ(0.340 NDS)的大小相似,但比BEVFormer-Tiny(126.8 MB,0.354 NDS)小得多。

作者在PETR [24]和BEVDepth [21]模型上进行了初步测试,使用的是图5中的作者的方法。性能虽未达到BEVFormer的水平,但仍然超越了传统量化方法,尽管结果各异,但这也突显了该方法潜力。

63883cc1cab5f60902b4fa003b07ffc7.jpeg

在图4中,作者展示了QD-BEV-Base模型在nuScenes验证数据集上的可视化结果,并与BEVFormer-Tiny的结果和 GT 情况进行了比较。可以看出,QD-BEV-Base检测到了更多的目标,并且3D框预测比BEVFormer-Tiny更准确。更多可视化结果在补充材料中提供。

676416132e329a458b4e3651ac0a71e9.jpeg

Streaming perception result

表5:在BEVDepth[21]和PETR[24]上的QD-BEV结果。

7a31d0d0975ea4b43f6e0749291beed4.jpeg

在自动驾驶的背景下,流式感知[19]对于使模型能够实时快速、精确地做出决策至关重要。高延迟会降低流式感知的效果,因为它会导致感知数据与神经网络输出之间的延迟。为了增强流式感知,量化是一项必要的技巧,它压缩了模型大小,减少了计算负载,并加快了推理过程。在表6中,作者展示了量化在自动驾驶场景中对sAP指标的重要影响。如作者所见,与浮点模型和量化 Baseline 相比,QD-BEV模型在sAP上显示出一致的改进。

d98d252773d44c389a54bc0475999cb8.jpeg

5 Ablation study

在图5中,作者进行了一项消融研究,比较了在仅使用图像特征上的蒸馏、仅使用BEV特征上的蒸馏以及作者提出的视图引导蒸馏。所提到的方法称为CWD [33]。为了公平比较,作者使用了相同的预训练权重和超参数,如温度和学习率。从图中可以看出,视图引导蒸馏明显优于CWD方法。无论是在mAP还是NDS曲线上,VGD都呈现出更明显且稳定的上升趋势,并取得了更好的最终结果。

6 Conclusion

在本工作中,作者系统地研究了在BEV网络上的PTQ和QAT,并展示了它们面临的主要问题。

基于作者的分析,作者提出了一种视图引导的蒸馏(VGD)方法,该方法可以通过利用图像域和BEV域的信息来稳定QAT过程并提升最终性能。

将VGD作为一种即插即用的功能,在量化的BEV模型中联合应用,QD-BEV可以缩小精度差距,甚至超越浮点 Baseline 。

在nuScenes数据集上,仅15.8 MB模型大小的4位权重和6位激活量化的QD-BEV-Tiny模型达到了37.2%的NDS,相较于BevFormer-Tiny,在模型压缩8倍的情况下性能提高了1.8%。

参考

[1].QD-BEV : Quantization-aware View-guided Distillation for Multi-view.

投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!

① 全网独家视频课程

BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测车道线检测轨迹预测在线高精地图世界模型点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署大模型与自动驾驶Nerf语义分割自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

9e065e011319d85ff99a1d0f5478de5b.png

网页端官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

ca1d327552dcadd1bd2a4b4a7cab6979.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

4b4384453a153144d32c09dc6e5ab375.jpeg

④【自动驾驶之心】全平台矩阵

b61e9b3d25b24dc70788a753e314a42a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值