DriveWorld:一个预训练模型大幅提升检测+地图+跟踪+运动预测+Occ多个任务性能...

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

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

>>点击进入→自动驾驶之心端到端自动驾驶技术交流群

编辑 | 自动驾驶之心

写在前面

以视觉为中心的自动驾驶技术近期因其较低的成本而引起了广泛关注,而预训练对于提取通用表示至关重要。然而,当前的以视觉为中心的预训练通常依赖于2D或3D预训练任务,忽视了自动驾驶作为4D场景理解任务的时序特征。这里通过引入一个基于世界模型的自动驾驶4D表示学习框架“DriveWorld”来解决这一挑战,该框架能够从多摄像头驾驶视频中以时空方式进行预训练。具体来说,提出了一个用于时空建模的记忆状态空间模型,它由一个动态记忆库模块组成,用于学习时间感知的潜在动态以预测未来变化,以及一个静态场景传播模块,用于学习空间感知的潜在静态以提供全面的场景上下文。此外,还引入了一个任务提示,以解耦用于各种下游任务的任务感知特征。实验表明,DriveWorld在各种自动驾驶任务上取得了令人鼓舞的结果。当使用OpenScene数据集进行预训练时,DriveWorld在3D检测中实现了7.5%的mAP提升,在线地图中的IoU提升了3.0%,多目标跟踪中的AMOTA提升了5.0%,运动预测中的minADE降低了0.1m,占用预测中的IoU提升了3.0%,规划中的平均L2误差减少了0.34m。

领域背景

自动驾驶是一项复杂的任务,它依赖于全面的4D场景理解。这要求获得一个稳健的时空表示,能够处理涉及感知、预测和规划的任务。由于自然场景的随机性、环境的部分可观察性以及下游任务的多样性,学习时空表示极具挑战性。预训练在从大量数据中获取通用表示方面起着关键作用,使得能够构建出包含共同知识的基础模型。然而,自动驾驶中时空表示学习的预训练研究仍然相对有限。

我们的目标是利用世界模型来处理以视觉为中心的自动驾驶预训练中的4D表示。世界模型在表示代理对其环境的时空知识方面表现出色。在强化学习中,DreamerV1、DreamerV2和DreamerV3利用世界模型将代理的经验封装在预测模型中,从而促进了广泛行为的习得。MILE利用3D几何作为归纳偏差,直接从专家演示的视频中学习紧凑的潜在空间,以在CARLA模拟器中构建世界模型。ContextWM和SWIM利用丰富的野外视频对世界模型进行预训练,以增强下游视觉任务的高效学习。最近,GAIA-1和DriveDreamer构建了生成性的世界模型,利用视频、文本和动作输入,使用扩散模型创建逼真的驾驶场景。与上述关于世界模型的先前工作不同,本文的方法主要侧重于利用世界模型学习自动驾驶预训练中的4D表示。

驾驶本质上涉及与不确定性的斗争。在模糊的自动驾驶场景中,存在两种类型的不确定性:偶然不确定性,源于世界的随机性;以及认知不确定性,源于不完美的知识或信息。如何利用过去的经验来预测可能的未来状态,并估计自动驾驶中缺失的世界状态信息仍然是一个未解决的问题。本文探索了通过世界模型进行4D预训练以处理偶然不确定性和认知不确定性。具体来说,设计了记忆状态空间模型,从两个方面减少自动驾驶中的不确定性。首先,为了处理偶然不确定性,我们提出了动态记忆库模块,用于学习时间感知的潜在动态以预测未来状态。其次,为了缓解认知不确定性,我们提出了静态场景传播模块,用于学习空间感知的潜在静态特征,以提供全面的场景上下文。此外,引入了任务提示(Task Prompt),它利用语义线索作为提示,以自适应地调整特征提取网络,以适应不同的下游驾驶任务。

为了验证提出的4D预训练方法的性能,在nuScenes训练集和最近发布的大规模3D占用率数据集OpenScene上进行了预训练,随后在nuScenes训练集上进行了微调。实验结果表明,与2D ImageNet预训练、3D占用率预训练和知识蒸馏算法相比,4D预训练方法具有显著优势。4D预训练算法在以视觉为中心的自动驾驶任务中表现出极大的改进,包括3D检测、多目标跟踪、在线建图、运动预测、占用率预测和规划。

