速度完爆&性能不输!华科&百度提出ToC3D:3D检测直接起飞!

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

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

今天自动驾驶之心为大家分享华科&百度ECCV 2024的3D目标检测工作—ToC3D!如果您有相关工作需要分享,请在文末联系我们!

自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询

>>点击进入→自动驾驶之心3D目标检测技术交流群

论文作者 | Dingyuan Zhang等

编辑 | 自动驾驶之心



写在前面 & 笔者的个人理解

自动驾驶环视3D目标检测的推理速度对于量产部署至关重要。尽管许多基于稀疏查询的方法已经尝试提高3D检测器的效率,但它们忽略了对主干网络的优化,尤其是当使用视觉transformer(ViT)来提升性能时。为了解决这一问题,作者探索了通过token压缩技术来构建高效的ViT骨干网络,用于环视3D检测,并提出了一个简单而有效的方法,称为TokenCompression3D(ToC3D)。通过利用历史目标查询作为高质量的前景先验,对它们中的3D运动信息进行建模,并通过注意力机制与图像token进行交互,ToC3D能够有效地确定图像token的信息密度,并区分出明显的前景目标token。引入的动态路由器设计使得ToC3D能够在压缩信息损失的同时,将更多的计算资源倾斜于重要的前景token,从而实现更高效的基于ViT的环视3D检测器。在大规模的nuScenes数据集上的广泛实验结果表明,作者的方法在几乎保持了近期最佳性能的同时,推理速度暴涨30%!并且在大的ViT主干和输入分辨率后,这种改进仍然保持一致。

  • 项目链接:https://github.com/DYZhang09/ToC3D

祝大家中秋快乐!『自动驾驶之心知识星球』优惠券火热进行中~新用户7折,老用户续费折上折~

e66acbebbd9bfe4ae5245d89803e87b1.png

相关工作总结

环视3D目标检测

环视3D目标检测因其低成本和简单的传感器配置,在现实世界的应用中具有显著优势,例如在自动驾驶领域。现有的环视3D目标检测方法主要分为两大类:基于稠密鸟瞰图(BEV)的方法和基于稀疏查询的方法。

稠密BEV方法通过显式的视图变换将图像特征转换为稠密的BEV特征。BEVDet是这类方法的先驱。BEVDepth利用显式的深度监督来提高深度估计的准确性,而SOLOFusion结合了长期和短期的双目视觉信息以改善深度估计,这些方法都显著提升了检测性能。与显式视图变换不同,BEVFormer通过预定义的网格状BEV查询和注意力机制隐式地聚合稠密的BEV特征。PolarFormer探索使用极坐标系统替代传统的网格状坐标系统。由于需要提取稠密的BEV特征,这些方法在计算和内存成本上相对较高。

另一方面,稀疏查询方法通过直接使用稀疏的目标查询与图像特征交互,跳过了稠密BEV特征提取的过程。DETR3D通过将3D查询投影到2D图像平面来聚合特征。PETR将3D坐标的位置信息编码到图像特征中,消除了对3D查询投影的需求。CAPE和3DPPE进一步改善了3D位置信息的质量。SparseBEV在BEV和图像空间中引入了适应性。对于时序3D检测,Sparse4D提出了稀疏4D采样方法,用于从环视/尺度/时间戳聚合特征。StreamPETR引入了内存队列以存储历史目标查询,实现长期时间信息的传播。这些方法通过直接将图像特征传递给3D解码器进行检测,因此高质量的图像特征对于它们是有益的。随着预训练的ViT的发展,基于稀疏查询的环视3D检测方法已经实现了SOTA,并几乎主导了排行榜。然而,作者发现,由于ViT的计算负担,推理速度主要受到主干网络的限制,这激发了作者对ViT主干进行优化以提高效率的想法。

视觉Transformer中的Token压缩

视觉Transformer(ViT)因其强大的特征提取能力,在多种计算机视觉任务中变得流行。训练后的ViT的可视化显示了稀疏的注意力图,这意味着最终预测仅依赖于一小部分显著的token。基于这一观察,许多研究工作尝试通过移除不重要的token来加速ViT,这一过程被称为token压缩。例如,DynamicViT引入了一个轻量级的预测模块来估计每个token的重要性分数,然后逐步动态地剪枝不重要的token。A-ViT进一步提出了动态停止机制。EViT利用类token的注意力来识别token的重要性,然后保留注意力集中的图像token并将不集中的token融合。AdaViT在注意力头和块级别进一步进行剪枝。Si等人联合考虑了token的重要性和多样性。Evo-ViT提出了一种自车激励的慢速-快速token演化方法,保持了空间结构和信息流。所有这些方法最初都是为2D视觉任务设计的,并且在执行token压缩时没有考虑3D感知先验。

