当前位置: 首页 > article >正文

【CVPR2025】BridgeAD+: Enhancing End-to-End Autonomous Driving with Multi-Step Historical Context Fusi

1. 从“一帧”到“连续剧”为什么自动驾驶需要历史记忆大家好我是老张在自动驾驶这个行当里摸爬滚打了十几年从早期的模块化“堆盒子”到现在的端到端“大一统”可以说见证了技术范式的几次大变迁。今天想和大家聊聊一个听起来有点“哲学”但实际非常关键的问题自动驾驶系统怎么“记住”过去并以此来“预判”未来想象一下你开车时的场景。你看到一个行人站在路边他可能只是在等车也可能下一秒就抬脚过马路。你怎么判断你大概率会下意识地回想他过去几秒的动作——他是刚从商店出来还是一直站在那里张望这种对“历史上下文”的利用是人类驾驶决策的基石。然而对于很多端到端自动驾驶模型来说它们更像是“金鱼”只有“七秒记忆”处理每一帧图像时往往过度依赖当前瞬间的信息对过去发生了什么、未来几步如何连贯地演进缺乏系统性的建模。这就是CVPR 2025上提出的BridgeAD框架要解决的核心痛点。它不是一个从零开始的全新架构而是在现有优秀的端到端范式比如大家熟悉的UniAD、VAD基础上做了一次非常巧妙的“增强手术”。它的核心思想可以概括为一句话将过去、现在与未来的信息在“查询”这个维度上进行解耦与对齐让历史信息能够精准地流向感知和规划这两个最需要它的模块。传统的端到端方法在处理时间信息时主要有两种思路。一种是“密集派”把过去几帧的鸟瞰图特征像叠罗汉一样堆起来好处是信息全但计算量大而且不同时间步的信息混杂在一起规划模块用起来并不顺手。另一种是“稀疏派”用一个记忆库存储历史的关键信息比如物体的查询向量需要时再去检索。但问题在于很多方法在设计这个记忆和检索机制时并没有充分考虑“多步”的特性。比如规划未来3秒的轨迹其实需要的是未来第1秒、第2秒、第3秒分别与过去哪些信息对齐过去的哪一帧对未来哪一步的影响最大这种精细化的时间对齐关系如果被粗糙地处理效果就会大打折扣。BridgeAD的聪明之处就在于它不再把“运动预测查询”和“路径规划查询”当作两个笼统的向量包而是为它们赋予了清晰的时间步结构。简单说它把未来要预测的轨迹和要规划的路径都拆解成一步一步的。然后它设计了一个精巧的“缓存队列”像是一个滑动窗口始终保留着最近几帧里这些已经解构好的、带时间标签的历史查询。当处理新的一帧时感知模块可以去这个队列里找到与“当前时刻”最相关的历史运动信息来帮助自己更准地检测和跟踪物体而规划模块则可以去队列里找到与“未来各个时刻”相关的历史规划信息来生成更平滑、更一致的未来轨迹。这就好比一个导演在拍连续剧。传统的做法可能是每一集都独立写剧本只依赖当前帧。而BridgeAD的做法是导演手里有一个详细的分镜头脚本多步查询并且他随时可以回看之前几集的关键片段历史缓存。在拍当前这一集感知时他会参考前一集结尾人物的状态历史运动查询在构思接下来几集的剧情走向规划时他会综合考虑之前几集埋下的伏笔历史规划查询和人物可能的发展历史运动查询对未来规划的影响。这样拍出来的剧集前后连贯性自然就好得多。2. BridgeAD核心机制拆解三步走打通历史与未来的任督二脉光说理念可能有点抽象咱们直接上干货看看BridgeAD具体是怎么玩的。它的整个框架可以看作一个精心设计的三步流水线核心都围绕“多步历史查询”这个数据结构展开。2.1 第一步设计带“时间戳”的查询——把未来拆开看这是所有后续操作的基础。在BridgeAD里运动预测查询和路径规划查询不再是两个“黑盒子”向量。它们被显式地设计成了多维张量其中一个维度专门代表“未来时间步”。运动查询它的形状是[Na, M_mot, T_mot, C]。这有点像一个四维数组。Na是周围交通参与者的数量比如车辆、行人M_mot是为每个参与者预测的多种可能轨迹模式比如直行、左转、右转T_mot就是关键的未来预测步数比如预测未来6秒每秒2个点就是12步C是特征通道数。这样一来每个查询向量都明确对应着“哪个物体在哪种模式下未来第几步的状态”。规划查询它的形状是[M_plan, T_plan, C]。这里M_plan是自车规划的多种可能路径模式T_plan是规划的未来步数比如规划未来3秒6步。同样每个查询都对应“哪种路径模式未来第几步的方向盘转角或油门刹车”。我刚开始接触这个设计时觉得它有点“反直觉”因为增加了模型的复杂度。但仔细一想这恰恰是把复杂问题清晰化的关键。以前模型需要自己从混杂的查询向量里“领悟”时间信息现在咱们直接把时间步作为坐标轴给标明了。这就好比给仓库里的货物都贴上了详细的“货架号-层号-位号”存取效率自然飙升。2.2 第二步建立“记忆仓库”——一个先进先出的缓存队列设计好了带时间标签的查询接下来就得把它们存起来方便后续使用。BridgeAD采用了一个非常实用的FIFO先进先出缓存队列。这个队列的长度是固定的比如只保留最近K3帧的历史信息。每一帧处理完后当前帧生成的那些“多步运动查询”和“多步规划查询”就会被压入这个队列。同时队列里最老的那一帧信息会被挤出去。这个过程是持续不断的确保了模型始终拥有一个短暂的、但结构化的“记忆窗口”。这个设计我特别喜欢因为它既简单又高效。不需要复杂的检索网络也不存储原始的图像或BEV特征那种“重型”数据只存储提炼好的、结构化的查询向量内存和计算开销都很小。在实际的工程部署中这种轻量级的历史利用机制是非常有吸引力的。2.3 第三步定向投喂——历史信息如何精准增强不同模块有了结构化的历史查询和缓存队列BridgeAD就可以玩出很精彩的操作了。它通过三个核心的交互模块把历史信息“定向投喂”给需要它的部分。模块A历史运动到检测融合这个模块服务于感知检测与跟踪。它的目标是利用“过去”来更好地理解“现在”。具体怎么做呢从缓存队列里取出与当前帧最相关的历史运动查询这些查询包含了之前帧中物体是如何运动的。然后让当前帧的物体检测查询与这些历史运动查询做一次“跨注意力”交互。你可以理解为检测模块在识别一个物体时会主动去“询问”历史“这个家伙上一秒在哪儿速度怎么样” 有了这个信息模型就能更稳定地跟踪物体减少因为遮挡或外观变化导致的ID跳变。这在实际路测中对提升感知的鲁棒性帮助巨大。模块B历史增强的运动预测这个模块的目标是预测周围物体未来的轨迹。它利用的历史信息更“远期”一些。从缓存队列中它会提取过去多帧的历史运动查询然后与当前帧初始化好的未来多步运动查询进行交互。这里的关键是“步级自注意力”和“模式级自注意力”。简单说“步级自注意力”让未来第1步的查询可以和未来第2、3步的查询互相沟通确保预测的轨迹在时间上是平滑的“模式级自注意力”则让“左转”这种模式下的所有时间步可以互相沟通确保一种运动模式内部是自洽的。历史信息的注入为这种跨时间步、跨模式的推理提供了宝贵的上下文。模块C历史增强的路径规划 运动到规划交互这是最体现“桥接”思想的部分。规划模块同样会从缓存中读取历史规划查询来增强当前对未来路径的规划确保规划出的轨迹在时间上连贯比如不会突然剧烈摆动。但更重要的是“步级运动到规划交互模块”。规划自车路径时不能闭门造车必须考虑周围物体未来的运动。这个模块就负责在相同的未来时间步上将运动预测模块输出的物体未来状态比如1.5秒后那辆车的位置与规划模块的自车路径查询进行对齐和交互。这样规划出的路径就能提前规避预测的冲突实现真正的协同决策。这种基于相同时间步的细粒度交互是提升规划安全性和拟人化的关键。3. 在nuScenes上实战开放环与封闭环的双重考验理论说得再漂亮还得看实战效果。BridgeAD的论文在自动驾驶领域公认的权威数据集nuScenes上进行了全面测试包括开放环和封闭环两种评估模式。这两种模式的区别咱们得先搞清楚。开放环评估就像是“开卷考试”。模型根据一段历史传感器数据预测出自车在未来一段时间内的规划轨迹然后和数据集里记录的真实人类驾驶轨迹进行对比计算误差比如L2距离。它评估的是模型“模仿学习”和“短期预测”的能力。封闭环评估则是“闭卷实战”。模型被置入一个高保真的仿真器论文里用的是NeuroNCAP模拟器它根据当前的感知结果做出规划决策如转向、加速这个决策会作用到仿真环境中的车辆上改变其状态然后模型再根据新的状态做下一帧决策如此循环。这能评估模型长期决策的连贯性、安全性以及应对复杂交互的能力更接近真实部署。BridgeAD在这两项考试中都交出了顶尖的成绩单。在开放环规划对比中BridgeAD的各项误差指标如L2误差、碰撞率都显著优于之前的SOTA方法比如UniAD和VAD。特别值得一提的是有些方法为了提升规划性能会直接把自车的历史状态如速度、位置作为额外输入这相当于给了模型一个“捷径”。但BridgeAD的输入不包含自车状态纯粹依靠视觉感知和历史查询来推断自车应该怎么走。即使在这种“更困难”的设置下它依然超越了那些用了自车状态的方法这充分证明了其历史上下文融合机制的有效性——模型是真的从历史视觉信息中学到了驾驶逻辑而不是简单地记忆状态关联。在封闭环的NeuroNCAP仿真测试中BridgeAD的优势更加明显。NeuroNCAP评分综合了安全性、合规性等多个维度BridgeAD-S较小版本的评分比同期优秀方法SparseDrive高出65%在更关键的碰撞率指标上BridgeAD相比UniAD降低了12.4%。这个数字在安全至上的自动驾驶领域意义重大。论文里分析说其他方法要么完全忽略了规划中的历史信息要么没有在当前帧有效地整合历史导致它们虽然能“看到”周围的物体但在连续的决策中容易做出突兀或不一致的动作从而引发碰撞。而BridgeAD通过其多步历史融合使得规划出的轨迹像老司机一样更加平滑、连贯且有预见性。除了规划它在“基本功”上也全面进步。在3D物体检测、多目标跟踪、运动预测这些感知和预测子任务上BridgeAD也刷新了nuScenes上的成绩。这形成了一个良性循环更好的历史感知带来了更准的跟踪和预测更准的预测又反过来帮助做出了更安全、更连贯的规划。这种端到端联合优化的优势在BridgeAD身上体现得淋漓尽致。4. 对开发者与从业者的启示我们能从中学到什么聊完了原理和效果咱们落地一点说说从BridgeAD这项工作中我们做技术研发和工程落地的同行能汲取哪些营养。第一时间建模的粒度至关重要。过去我们谈“利用历史”可能更多想到的是用RNN、LSTM或者3D卷积来融合一个时序特征。BridgeAD告诉我们对于自动驾驶这种强时序、多智能体交互的任务粗粒度的融合可能不够。将未来解构成多步并为每一步建立与历史明确的对齐关系是一种更精细、更有效的思路。这启发我们在设计其他时序模型时也可以思考如何显式地建模不同时间步之间的依赖关系而不是仅仅依赖网络的隐式学习。第二“查询”是连接多任务的优秀抽象。端到端自动驾驶统一了感知、预测、规划但如何让信息在不同任务间高效、合理地流动是个难题。BridgeAD延续并发展了“以查询为中心”的设计范式。感知产出物体查询和地图查询预测和规划则定义自己的运动查询和规划查询然后通过精心设计的注意力机制在这些查询之间交换信息。这种基于查询的稀疏交互相比基于密集BEV特征的全局交互通常更高效、更聚焦。我们在设计复杂多任务系统时可以考虑将“查询”作为不同模块间通信的“标准语言”。第三轻量级的历史缓存机制极具工程价值。BridgeAD没有引入特别复杂的记忆网络就是一个简单的FIFO队列存储过去几帧的结构化查询。这个设计在保证性能大幅提升的同时几乎没有增加多少在线计算开销。这对于追求实时性的车载计算平台来说是一个非常友好的设计。它提醒我们有时候解决问题的未必是最复杂的模型一个清晰、巧妙的数据结构和与之匹配的简单算法往往能取得事半功倍的效果。第四仿真测试是验证规划能力的必要环节。BridgeAD的工作再次凸显了高质量封闭环仿真的重要性。开放环指标好不代表上路就安全。像NeuroNCAP这种能构建复杂、安全关键场景的仿真器是检验模型长期决策和交互能力的试金石。我们在开发自己的系统时也必须建立起完善的仿真测试体系尤其是要覆盖那些常规数据集中少见的“长尾”危险场景。从我个人的经验来看端到端自动驾驶正在从“有没有”走向“好不好”的阶段。早期的模型解决了从像素到动作的映射问题而现在像BridgeAD这样的工作则在深入解决“如何映射得更聪明、更连贯、更安全”的问题。它抓住的“多步历史上下文”这个点看似细微实则切中了当前许多模型在时序连贯性上的短板。这项研究不仅提供了一个强大的新基线更重要的是它展示了一种系统性的思考方式如何通过改进模型内部的信息流设计来让AI驾驶得更像人。

