Task: 3D Occupancy World Modeling and Planning
Method: 3D Occupancy Tokenizer, GPT-like Spatial-Temporal Transformer
Venue: ECCV 2024
Year: 2024
Paper: https://arxiv.org/abs/2311.16038
Code: https://github.com/wzzheng/OccWorld
1. 摘要
OccWorld 将自动驾驶世界模型放到 3D occupancy 空间中。不同于只预测 object boxes 的未来运动,OccWorld 学习离散 scene tokens,并用 GPT-like spatial-temporal generative transformer 预测未来 occupancy 和 ego trajectory。
OccWorld 的核心价值,是把 world model 从“生成未来视频”或“预测 agent 轨迹”推进到更接近规划的空间状态:未来哪些三维区域会被占用,哪些区域可能可通行。Occupancy 既能表达已知物体,也能表达未知障碍和背景空间,因此比 object boxes 更适合作为自动驾驶 world state。
核心论点:自动驾驶 world model 的状态空间应当贴近物理可通行性;3D occupancy token 让未来世界预测能够更自然地连接到碰撞风险、free space 和轨迹规划。
2. 问题与动机
自动驾驶不仅要知道当前有哪些物体,还要理解未来场景如何演化。传统预测通常围绕 object boxes 展开,这在规则道路和常见车辆场景下有效,但存在明显盲区:
- object box 只表达被检测到的已知类别;
- box 对道路边界、路面结构和非标准障碍表达不足;
- motion prediction 常常只预测 agent,不预测整个空间状态;
- segmentation map 又可能过于密集,难以直接建模长时序。
OccWorld 选择 3D occupancy,是为了把世界状态从 sparse object list 扩展为空间占用状态。它要回答的问题不是“某辆车会去哪里”,而是:
未来每个 3D 空间位置是否会被占用? |
3. 核心洞察
洞察 1:3D occupancy 更适合作为 world state
Occupancy 可以描述更细粒度的三维结构,不局限于已知类别物体,也比 dense semantic map 更容易从稀疏 LiDAR 获取。它的优势来自“物理优先”:
| 表示 | 回答的问题 | 局限 |
|---|---|---|
| Object box | 这是什么物体,在哪里 | 依赖类别,难表达未知障碍 |
| Semantic map | 每个位置是什么语义 | 标注密集,时序建模重 |
| Occupancy | 这个空间是否被占用 | 语义较弱,但更贴近避障 |
对规划来说,很多时候“占不占”比“叫什么”更重要。
洞察 2:世界演化可以在离散 scene tokens 上建模
OccWorld 先训练 reconstruction-based scene tokenizer,把 3D occupancy 转成离散 tokens,再用生成式 Transformer 预测未来 tokens。这个设计有两个好处:
- occupancy 被压缩成可序列建模的 token,避免直接在高维体素空间做长时生成;
- GPT-like transformer 可以沿时间维学习场景状态转移,把 world model 写成 token prediction 问题。
这和 GAIA-1 的视频 token 思路相似,但 token 代表的是 3D occupancy,而不是视频外观。
洞察 3:规划可以从未来 occupancy 中受益
模型同时生成未来 occupancy 和 ego trajectory,使世界预测与自车轨迹选择共享同一状态空间。这样,规划不再只依赖当前检测结果,而可以参考预测出的未来空间状态。
这也是 OccWorld 与普通 occupancy prediction 的区别:它不只是预测当前 occupancy,而是把未来 occupancy 当作 world model 的核心输出。
4. 方法设计
4.1 整体架构
current 3D occupancy
│
▼
scene tokenizer
│
▼
discrete scene tokens
│
▼
GPT-like spatial-temporal transformer
│
├── future occupancy
└── ego trajectory
OccWorld 的核心不是“把 occupancy 做成另一个预测头”,而是先把 3D occupancy 压成离散 token,再像语言模型一样预测未来 token 序列:
OccWorld detailed architectureInput world state:
current / historical 3D occupancy
semantic occupancy grid if available
ego context┌─────────────────────────────────────────┐ │ 1. Scene Tokenizer │ │ 3D occupancy -> discrete scene tokens │ │ compress spatial occupancy structure │ └─────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ 2. Spatial-Temporal Token Sequence │ │ token order encodes space and time │ │ represent world state as sequence │ └─────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────┐ │ 3. GPT-like Generative Transformer │ │ autoregressively model future tokens │ │ learn occupancy world dynamics │ └─────────────────────────────────────────┘ │ │ ▼ ▼ ┌───────────────────┐ ┌──────────────────────┐ │ Occupancy Decoder │ │ Ego Trajectory Head │ │ future 3D voxels │ │ future ego motion │ └───────────────────┘ └──────────────────────┘
这张图解释了 OccWorld 为什么更接近 world model:它不是只预测下一帧 occupancy,而是把空间状态离散成 token 后学习时空演化规律。未来 occupancy 和 ego trajectory 共享同一个生成式场景状态。
4.2 关键组件
| 模块 | 作用 |
|---|---|
| Scene tokenizer | 将 3D occupancy 编成离散场景 token |
| Generative transformer | 建模场景 token 的时空演化 |
| Occupancy decoder | 还原未来 3D occupancy |
| Ego trajectory head | 输出未来自车轨迹 |
4.3 Token 化为什么重要
直接在 3D voxel 上预测未来会遇到维度高、稀疏、长时依赖难建模的问题。OccWorld 的 tokenizer 相当于把 occupancy 压成一个更适合生成模型处理的状态空间:
3D occupancy volume |
这条链路的关键不是“离散化”本身,而是让 occupancy world model 可以借用语言模型式的序列建模能力。
4.4 occupancy token 与规划接口
OccWorld 的 occupancy token 不是普通压缩编码,它的下游价值在于能重新解码为空间状态,再和规划风险发生关系。
| 接口 | 作用 | 对规划的意义 |
|---|---|---|
| Current occupancy token | 表示当前 3D 空间状态 | 提供 world state 初值 |
| Future occupancy token | 表示未来空间演化 | 预测哪些区域将被占用 |
| Ego trajectory head | 预测自车未来运动 | 把 world state 与 ego future 对齐 |
| Occupancy decoder | token -> voxel state | 让结果回到可检查的物理空间 |
和 object-box forecasting 相比,occupancy token 的优势在于它不要求每个障碍物都有明确类别。只要某块空间可能被占用,就能成为未来规划的约束。这也是它适合作为 world model state 的根本原因。
4.5 生成式 occupancy 的信息流
OccWorld 的训练和推理都围绕 occupancy token 展开:
past 3D occupancy |
这里的 tokenizer 不是工程细节,而是把高维 voxel world 压成可生成序列的关键步骤。生成 transformer 负责学习 token 的时间演化,decoder 再把预测拉回 3D 空间,使结果可以被规划约束检查。
5. 实验与分析
论文在 nuScenes 上验证模型能预测 driving scene evolution,并能在不使用 instance 和 map supervision 的条件下产生有竞争力的规划结果。重要的是,它把 world model 从视频生成或 latent prediction 推进到显式 3D occupancy 状态。
实验结论可以分成两层:
| 层次 | 说明的问题 |
|---|---|
| Future occupancy prediction | 模型是否学到空间状态演化 |
| Ego trajectory output | 未来 occupancy 是否能服务规划 |
这两层之间有一个关键过渡:occupancy prediction 必须能被 ego trajectory 使用,才能说明 world model 真的进入了驾驶决策接口。
past occupancy tokens |
因此,OccWorld 的实验重点不是单纯让 voxel 预测更像真值,而是证明这种未来空间状态能给自车未来提供约束。若只预测 occupancy 而不影响 ego trajectory,它更像一个场景补全模型;若 trajectory 能利用 occupancy 风险,它才开始具备 world model 的决策意义。
OccWorld 的重点不是取代所有规划模块,而是证明 occupancy state 可以作为 world model 与 planning 之间的中间桥梁。
三个关键数字:
- 3D:状态空间是 3D occupancy。
- 3 个理由:expressiveness、efficiency、versatility。
- 2 类输出:future occupancy 与 ego trajectory。
6. 工程实践
OccWorld 的工程价值在于提供了一个中间状态:未来 occupancy 可以转成 collision cost、free-space cost 或规划约束。落地时需要关注:
- occupancy 分辨率:太粗会漏掉小障碍,太细会增加 token 数和显存。
- tokenizer 误差:重建误差会被未来预测继续放大。
- 长时预测漂移:生成式时序模型容易在长 horizon 里积累偏差。
- 动态交互:occupancy 描述空间状态,但 agent intent 仍需要额外建模。
这些问题也解释了后续 Drive-OccWorld 为什么要加入 action condition 和 occupancy-based planning cost。
7. 研究启示
OccWorld 的启示是:world model 不一定只能生成视频,也可以在更接近规划的 3D occupancy 空间中学习未来演化。它为 Drive-OccWorld 这类 4D occupancy forecasting + planning 方法奠定了状态空间基础。
路线关系可以这样理解:
OccFormer: 当前 3D semantic occupancy |
从这个角度看,OccWorld 是从感知 occupancy 走向规划 world model 的关键过渡点。