本文则借鉴了[11,33,40]中的方法,通过利用历史目标查询和建模3D运动信息,将token压缩从2D领域扩展到3D领域,实现了为3D目标检测量身定制的3D运动感知token压缩。这种方法允许作者进一步将稀疏查询方法的设计哲学从3D解码器扩展到整个处理流程,从而实现更高效的环视3D目标检测。

ToC3D方法详解

概述

基于稀疏查询的方法通过主要对稀疏的目标中心查询进行建模,而非对整个3D场景进行建模,从而提高了3D检测器的效率。然而,作者认为,现有的稀疏查询方法在主干网络中对前景和背景进行了同等处理,这限制了效率的进一步提升。使用视觉Transformer(ViT)来实现卓越的性能时,主干网络成为了推理速度的瓶颈。

为了解决这一问题,作者提出了TokenCompression3D(ToC3D),它通过token压缩将稀疏查询方法的设计哲学扩展到ViT主干网络中。如图2(a)所示,ToC3D主要包括两个设计:运动查询引导的token选择策略(MQTS)和动态路由器。每个块中的token压缩过程如下:1)首先,MQTS以图像token和历史目标查询作为输入,通过图像token和历史查询之间的注意力机制计算每个图像token的重要性分数,将图像token划分为显著和冗余的部分。2)然后,使用动态路由器对不同组的token进行高效特征提取。显著的token通过常规路径传递,该路径由多个注意力块组成。对于冗余token,使用自由路径(在本文中使用恒等层)以节省计算成本。为了保持显著和冗余token在注意力块中的交互,作者将冗余token合并为一个桥接token,并将其与显著token一起在常规路径前传递。3)最后,在获得显著和冗余token的特征后,作者重新排列显著和冗余token,以满足典型3D目标检测器的兼容性。

f4671f18113b01d70872ff76481f41e6.png

通过堆叠赋能token压缩的block,计算资源被动态且更加密集地分配给前景提议,消除了不必要的消耗,并显著加速了推理。最终作者有效地修剪了ViT主干网络,开发了一个更高效的基于稀疏查询的环视3D检测器,配备了3D稀疏解码器。

运动查询引导的Token选择策略

运动查询引导的Token选择策略(MQTS)旨在测量每个图像token的重要性分数,并将token划分为显著/冗余token。通常,显著和冗余token分别包含有关前景目标和背景信息。基于此,MQTS本质上在图像中分割前景token,而具有3D运动信息的历史目标查询可以作为高质量的前景先验,这导致了运动查询引导的token选择设计,如图2(b)所示。

具体来说,MQTS首先采用历史查询内容 、历史查询参考点 (在齐次坐标中)和当前帧的图像token 作为输入,其中 、 分别是历史查询和图像token的数量,、 分别是历史查询和图像token的通道数。然后,MQTS使用以下过程准确且高效地分割token:

运动查询准备。由于当前帧和历史帧之间存在空间变换,作者引入时间对齐过程以将 与当前自车坐标系统对齐。与[36]一样,作者使用运动感知的层归一化。首先,作者将所有目标视为静止的,并使用自车变换矩阵将 对齐到当前帧:

其中 是与当前自车坐标系统对齐的历史查询参考点, 是从历史帧到当前帧的自车变换矩阵。然后,作者通过条件层归一化建模可移动目标的运动,计算仿射变换系数如下:

其中 是编码的运动向量,、 是用于层归一化的仿射变换系数, 是连接运算符, 是查询的速度, 是历史查询和当前帧之间的时间差。 是位置编码函数,作者采用了NeRF中使用的正弦余弦编码。最后,作者通过条件层归一化编码运动信息:

其中 , 是时间对齐后的历史查询内容和参考点嵌入,MLP(·)是用于将参考点转换为嵌入的多层感知机。

重要性分数计算。在获得时间对齐的历史查询后,作者分割显著的前景token。为了更好地提取前景先验,作者利用注意力机制计算每个图像token的重要性分数。作者首先将时间对齐后的历史查询内容和参考点嵌入相加得到新的查询嵌入,然后使用线性层对齐图像token和查询嵌入的维度:

其中 , 分别是维度对齐的查询嵌入和图像token,, 分别是图像token和历史查询的数量。接下来,作者通过有效的矩阵乘法获得注意力图:

