【论文阅读】Sparse4D v3:Advancing End-to-End 3D Detection and Tracking

标题:Sparse4D v3:Advancing End-to-End 3D Detection and Tracking
作者:Xuewu Lin, Zixiang Pei, Tianwei Lin, Lichao Huang, Zhizhong Su

motivation

作者觉得做自动驾驶,还需要跟踪。于是更深入的把3D-检测&跟踪用sparse的模式做好。 检测性能的进一步优化及端到端跟踪实现。
于是将目光聚焦到了两个问题上:
**收敛困难:**稀疏形式的感知算法,大多数都面临这个收敛困难的问题,收敛速度相对较慢、训练不稳定导致最终指标不高;在Sparse4D-V2 中,我们主要采用了额外的深度估计任务来帮助网络训练,但由于用上了额外的点云作为监督,这并不是一种理想的形式。
**端到端跟踪:**在实际业务系统中,在检测模块后,我们总是需要在加入跟踪模块获得目标轨迹。因此一个完善的稀疏动态感知框架应该同时具备端到端跟踪能力。
在这里插入图片描述

methods

1、Temporal Instance Denoising
在训练过程中,初始化了两组锚点。
一组包括均匀分布在检测空间中的锚点,使用 k 均值方法初始化,这些锚点作为可学习参数。
另一组锚点是通过向地面实况 (GT) 添加噪声生成的,如公式如下所示,专门为 3D 检测任务量身定制。对GT加上小规模噪声来生成noisy instance,用decoder来进行去噪,这样可以较好的控制instance和gt之间的偏差范围,decoder 层之间匹配关系稳定,让训练更加鲁棒,且大幅增加正样本的数量,让模型收敛更充分,以得到更好的结果。具体来说,我们设置两个分布来生产噪声Delat_A,用于模拟产生正样本和负样本,对于3D检测任务加噪公式如下
在这里插入图片描述
加上噪声的GT框需要重新和原始GT进行one2one匹配,确定正负样本,而并不是直接将加了较大扰动的GT作为负样本,这可以缓解一部分的分配歧义性。噪声GT需要转为instance的形式以输入进网络中,首先噪声GT可以直接作为anchor,把噪声GT编码成高维特征作为anchor embed,相应的instance feature直接以全0来初始化。
为了模拟时序特征传递的过程,让时序模型能得到denoisy任务更多的收益,将单帧denosing拓展为时序的形式。具体地,在每个训练step,随机选择部分noisy-instance组,将这些instance通过ego pose和velocity投影到当前帧,投影方式与learnable instance一致。
具体实现中,我们设置了5组noisy-instance,每组最大gt数量限制为32,因此会增加5322=320个额外的instance。时序部分,每次随机选择2组来投影到下一帧。每组instance使用attention mask完全隔开,与DINO中的实现不一样的是,我们让noisy-instance也无法和learnable instance进行特征交互.
在这里插入图片描述

2、Quality Estimation
Sparse4D输出的分类置信度并不适合用来判断框的准确程度,这主要是因为one2one 匈牙利匹配过程中,正样本离GT并不能保证一定比负样本更近,而且正样本的分类loss并不随着匹配距离而改变。而对比dense head,如CenterPoint或BEV3D,其分类label为heatmap,随着离gt距离增大,loss weight会发生变化。
因此,除了一个正负样本的分类置信度以外,还需要一个描述模型结果与GT匹配程度的置信度,也就是进行Quality Estimation。对于3D检测来说,我们定义了两个quality指标,centerness和yawness:
在这里插入图片描述

qt = qt.flatten(end_dim=1)[mask]  #[n,2]
cns = qt[..., 0]
yns = qt[..., 1].sigmoid()
cns_target = torch.norm(reg_target[..., :3] - reg[..., :3], p=2, dim=-1)
cns_target = torch.exp(-cns_target)
cns_loss = self.loss_cns(cns, cns_target, avg_factor=num_pos)
output[f"loss_cns_{decoder_idx}"] = cns_loss
yns_target = (torch.nn.functional.cosine_similarity(reg_target[..., 6:8],reg[..., 6:8],dim=-1,)  > 0
)
yns_target = yns_target.float()
yns_loss = self.loss_yns(yns, yns_target)
output[f"loss_yns_{decoder_idx}"] = yns_loss