相关文章:

【CVPR2025】BridgeAD+: Enhancing End-to-End Autonomous Driving with Multi-Step Historical Context Fusi

1. 从“一帧”到“连续剧”:为什么自动驾驶需要历史记忆? 大家好,我是老张,在自动驾驶这个行当里摸爬滚打了十几年,从早期的模块化“堆盒子”到现在的端到端“大一统”,可以说见证了技术范式的几次大变迁。…...

Fish-Speech 1.5快速上手:无需代码,Web界面直接文字转语音

Fish-Speech 1.5快速上手:无需代码,Web界面直接文字转语音 1. 引言:让文字开口说话,就这么简单 你有没有遇到过这样的场景?想给视频配个旁白,但自己录音效果总是不理想;或者需要把一篇长文章变…...

InternLM2-Chat-1.8B入门实践:Python爬虫数据清洗与智能分析

InternLM2-Chat-1.8B入门实践:Python爬虫数据清洗与智能分析 你是不是也遇到过这样的烦恼?辛辛苦苦用Python爬虫抓了一大堆数据,结果发现里面什么都有——重复的、格式乱的、夹杂着广告和无关信息的,光是整理这些数据就要花上大半…...

GEE时序分类新思路:借力权威土地覆盖数据自动化构建样本库

1. 为什么说传统采样方式已经“过时”了? 如果你做过大范围的遥感土地利用分类,尤其是那种需要分析好几年、甚至十几年变化的研究,我猜你一定对“选样本点”这个步骤又爱又恨。爱的是,样本选得好,分类精度就高&#xf…...

