一句话定位
Drive-OccWorld(AAAI 2025 Oral)是一个纯视觉的 4D 占据世界模型:历史多视角图像经 BEV 编码后存入带语义/运动条件归一化的记忆队列,自回归的世界解码器据此预测未来占据与流,并可注入速度/转角/轨迹/高层指令等动作条件做可控生成;作者进一步把这个世界模型接上一个占据代价规划器,做”预测未来状态→按代价选轨迹→轨迹回灌世界模型”的连续滚动式端到端规划。
背景与定位
同期驾驶世界模型大体分两条路线:一是像 gaia-1-wayve、drivedreamer、drive-wm-driving-into-the-future 那样的 2D 图像/视频生成模型,用自回归 transformer 或扩散模型直接生成未来驾驶视频;二是像 occworld、cam4docc-benchmark 那样的 3D 体素/占据预测模型,用 VQ-VAE+自回归 transformer 或改造式感知网络预测未来占据。这两类工作大多止步于”数据生成”或”表征预训练”(如专注视觉预训练的 vidar-visual-point-cloud-forecasting),很少把世界模型的未来预测能力真正接入端到端规划闭环——Drive-WM 是个例外,但它用的是图像空间的奖励函数,没有充分利用占据的 3D 几何结构。
Drive-OccWorld 的定位是在 cam4docc-benchmark 定义的相机 4D 占据预测协议(膨胀 GMO / 细粒度 GMO / GMO+GSO 联合)之上,一次性做三件事:把 occworld 式的”体素+自回归预测”架构做成动作可控(而非只能无条件生成)、用语义/运动条件归一化改进记忆机制、并把占据预测接到一个显式的代价规划器上做闭环端到端规划评测(对齐 UniAD/VAD/ST-P3 的开环规划协议),是”占据世界模型 + 规划器”路线的代表性尝试。
模型架构
三段式流水线(历史编码器 → 记忆队列 → 世界解码器)加一个占据代价规划器:
-
History Encoder:沿用 BEVFormer(Li et al. 2022)式的视觉 BEV 编码器——图像 backbone + FPN neck,外加 6 层 transformer encoder,把多视角相机图像转成 BEV embedding,BEV query 空间分辨率
h,w=200。 -
Memory Queue + 语义-运动条件归一化:核心创新模块。对 BEV embedding
F^bev ∈ R^{h×w×c}先做无仿射的 LayerNorm,再用条件推出的(γ*, β*)做自适应仿射调制:F̃^bev = γ* · LayerNorm(F^bev) + β*。三种条件来源:- 语义条件:轻量 head + argmax 预测体素级语义标签
S ∈ R^{h×w×d×1},one-hot 编码后卷积得到(γ^s, β^s)。 - 自车运动条件:自车位姿变换矩阵
E_{-t}^{+t}=[R,T]展平后经 MLP 得到(γ^e, β^e)。 - 他车运动条件:预测体素级 3D 反向向心流
F ∈ R^{h×w×d×3}(每个体素指向其 t-1 时刻所属 3D 实例中心的方向),编码为(γ^f, β^f)。
- 语义条件:轻量 head + argmax 预测体素级语义标签
-
World Decoder:3 层、每层 256 通道的自回归 transformer。可学习 BEV query 依次做可变形自注意力、与历史记忆的(可变形)时序交叉注意力、与动作条件的条件交叉注意力,最后过 FFN 输出未来 BEV embedding;再用 channel-to-height 操作把预测 head 输出的 16 通道转成 3D 语义占据与流
(S,F) ∈ R^{200×200×16}。 -
动作条件与统一条件接口:支持四种动作格式——速度
(v_x,v_y)(m/s)、转向角(按 VAD 做法转换成曲率,单位 m⁻¹)、轨迹位移(Δx,Δy)(m)、高层指令(前进/左转/右转)。所有条件先做 Fourier embedding,再拼接经可学习投影对齐到世界解码器条件交叉注意力层的维度——消融显示交叉注意力优于简单相加,Fourier embedding 能带来进一步增益。 -
占据代价规划器 P:由代理安全代价(惩罚与他车占据栅格重叠/距离过近的轨迹候选)、道路安全代价(惩罚驶出可行驶区域的轨迹)、以及受 ST-P3 启发的可学习体积代价(
F^bev过一个可学习 head 生成 2D 代价图)三部分相加构成总代价;轨迹采样器(沿用 ST-P3 做法,按高层指令引导)生成候选集τ* ∈ R^{N_τ×2},规划器选代价最低者。BEV 精修:把选定轨迹编码后与指令 embedding 拼成 ego query,与F^bev做交叉注意力提取细粒度环境表示,再经 MLP 输出最终轨迹。 -
体素化配置:3D 空间范围
[±51.2m]×[±51.2m]×[-5m,3m],体素分辨率 0.2m,占据体尺寸 512×512×40。 -
自回归滚动:预测的轨迹
τ_{t+1}会作为下一步的动作条件a_{t+1}反馈进世界模型,驱动连续预测+规划的 rollout;生成可控性评测时用真值动作条件(记为 Drive-OccWorld^A)以防规划器泄漏自车状态,端到端规划评测则用预测轨迹(记为 Drive-OccWorld^P)。
数据
- 数据集:nuScenes、nuScenes-Occupancy(细粒度体素标注)、Lyft-Level5,均沿用 cam4docc-benchmark 的数据重组协议——把可移动目标(GMO)实例框和 nuScenes-Occupancy 的静态目标(GSO)标注变换到当前坐标系并体素化。
- 输入/预测窗口:用 2 个历史帧 + 1 个当前帧(共 3 帧)作为输入,预测未来 4 个时间戳。因为 nuScenes 标注频率为 2Hz、Lyft-Level5 为 5Hz,两者预测窗口分别对应 2s 和 0.8s。
- 重组后序列规模:nuScenes(-Occupancy) 训练 23,930 条 / 测试 5,119 条;Lyft-Level5 训练 15,720 条 / 测试 5,880 条。
- 动作标签来源:速度、转向角(曲率)、轨迹位移、高层指令均来自 nuScenes/Lyft 自身的自车位姿与 CAN 总线标注,论文未详述具体提取流程。
- 无额外数据采集、无 sim-to-real、无跨模态 co-training;数据规模与切分与 Cam4DOcc 一致,Drive-OccWorld 的贡献在建模与训练目标而非新数据。
训练方法
- 总损失
L = L_norm + L_fcst + L_plan:L_norm(历史归一化损失):交叉熵监督历史语义概率 + l1 监督历史 3D 反向向心流。L_fcst(未来预测损失):占据S_{1:f}用交叉熵 + Lovász loss + 二元占据 loss 联合监督,流F_{1:f}用 l1 loss。L_plan(规划损失):ST-P3 式 max-margin loss(约束候选轨迹代价高于专家轨迹)+ l2 模仿学习损失 + 碰撞损失(惩罚落入障碍物占据栅格的轨迹)。
- 动作条件使用策略:训练与测试阶段的规划均使用预测轨迹(而非真值轨迹)作为下一步动作条件,一方面避免真值自车状态泄漏进规划器,另一方面让模型在训练时就适应预测轨迹的分布,从而提升测试期表现(消融显示 Drive-OccWorld^P 感知指标反而略高于用真值动作条件的 Drive-OccWorld^A)。
- 优化超参:AdamW 优化器,初始学习率 2×10⁻⁴,cosine annealing 学习率调度。
- 消融默认配置:用 1 历史帧 + 当前帧预测 2 个未来时间戳。
Infra(训练 / 推理工程)
-
训练硬件:8 张 NVIDIA A100 GPU。GPU-hours、并行策略(DP/DDP/FSDP)、训练精度(fp16/bf16/fp32)均未披露。
-
推理延迟(附录 Table 9,测于 A6000 GPU,按输入帧数/记忆队列长度分解为历史编码器
W_E、记忆队列W_M、世界解码器W_D三部分单独耗时):历史帧数 / 当前帧 / 记忆长度 mIoU_c W_E (ms) W_M (ms) W_D (ms) 0 / 1 / 1 13.0 140 10 190 1 / 1 / 1 14.3 269 12 188 2 / 1 / 2 14.8 406 19 207 2 / 1 / 3 15.1 401 26 220 历史编码器进一步拆分:图像 backbone 27ms、FPN neck 13ms、transformer encoder 100ms(三者相加即无历史输入时的
W_E=140ms)。可见时延主要来自历史编码器,记忆队列与世界解码器耗时相对稳定,不随输入帧数显著增长。论文未给出汇总 FPS/控制频率数字,也未做实车/边缘硬件部署实验。
评测 benchmark
以下均为论文一手结果,对比基线沿用 cam4docc-benchmark 的 SPC、OpenOccupancy-C、PowerBEV-3D 及 Cam4DOcc 本身。Drive-OccWorld^A = 真值动作条件,Drive-OccWorld^P = 预测轨迹作为动作条件。
膨胀 GMO + 流预测(nuScenes / Lyft-Level5)与细粒度 GMO 预测(nuScenes-Occupancy)(Table 1):
| 方法 | nuScenes mIoU_c | mIoU_f(2s) | mIoU~f | VPQ_f | Lyft IoU_c | mIoU_f(0.8s) | mIoU~f | VPQ_f | nuScOcc mIoU_c | mIoU_f(2s) | mIoU~f |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SPC | 1.3 | failed | failed | – | 1.4 | failed | failed | – | 5.9 | 1.1 | 1.1 |
| OpenOccupancy-C | 12.2 | 11.5 | 11.7 | – | 14.0 | 13.5 | 13.7 | – | 10.8 | 8.0 | 8.5 |
| PowerBEV-3D | 23.1 | 21.3 | 21.9 | 20.0 | 26.2 | 24.5 | 25.1 | 27.4 | 5.9 | 5.3 | 5.5 |
| Cam4DOcc | 31.3 | 26.8 | 28.0 | 18.6 | 36.4 | 33.6 | 34.6 | 28.2 | 11.5 | 9.7 | 10.1 |
| Drive-OccWorld^A | 39.7 | 36.3 | 37.3 | 23.7 | 40.6 | 39.3 | 40.0 | 32.2 | 13.6 | 11.9 | 12.3 |
| Drive-OccWorld^P | 39.8 | 36.3 | 37.4 | 25.1 | 40.9 | 39.7 | 40.6 | 33.4 | 13.6 | 12.0 | 12.4 |
相对 Cam4DOcc,Drive-OccWorld^P 在 mIoU~f 上 nuScenes +9.4pt、Lyft-Level5 +6.0pt(论文正文口径,绝对百分点差)。VPQ_f 上 Drive-OccWorld^P 相对各自指标此前最优基线分别提升 nuScenes +5.1pt(对比 PowerBEV-3D 的 20.0,而非 Cam4DOcc 的 18.6)、Lyft-Level5 +5.2pt(对比 Cam4DOcc 的 28.2)——两个数据集上 VPQ_f 的此前 SOTA 基线并不相同。
细粒度 GMO + GSO 联合预测(nuScenes-Occupancy)(Table 2):
| 方法 | mIoU_c GMO | mIoU_f(1s) GMO | mIoU~f GMO |
|---|---|---|---|
| CONet-C | 9.6 | 7.4 | 7.9 |
| Cam4DOcc | 11.0 | 9.2 | 9.7 |
| Drive-OccWorld^A | 16.6 | 14.3 | 14.9 |
| Drive-OccWorld^P | 16.9 | 14.3 | 14.9 |
Drive-OccWorld^P 相对 Cam4DOcc:GMO 当前时刻 mIoU_c +5.9pt、未来 1s mIoU_f +5.1pt。
端到端规划(nuScenes 开环评测)(Table 5,†=NoAvg 协议、‡=TemAvg 协议、‡∗=额外使用 ego status):
| 方法 | L2@1s | L2@2s | L2@3s | L2 Avg | Coll@1s(%) | Coll@2s(%) | Coll@3s(%) | Coll Avg(%) |
|---|---|---|---|---|---|---|---|---|
| UniAD† | 0.48 | 0.96 | 1.65 | 1.03 | 0.05 | 0.17 | 0.71 | 0.31 |
| VAD-Base† | 0.54 | 1.15 | 1.98 | 1.22 | 0.10 | 0.24 | 0.96 | 0.43 |
| Drive-OccWorld^P† | 0.32 | 0.75 | 1.49 | 0.85 | 0.05 | 0.17 | 0.64 | 0.29 |
| VAD-Base‡ | 0.41 | 0.70 | 1.05 | 0.72 | 0.07 | 0.17 | 0.41 | 0.22 |
| Drive-WM‡ | 0.43 | 0.77 | 1.20 | 0.80 | 0.10 | 0.21 | 0.48 | 0.26 |
| Drive-OccWorld^P‡ | 0.25 | 0.44 | 0.72 | 0.47 | 0.03 | 0.08 | 0.22 | 0.11 |
| VAD-Base‡∗(含 ego status) | 0.17 | 0.34 | 0.60 | 0.37 | 0.04 | 0.27 | 0.67 | 0.33 |
| BEV-Planner‡∗ | 0.16 | 0.32 | 0.57 | 0.35 | 0.00 | 0.29 | 0.73 | 0.34 |
| Drive-OccWorld^P‡∗ | 0.17 | 0.31 | 0.49 | 0.32 | 0.02 | 0.24 | 0.62 | 0.29 |
按 NoAvg 协议,Drive-OccWorld^P† 相对 UniAD† 的 L2 相对提升为 33%@1s、22%@2s、9.7%@3s(论文原文数字,经复算核实一致)。GT 轨迹上界(Table 4):用真值轨迹做动作条件时 L2 avg=0.56m / 碰撞率 avg=0.16%,明显优于用预测轨迹(L2 avg=0.85m / 碰撞率 avg=0.29%),说明规划误差目前仍是瓶颈之一。
关键消融:
- 语义/自车运动/他车运动三种条件归一化各自都有增益,其中自车运动条件归一化对 mIoU_f(1s) 提升最大(+1.9pt),他车运动(3D 反向向心流)条件对 VPQ_f* 提升最大(+0.9pt)(Table 6)。
- 动作条件注入方式:交叉注意力优于简单相加,叠加 Fourier embedding 进一步提升(Table 7,论文原文表述,未逐格复算)。
- 占据代价函数消融(Table 8):四个因子去掉任意一个都会降低规划质量。去掉代理安全代价会使碰撞率明显上升(Avg 碰撞率从 0.09% 涨到 0.16%,论文以此强调代理约束对安全性的重要性);但从数值看,去掉 BEV 精修对 L2 与碰撞率的恶化幅度在四者中均最大(L2 Avg 0.28m→0.37m,碰撞率 Avg 0.09%→0.20%)。
创新点与影响
- 语义-运动条件归一化:把语义标签、自车位姿变换、3D 反向向心流分别编码为仿射调制参数注入记忆队列的 LayerNorm,是一个简单但确有实效的记忆增强机制,三种条件均有可验证的独立增益。
- 统一动作条件接口:首次把速度/转角/轨迹/高层指令四种异构、粒度不同的动作信号通过 Fourier embedding + 条件交叉注意力统一进同一个占据世界模型,并证明低层条件(轨迹/速度)主要提升未来时刻预测,高层条件(指令)主要提升当前时刻预测。
- 占据世界模型接规划闭环:不同于 Drive-WM 用图像空间奖励函数,Drive-OccWorld 用占据本身构造代价函数(代理安全+道路安全+可学习体积代价)并加 BEV 精修,在 nuScenes 开环规划上相对 UniAD 有两位数的相对 L2 提升,且这一优势在使用/不使用 ego status 的协议下均能部分保持。
- 作者自述局限:论文未明确列出独立的”局限性”小节,但从消融与讨论可见——推理延迟随历史帧数增长明显(历史编码器是主要瓶颈),未做实车/边缘部署验证;GT 轨迹上界与预测轨迹之间仍有明显差距(L2 Avg 0.56 vs 0.85m),说明规划器对占据预测误差的鲁棒性还有提升空间;未来工作方向提及探索 SparseBEV 等稀疏表示以提升效率(该句出现在附录 D.1,是关于延迟优化方向的表述,非正式局限性陈述)。
- 后续工作 IR-WM(arXiv:2510.16729,ICRA 2026)在同一团队 GitHub 仓库的
ir-wm分支延续这条路线,说明该框架具备可迭代性。
原始链接
- arXiv 摘要:https://arxiv.org/abs/2408.14197
- arXiv PDF:https://arxiv.org/pdf/2408.14197
- GitHub(代码 + 训练/评测文档):https://github.com/yuyang-cloud/Drive-OccWorld
- 项目主页:https://drive-occworld.github.io/
一手源存档(sources/)
- drive-occworld—github-readme — GitHub README 快照(作者/单位、新闻时间线、安装/数据/训练文档索引、致谢、BibTeX),来源 https://github.com/yuyang-cloud/Drive-OccWorld
- drive-occworld—project-page — 项目主页快照(AAAI 2025、方法概览图说明、演示场景列表),来源 https://drive-occworld.github.io/
- 论文全文:arXiv:2408.14197(arXiv 原文 HTML/PDF,不入 git;正文数字取自 v3 版全文,含附录 A-E)