对于centerness和yawness,我们分别用cross entropy loss和focal loss来进行训练
在这里插入图片描述
3、Decoupled Attention
Sparse4D中有两个instance attention模块,1)instance self-attention和2)temporal instance cross-attention。在这两个attention模块中,将instance feature和anchor embed相加作为query与key,在计算attention weights时一定程度上会存在特征混淆的问题,如图下所示。
在这里插入图片描述
为了解决这问题,作者对attention模块进行了简单的改进,将所有特征相加操作换成了拼接,提出了decoupled atttention module,结构如下图所示
在这里插入图片描述

def forward(self, box_3d: torch.Tensor) -> torch.Tensor:pos_feat = self.pos_fc(box_3d[..., 0:3])size_feat = self.size_fc(box_3d[..., 3:6])yaw_feat = self.yaw_fc(box_3d[..., 6:8])if self.vel_dims > 0:vel_feat = self.vel_fc(box_3d[..., 8 : 8 + self.vel_dims])output = self.cat.cat([pos_feat, size_feat, yaw_feat, vel_feat], dim=-1)else:output = self.cat.cat([pos_feat, size_feat, yaw_feat], dim=-1)return output

4、Extend to Tracking
无需额外训练策略的端到端多目标跟踪能力。由于Sparse4D已经实现了目标检测的端到端(无需dense-to-sparse的解码),进一步考虑将端到端往检测的下游任务进行拓展,即多目标跟踪。发现当Sparse4D经过充分检测任务的训练之后,instance在时序上已经具备了目标一致性了,即同一个instance始终检测同一个目标。因此,无需对训练流程进行任何修改,只需要在infercence阶段对instance进行ID assign即可,infer pipeline如下所示。
在这里插入图片描述
对比如MOTR、TransTrack、TrackFormer等一系列端到端跟踪算法,实现方式具有以下两点不同: 1)训练阶段,无需进行任何tracking的约束;2)Temporal instance不需要卡高阈值,大部分temporal instance不表示一个历史帧的检测目标。

experiments

在这里插入图片描述

作者的总结与展望

总的来说,在长时序稀疏化3D 目标检测的一路探索中,主要有如下的收获:

显式的稀疏实例表示方式: 将待检测的instance 表示为3D anchor 和 instance feature,并不断进行迭代更新来获得检测结果是一种简洁、有效的方式。同时,这种方式也更容易进行时序的运动补偿;
高效的Deformable Aggregation 算子:提出了针对多视角/多尺度图像特征 + 多关键点的层级化特征采样与融合策略,并进行了大幅的效率优化,能高效获得高质量的特征表示。同时在稀疏化的形式下,decoder 部分的计算量和计算延时受输入图像分辨率的影响不大,能更好处理高分辨率输入;
Recurrent 的时序稀疏融合框架:基于稀疏实例的时序recurrent 融合框架,使得时序模型基本上具备与单帧模型相同的推理速度,同时在帧间只需要占用少量的带宽(比起bev 的时序方案)。这样轻量且有效的时序方案很适合在真实的车端场景处理多摄视频流数据。
端到端多目标跟踪:在无需对训练阶段进行任何修改的情况下,实现了从多视角视频到目标轨迹的端到端感知,进一步减小对后处理的依赖,算法结构和推理流程非常简洁;
卓越的感知性能:在稀疏感知框架下进行了一系列性能优化,在不增加推理计算量的前提下,让Sparse4D在检测和跟踪任务上都取得了SOTA的水平。

