一句话定位
Drive-WM 是首个”多视角”驾驶世界模型:用潜在视频扩散联合建模环视 6 路摄像头未来视频,并首次把想象出来的多种未来 rollout 接入现成端到端规划器(VAD),用基于图像的奖励从”直行/左转/右转”里挑最优轨迹(CVPR 2024)。
背景与定位
端到端自动驾驶(如 VAD、UniAD)直接从多传感器输入回归规划轨迹,但纯模仿专家轨迹训练的规划器在分布外(OOD)场景会崩——论文的示范是把自车横向平移 0.5 m 离开车道中心线,VAD 就规划不出合理轨迹。作者提出用”世界模型”预判规划器退化:在决策前先视觉化地想象多个未来、拿到反馈,再选安全动作。
这属于”driving world model”范式。与同期工作的区别是核心贡献:
- gaia-1-wayve / DriveDreamer(arXiv:2309.09777):action-conditional diffusion,但都是单视角视频,无法覆盖 BEV 感知/规划所需的 360° 环境。
- BEVGen / BEVControl / MagicDrive:多视角图像生成,但无时序视频。
- Dreamer 系列(DreamerV2/V3)、DayDreamer、MILE:在游戏 / 实验室 / CARLA 仿真里学世界模型,不接真实道路端到端规划器。
Drive-WM 补的空白是”多视角 + 视频 + 接真实端到端规划器”三者合一,且世界模型工作在高分辨率像素空间(而非低分辨率图像或矢量状态空间,后者需额外矢量标注、受感知噪声影响,且无法表示喷水、破损路面这类非矢量化事件)。
模型架构
Backbone 是潜在视频扩散(latent video diffusion),从 Stable Diffusion 权重初始化,在其上加时序层与多视角层,构成一个 3D UNet 去噪器 f_{θ,φ,ψ}。
- 潜表示:VAE 编码器把多视角视频 x ∈ R^{T×K×3×H×W} 编成 latent z ∈ R^{T·K×C×Ĥ×Ŵ}(K=6 视角)。去噪目标是标准 denoising score matching(预测噪声 ε)。
- 三组参数:
- θ(spatial):2D 空间层,逐帧逐视角编码 latent;这是从 SD 继承的图像扩散主干。
- φ(temporal encoding layers):接在每个 block 的 2D 空间层之后(follow VideoLDM)。先把 latent 重排 (TK)CHW→KCTHW 在 THW 上做 3D 卷积,再重排为 (KHW)TC 在时间维做多头自注意力。
- ψ(multiview encoding layers):把 latent 重排 (KHW)TC→(THW)KC 在视角维做自注意力,让各视角风格与整体结构一致。
- 动作条件(action-conditioning):动作定义为一个时间步内自车位移 (Δx, Δy)(与 VAD 输入兼容),用 MLP 映射到 a ∈ R^{2×d}。也支持 speed / steering 信号做加速减速、左右打方向的可控生成。
- 统一条件接口(unified condition interface):把所有异构条件都编码到同一 d 维空间后拼接。图像条件(初始帧 + 参考视角)用 ConvNeXt 编码;layout 条件(3D 框、HD map、BEV 分割)先投影到 2D 透视图再同样编码;文本条件(视角/天气/光照描述)用 CLIP 编码;动作条件走 MLP。某帧 t 的条件为 c_t = [i_0, l_0, e_0, a_t] ∈ R^{(n+k+m+2)×d},在 3D UNet 里逐帧与 latent 做 cross-attention。
- 视角一致性 / factorization(consistency 核心创新):联合建模只能让各视角风格相近,无法保证重叠区严格一致。作者把联合分布 p(x_{1..K}) 因子化:把 6 视角分成参考视角 x_r(nuScenes 里选 F/BL/BR)与拼接视角 x_s(FL/B/FR),建模 p(x) = p(x_r | x_pre) · p(x_s | x_r, x_pre)。参考视角先由联合模型生成,拼接视角再以相邻两个参考视角(+ 之前生成的同视角帧 x_i’)为条件生成。x_pre 是上一段视频的最后两帧,保证时序连贯与长视频外推。
- 配置数字:输入分辨率 384×192(nuScenes);视频帧长 T=8;条件按 20% 概率随机丢弃做 CFG。
数据
- 主数据集 nuScenes:700 训练 + 150 验证场景,每段约 20 秒,6 路环视相机全 360° 覆盖。原图 1600×900,先裁到 1600×800(丢弃顶部)再 resize 到 384×192。
- 条件构造:3D 框投影到像面用八边形角点画位置尺寸、颜色区分类别;HD map 把矢量线投到像面、颜色区分类型;BEV 分割沿用 CVT 流程;文本从各场景描述里抽取;规划条件训练用 GT 自车位移、推理用 VAD 输出;ego-action 抽取每帧车速与转向。
- 数据 curation(针对动作生成):nuScenes 动作分布严重不均衡(大量帧转向 <30°、车速 10–20 m/s),导致对罕见组合泛化差。作者把每条轨迹切成单一行为(左转/直行/右转)片段,得 1048 个 unique clips;按平均转向角与车速数字化聚类——车速 [0,40] m/s 分 10 bin(+第 11 bin 收 >40)、转向 [-150,150]° 分 30 bin(+两个极端 bin),构成 32×11 网格;每个 bin 采 N=36 clip(多则随机采、少则循环补齐),最终 7272 clips 得到平衡训练集。
- 跨数据集:Waymo Open Dataset 只用前视相机、分辨率 768×512(map 条件按 OpenLane 处理),用与 nuScenes 相同超参即可迁移。
- 世界模型工作在像素空间,可从大量无标注数据里学到喷水、破损路面等非矢量化事件——这是与矢量状态空间世界模型的关键数据面区别。
训练方法
- 目标函数:denoising score matching(预测噪声 ε 的 L2)。
- 两阶段 pipeline:
- 先训条件图像 LDM(θ):以 HD map / BEV 分割 / 3D 框 / 文本为条件,所有条件在 token-length 维拼接,从 SD 权重初始化。60,000 iterations,total batch size 768,AdamW,lr 1e-4。
- 冻结 θ,加入时序层 φ 与多视角层 ψ 构成多视角视频模型并微调。40,000 iterations,batch size 32,视频帧长 T=8,AdamW,lr 5e-5。
- action-based 生成:与 layout-based 唯一区别是逐帧条件信息不同,训练与结构其余相同。
- factorization 模型训练:与联合建模基本一致,额外把参考视角当图像条件。训练样本为 {x_{(i-1)mod6}, x_i, x_i’, x_{(i+1)mod6}},其中 x_i 是随机采的拼接视角、view 维 N=1(每次只生成单视角)。
- CFG:训练时每个条件独立 20% 丢弃;推理 CFG=5.0。
- 采样:DDIM。推理 50 步,随机性 η=1.0。长视频用已生成帧作为后续条件自回归外推。
- 规划侧不额外训练世界模型(tree rollout 用现成 VAD 采样轨迹);OOD 恢复实验里是微调规划器(用世界模型生成的、带”开回车道”轨迹监督的 OOD 视频去 fine-tune VAD)。
Infra(训练 / 推理工程)
- GPU:全部实验在 A40(48 GB)上跑。GPU 数量与 GPU-hours 未披露;并行策略、精度(fp16/bf16)未披露。
- 推理:50 采样步 DDIM、η=1.0、CFG=5.0。FPS / 控制频率 / 端上延迟 / 边缘硬件均未披露——世界模型此处定位为离线/仿真与规划辅助,论文未给实时性指标。
- 代码基于 HuggingFace diffusers;README 列出图像 / 视频 / 动作条件模型权重与训练代码为”coming soon”(截至归档时未见正式放出)。
评测 benchmark
全部来自论文一手结果(nuScenes,除注明外训练在 train split、条件取自 val split)。
生成质量(Table 1a)
多视角图像生成 FID↓:Drive-WM 12.99 vs MagicDrive 16.20 / BEVControl 24.85 / BEVGen 25.54。
多视角视频生成:Drive-WM FID 15.8 / FVD 122.7(对比的是单视角视频方法 DriveDreamer 52.6 / 452.0、DriveGAN 73.4 / 502.3——Drive-WM 是首个多视角视频)。
可控性(Table 1b,用预训练感知模型在生成视频上评)
| 方法 | mAP_obj↑ | mAP_map↑ | mIoU_fg↑ | mIoU_bg↑ |
|---|---|---|---|---|
| GT(真实图像上限) | 37.78 | 59.30 | 36.08 | 72.36 |
| BEVControl | 19.64 | - | 26.80 | 60.80 |
| MagicDrive | 12.30 | - | 27.01 | 61.05 |
| Drive-WM | 20.66 | 37.68 | 27.19 | 65.07 |
多视角一致性(KPM,新提出的 Key Points Matching 指标,用 LoFTR 匹配相邻视角重叠区关键点,取生成 / 真实匹配数之比,val 集每场景取 8 帧)
联合建模 45.8% → 因子化生成 94.4%(同时 FVD 122.7→116.6、FID 15.8→16.4,质量不降)。这是全文最亮的消融跳变。
消融
- 统一条件(Table 2c):仅 temp emb FID 20.3 / FVD 212.5 / KPM 31.5;仅 layout cond FID 18.9 / FVD 153.8 / KPM 44.6;两者全开 15.8 / 122.7 / 45.8——layout 条件对质量与一致性都关键。
- 模型设计(Table 2d):无时序/视角层 FID 23.3 / FVD 228.5 / KPM 40.8;加时序层 16.2 / 127.1 / 40.9;再加视角层 15.8 / 122.7 / 45.8。
规划(nuScenes 开环,L2 与碰撞率,Table 3)
用 tree-based planning 从”直行/左转/右转”三条命令里选最优,替代 GT 命令:
| 方法 | L2 Avg (m)↓ | Collision Avg (%)↓ |
|---|---|---|
| VAD(GT cmd,上限) | 0.72 | 0.22 |
| VAD(rand cmd) | 1.02 | 0.93 |
| Drive-WM(tree rollout) | 0.80 | 0.26 |
奖励消融(Table 4):map reward + object reward 组合优于单项,碰撞率尤其受益(合并后 0.26%)。
OOD 恢复(Table 5,自车横向偏移 0.5 m 造 OOD)
正常 VAD L2 0.72 / 碰撞 0.22 → OOD 直接崩到 L2 1.02 / 碰撞 1.59 → 用世界模型生成的 OOD 数据微调规划器后回到 L2 0.82 / 碰撞 0.91。
其它:可生成训练集里没有的反事实事件(雨天 T 型路口掉头、驶入非可行驶区);可用 GPT-4V 作奖励函数评估”前方有水坑”等非矢量化风险;Waymo 768×512 高分辨率迁移。
创新点与影响
- 首个多视角驾驶世界模型:把单视角驾驶视频生成推进到 6 路环视一致视频,能对接 BEV 感知/规划。
- factorization 提一致性:参考视角 + 拼接视角的条件分解把重叠区一致性 KPM 从 45.8% 拉到 94.4%,且提出 KPM 这一新一致性度量。
- 统一条件接口:图像/文本/3D layout/动作全编码到同一 d 维空间拼接后 cross-attention,简化异构条件生成。
- 首次把世界模型接进真实端到端规划:tree-based rollout + 基于图像的奖励(map reward 距路缘/车道中心 + object reward 纵横向距他车,取乘积),并展示用生成 OOD 数据微调规划器可显著恢复分布外性能。为后续 vista、drivedreamer-2、gaia-2-wayve 等驾驶世界模型开了”多视角视频 + 规划闭环”的路。
- 作者自陈局限:规划实验是 nuScenes 开环评测(非闭环仿真);tree rollout 只从三条离散命令里选;world model 推理走多步扩散、未报实时性,实用上更偏离线仿真 / 数据增强 / corner-case 探索;OOD 恢复依赖对规划器再微调而非世界模型直接给策略。
原始链接
- arXiv abstract:https://arxiv.org/abs/2311.17918
- arXiv PDF:https://arxiv.org/pdf/2311.17918
- 项目主页(CVPR 2024,含全部演示视频):https://drive-wm.github.io/
- 代码:https://github.com/BraveGroup/Drive-WM
一手源存档(sources/)
- drive-wm-driving-into-the-future—github-readme — GitHub README(作者/引用/权重 TODO),来源 https://github.com/BraveGroup/Drive-WM
- drive-wm-driving-into-the-future—project-page — 项目主页快照(CVPR 2024、affiliations、方法概览),来源 https://drive-wm.github.io/
- 论文全文:arXiv:2311.17918(arXiv 原文 PDF/HTML,不入 git;正文数字均取自此)