Ollama本地化部署DeepSeek指南:从零到高效运行

1. 为什么要在本地跑大模型?从Ollama和DeepSeek说起 最近两年,AI大模型火得一塌糊涂,但说实话,每次用那些在线服务,我心里总有点不踏实。一个是网络问题,关键时刻掉链子急死人;另一个是隐私&…...

X音视频评论采集实战:DrissionPage高效数据抓取方案

1. 为什么选择DrissionPage来采集音视频评论? 如果你做过网页数据抓取,尤其是针对那些评论需要滚动加载、页面元素动态变化的音视频平台,你肯定体会过那种“血压升高”的感觉。用传统的requests库吧,面对JavaScript渲染的动态内容…...

解决403 Forbidden:MiniCPM-V-2_6模型API访问权限配置详解

解决403 Forbidden:MiniCPM-V-2_6模型API访问权限配置详解 最近在星图GPU平台上部署了MiniCPM-V-2_6模型,准备大展拳脚调用API时,迎面而来的却是一个冷冰冰的“403 Forbidden”。这感觉就像你兴冲冲跑到朋友家敲门,结果对方隔着门…...

三月七助手技术解构:星穹铁道自动化引擎的架构解析与实战指南

三月七助手技术解构:星穹铁道自动化引擎的架构解析与实战指南 【免费下载链接】March7thAssistant 🎉 崩坏:星穹铁道全自动 Honkai Star Rail 🎉 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 一、技术…...