网络结构

DriveWorld的总体框架如下所示,由于自动驾驶严重依赖于对4D场景的理解,方法首先涉及将多摄像头图像转换为4D空间。在所提出的时空建模的记忆状态空间模型中,有两个基本组件:动态记忆库,它学习时间感知的潜在动态以预测未来状态;以及静态场景传播,它学习空间感知的潜在静态特征以提供全面的场景上下文。这种配置有助于解码器为当前和未来时间步重建3D占用和动作的任务。此外,基于预训练的文本编码器设计了任务prompt,以自适应地为各种任务解耦任务感知特征。

f3f5fd9de9387a3261b456e2fdd7964f.png

提出的记忆状态空间模型(MSSM)的总体架构。MSSM将传输的信息分为两类:时间感知信息和空间感知信息。动态记忆库模块利用运动感知层归一化(MLN)来编码时间感知属性,并与动态更新的记忆库进行信息交互。同时,静态场景传播模块使用BEV特征来表示空间感知的潜在静态信息,这些信息直接被传送到解码器。

dbad8a8fe5738f7cc6a61949bf4973b8.png

虽然通过世界模型设计的预训练任务使得时空表示的学习成为可能,但不同的下游任务侧重于不同的信息。例如,3D检测任务强调当前的空间感知信息,而未来预测任务则优先考虑时间感知信息。过分关注未来的信息,如车辆未来的位置,可能会对3D检测任务产生不利影响。为了缓解这个问题,受到少样本图像识别中语义提示和多任务学习中视觉示例驱动的提示的启发,引入了“任务提示”的概念,为不同的头提供特定的线索,以指导它们提取任务感知特征。认识到不同任务之间存在的语义联系,利用大型语言模型来构建这些任务提示。

损失函数

DriveWorld的预训练目标涉及最小化后验和先验状态分布之间的差异(即Kullback-Leibler(KL)散度),以及最小化与过去和未来3D占用,即CrossEntropy损失(CE)和L1损失。这里描述了模型在T个时间步上观察输入,然后预测未来L步的3D占用和动作。DriveWorld的总损失函数是:

a85de13f4ae89a7475c5858227be643f.png

实验对比分析

数据集。在自动驾驶数据集nuScenes 和最大规模的3D占用数据集OpenScene 上进行预训练,并在nuScenes上进行微调。评估设置与UniAD 相同。

预训练。与BEVFormer 和UniAD 一致,使用ResNet101-DCN 作为基础骨干网络。对于3D占用预测,设置了16 × 200 × 200的体素大小。学习率设置为2×10−4。默认情况下,预训练阶段包含24个epoch。

微调。在微调阶段,保留用于生成BEV特征的预训练编码器,并对下游任务进行微调。对于3D检测任务,我们使用了BEVFormer 框架,微调其参数而不冻结编码器,并进行了24个epoch的训练。对于其他自动驾驶任务,我们使用了UniAD 框架,并将我们微调后的BEVFormer权重加载到UniAD中,对所有任务遵循标准的20个epoch的训练协议。对于UniAD,我们遵循其实验设置,这包括在第一阶段训练6个epoch,在第二阶段训练20个epoch。实验使用8个NVIDIA Tesla A100 GPU进行。

910259d1cf4c9e5eb1e6f3f5d37dd7e3.png

Occ任务和BEV-OD任务上的提升一览:

d129ab8cc7cee098e0cf1344c4c3fa98.png

更多目标跟踪和规划任务性能提升一览:

036df0ca146bef9aaf87e7052605562c.png 73f44823c86553918b735e7efcf7754a.png 26d678cfd6c5a6955ff6409b5e9b4ebd.png

参考

[1] DriveWorld: 4D Pre-trained Scene Understanding via World Models for Autonomous Driving

投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!

① 全网独家视频课程

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

c2d975e8bede70049663fa45ec50b392.png 网页端官网:www.zdjszx.com

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

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

44fbbce030e54168777db098f21a70fd.png

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

自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!

自动驾驶感知:目标检测、语义分割、BEV感知、毫米波雷达视觉融合、激光视觉融合、车道线检测、目标跟踪、Occupancy、深度估计、transformer、大模型、在线地图、点云处理、模型部署、CUDA加速等技术交流群;

