一句话定位
OccWorld 是首个把驾驶世界模型建在 3D 语义占据(3D semantic occupancy)空间里的工作:先用一个重建式 VQ-VAE 场景 tokenizer 把稠密占据体压成离散场景 token,再用 GPT 式时空生成 transformer 自回归地联合预测未来占据的演化和自车轨迹,从而在不用实例框、不用高精地图监督的前提下同时完成 4D 占据预测与端到端运动规划(ECCV 2024,nuScenes / Occ3D 验证)。
背景与定位
传统自动驾驶走”感知—预测—规划”串行流水线(drive-wm-driving-into-the-future 里对比的 ST-P3、UniAD、VAD 都是这套),每一级都要 ground-truth 标注,且预测阶段只建模物体框的运动,抓不到场景的细粒度 3D 结构。OccWorld 主张换一个范式:学一个世界模型直接建模”场景怎么演化 + 自车怎么动”的联合分布。
选 3D 占据作场景表征而非 3D 框 / 分割图,作者给了三条理由:expressiveness(占据能描述更细粒度的 3D 结构)、efficiency(占据可从稀疏 LiDAR 点便宜地得到,甚至自监督学出)、versatility(占据同时适配相机与 LiDAR)。
这属于”driving world model”范式,但和同期路线明显区隔:
- 图像空间世界模型:gaia-1-wayve(GAIA-1,自回归生成 2D 驾驶视频)、drivedreamer / drive-wm-driving-into-the-future(基于 Stable Diffusion 的可控视频生成)——它们在 2D 像素空间产出未来观测,缺乏对 3D 环境的理解。
- 点云 / 占据预测世界模型:Khurana 等的 4D 占据预测、点云预测(用无标注 LiDAR),忽略语义、且难迁到视觉 / 融合方案;同期 copilot4d-waabi(Copilot4D)走”VQ-VAE + 离散扩散”预测 LiDAR 占据。
- 仿真 / 游戏里的经典世界模型:dreamer-v3 等 Dreamer 系列在 RSSM 潜空间里学,环境是仿真而非真实道路。
OccWorld 补的空白是”真实道路 + 3D 语义占据 + GPT 式自回归 + 联合出规划”,是把世界模型从像素 / 点云拉进 3D 语义占据空间的开山之作,并顺手定义了 4D 占据预测(4D occupancy forecasting) 这一新任务。
模型架构
整体是”场景 tokenizer + GPT 式时空生成 transformer”两段式(论文 Fig. 2)。世界模型 w 作用在场景表征上:w({y^T,…,y^{T-t}}, {p^T,…,p^{T-t}}) = y^{T+1}, p^{T+1},得到预测后再回灌输入、自回归推下一帧。y ∈ ℝ^{H×W×D} 是把自车周围空间切成 H×W×D 体素、每体素带语义标签的 3D 占据;p 是自车 3D 位置。
① 3D 占据场景 tokenizer(VQ-VAE,论文 Fig. 3)
- BEV 化:先给每个语义类别一个可学 class embedding ∈ ℝ^{C′},沿高度维拼接,把 y ∈ ℝ^{H×W×D} 转成 BEV 表征 ŷ ∈ ℝ^{H×W×D·C′}。
- 编码器:轻量 2D 卷积,把 BEV 下采样出 ẑ ∈ ℝ^{(H/d)×(W/d)×C},d 为下采样因子。
- 向量量化:学一个码本 C ∈ ℝ^{N×D}(N 个码),每个空间特征 ẑ_ij 按 L2 最近邻分类到码本里最近的码 → 得离散场景 token z ∈ ℝ^{H×W×C}。每个码编码一个高层概念(如”该位置被车占据”)。
- 解码器:2D 反卷积逐步上采样回 BEV 分辨率 H×W×C″,再在通道维 split 出高度维 H×W×D×(C″/D),逐体素 softmax 分类回占据语义或空。
- 最优配置(Table 3):latent 空间分辨率 50×50、latent 通道 128、码本 512 码;此配置下重建 mIoU 66.38 / IoU 62.29。下采样因子 d=4(50×4=200,对应 Occ3D-nuScenes 200×200 BEV)。
② 时空生成 transformer(GPT 式自回归,论文 Fig. 4)
难点在于 GPT 每步预 1 个 token,而驾驶世界模型每步要预一整组场景 token T={z_i};token 数目巨大,直接套 GPT 既低效又低效果。作者的两个关键设计:
- 空间聚合 + 多尺度:先对世界 token 做空间 self-attention(scene token 与 ego token 交互),再把每个 2×2 窗口按 stride 2 合并、空间下采样 4×,重复 K 次得层级尺度 {T_0,…,T_K},用不同尺度描述场景的不同层级。
- spatial-wise 时序因果自注意力:对每个尺度用一个子世界模型 w_i,在每个空间位置 j 上对历史 token 序列施加 masked(因果)时序注意力 预测下一帧 token ẑ^{T+1}_{j,i},掩码阻断未来对过去的影响。
- U-net 聚合:用 U-net 结构把各尺度预测融合,保证空间一致性。
- ego token:额外引入 ego token z_0 ∈ ℝ^C 编码自车空间位置,和 scene token 一起过网络,捕捉自车与环境的高阶交互。
规模配置(论文 4.2):时空生成 transformer 共 3 个尺度,每尺度 6 层 spatial-wise 时序注意力(作用于 scene token)+ 2 层 空间交叉注意力与时序交叉注意力(作用于 ego 规划 token)。
③ 解码出未来:预测出未来世界 token 后,复用场景解码器 d 解出未来占据 ŷ^{T+1}=d(ẑ^{T+1}),另学一个 ego 解码器 d_ego 从 ẑ^{T+1}_0 解出自车位移 p̂^{T+1}。scene representation model r 可以是提供 GT 占据的 oracle,也可以是吃图像 / LiDAR 的感知模型(TPVFormer / SelfOcc)。
数据
- 数据集:4D 占据预测在 Occ3D(Occ3D-nuScenes)上评,运动规划在 nuScenes 上评。nuScenes 标准划分 700 训练 / 150 验证场景。
- 时序设定:沿用 UniAD / VAD 的 2 秒历史 → 预测未来 3 秒(帧率 2 Hz,即 t=0.5/1/1.5/2/2.5/3s)。
- 四种占据来源(决定 OccWorld-O/D/T/S 四个变体):
- OccWorld-O:ground-truth 3D 占据(oracle 输入,上界设定)。
- OccWorld-D:TPVFormer 的预测占据,TPVFormer 用稠密 GT 3D 占据监督训练;输入为环视相机。
- OccWorld-T:TPVFormer 的预测占据,TPVFormer 用稀疏 semantic LiDAR 监督训练;输入为环视相机。
- OccWorld-S:SelfOcc 的预测占据,完全自监督(训练时不用任何 3D 占据信息);输入为环视相机。
- 占据的可得性论证:3D 占据可从稀疏 LiDAR 标注、累积多帧 LiDAR、或视频序列自监督学出(作者据此论证该表征可 scale 到大规模训练)。HDMap / 实例框等昂贵标注在此范式里完全不需要。
- 数据配比 / curation / 过滤 / 具体帧数 token 数:论文未额外披露(沿用 Occ3D-nuScenes 与 nuScenes 原生规模,未给自建混合比例)。
训练方法
两阶段流水线:
- 第一阶段(训 tokenizer + 解码器):用 3D 占据损失
J_{e,d} = L_soft(d(e(y)), y) + λ1·L_lovasz(d(e(y)), y),即 softmax 损失 + λ1·lovasz-softmax 损失([1])联合训自编码器与码本。 - 第二阶段(训世界模型 + ego 解码器):用第一阶段学好的 tokenizer 抽出所有帧的场景 token;对预测 token ẑ 施加 softmax 损失逼它分类到码本中与 GT token z 相同的码;对 ego token 同时学 ego 解码器 d_ego,对预测位移施加 L2 损失。总目标
J_{w,d_ego} = Σ_t (Σ_j L_soft(ẑ^t_{j,0}, C(z^t_{j,0})) + λ2·L_L2(d_ego(ẑ^t_0), p^t))。 - teacher forcing:训练时用 tokenizer 得到的 GT token 作输入,但施加 masked 时序注意力阻断未来信息;推理时用已预测的过去帧 token 逐帧自回归推未来。
关键超参(论文 4.2 + README):
- 优化器 AdamW,学习率调度 Cosine Annealing。
- 初始学习率 1×10⁻³,weight decay 0.01。
- batch size 1 / GPU,共 8× NVIDIA RTX 4090。
- README 补充:VQVAE 与 OccWorld 均在单卡 RTX 4090(24G 显存)上可训(即单卡即可跑,正式实验用 8 卡)。
无 RL、无蒸馏;action-conditioning 通过 ego token 的时序自回归隐式完成(自车位移作为 token 参与联合预测),而非显式动作条件注入。
Infra(训练 / 推理工程)
- 训练硬件:8× NVIDIA GeForce RTX 4090(据 README 每卡 24G 显存),batch size 1/GPU。GPU-hours、并行策略、训练精度(fp16/bf16)均未披露。
- 推理速度(论文 Table 1/2 直接给 FPS):
- OccWorld-O(GT 占据输入):18.0 FPS —— 世界模型本体很快。
- OccWorld-D / T / S(相机输入):均 2.8 FPS —— 端到端管线被前置 TPVFormer / SelfOcc 感知拖慢。
- 作为对比:UniAD 1.8 FPS、VAD-Base 4.5 FPS、VAD-Tiny 16.8 FPS、ST-P3 1.6 FPS。
- 控制频率 / 端上延迟 / 边缘硬件:未披露(nuScenes 开环评测,未做实车 / 闭环部署)。
- 代码:官方 2023-12-07 放出代码与 config,2024-03-13 补出可视化代码、训练日志与预训练模型;基于 TPVFormer / SelfOcc / PointOcc,依赖 mmdetection3d。
评测 benchmark
全部为论文一手结果。
① 4D 占据预测(Table 1,2s 历史 → 3s 未来,Occ3D-nuScenes)
| 方法 | 输入 | 辅助监督 | mIoU 1s/2s/3s/Avg | IoU 1s/2s/3s/Avg | FPS |
|---|---|---|---|---|---|
| Copy&Paste | 3D-Occ | 无 | 14.91 / 10.54 / 8.52 / 11.33 | 24.47 / 19.77 / 17.31 / 20.52 | - |
| OccWorld-O | 3D-Occ | 无 | 25.78 / 15.14 / 10.51 / 17.14 | 34.63 / 25.07 / 20.18 / 26.63 | 18.0 |
| OccWorld-D | 相机 | 3D-Occ | 11.55 / 8.10 / 6.22 / 8.62 | 18.90 / 16.26 / 14.43 / 16.53 | 2.8 |
| OccWorld-T | 相机 | Semantic LiDAR | 4.68 / 3.36 / 2.63 / 3.56 | 9.32 / 8.23 / 7.47 / 8.34 | 2.8 |
| OccWorld-S | 相机 | 无 | 0.28 / 0.26 / 0.24 / 0.26 | 5.05 / 5.01 / 4.95 / 5.00 | 2.8 |
0s(重建精度):OccWorld-O mIoU 66.38 / IoU 62.29。OccWorld-O 远超 Copy&Paste(把当前占据当未来),证明确实学到了场景演化;连自监督的 OccWorld-S 也拿到非平凡 IoU(5.00),说明纯相机 + 无占据监督下也能做非平凡 4D 预测。
② 运动规划(Table 2,nuScenes,L2 误差 / 碰撞率)
| 方法 | 输入 | 辅助监督 | L2 Avg (m)↓ | Col Avg (%)↓ | FPS |
|---|---|---|---|---|---|
| ST-P3 | 相机 | Map & Box & Depth | 2.11 | 0.71 | 1.6 |
| UniAD | 相机 | Map&Box&Motion&Tracklets&Occ | 1.03 | 0.31 | 1.8 |
| VAD-Base | 相机 | Map & Box & Motion | 1.22 | 0.53 | 4.5 |
| OccNet | 3D-Occ | Map & Box | 2.25 | 0.69 | - |
| OccWorld-O | 3D-Occ | 无 | 1.17 | 0.60 | 18.0 |
| OccWorld-D | 相机 | 3D-Occ | 1.40 | 0.87 | 2.8 |
| OccWorld-T | 相机 | Semantic LiDAR | 1.52 | 0.70 | 2.8 |
| OccWorld-S | 相机 | 无 | 1.83 | 2.02 | 2.8 |
关键读法:OccWorld-O 在完全不用 map / box 监督下拿到 L2 avg 1.17(引言口径为 1.16),大幅超过用 map & box 监督的 OccNet(2.25),仅略逊于堆了五种辅助监督的 UniAD(1.03);碰撞率 0.60 与 OccNet(0.69)相当,说明占据本身能让模型学到 freespace 概念。分段看,OccWorld-O 的 1s L2 = 0.43 是全表最优,但 3s 涨到 1.99(UniAD 为 1.65)—— 世界模型的多样化未来生成会随时间偏离 GT 轨迹,长时规划变差。用 VAD 的度量口径(†)时 OccWorld-O† L2 avg 0.64 / Col 0.24,与 VAD-Base†(0.72 / 0.22)同档。
③ tokenizer 超参消融(Table 3,格式=latent 分辨率, 通道, 码本)
| 配置 | 重建 mIoU / IoU | 预测 mIoU Avg | 规划 L2 Avg | FPS |
|---|---|---|---|---|
| (50², 128, 512) | 66.38 / 62.29 | 17.14 | 1.17 | 18.0 |
| (50², 128, 256) | 63.40 / 60.33 | 16.24 | 1.15 | 17.8 |
| (50², 128, 1024) | 60.50 / 59.07 | 16.30 | 1.28 | 17.8 |
| (25², 256, 512) | 36.28 / 44.02 | 8.81 | 6.53 | 28.1 |
| (100², 128, 512) | 78.12 / 71.63 | 12.38 | 1.36 | 6.7 |
| (50², 64, 512) | 64.98 / 61.50 | 14.67 | 1.33 | 20.1 |
结论:码本大于 512 会过拟合,太小 / 空间分辨率 / 通道太低则抓不住场景分布;空间分辨率增大(100²)重建精度飙到 78.12,但预测和规划反而更差 —— token 学不到高层概念、难以预测未来(这是”重建好 ≠ 世界建模好”的经典反例)。
④ 时空 transformer 消融(Table 4,Avg over 1s/2s/3s)
| 变体 | 预测 mIoU / IoU | 规划 L2 / Col | FPS |
|---|---|---|---|
| OccWorld-O | 17.14 / 26.63 | 1.17 / 0.60 | 18.0 |
| w/o spatial attn | 10.07 / 21.44 | 1.42 / 1.21 | 28.6 |
| w/o temporal attn | 8.98 / 20.10 | 2.06 / 2.56 | 26.5 |
| w/o ego | 15.13 / 24.66 | -(不规划) | 18.8 |
| w/o ego temporal | 12.07 / 23.09 | 5.89 / 6.23 | 18.5 |
读法:空间聚合与时序注意力对预测和规划都至关重要(去掉任一大幅掉点);去掉 ego token(只做 4D 预测、不预测运动)连预测都变差(17.14→15.13),证明联合建模场景演化与自车轨迹互相增益;把 ego 的时序注意力换成 MLP 后规划崩塌(L2 5.89)且预测也变差,作者归因为”错误的自车轨迹会误导场景预测”。
创新点与影响
- 首个 3D 占据世界模型:把世界模型从 2D 像素(GAIA-1 / DriveDreamer)和点云拉进 3D 语义占据空间,兼得表达力、可得性与模态无关性,开创了 occupancy-based world model 这条线(后续 OccWorld-D/OccSora/RenderWorld/DOME 等大量沿此展开)。
- 重建式场景 tokenizer + GPT 式时空自回归:用 VQ-VAE 把稠密占据压成离散高层 token,再用带空间聚合 / 多尺度 / U-net 的时空因果 transformer 自回归推演,把 NLP 里的 GPT 范式成功迁到”一次预一整组 token”的驾驶场景。
- 定义 4D 占据预测任务:把静态的 3D 占据预测扩展成带时间演化的 4D 预测,给该子领域立了 benchmark 与度量(mIoU/IoU over 1s/2s/3s)。
- 免昂贵标注的端到端规划:不用实例框 / 高精地图,OccWorld-O 就把规划做到接近 UniAD、并大幅超过同样用占据的 OccNet,展示了”可解释、可 scale、少标注”的端到端驾驶新路径。
- 联合建模互增益:消融证明”预测场景 + 预测自车”联合建模比单独做各自更强,为世界模型式规划提供了实证支撑。
- 作者自陈的局限:① 长时规划(3s)随世界模型多样化生成偏离 GT,L2 反不如 UniAD;② 碰撞率略逊于用 freespace / box 监督的方法(无这些引导时更难学安全轨迹);③ 相机端到端变体(D/T/S)受前置感知精度与速度(2.8 FPS)双重拖累;④ 难以预测”视野外新驶入的车辆”(输入里不存在即无从预测,Fig. 1 明示)。
原始链接
- arXiv abstract:https://arxiv.org/abs/2311.16038
- arXiv PDF:https://arxiv.org/pdf/2311.16038
- 项目主页:https://wzzheng.net/OccWorld/
- 代码:https://github.com/wzzheng/OccWorld
- HF 论文页:https://huggingface.co/papers/2311.16038
一手源存档(sources/)
- occworld—github-readme — GitHub README 快照(News 时间线、安装 / 数据准备 / 训练评测命令、单卡 RTX 4090 24G 说明、相关项目 TPVFormer/SelfOcc/SurroundOcc、BibTeX),来源 https://github.com/wzzheng/OccWorld
- occworld—project-page — 项目主页快照(方法概述、三原则、时空生成 transformer、四变体结果文字描述、BibTeX),来源 https://wzzheng.net/OccWorld/
- 论文全文:arXiv:2311.16038(arXiv 原文 PDF,不入 git;正文数字均取自 arXiv HTML v1 全文)