RMBG-1.4效果对比:AI净界 vs Photoshop vs Remove.bg 发丝处理实测

RMBG-1.4效果对比:AI净界 vs Photoshop vs Remove.bg 发丝处理实测 你是不是也遇到过这样的烦恼?想给女朋友拍的照片换个背景,结果头发边缘抠得像狗啃的一样;想给产品做个透明底图,边缘总有一圈白边;用在线…...

SEER‘S EYE 模型微调实战:使用特定游戏社群数据提升领域表现

SEERS EYE 模型微调实战:使用特定游戏社群数据提升领域表现 最近在折腾AI模型时,发现一个挺有意思的事儿。很多朋友拿到一个通用的大语言模型,比如SEERS EYE,直接去问它一些特别垂直领域的问题,比如某个小众游戏的规则…...

【仅限首批200名开发者】MCP SDK 2026 LTS版预发布体验包泄露:含自动生成Binding DSL + 智能错误翻译引擎

第一章:MCP跨语言SDK开发范式的根本性演进传统SDK开发长期受限于语言绑定、协议耦合与生成工具链割裂,导致同一MCP(Model Control Protocol)服务需为Python、Go、TypeScript等语言分别维护独立代码库,版本同步滞后、错…...

Sonic数字人实战:如何用一张照片和一段音频,制作虚拟主播短视频?

