一句话定位

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/AvgIoU 1s/2s/3s/AvgFPS
Copy&Paste3D-Occ14.91 / 10.54 / 8.52 / 11.3324.47 / 19.77 / 17.31 / 20.52-
OccWorld-O3D-Occ25.78 / 15.14 / 10.51 / 17.1434.63 / 25.07 / 20.18 / 26.6318.0
OccWorld-D相机3D-Occ11.55 / 8.10 / 6.22 / 8.6218.90 / 16.26 / 14.43 / 16.532.8
OccWorld-T相机Semantic LiDAR4.68 / 3.36 / 2.63 / 3.569.32 / 8.23 / 7.47 / 8.342.8
OccWorld-S相机0.28 / 0.26 / 0.24 / 0.265.05 / 5.01 / 4.95 / 5.002.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 & Depth2.110.711.6
UniAD相机Map&Box&Motion&Tracklets&Occ1.030.311.8
VAD-Base相机Map & Box & Motion1.220.534.5
OccNet3D-OccMap & Box2.250.69-
OccWorld-O3D-Occ1.170.6018.0
OccWorld-D相机3D-Occ1.400.872.8
OccWorld-T相机Semantic LiDAR1.520.702.8
OccWorld-S相机1.832.022.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 AvgFPS
(50², 128, 512)66.38 / 62.2917.141.1718.0
(50², 128, 256)63.40 / 60.3316.241.1517.8
(50², 128, 1024)60.50 / 59.0716.301.2817.8
(25², 256, 512)36.28 / 44.028.816.5328.1
(100², 128, 512)78.12 / 71.6312.381.366.7
(50², 64, 512)64.98 / 61.5014.671.3320.1

结论:码本大于 512 会过拟合,太小 / 空间分辨率 / 通道太低则抓不住场景分布;空间分辨率增大(100²)重建精度飙到 78.12,但预测和规划反而更差 —— token 学不到高层概念、难以预测未来(这是”重建好 ≠ 世界建模好”的经典反例)。

④ 时空 transformer 消融(Table 4,Avg over 1s/2s/3s)

变体预测 mIoU / IoU规划 L2 / ColFPS
OccWorld-O17.14 / 26.631.17 / 0.6018.0
w/o spatial attn10.07 / 21.441.42 / 1.2128.6
w/o temporal attn8.98 / 20.102.06 / 2.5626.5
w/o ego15.13 / 24.66-(不规划)18.8
w/o ego temporal12.07 / 23.095.89 / 6.2318.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 明示)。

原始链接

一手源存档(sources/)