基于稀疏范式的感知算法仍然有很多未解决的问题,也具有很大的发展空间。首先,如何将Sparse的框架应用到更广泛的感知任务上是下一步需要探索的,例如道路元素的感知任务(HD map construction、 topology等)、预测规控任务(trajectory prediction、end-to-end planning等);其次,需要对稀疏感知算法进行更充足的验证,保证其具备量产能力,例如远距离检测效果、相机内外参泛化能力及多模态融合感知性能等。作者希望Sparse4D(v3)可以作为稀疏感知方向新的baseline,推动该领域的进步。

就是好好好!

【完结】

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

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

相关文章

基于 DNA 的原核生物与微小真核生物分类学:分子革命下的范式重构​

李升伟 李昱均 茅 矛(特趣生物科技公司,email: 1298261062qq.com)传统微生物分类学长期依赖形态特征和生理生化特性,这在原核生物和微小真核生物研究中面临巨大挑战。原核生物形态简单且表型可塑性强,微小真核生物…

【FastDDS】Layer DDS之Domain (01-overview)

Fast DDS 域(Domain)模块详解 一、域(Domain)概述 域代表一个独立的通信平面,能在共享通用通信基础设施的实体(Entities)之间建立逻辑隔离。从概念层面来看,域可视为一个虚拟网络&am…

http和https区别是什么

区别主要有以下四点:HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。HTTP 连接建立相对简单&a…

推荐算法发展历史

推荐算法的发展历史是一部从简单规则到复杂智能,从宏观群体推荐到微观个性化精准推荐的 演进史。它大致可以分为以下几个阶段:推荐算法的发展历史是一部从简单规则到复杂智能,从宏观群体推荐到微观个性化精准推荐的演进史。它大致可以分为以下…

企业DevOps的安全与合规关键:三大主流DevOps平台能力对比

在数字化转型的浪潮中,DevOps平台已成为企业加速软件交付、提升协作效率的核心引擎。然而,随着应用范围的扩大,安全漏洞与合规风险也随之凸显。如何平衡速度与安全,实现高效且合规的DevOps流程,已成为企业亟需解决的关…

pgroll:简化PostgreSQL零停机迁移

pgroll:PostgreSQL零停机迁移的新思路作为后端开发者,我们都遇到过数据库变更的难题。想象一下,你需要在电商大促期间修改用户表结构——传统的ALTER TABLE可能导致锁表,用户下单流程中断,每分钟都是真金白银的损失。p…

JVM1.8与1.9的区别是什么?

一、核心机制变化 类加载器调整 JDK 1.8:使用三种类加载器: 启动类加载器(Bootstrap):加载核心类库(如 rt.jar)。扩展类加载器(ExtClassLoader):加载 JAVA_HO…

CentOS交换区处理

文章目录前言创建交换文件(推荐)清理旧交换区前言 很多刚开始使用 CentOS 的用户都会遇到。1GB 的交换分区在现代应用环境下确实偏小,很容易在内存压力大时导致系统性能下降甚至应用程序被强制终止。 关于交换分区的大小,没有一…

JavaScript原型与原型链:对象的家族传承系统

文章目录JavaScript原型与原型链:对象的"家族传承"系统 👨👩👧👦引言:为什么需要原型?原型系统三大核心概念概念关系图核心概念表一、原型基础:对象如何"继承"属…

数据库语法差异对比

特性MySQLMSSQLOraclepostgresql单行注释--、#&#xff08;少&#xff09;------多行注释/* *//* *//* *//* */字符串连接<code>CONCAT(str1,str2)</code>、<code>CONCAT_WS(separator, str1, str2)</code>、CONCAT&#xff08;str1,str2&#xff09;(…

GIS大学课程表都长啥样?几个地信专业的大学一周课程表

前几天&#xff0c;有个准大一的同学问&#xff1a;地信大学课程安排都是啥样的&#xff1f;简单的地理学、遥感学课程之类的对准大一的同学们来说太抽象了&#xff0c;有没有更具体一点的&#xff1f;他在新生群里问本校的学长&#xff0c;得到的课表不是这样的&#xff1a;就…

