Sparse4D-v3:稀疏感知的性能优化及端到端拓展

极致的感知性能与极简的感知pipeline一直是牵引我们持续向前的目标。为了实现该目标,打造一个性能优异的端到端感知模型是重中之重,充分发挥深度神经网络+数据闭环的作用,才能打破当前感知系统的性能上限,解决更多的corner case,让系统更加鲁棒。因此,在Sparse4D-v3中,我们主要做了两部分工作,其一是进一步提升模型的检测性能,另一是将Sparse4D拓展为一个端到端跟踪模型,实现多视角视频到目标运动轨迹端到端感知。

在Sparse4D-v2的落地过程中,我们发现其感知性能仍然具备一定的提升空间。

1. 首先,我们从训练优化的角度对Sparse4D进行了分析。我们观察发现以稀疏形式作为输出的模型,大多数都面临这个收敛困难的问题,收敛速度相对较慢、训练不稳定导致最终指标不高。因此我们参考DETR-like 2D检测算法,引入了最为有效的提升模型训练稳定性的辅助任务——"query denoising",并将其在时序上进行了拓展;

2. 其次,我们观察到相比以dense-heatmap做输出的模型,以稀疏形式作为输出的模型其距离误差明显要更大。经过分析与实验论证,我们认为这是由于检测框置信度不足以反应框的精度导致的。因此,我们能提出另外一个辅助训练任务 "quality estimation",这个任务不仅让模型的检测指标更高,还在一定程度上加速了模型收敛;

3. 最后,为了进一步提升模型性能,我们还对网络结构进行了小幅的优化。对于instance feature直接的特征交互模块,我们提出decoupled attention,在几乎不增加推理时延的情况下提升了感知效果。

除了可以获得更高效的检测能力以外,我们致力于发展稀疏感知框架的另一原因就是其能够更容易的将下游任务(如跟踪、预测及规划)以端到端的形式扩展进来。因此,在Sparse4D-v3中,我们成功地将多目标跟踪任务加入到模型中,实现了极致简洁的训练和推理流程,既无需在训练过程中添加跟踪约束,也无需进行任何的跟踪后处理(关联、滤波和生命周期关联),并且NuScenes上的实验结果证实了该跟踪方案的有效性。我们希望Sparse4D-v3的端到端跟踪方案会推动多目标跟踪算法的快速发展。

1. Temporal Instance Denoising

f89e3744-b91b-11ee-8b88-92fbcf53809c.png

(a)中灰色和橙色模块仅在训练中使用,推理阶段只需保留; (b)灰色方格代表attention mask=True。

我们对GT加上小规模噪声来生成noisy instance,用decoder来进行去噪,这样可以较好的控制instance和GT之间的偏差范围,decoder 层之间匹配关系稳定,让训练更加鲁棒,且大幅增加正样本的数量,让模型收敛更充分,以得到更好的结果。具体来说,我们设置两个分布来生产噪声Delta_A,用于模拟产生正样本和负样本,对于3D检测任务加噪公式如下:

f8af4a3e-b91b-11ee-8b88-92fbcf53809c.png

3D检测加噪公式

加上噪声的GT框需要重新和原始GT进行one2one匹配,确定正负样本,而并不是直接将加了较大扰动的GT作为负样本,这可以缓解一部分的分配歧义性。噪声GT需要转为instance的形式以输入进网络中,首先噪声GT可以直接作为anchor,把噪声GT编码成高维特征作为anchor embed,相应的instance feature直接以全0来初始化。

为了模拟时序特征传递的过程,让时序模型能得到denoising任务更多的收益,我们将单帧denoising拓展为时序的形式。具体地,在每个训练step,随机选择部分noisy-instance组,将这些instance通过ego pose和velocity投影到当前帧,投影方式与learnable instance一致。

具体实现中,我们设置了5组noisy-instance,每组最大GT数量限制为32,因此会增加5*32*2=320个额外的instance。时序部分,每次随机选择2组来投影到下一帧。每组instance使用attention mask完全隔开,与DINO中的实现不一样的是,我们让noisy-instance也无法和learnable instance进行特征交互,如上图(b)。

2.Quality Estimation

除了denoising,我们引入了第二个辅助监督任务,Quality Estimation,初衷一方面是加入更多信息让模型收敛更平滑,另一方面是让输出的置信度排序更准确。对于第二点,我们在实验过程中,发现两个异常现象:

1.相比dense-based算法,query-based算法的mATE(mean Average-Translation Error)指标普遍较差,即使是confidence高的预测结果也会存在较大的距离误差,如下图(a);

2. Sparse4D在行人上的Precision-Recall曲线前半段会迅速降低,如下图(b);

f8d00d46-b91b-11ee-8b88-92fbcf53809c.png