本质上,注意力图 模拟了图像token和历史查询之间的相关性,因此可以表示每个token的前景信息密度,因为历史查询包含前景先验。通过简单的线性变换和sigmoid激活,作者确定每个图像token的重要性分数 :

最后,作者根据重要性分数选择前 个图像token作为显著token,以便更容易地进行批量处理:

其中 是显著token, 是冗余token。, 分别是显著和冗余token的数量。 是预设的常数,保持每个块中显著token的比率。增加 将增加显著token的数量;否则,增加冗余token的数量,从而作者可以通过调整 控制推理速度。

尽管重要性分数计算是轻量级的,但它仍然带来了一些开销。作者发现,更新每个层的重要性分数并不会带来显著的改进,因此作者只更新特定Transformer层之前的重要性分数,中间的层将重用最新的重要性分数。

历史查询采样。尽管历史目标查询携带高质量的前景先验,作者经验性地发现,并非所有历史目标查询都是有价值的。这是因为目标查询的数量大于典型DETR风格检测器中感兴趣目标的数量,许多目标查询并不对应于前景目标,而是背景事物。如果作者直接在MQTS中使用所有这些历史查询,重要性分数计算将会受到背景信息的偏见。由于目标查询的置信度测量,作者可以通过根据它们的置信度分数对历史查询进行采样来简单地解决这个问题。具体来说,作者根据它们在历史帧中预测的置信度分数对历史查询进行排序,并选择前 个查询作为MQTS的输入。

动态路由器

在将token划分为显著和冗余两类之后,作者设计了动态路由器以加快推理速度,同时尽可能地减少信息损失。作者意识到,并非所有的冗余token都与背景相对应,它们中的一部分可能包含了对目标检测有用的信息,而这些信息可以通过注意力机制传递给显著token。为了实现这一目标,作者将所有冗余token合并成一个桥接token,并将其与显著token一起传递,以便在显著和冗余token之间通过桥接token进行信息交互。在这一过程中,作者对显著token使用更多的神经网络层(即常规路径)来提取丰富的语义和几何特征,而对于冗余token,则使用较浅的网络层(本文中使用的是恒等层)来保留其信息。

具体来说,作者利用重要性分数对冗余token进行加权平均,以生成桥接token:

其中, 表示桥接token, 是第 个冗余token的重要性分数, 是对应的冗余token。

之后将桥接token附加到显著token之后,并将它们一起送入常规路径,以便提取更丰富的特征:

在这里, 分别代表经过更新的显著token和桥接token,Blocks指的是Transformer编码块,通常包括多个窗口注意力层和全局注意力层,用于处理环视3D目标检测任务。

对于冗余token,作者通过自由路径(即恒等层)进行处理,并与更新后的桥接token进行合并:

其中, 表示更新后的冗余token, 函数将 重复 次。

最终,作者将更新后的显著token和冗余token重新组合,形成更新后的图像token。得益于动态路由器的设计,作者能够在保持与典型环视3D检测器兼容性的同时,更高效地提炼图像token中的信息。

实验结果和分析

数据集与评估指标

本研究选取了大规模的nuScenes数据集进行方法评估,该数据集涵盖了700个场景用于训练、150个场景用于验证以及另外150个场景用于测试。每个场景的数据由六个摄像头以10Hz的频率捕获,实现了360°的全视场覆盖。在本研究中,作者关注10个类别的标注:轿车、卡车、施工车辆、巴士、拖车、障碍物、摩托车、自行车、行人和交通锥。评估模型性能时,作者采用了nuScenes的官方评估指标,包括nuScenes检测得分(NDS)、平均精度均值(mAP)、平均平移误差(ATE)、平均尺度误差(ASE)、平均方向误差(AOE)、平均速度误差(AVE)和平均属性误差(AAE)。

实现细节

本研究选取了性能优异的StreamPETR作为基准流水线。在主干网络方面,作者采用了ViT-B和ViT-L模型,并在这些模型上实施了token压缩策略。为了指导运动查询引导的token选择策略(MQTS),作者采用了高斯焦点损失,并以投影边界框作为真值。模型训练使用了8块NVIDIA V100显卡,总批量大小设置为16,经过了24个周期的训练。推理速度的测试在单块RTX3090显卡上进行。优化器选择了AdamW。数据增强策略遵循了StreamPETR的官方设置,且未采用CBGS。具体的配置细节参见表1。

86bd17e217006f4beb550c5576a98f47.png

主要结果