多传感器标定:相机在线/离线标定、Lidar-Camera标定、Camera-Radar标定、Camera-IMU标定、多传感器时空同步等技术交流群;

多传感器融合:多传感器后融合技术交流群;

规划控制与预测:规划控制、轨迹预测、避障等技术交流群;

定位建图:视觉SLAM、激光SLAM、多传感器融合SLAM等技术交流群;

三维视觉:三维重建、NeRF、3D Gaussian Splatting技术交流群;

自动驾驶仿真:Carla仿真、Autoware仿真等技术交流群;

自动驾驶开发:自动驾驶开发、ROS等技术交流群;

其它方向:自动标注与数据闭环、产品经理、硬件选型、求职面试、自动驾驶测试等技术交流群;

扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

11dd44ae994f34db9b5bd4fa55e75db5.jpeg

④【自动驾驶之心】硬件专场

096da837c4acf7a2ac1e2699d1c80c52.jpeg

管理后台HTML页面是Web开发中一种常见的实践,主要用于构建企业或组织内部的管理界面,具备数据监控、用户管理、内容编辑等功能。本文将探讨一套美观易用的二级菜单目录设计,帮助开发者创建高效且直观的后台管理系统。 HTML5:作为超文本标记语言的最新版本,HTML5增强了网页的互动性和可访问性,提供了更多语义元素,如<header>、<nav>、<section>、<article>等,有助于清晰地定义网页结构。在管理后台中,HTML5可用于构建页面布局,划分功能区域,并集成多媒体内容,如图像、音频和视频。 界面设计:良好的管理后台界面应具备清晰的导航、一致的布局和易于理解的图标。二级菜单目录设计能够有效组织信息,主菜单涵盖大类功能,次级菜单则提供更具体的操作选项,通过展开和折叠实现层次感,降低用户认知负担。 CSS:CSS是用于控制网页外观和布局的语言,可对HTML元素进行样式设置,包括颜色、字体、布局等。在管理后台中,CSS能够实现响应式设计,使页面在不同设备上具有良好的显示效果。借助CSS预处理器(如Sass或Less),可以编写更高效、模块化的样式代码,便于维护。 文件结构: guanli.html:可能是管理页面的主入口,包含后台的主要功能和布局。 xitong.html:可能是系统设置或配置页面,用于管理员调整系统参数。 denglu.html:登录页面,通常包含用户名和密码输入框、登录按钮,以及注册或忘记密码的链接。 image文件夹:存放页面使用的图片资源,如图标、背景图等。 css文件夹:包含后台系统的样式文件,如全局样式表style.css或按模块划分的样式文件。 响应式设计:在移动设备普及的背景下,管理后台需要支持多种屏幕尺寸。通过媒体查询(Media Queries)和流式布局(Fluid Grids),可以确保后台在桌面、平板和手机上都能良好展示。
双闭环直流电机调速系统是一种高效且应用广泛的直流调速技术。通过设置转速环和电流环两个闭环,系统能够对电机的转速和电流进行精准控制,从而提升动态响应能力和稳定性,广泛应用于工业自动化领域。 主电路设计:主电路采用三相全控桥整流电路,将交流电转换为可调节的直流电,为电机供电。晶闸管作为核心元件,通过调节控制角α实现输出电压的调节。 元部件设计:包括整流变压器、晶闸管、电抗器等元件的设计与参数计算,这些元件的性能直接影响系统的稳定性和效率。 保护电路:设计过载保护、短路保护等保护电路,确保系统安全运行。 驱动电路:设计触发电路和脉冲变压器,触发电路用于触发晶闸管导通,脉冲变压器用于传递触发信号。 控制器设计:系统核心为转速调节器(ASR)和电流调节器(ACR),分别对转速和电流进行调控。检测电路用于采集实际转速和电流值并反馈给调节器。 仿真分析:利用MATLAB/SIMULINK等工具对系统进行仿真分析,验证其稳定性和性能指标是否达标。 方案确定与框图绘制:明确系统构成及各模块连接方式。 主电路设计:选择整流电路形式,设计整流变压器、晶闸管等元部件并计算参数。 驱动电路设计:设计触发电路和脉冲变压器,确保晶闸管准确触发。 控制器设计: 转速调节器(ASR):根据转速指令调整实际转速。 电流调节器(ACR):根据ASR输出指令调整电流,实现快速响应。 参数计算:计算给定电压、调节器、检测电路、触发电路和稳压电路的参数。 仿真分析:通过软件模拟系统运行状态,评估性能。 电气原理图绘制:完成调速控制电路的电气原理图绘制。 双闭环控制策略:转速环在外,电流环在内,形成嵌套结构,提升动态响应能力。 晶闸管控制角调节:通过改变控制角α调节输出电压,实现转速平滑调节。 仿真分析:借助专业软件验证设计的合理性和有效性。 双闭环直流电机调速系统设计涉及主电路、驱动电路和控制器设计等多个环节,通过仿
电池管理系统(Battery Management System,简称BMS)是电动汽车及储能系统的关键部件,主要负责监控、保护、控制和优化电池组性能。本文重点探讨基于Simulink构建的BMS模型。Simulink是Matlab环境下一款强大的数学建模工具,广泛应用于工程仿真与控制设计,其可视化平台让复杂系统如电池BMS的设计和测试更加直观。 电池均衡是BMS的核心功能之一,旨在确保电池组中各单体电池电压和容量一致,避免因个别电池过充或过放影响系统性能。在Simulink模型中,电池均衡可通过电流注入或能量转移实现,涉及电流控制电路和算法的建模,例如电阻分压、电感平衡或开关电容等方法。 SOC计算(State of Charge,即电池荷电状态)也是BMS的重要功能,它是评估电池剩余能量的关键指标。在BMS模型中,SOC估算通常基于电池的电压、电流、温度数据以及特定电池模型,如阶跃响应模型、等效电路模型或基于物理的模型。这些模型能够精准跟踪电池状态,为充电策略和故障检测提供依据。 在相关文件中,“license.txt”可能包含Simulink模型的使用许可信息,这对于模型的商业应用和合规性至关重要。“batteryBalancing”文件可能是电池均衡模块的具体实现,详细描述了Simulink构建的均衡算法,包括均衡触发条件、控制逻辑及电路模型等。 一个完整的BMS Simulink模型还应涵盖电池健康状态(SOH,State of Health)估计、热管理、安全保护(如过压、欠压、过流保护等)以及通信接口(用于与车辆其他系统交互)等功能模块。这些模块需要精心设计和参数校准,以确保BMS在各种工况下保持稳定性和准确性。 在开发BMS模型时,用户可以借助Matlab的Simulink库,如控制库、信号处理库和电力电子库,并结合电池特性的实验数据进行模型搭建和仿真验证。
`!occ.count(s[rk + 1])` 这段代码涉及到 C++ 中的标准模板库 (STL) 的 `std::unordered_map` 或者 `std::map` 使用场景。 ### 解释: - **`occ`**:这里假设 `occ` 是一个哈希表(如 `std::unordered_map`),用于存储字符到整数的映射,通常用来统计字符串中某个字符是否出现过以及出现了多少次。 - **`.count(key)`**:这是 STL 容器(例如 map、unordered_map 等)的一个成员函数。对于给定的关键字 key,如果该关键字存在于容器内,则返回值为 1;如果不存在则返回值为 0。 因此,整个表达式 `!occ.count(s[rk + 1])` 表示的是检查当前索引位置 `(rk+1)` 所对应的字符是否存在於哈希表 `occ` 内部。这里的感叹号 (`!`) 表达了取反操作——即当结果不是存在的时候才成立。 换句话说,这个条件是用来判断 字符串s从下标 rk+1处取得的那个元素 是否尚未被记录进哈希表里: #### 示例情景 比如在滑动窗口算法解决“最长无重复子串”这类题目时可能会看到这样的结构,目的是为了保证新加入窗口内的字母之前从未遇到过。 ### 模拟解释代码片段的作用过程 假设有这样一个例子: ```cpp string s = "abcda"; int rk = 2; unordered_map<char, int> occ; // 假设已经将 'a', 'b', 'c' 加入到了 occ 中 if (!occ.count(s[rk + 1])) { // 如果 s[3] ('d') 不在 occ... } ``` 在这个条件下,“d”不在先前存入 `occ` 的那些键之中,所以会进入 if 分支处理相应的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值