(a)confidence-translation error曲线,NuScenes val set

f8e5631c-b91b-11ee-8b88-92fbcf53809c.png

(b)precision-recall error曲线,NuScenes val set

上述现象说明,Sparse4D输出的分类置信度并不适合用来判断框的准确程度,这主要是因为one2one 匈牙利匹配过程中,正样本离GT并不能保证一定比负样本更近,而且正样本的分类loss并不随着匹配距离而改变。而对比dense head,如CenterPoint或BEV3D,其分类label为heatmap,随着离GT距离增大,loss weight会发生变化。

因此,除了一个正负样本的分类置信度以外,还需要一个描述模型结果与GT匹配程度的置信度,也就是进行Quality Estimation。对于3D检测来说,我们定义了两个quality指标,centerness和yawness,公式如下:

f8ff1cf8-b91b-11ee-8b88-92fbcf53809c.png

对于centerness和yawness,我们分别用cross entropy loss和focal loss来进行训练。

f90c3ef6-b91b-11ee-8b88-92fbcf53809c.png

从上图的曲线来看,对比Sparse4D v3和v2,可以看出加入Quality Estimation之后,有效缓解了排序不准确的问题。

3. Decoupled Attention

Sparse4D中有两个instance attention模块,1)instance self-attention和2)temporal instance cross-attention。在这两个attention模块中,将instance feature和anchor embed相加作为query与key,在计算attention weights时一定程度上会存在特征混淆的问题,如图下所示。

f91c80c2-b91b-11ee-8b88-92fbcf53809c.png

为了解决这问题,我们对attention模块进行了简单的改进,将所有特征相加操作换成了拼接,提出了decoupled attention module,结构如下图所示。

f939e46e-b91b-11ee-8b88-92fbcf53809c.png

4. End to End 3D Multi-object Tracking

由于Sparse4D已经实现了目标检测的端到端(无需dense-to-sparse的解码),进一步的我们考虑将端到端往检测的下游任务进行拓展,即多目标跟踪。我们发现当Sparse4D经过充分检测任务的训练之后,instance在时序上已经具备了目标一致性了,即同一个instance始终检测同一个目标。因此,我们无需对训练流程进行任何修改,只需要在inference阶段对instance进行ID assign即可,infer pipeline如下所示。

f96db6fe-b91b-11ee-8b88-92fbcf53809c.png

对比如MOTR(v1 & v3)、TrackFormer、MUTR3D等一系列端到端跟踪算法,我们的实现方式具有以下两点不同:

训练阶段,无需进行任何tracking的约束。这一做法一定程度上打破了对多目标跟踪训练的常规认知,我们进行以下简单分析:

a. 对于3D检测任务,我们加入了他车的运动补偿,当上一帧检测结果和速度估计准确时,投影到当前帧的temporal instance就可以准确的匹配到同一目标。因此,我们认为目标检测任务的优化目标和目标跟踪一致,当检测任务训练充分时,即使不需要加入tracking约束,也可以获得不错的跟踪效果。加入tracking 约束的实验我们也尝试过,但会导致检测和跟踪指标均降低;

b. 相比于MOTR等2D跟踪算法,3D跟踪可以利用运动补偿,一定程度上消除检测和跟踪任务在优化目标上的GAP,我认为这可能是Sparse4D能去掉tracking 约束的一大原因;

c. 另外,相比于MUTR3D等3D跟踪算法,Sparse4D的检测精度显著高于MUTR3D,也只有当检测精度足够高时,才能摆脱对tracking 约束的依赖。

2. Temporal instance不需要卡高阈值,大部分temporal instance不表示一个历史帧的检测目标。MOTR等方法中,为了更贴近目标跟踪任务,采用的track query会经过高阈值过滤,每个track query表示一个确切的检测目标。而Sparse4D中的temporal instance设计出发点是为了实现时序特征融合,我们发现有限的temporal instance数量会降低时序模型的性能,因此我们保留了更多数量的temporal instance,即使大部分instance为负样本。

5. 实验验证

Ablation Study

在NuScenes validation数据集上进行了消融实验,可以看出Sparse4D-v3的几个改进点(temporal instance denoising、decoupled attention和quality estimation)对感知性能均有提升。

f98b022c-b91b-11ee-8b88-92fbcf53809c.png

Ablation Experiments of Sparse4D-v3

Compare with SOTA

在NuScenes detection和tracking两个benchmark上,Sparse4D均达到了SOTA水平。

f9b5f3a6-b91b-11ee-8b88-92fbcf53809c.png

Results of Detection 3D on NuScenes Validation Set

f9cf4b1c-b91b-11ee-8b88-92fbcf53809c.png

Results of Detection 3D on NuScenes Test Set