作者将ToC3D方法与StreamPETR及其他几种流行的环视3D检测方法在nuScenes验证集上进行了比较。主要结果汇总在表2中。结果显示,当以ViT-B作为主干网络时,ToC3D-Fast在保持与StreamPETR相当NDS和mAP的同时,推理速度提升了近20%。若能接受轻微的性能下降(0.5% NDS和mAP),ToC3D-Faster方案可以将推理速度进一步提高30%,整体流水线速度提升26%。值得一提的是,ToC3D-Faster在性能上与StreamPETR相当,但其推理速度却与使用R50主干网络的SOLOFusion相当,显示出作者方法的有效性。在采用ViT-L作为主干网络时,ToC3D-Fast在几乎无损性能的情况下,将整体流水线推理速度提升了36ms。此外,ToC3D-Faster在性能损失不超过0.9%的情况下,实现了25%的推理速度提升,与Sparse4D的速度相当,同时在性能上保持了显著的优势(即NDS提升了超过6.4%,mAP提升了超过7.7%)。进一步地,当输入图像分辨率提升至800×1600时,ToC3D-Fast和ToC3D-Faster配置下,推理时间分别减少了258ms和431ms,显著节省了计算资源。这些结果证明了作者方法在效率提升上的优势。

58c52d30e9425222ff4a434ea109efac.png

分析

本研究使用ViT-L作为主干网络,对提出的方法进行了深入分析。所有模型仅训练了12个周期,并在验证集上进行了评估。

为了证明运动查询引导的token选择策略(MQTS)的有效性,作者将其与典型的2D token压缩方法DynamicViT和SparseDETR进行了比较。为了公平比较,作者将MQTS替换为这两种方法,保持动态路由不变,并调整这些方法以达到最佳性能。作者还与随机token压缩进行了比较。

如表3所示,随机token压缩导致了显著的性能下降,特别是当保持比例较低时。这表明随机压缩无法有效捕捉图像token的重要性,从而导致大量有用信息的丢失。相比之下,基于分数的2D token压缩方法由于能更好地识别重要的前景token,因此在性能下降上要小得多。然而,这些2D方法仅将图像token作为输入,在没有3D感知特征或先验的情况下进行token压缩,导致性能严重受损(即mAP和NDS分别下降了约2%)。

7377f66b7f9b538883faef67e2c7cc22.png

作者的方法由于MQTS输入了历史目标查询,能够模拟目标的3D运动信息,并聚合高质量的3D前景先验,从而显著优于2D方法(mAP和NDS分别提高了超过2%)。值得注意的是,借助高效的MQTS,作者的方法能够在与2D token压缩方法相当的推理速度水平上几乎保持基本流水线的性能,显示了MQTS的优越性。

组件有效性分析。在验证了历史预测中的目标查询可以作为高质量的前景先验这一关键见解之后,作者进一步研究了是什么使得这一见解有效。作者将更快设置下作者的方法作为基线,并逐个移除一个组件以测量其有效性,如表4所示。值得注意的是,移除任何组件只会略微减少推理时间,显示了每个组件的高效率。

e8d8a907cc5ff3881add9a515f772e05.png

对于设置(a),作者用轻量级模块替换了等式5中的注意力机制,这导致了0.8% mAP和0.4% NDS的下降。这表明注意力图自然模拟了图像token和历史查询之间的相关性,从而更明确地表示了每个token的前景信息密度,实现了更好的重要性度量。

955ab82edef82a6c51166abec8a37cd8.png

对于设置(b),作者丢弃了等式1至3中的过程。性能下降(1.1% mAP和0.6% NDS)表明了运动信息的重要性,它适应性地处理可移动目标,并抑制了历史目标与当前坐标系统之间的错位带来的噪声。对于设置(c),作者移除了历史查询采样,并使用所有历史查询。这一选择降低了mAP 0.8%和NDS 0.4%,显示了历史查询采样的必要性,因为它去除了对应于背景事物的目标查询,并防止了重要性分数计算的偏见。对于设置(d),作者没有在动态路由器中使用桥接token。由于缺少显著和冗余token之间的交互,冗余token中包含的潜在信息不能传递给前景token,导致信息丢失,并最终反映在mAP和NDS上。

历史查询数量 的影响。由于作者将 个历史查询作为MQTS的输入,作者在本节研究了不同 的影响,如表5所示。当 时,作者使用了所有历史查询。否则,作者根据历史预测中的置信度分数采样顶部 个历史查询。结果表明,采样历史查询总是有益的,因为许多历史查询对应于背景事物。历史查询采样有助于防止重要性分数受到背景的偏见,从而提高了性能。然而,如果 太小,它将丢失许多前景查询,遭受信息丢失,并损害性能。作者经验性地发现 可以获得更好的性能。