Sonic数字人实战:如何用一张照片和一段音频,制作虚拟主播短视频? 想象一下,你手头有一张精心拍摄的人物照片,还有一段录制好的音频解说。有没有一种方法,能让照片里的人“活”过来,根据音频内容…...

java2python智能转换引擎技术解析与实战指南:从语法树到跨语言迁移

java2python智能转换引擎技术解析与实战指南:从语法树到跨语言迁移 【免费下载链接】java2python Simple but effective library to translate Java source code to Python. 项目地址: https://gitcode.com/gh_mirrors/ja/java2python 价值定位:解…...

深入解析Vivado FIFO的Standard与FWFT模式:性能对比与应用场景

1. 从“等指令”到“直接拿”:理解FIFO的两种工作模式 如果你刚开始接触FPGA设计,尤其是用Xilinx的Vivado工具,那么FIFO(First In First Out,先进先出)存储器绝对是你绕不开的一个核心IP。它就像数据流水线…...

新手福音:通过快马生成photoshop滤镜代码,轻松理解图像处理核心原理

最近想入门图像处理,但一看到那些复杂的算法公式和矩阵运算就有点发怵。Photoshop里的各种滤镜效果很酷,可它们到底是怎么实现的呢?光看理论总觉得隔了一层。后来我发现,如果能亲手运行并修改一段实现这些效果的代码,理…...

CLI-Anything 实战评测

