Sparse4D v3: Advancing End-to-End 3D Detection and Tracking
相关内容:总览,Sparse4D v1,Sparse4D v2,
单位:地平线(Sparse4D v1 v2 原班人马)
GitHub:https://github.com/HorizonRobotics/Sparse4D
论文:https://arxiv.org/abs/2311.11722
时间:2023-11
找博主项目讨论方式:wx:DL_xifen
讨论QQ群:345458279
摘要
在自动驾驶感知系统中,三维检测和跟踪是两项基本任务。本文在Saprse4D框架的基础上,深入研究了这一领域。我们引入了两个辅助训练任务(时序实例去噪和质量估计),并提出解耦注意来进行结构改进,从而导致显著提高检测性能。此外,我们使用一种简单的方法将检测器扩展到一个跟踪器中,该方法在推理过程中分配实例ID,进一步突出了基于查询的算法的优势。在nuScenes基准测试上进行的大量实验验证了所提改进的有效性。以ResNet50为骨干,我们发现mAP、NDS和AMOTA分别提高了3.0%、2.2%和7.6%,分别达到46.9%、56.1%和49.0%。我们的最佳模型在nuScenes测试集上达到了71.9%的NDS和67.7%的AMOTA。代码发表在:GitHub
1.
简介
- 在时间多视角感知研究领域中,基于稀疏的算法已经取得了重大进展,达到与基于密集bevs的算法相当的感知性能,同时也提供了几个优势。
- 自由视图转换。这些稀疏的方法消除了不必要讲将图像空间转换为三维向量空间
- 检测头计算量恒定,与感知距离和图像分辨率无关
- 更易于实现通过端到端方式集成下游任务。
- 在这个研究中,我们选择了基于稀疏的算法Sparse4Dv2 作为我们改进的基准,
- 该算法的总体结构如图1所示
- 该图像编码器将多视角图像转换为多尺度的特征图,而解码器块则利用这些图像特征来细化实例并生成感知结果
- 首先,我们观察到,与基于密集的算法相比,基于稀疏的算法在收敛方面遇到了更大的挑战,最终影响了它们的最终性能。
- 这个问题已经在二维检测领域进行了彻底的研究,主要归因于使用一对一的正样本匹配。
- 这种匹配方法在训练的初始阶段是不稳定的,与一对多匹配相比,其正样本数量有限,从而降低了解码器训练的效率
- 此外,Sparse4D利用稀疏特征采样而不是全局交叉注意,由于正样本的稀缺,进一步阻碍了编码器的收敛。
- 在 Sparse4Dv2中,引入密集深度监督来部分缓解图像编码器所面临的收敛问题。
- 本文主要旨在通过关注解码器训练的稳定性来提高模型的性能。
- 我们将去噪任务作为辅助监督,并将去噪技术从二维单帧检测扩展到三维时序检测
- 它不仅保证了阳性样本的稳定匹配,而且显著增加了阳性样本的数量。
- 此外,我们还引入了质量估计的任务作为辅助监督
- 这使得输出置信度分数更加合理,改进了检测结果排名的准确性,从而产生更高的评估指标
- 此外,我们在 Sparse4D中增强了实例自注意和时间交叉注意模块的结构,引入一种解耦的注意机制,以减少注意权重计算过程中的特征干扰
- 如图3所示,锚点嵌入与实例特征相加作为注意计算的输入时,所得到的注意权值中存在离群值的实例。
- 这并不能准确地反映目标特征之间的相互关系,导致无法聚合正确的特征。
- 通过用 concatenation替换add,我们显著地减少了这种不正确现象的发生。
- 这种增强与Conditional DETR有相似之处
- 然而,关键的区别在于我们强调queries之间的注意,而不是 Conditional DETR,它集中于查询和图像特征之间的交叉注意。
- 此外,我们的方法涉及到一个独特的编码方法。
- 最后,为了提高感知系统的端到端能力,我们探索了将三维多目标跟踪任务集成到Sparse4D框架中,使目标运动轨迹能够直接输出。
- 不像通过检测来进行跟踪(TBD)的方法,我们消除了数据关联和滤波器的需要,将所有跟踪功能集成到检测器中.
- 此外,与现有的联合检测和跟踪方法不同,我们的跟踪器不需要修改训练过程或损失函数。
- 它不需要提供地面真实id,但实现了预定义的实例跟踪回归。
- 我们的跟踪实现最大限度地集成了检测器和跟踪器,不需要修改检测器的训练过程,也不需要进行额外的微调。我们的贡献可以总结如下:
- 我们提出了Sparse4D-v3,一个有效的三维感知框架,具有三种有效的策略:时间实例去噪、质量估计和解耦注意。
- 我们将Sparse4D扩展到一个端到端跟踪模型中。
- 我们演示了我们在nuScenes上的改进的有效性,在检测和跟踪任务中都实现了最先进的性能。
Related Works
- Improvements for End-to-End Detection
- Multi-Object Track
Methodology
- 网络结构和推理pipeline如图1所示:
- 在本节中,我们将首先介绍两个辅助任务:
- 时序实例去噪(第3.1节)
- 质量估算(第3.2节)
- 在此之后,我们对注意模块进行了一个直接的增强,称为解耦注意(第3.3节)。
- 最后,我们概述了如何利用Sparse4D来实现3D MOT(第3.4节)。
Temporal Instance Denoising
- 在二维检测中,引入去噪任务被证明是提高模型收敛稳定性和检测性能的有效方法。
- 本文将基本的二维单帧去噪推广到三维时态去噪。
- 在Sparse4D中,实例(称为查询)被解耦为隐式实例特性和显式锚点
- 在训练过程中,我们初始化了两组锚点,
- 其中一组包括均匀分布在检测空间中的锚点,使用k-means方法进行初始化,而这些锚点都是可学习的参数。
- 另一组锚点是通过在地面真实值(GT)中添加噪声而产生的,如式(1,2)所示,这是专门为3D检测任务而定制的。
- A g t = { ( x , y , z , w , l , h , y a w , v x y z ) i ∣ i ∈ Z N } A n o i s e = { A i + Δ A i , j , k ∣ i ∈ Z N , j ∈ Z M , k ∈ Z 2 } \begin{aligned}A_{gt}&=\{(x,y,z,w,l,h,yaw,v_{xyz})_i\mid i\in\mathbb{Z}_N\}\\A_{noise}&=\{A_i+\Delta A_{i,j,k}\mid i\in\mathbb{Z}_N,j\in\mathbb{Z}_M,k\in\mathbb{Z}_2\}\end{aligned} AgtAnoise={(x,y,z,w,l,h,yaw,vxyz)i∣i∈ZN}={Ai+ΔAi,j,k∣i∈ZN,j∈ZM,k∈Z2}
- 其中, Z X \mathbb{Z}_{X} ZX表示介于1和 X X X之间的整数集, N N N 表示GT的数量,而 M M M表示噪声实例的组数,∆A表示随机噪声,其中 Δ A i , j , 1 \Delta A_{i,j,1} ΔAi,j,1和 Δ A i , j , 2 \Delta A_{i,j,2} ΔAi,j,2分别在 ( − x , x ) (-x,x) (−x,x)和 ( − 2 x , − x ) ∪ ( x , 2 x ) (-2x,-x)\cup(x,2x) (−2x,−x)∪(x,2x)范围内遵循均匀的随机分布。
- 在DINO-DETR,将 Δ A i , j , 1 \Delta A_{i,j,1} ΔAi,j,1生成的样本归类为阳性,将 Δ A i , j , 2 \Delta A_{i,j,2} ΔAi,j,2生成的样本归类为阴性,存在潜在的错误分配风险,因为 Δ A i , j , 2 \Delta A_{i,j,2} ΔAi,j,2可能更接近基本事实。
- 为了完全减轻任何歧义,我们对每一组 A n o i s e A_{noise} Anoise和 A g t A_{gt} Agt采用二部图匹配来确定正样本和负样本。
- 此外,我们通过时间传播扩展了上述的单帧噪声实例,以更好地适应稀疏循环训练过程。
- 在每帧的训练中,我们从有噪声的实例中随机选择 M ′ M^{\prime} M′组来投射到下一帧上。
- 时间传播策略与无噪声实例的传播策略一致----anchor进行自我姿态和速度补偿,而实例特征作为后续帧特征的直接初始化。
- 需要注意的是,我们保持了每一组实例的相互独立,并且在有噪声的实例和正常实例之间不会发生特征交互
- 这与DN-DETR 不同,如图4(b).所示
- 这种方法确保在每一组中,一个地面真相最多与一个正样本相匹配,有效地避免了任何潜在的歧义。.
Quality Estimation
- 现有的基于稀疏的方法主要是估计正样本和负样本的分类置信度,以测量与地面真相的对齐。
- 优化的目标是最大化所有正样本的分类置信度。
- 但不同阳性样本之间的匹配质量存在显著差异。
- 因此,分类置信度并不是评估预测边界框质量的理想度量指标
- 为了便于网络理解正样本的质量,一方面加速收敛,另一方面合理化预测排名,我们引入了预测质量估计的任务。
- 对于三维检测任务,我们定义了两个质量指标:中心度和朝向,具体公式如下。
C = exp ( − ∥ [ x , y , z ] p r e d − [ x , y , z ] g t ∥ 2 ) Y = [ sin y a w , cos y a w ] p r e d ⋅ [ sin y a w , cos y a w ] g t C=\exp(-\|[x,y,z]_{pred}-[x,y,z]_{gt}\|_{2})\\Y=[\sin yaw,\cos yaw]_{pred}\cdot[\sin yaw,\cos yaw]_{gt} C=exp(−∥[x,y,z]pred−[x,y,z]gt∥2)Y=[sinyaw,cosyaw]pred⋅[sinyaw,cosyaw]gt - 而网络输出分类置信度,它还估计了中心度和朝向。
- 它们各自的损失函数被定义为交叉熵损失和focal loss,如下式所示。
L = λ 1 C E ( Y p r e d , Y ) + λ 2 F o c a l ( C p r e d , C ) L=\lambda_1\mathbf{CE}(Y_{pred},Y)+\lambda_2\mathbf{Focal}(C_{pred},C) L=λ1CE(Ypred,Y)+λ2Focal(Cpred,C)
Decoupled Attention
-
如引言中所述,我们对Sparse4Dv2中的anchor编码器、自注意和时间交叉注意进行了简单的改进
-
该体系结构如图所示5
-
设计原则是以一种concatenated的方式组合来自不同模式的特征,而不是使用一种add的方法。
-
与Conditional DETR [33]相比,有一些差异
-
首先,我们改进了查询之间的注意,而不是改进了查询和图像特征之间的交叉注意,cross-attention仍然利用了 Sparse4D的deformable aggregation。
-
此外,我们没有在多头注意水平上连接位置嵌入和查询特征,而是在多头注意水平上进行外部修改,为神经网络提供更大的灵活性
Extend to Tracking
- 在 Sparse4Dv2的框架下,时间建模采用循环形式,将前一帧的实例投影到当前帧上作为输入。
- 时序实例类似于基于查询的跟踪器中的跟踪查询,其区别是跟踪查询受到更高的阈值的约束,这代表了高度自信的检测结果
- 相比之下,我们的时序实例有很多,其中大多数可能不能准确地表示在以前的帧中检测到的对象。
- 为了在Sparse4Dv2框架内从检测扩展到多对象跟踪,我们直接将实例从检测边界框重新定义到轨迹。
- 轨迹包括每一帧的ID和边界框
- 由于设置了大量的冗余实例,许多实例可能没有与一个精确的目标关联,也没有被分配一个明确的ID
- 然而,它们仍然可以被传播到下一帧。
- 一旦实例的检测置信度超过阈值T,就被认为锁定在目标上并分配一个ID,该ID在整个时间传播过程中保持不变。
- 因此,实现多目标跟踪就像将ID分配过程应用于输出感知结果一样简单。
- 跟踪期间的生命周期管理由Sparse4Dv2中的top-k策略无缝处理,不需要额外的修改。
- 具体情况可以在算法1中进行参考。在我们的实验中,我们观察到训练后的时间模型表现出了良好的跟踪特性,而不需要使用跟踪约束进行微调。
Experiment
后续补充…
Conclusion and Outlook
在本文中,我们首先提出了提高Sparse4D检测性能的方法。这种增强主要包括三个方面:时序实例去噪、质量估计和解耦注意。随后,我们说明了将Sparse4D扩展到端到端跟踪模型的过程。我们在nuScenes上的实验表明,这些增强显著提高了性能,将Sparse4Dv3定位在该领域的最前沿。
基于Sparse4D框架,有相当大的进一步研究潜力:
- 基于Sparse4D框架,有相当大的进一步研究潜力:
- 将Sparse4D扩展到仅激光雷达或多模态模型是一个很有前途的方向
- 在端到端跟踪的基础上,可以通过引入额外的下游任务,如预测和规划,来进行进一步的改进
- 集成额外的感知任务,如在线建图和2D标志和红绿灯检测。
感悟
时隔半年 对V2 再次改进 也是目前的先进的版本吗?
YOLO 也是v3 之后原作者没参与了
未来sparse 4D 会不会有v4 v5 v6 我们期待一下… (SparseDrive 是官方的后续模型,一个端到端自动驾驶数据集)