保持比例 的影响。保持比例 控制显著token的数量,并决定了准确性和速度之间的权衡。在本节中,作者进行了实验,以了解保持比例如何影响作者方法的效率。从表6中,作者可以得到以下现象:(1)作者可以通过几乎不损失性能的情况下将流水线加速近15%,并且以边际NDS损失(0.9%)加速25%。(2)在一定范围内,性能下降几乎与推理时间下降成线性关系(大约每20ms推理时间下降0.2% NDS)。(3)太小的保持比例(例如,0.3, 0.2, 0.1)将导致显著的性能下降。这是因为前景token通常占图像token的10%以上,而太小的保持比例不可避免地丢弃了前景token,导致信息丢失。考虑到实际应用的需求,作者将模型的保持比例设置为0.7, 0.5, 0.5作为ToC3D-Fast版本,以及0.5, 0.4, 0.3作为ToC3D-Faster版本,因为这些模型具有相对较好的权衡。

d918cc0a48872233794aed01d1f33273.png

泛化性分析。作者选择StreamPETR作为作者的基础流水线,但这并不意味着作者方法的应用受到限制。事实上,ToC3D可以作为一个即插即用的方法,作者通过将其应用于另一个强大的流水线Sparse4Dv2来展示作者方法的泛化能力。结果如表7所示。它表明作者方法的行为在不同的基线方法中是一致的。与在StreamPETR上获得的加速比相同,作者的方法将性能损失保持在0.8%以内,并且令人惊讶地保持了与Sparse4Dv2完全相同的NDS,证明了作者方法在其他流水线上的可行性和有效性。

348013b6ea6752a5c00c8203dcef88da.png

定性结果

为了更好地理解MQTS的行为,作者在图3中可视化了注意力图和显著/冗余token。注意力图清楚地表明,作者的方法能够精确地关注前景目标,无论是大尺寸目标(例如样本(a)中的汽车和卡车)还是小尺寸目标(例如样本(b)和(c)中的行人)。这是对作者第3.2节中声明的直观证明,即注意力图模拟了图像token和历史查询之间的相关性,因此可以表示每个token的前景信息密度,因为历史查询包含前景先验。借助3D前景目标感知的注意力图,当保持比例 降低时,整个模型可以更加集中于前景token,从而提高效率。

101f235ddf023d5f65973bad9871c6ed.png

局限性讨论

作者的方法利用历史目标查询作为高质量的前景先验,这要求输入数据必须是连续的时间图像序列。虽然这一要求在一定程度上限制了方法的适用范围,但在自动驾驶等实际应用中,感知系统通常是连续运行的,因此这一假设是合理的。该方法的另一个限制是,如果需要调整保持比例 ,则必须重新训练 token 压缩模型。为了克服这一限制,未来的工作可以探索使用动态保持比例,并在训练过程中采用一些技术手段来确保模型的稳定性。

结论

在本研究中,作者提出了一个观点,即在当前的基于稀疏查询的环视3D检测器中,直接采用视觉变换器(ViT)会导致不必要的计算负担,并且显著地减慢了检测速度。为了克服这一问题,作者提出了一种新颖的方法,名为TokenCompression3D(ToC3D)。该方法通过利用历史目标查询作为高质量的前景先验,对这些查询中的3D运动信息进行建模,并通过注意力机制将更多的计算资源导向重要的前景token,同时尽量减少信息的损失。通过这种方式,作者将稀疏查询方法的设计哲学从3D解码器扩展到了整个处理流程中。在大规模的nuScenes数据集上进行的实验结果表明,作者的方法能够在几乎不损失性能的前提下,显著提升推理速度,并且利用历史目标查询可以带来更好的结果。作者期望本文的工作能够激励未来高效环视3D检测器的研究,并为该领域提供一个强有力的基准。

参考

[1] Make Your ViT-based Multi-view 3D Detectors Faster via Token Compression

投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!

5b1437c5b7d911fe69437f0fe2a7b1be.jpeg

① 全网独家视频课程

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

4282154991311c83f9470c238af7ef4d.png 网页端官网:www.zdjszx.com

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

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

67f21c3565bcee8fc58007f509058769.png

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

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

7633d8e312f057d8777ec3be6ede07ce.jpeg

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

86903349299c232db94b8ffce9132d54.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值