f9e1906a-b91b-11ee-8b88-92fbcf53809c.png

Results of Tracking 3D on NuScenes Validation Set

f9f74644-b91b-11ee-8b88-92fbcf53809c.png

Results of Tracking 3D on NuScenes Test Set

Cloud-Based Performance Boost

针对云端系统,为了进一步提升模型的性能,我们进行了Offline 模型和加大backbone的尝试。

1. Offline 模型是通过加入未来帧特征,让模型获得更好效果,速度估计精度大幅提升,感知结果也更加平滑,对云端真值系统具有重要的意义。具体实现上,我们用Sparse4D-v1的多帧采样的方式来融合未来帧特征,共加入了未来8帧的特征。这里的未来帧融合方式计算复杂度较高,如何搭建更加高效的Offline 模型,也是今后重要的研究方向之一;

2. 我们采用EVA02-large作为backbone,这一改进带来的性能提升非常显著。特别是对于稀有类别,EVA02的检测精度有10+个点的提升。这主要得益于EVA02具有更大的参数量,经过更充分的预训练,其参数量是ResNet101/VoVNet的3倍,并且在ImageNet-21k基于EVA-CLIP蒸馏+Mask Image Model的形式进行了充分的自监督训练。大参数量+大数据+自监督训练,让模型收敛到更平坦的极值点,更加鲁棒,具备更强的泛化性;

我们最终在NuScenes test数据集上获得了NDS=71.9和AMOTA=67.7,在部分指标上甚至超过了LiDAR-based和multi-modality的模型。

fa0845b6-b91b-11ee-8b88-92fbcf53809c.png

展望与总结

在对长时序稀疏化3D 目标检测的进一步探索过程中,我们主要有如下的收获:

1. 卓越的感知性能:我们在稀疏感知框架下进行了一系列性能优化,在不增加推理计算量的前提下,让Sparse4D在检测和跟踪任务上都取得了SOTA的水平;

2. 端到端多目标跟踪:在无需对训练阶段进行任何修改的情况下,实现了从多视角视频到目标轨迹的端到端感知,进一步减小对后处理的依赖,算法结构和推理流程非常简洁。

我们希望Sparse4D-v3能够成为融合感知算法研究中的新的baseline,更多的研发者已经加入进来。我们这里给出几个值得进一步探索的方向:

1. Sparse4D-v3中对多目标跟踪的探索还比较初步,跟踪性能还有提升空间;

2. 如何在端到端跟踪的基础上,进一步扩展下游任务(如轨迹预测和端到端planning)是重要的研究方向;

3. 将Sparse4D拓展为多模态模型,具有非常大的应用价值;

4. Sparse4D还有待扩展为一个并行的多任务模型,比如加入online mapping、2D detection等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载最新版Anaconda、安装、更换源、配置虚拟环境并在vscode中使用

文章目录 进入官网进入下载页安装更换源配置虚拟环境env安装包requests在vscode中使用虚拟环境 进入官网 https://repo.anaconda.com/ 或进入清华大学下载 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 进入下载页 安装 更换源 查看已经存在的镜像源 bash cond…

物联网在养殖业领域的应用——案例分析

作者主页: 知孤云出岫 目录 作者主页:物联网在养殖业领域的应用——案例分析背景技术架构硬件设置连接多种传感器到微控制器 代码实现1. Arduino代码:采集多种传感器数据并上传到Thingspeak2. Python代码:从Thingspeak获取数据并进行综合分析和可视化 …

大模型学习笔记十二:AI产品部署

文章目录 一、如何选择GPU和云服务器厂商,追求最高性价比1)根据场景选择GPU2)训练或微调所需显卡(以Falcon为例子)3)服务器价格计算器 二、全球大模型了解1)llm所有模型2)模型综合排…

WSL2 Centos7 Docker服务启动失败怎么办?

wsl 安装的CentOS7镜像,安装了Docker之后,发现用systemctl start docker 无法将docker启动起来。 解决办法 1、编辑文件 vim /usr/lib/systemd/system/docker.service将13行注释掉,然后在下面新增14行的内容。然后保存退出。 2、再次验证 可以发现,我们已经可以正常通过s…

offer题目51:数组中的逆序对