CLI-Anything 实战评测:给 GIMP 生成 CLI 接口,Agent 操控专业软件的新思路本文基于实际使用和源码调试,分析 CLI-Anything 项目的技术实现、存在的问题及适用场景。背景 最近 GitHub 上有个叫 CLI-Anything 的项目(https://githu…...

WechatDecrypt:让微信数据管理不再难的本地解密开源方案

WechatDecrypt:让微信数据管理不再难的本地解密开源方案 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾遇到更换手机时微信聊天记录迁移失败的窘境?是否担心第三方备份工…...

3步拯救爆满C盘:Windows Cleaner让系统垃圾一键清空

3步拯救爆满C盘:Windows Cleaner让系统垃圾一键清空 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否遇到过这样的窘境:当准备紧急保…...

手眼标定实战:从9点标定到精准抓取

1. 手眼标定:让机械手“看得见”也“抓得准” 想象一下,你闭着眼睛去拿桌上的水杯,是不是很容易碰倒?但如果睁开眼睛,你就能轻松地、精准地拿到它。这个“睁眼”的过程,对于工业机器人来说,就是…...

Psins工具箱核心子函数深度剖析:从初始化到状态更新的关键模块

1. 从零开始:理解Psins工具箱的“地基”函数 如果你刚开始接触Psins这个惯性导航开源工具箱,面对里面密密麻麻的.m文件,是不是感觉有点无从下手?别急,这感觉我太懂了。当年我第一次打开Psins的代码库,也是被…...

深入解析Linux核间通讯:基于RPMSG与VirtIO的架构设计与实现

1. 核间通讯:为什么我们需要RPMSG与VirtIO? 如果你玩过嵌入式开发,尤其是那种带有多核处理器的芯片,比如NXP的i.MX8系列,你肯定遇到过一个问题:一个核上跑着Linux,另一个核上跑着实时操作系统&a…...

JavaScript数组扁平化实战指南:7种高效方法解析与性能优化策略

1. 为什么你需要掌握数组扁平化? 如果你写过JavaScript,我敢打赌你肯定遇到过这种数据结构:一个数组,里面套着另一个数组,甚至可能再套一个,就像俄罗斯套娃一样。比如从后端API拿到一个商品列表&#xff0c…...

深度学习核心特性深度解析:从技术本质到行业实践

深度学习核心特性深度解析:从技术本质到行业实践 一、多层非线性变化:深度学习的核心技术基石二、自动提取特征:告别人工特征工程的繁琐三、大数据与计算能力:深度学习的硬件与数据支撑(一)海量标注数据是前…...

Yi-Coder-1.5B实战:VSCode配置C/C++环境一键部署指南

Yi-Coder-1.5B实战:VSCode配置C/C环境一键部署指南 1. 引言 你是不是也遇到过这样的情况:刚装好VSCode准备写C代码,却发现编译运行都报错,配置环境变量、安装插件、设置路径...一堆麻烦事让人头疼。传统的C/C开发环境配置确实复…...

如何通过Zotero Style插件解决文献管理三大痛点

如何通过Zotero Style插件解决文献管理三大痛点 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地址: https://gitcode.…...

Linux 最快 IPC 的原理与实战精髓

一、共享内存的诞生:为何它是最快的 IPC? 在学习 System V 共享内存(后文简称 “共享内存”)之前,我们先思考一个问题:为什么管道、消息队列的通信效率远不如共享内存? 答案藏在数据拷贝的次数…...

3步解决音画不同步:LosslessCut无损编辑实战指南

3步解决音画不同步:LosslessCut无损编辑实战指南 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字内容创作中,视频音频不同步是最令人沮丧…...

12. ESP32-S3 WIFI AP模式TCP通信实战:从服务端到客户端的双向数据收发

ESP32-S3 WIFI AP模式TCP通信实战:从服务端到客户端的双向数据收发 最近好几个朋友在问,用ESP32-S3做智能家居设备或者无线调试工具时,怎么让设备之间直接通信,不经过路由器?这种场景其实挺常见的,比如两个…...

使用VSCode调试AIVideo开发环境的完整指南

使用VSCode调试AIVideo开发环境的完整指南 1. 引言 当你开始接触AIVideo这个强大的AI视频创作平台时,可能会遇到各种开发调试的问题。作为一个一站式全流程AI长视频创作工具,AIVideo集成了文案生成、分镜设计、视频渲染、语音合成等多个模块&#xff0…...

Wan2.2-T2V-A5B提示词工程:Java开发者如何编写高效生成指令

Wan2.2-T2V-A5B提示词工程:Java开发者如何编写高效生成指令 你是不是觉得,让AI模型生成一段视频,就像在跟一个不太懂行的产品经理沟通需求?你明明想的是“一个程序员在深夜的办公室里,对着屏幕上的Bug沉思&#xff0c…...