leetcode 3027. 人员站位的方案数 II 中等

给你一个 n x 2 的二维数组 points &#xff0c;它表示二维平面上的一些点坐标&#xff0c;其中 points[i] [xi, yi] 。 我们定义 x 轴的正方向为 右 &#xff08;x 轴递增的方向&#xff09;&#xff0c;x 轴的负方向为 左 &#xff08;x 轴递减的方向&#xff09;。类似的…

oracle 从一张表更新到另外一张表的方法(MERGE)

之前更新表格经常用 update aaa set (aaa.q,aaa.w) (select bbb.q,bbb.w from bbb where bbb.eaaa.e)的方法 后面学习了一个新的方法&#xff0c;MERGE法&#xff0c;这种写法更适合&#xff0c;因为对于空的值可以自定义定义其值&#xff0c;这样写存储过程的时候就不需要频繁…

Huggingface终于没忍住,OpenCSG坚持开源开放

在全球人工智能竞争进入白热化的当下&#xff0c;开源与闭源之路的选择正在成为决定未来格局的关键。当全球最大的AI开源平台Hugging Face终于承认"开源是赢得AI竞赛的关键"&#xff0c;并呼吁美国重新重视开源赛道时&#xff0c;OpenCSG&#xff08;开放传神&#x…

计算机网络模型总概述

//网络通讯 --- 不同主机之间的通信(进程间通信) 一、概述 目前使用的计算机网络模型主要分为两个&#xff1a;OSI七层模型和TCP/IP模型 相比OSI七层模型 &#xff0c;TCP/IP模型更简洁&#xff0c;更实用&#xff0c;因此目前所使用的基本都是TCP/IP模型&#xff0c;已成为…

HTTPS -> HTTP 引起的 307 状态码与HSTS

1.应用场景 主要用于了解HSTS, 以及如何合理设置, 如正式服和测试服, 开发环境; 摘要&#xff1a;当HTTPS网站返回307状态码临时重定向到HTTP时&#xff0c;会带来安全风险&#xff08;如中间人攻击和混合内容问题&#xff09;。 HSTS机制通过强制HTTPS通信可解决此问题&#…

PortSwigger靶场之DOM XSS in document.write sink using source location.search通关秘籍

一、靶场描述这个靶场在搜索查询的跟踪功能中&#xff0c;包含一个基于DOM的跨站脚本&#xff08;DOM-based XSS&#xff09;漏洞。该漏洞的产生是因为网站使用了一个名为 document.write 的 JavaScript 函数&#xff0c;这个函数会把数据直接写入到页面中。而写入的数据来源于…

深度学习篇---Pytorch常用优化器

优化器介绍&#xff1a;在 PyTorch 中&#xff0c;优化器&#xff08;Optimizer&#xff09;的作用是根据模型参数的梯度来更新参数&#xff0c;以最小化损失函数。下面用通俗易懂的方式介绍几种常用的优化器&#xff1a;1. SGD&#xff08;随机梯度下降&#xff09;最基础的优…

0903 C++类的运算符重载、静态成员与继承

Part 1.梳理思维导图一.运算符重载1.运算符重载的作用使原本只能对基本数据类型生效的运算符&#xff0c;在重载后&#xff0c;满足可以对构造类型数据生效。2.关系运算符重载a.关系运算符种类> > < < !b.分析参数表达式…

Cloudflare安全规则实用指南:从路径拦截到IP限制的10个经典范例

前言&#xff1a;在Cloudflare的安全防护体系中&#xff0c;自定义规则是抵御特定威胁的“精准武器”。除了基础的路径拦截&#xff0c;日常运维中还有许多高频场景需要针对性配置。本文将通过10个实用范例&#xff0c;带你掌握Cloudflare规则的灵活用法&#xff0c;覆盖路径防…