题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,在数组{7,5,6,4}中,一共存在5个逆序对,分别是(7…

给Wordpress添加评分功能到评论表单

今天要 给你的 Wordpress 添加评分功能到评论表单 吗? 评分功能效果图 什么类型的网站需要评分? 资源站教程站其他,我也没想到。。。 但我这个网站,因为是电影类的网站,好像还是有点需要的,所以&#xf…

针对汽车应用而设计的SCT4026D、SCT4062K、SCT3105K、SCT3080A、SCT3060A全新系列碳化硅 (SiC) MOSFET

全新系列碳化硅 (SiC) MOSFET SCT4026DWAHRTL SCT4062KWAHRTL SCT3105KRC15 SCT3080ALHRC11 SCT3080ARC15 SCT3060ARC15 ——明佳达 AEC-Q101 SiC功率MOSFETs是汽车和开关电源的理想选择。SiC功率MOSFETs可以提高开关频率,减少所需的电容、电抗器和其他元件的体积…

【RAG探索第4讲】KG+RAG丨基于知识图谱优化大型语言模型方法

原文链接:【RAG探索第4讲】KGRAG丨基于生物医学知识图谱优化的大型语言模型提示生成方法 一、现有问题: LLMs在处理特定领域或高度专业化查询时缺乏专业知识,导致回答不够准确和可靠。 LLMs可能会产生事实错误(即幻觉&#xff0…

【计算机视觉】siamfc论文复现

什么是目标跟踪 使用视频序列第一帧的图像(包括bounding box的位置),来找出目标出现在后序帧位置的一种方法。 什么是孪生网络结构 孪生网络结构其思想是将一个训练样本(已知类别)和一个测试样本(未知类别)输入到两个CNN(这两个CNN往往是权值共享的)中&#xff0…

深入理解PHP基础【代码审计实战指南】

文章目录 基础语法单双引号的区别前后端分离数据类型PHP常量函数var_dump函数count函数print_r函数**readfile()函数****file_get_contents()函数****file_put_contents()函数**header函数fopen函数fread 函数rename函数copy()函数…

OCR识别采购单小程序管理助手

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

Qt开发网络嗅探器01

引言 随着互联网的快速发展和普及,人们对网络性能、安全和管理的需求日益增 长。在复杂的网络环境中,了解和监控网络中的数据流量、安全事件和性能 问题变得至关重要。为了满足这些需求,网络嗅探器作为一种重要的工具被 广泛应用。 网络嗅探…

【Godot4.2】SVGParser - SVG解析器函数库

概述 这是一个基于GDScript内置XMLParser编写的简易SVG文件解析函数库。 目的就是可以将SVG文件解析为GDSCript可以处理的字典或DOM形式,方便SVG渲染和编辑。 目前还只是一个简易实现版本。还需要一些改进。 函数库源码 # # 名称:SVGParser # 类型…

AI算法23-决策树ID3算法Iterative Dichotomiser 3 | ID3

目录 决策树ID3算法概述 决策树ID3算法简介 决策树ID3算法的原理 决策树ID3算法的核心 决策树ID3算法的本质 决策树ID3算法的基本流程 决策树ID3算法计算过程 步骤1 步骤2 步骤3 决策树ID3算法的代码实现 决策树ID3算法的优缺点 优点 缺点 决策树ID3算法的应用场…

ue5笔记

1 点光源 聚光源 矩形光源 参数比较好理解 (窗口里面)环境光混合器:快速创造关于环境光的组件 大气光源:太阳光,定向光源 天空大气:蓝色的天空和大气 高度雾:大气下面的高度感的雾气 体积…

【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理

【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理 在之前我们已经学习了页面布局相关的知识,绘制静态页面已经问题不大。那么今天来学习一下如何让页面动起来、并且结合所学完成一个代码实例。 交互 如果是为移动端开发应用,那么交…

自主巡航,目标射击

中国机器人及人工智能大赛 参赛经验: 自主巡航赛道 【机器人和人工智能——自主巡航赛项】动手实践篇-CSDN博客 主要逻辑代码 #!/usr/bin/env python #coding: utf-8import rospy from geometry_msgs.msg import Point import threading import actionlib impor…

鸿蒙开发 03 封装 @ohos/axios (最新深度封装)

鸿蒙开发 03 封装 ohos/axios (最新深度封装) 1、安装 ohos/axios2、开始封装2.1 新建 utils 文件夹 和 api 文件夹2.2 在 utils 文件夹里新建 http.ts2.3 在 api 文件夹里新建 api.ets 3、页面调用4、打印结果 1、安装 ohos/axios ohpm install ohos/a…

linux环境交叉编译openssl库,以使Qt支持https

一.前言 Qt若需要支持https,则需要openssl的支撑,并且要注意,Qt不同版本会指定对应的openssl版本库,比方我用的Qt5.15.10他要求用的openssl版本是1.1.1,你就不能用其他版本,不然基本就是失败报错。 如何查看Qt对应ope…

无人机反制技术常见的有哪些?

随着无人机技术的迅速发展和广泛应用,无人机在民用、军事等领域都发挥着重要作用。然而,无人机的滥用和非法入侵也带来了严重的安全隐患。为了维护国家安全和社会稳定,无人机反制技术应运而生。本文将详细介绍无人机反制技术的常见类型&#…