Task: 4D Occupancy Forecasting and End-to-End Planning
Method: Semantic and Motion-Conditional Normalization, Action-Conditioned World Decoder, Occupancy-Based Cost
Venue: AAAI 2025
Year: 2025
Paper: https://arxiv.org/abs/2408.14197
Code: https://github.com/yuyang-cloud/Drive-OccWorld
1. 摘要
Drive-OccWorld 将 vision-centric 4D occupancy forecasting 接入端到端规划。它用历史 BEV embeddings 构建 memory,并通过 semantic and motion-conditional normalization 聚合语义和动态信息;world decoder 在 action conditions 下预测未来 occupancy 和 flow;最后用 occupancy-based cost 选择轨迹。
相比只做数据生成或预训练的 world model,Drive-OccWorld 更直接地把世界模型用于规划。它不是只问“未来世界会怎样”,而是进一步问:“如果 ego 采取某个动作,未来 occupancy / flow 会怎样变化,这个变化对应的轨迹代价是多少?”
这使它成为 OccWorld 的自然后续:OccWorld 把未来预测放进 3D occupancy token,Drive-OccWorld 则把 occupancy forecast 和 action-conditioned planning cost 连起来。
核心论点:world model 真正进入规划链路时,输出状态必须能被动作条件控制,并能转化为可比较的轨迹代价。
2. 问题与动机
World model 的核心能力是回答“如果自车采取某个动作,未来世界会怎样”。但许多驾驶 world model 偏向视频生成或表征预训练,和规划之间还有距离:
| 类型 | 输出 | 与规划的距离 |
|---|---|---|
| 视频生成 world model | future video | 需要再转成可量化风险 |
| 预训练 world model | latent representation | 需要下游任务头解释 |
| occupancy world model | future occupancy | 可直接转成空间约束 |
| action-conditioned occupancy | future occupancy under action | 可比较不同动作后果 |
Drive-OccWorld 选择 4D occupancy,是为了让未来预测直接服务 collision、free-space 和 trajectory cost。它的关键不是预测未来本身,而是让未来预测具有动作条件和规划用途。
3. 核心洞察
洞察 1:历史 BEV memory 需要语义和运动条件化
仅堆叠历史特征不足以表达动态演化。Drive-OccWorld 在 memory 中引入 semantic / motion conditional normalization,强化语义与运动线索。
这条设计背后的判断是:未来 occupancy 不是由几何位置单独决定的,还取决于语义类别和运动趋势。静态路面、行人、车辆、骑行者虽然都占用空间,但它们的未来演化规律完全不同。
洞察 2:action condition 让 world model 可控
模型注入 velocity、steering angle、trajectory、commands 等动作条件,使未来 occupancy 生成不只是被动预测,而是可以回答不同自车动作下的未来。
这使它更接近规划需要的 world model 形式:
$$ p(O_{t+1:t+H}, F_{t+1:t+H} \mid O_{1:t}, a_{t:t+H}) $$其中 $O$ 表示 occupancy,$F$ 表示 flow,$a$ 表示动作条件。没有 action condition 的 future prediction,只能告诉系统“可能会发生什么”;有 action condition 后,模型才开始回答“这样开会发生什么”。
洞察 3:4D occupancy 可以直接接规划代价
未来 occupancy 和 flow 可以转成 occupancy-based cost,用于连续 forecasting 和 trajectory selection。也就是说,world model 的输出不再停留在可视化,而是进入轨迹选择的代价函数。
这条洞察让 Drive-OccWorld 和 DriveDreamer / GAIA-1 拉开距离:后者强调生成可控未来,前者强调生成结果如何变成 planning cost。
4. 方法设计
4.1 整体架构
multi-view images
│
▼
history encoder -> BEV embeddings
│
▼
semantic / motion conditional memory
│
▼
action-conditioned world decoder
│
├── future occupancy
├── future flow
└── occupancy-based planning cost
Drive-OccWorld 比 OccWorld 多走了一步:未来 occupancy 不只是被预测出来,还要在候选动作条件下转成规划代价。
Drive-OccWorld detailed architectureInput:
multi-view camera history
candidate ego actions / trajectories
semantic and motion context┌──────────────────────────────────────────┐ │ 1. History Encoder │ │ images -> historical BEV embeddings │ │ preserve multi-frame scene context │ └──────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────┐ │ 2. Conditional Memory Aggregation │ │ semantic-conditioned normalization │ │ motion-conditioned normalization │ │ align static layout and moving agents │ └──────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────┐ │ 3. Action-conditioned World Decoder │ │ for each candidate ego action │ │ predict future occupancy and flow │ └──────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────┐ │ 4. Occupancy-based Planning Cost │ │ collision / drivable / dynamic risk │ │ choose lower-cost trajectory │ └──────────────────────────────────────────┘
这里的 action condition 是关键:world model 不再只回答“未来会怎样”,而是回答“如果 ego 这么开,未来 occupancy 和 flow 会怎样”。规划器比较的也不只是轨迹几何,而是轨迹诱发的未来空间风险。
4.2 关键组件
| 模块 | 作用 |
|---|---|
| History encoder | 从多视图图像提取历史 BEV 表示 |
| Conditional memory | 聚合语义与运动信息 |
| Action-conditioned decoder | 生成动作条件下的未来 occupancy / flow |
| Planning cost | 根据未来占用选择轨迹 |
4.3 从预测到规划的接口
Drive-OccWorld 的关键链路是:
history BEV memory |
其中,occupancy 提供未来空间约束,flow 提供动态演化线索,action condition 让系统可以比较多个候选动作的未来后果。
4.4 cost 的信息来源
Drive-OccWorld 的 planning cost 不是一个孤立规则,而是来自 action-conditioned future occupancy / flow。它把候选动作放进世界模型中,让每条候选轨迹都有对应的未来空间风险。
| 信息 | 来自哪里 | 影响哪类代价 |
|---|---|---|
| Future occupancy | world decoder | 碰撞风险、可通行性 |
| Future flow | motion forecasting branch | 动态障碍物接近速度 |
| Semantic memory | conditional memory | 不同类别空间风险 |
| Ego action condition | candidate trajectory | 反事实未来演化 |
因此 Drive-OccWorld 比 OccWorld 更接近闭环规划:OccWorld 证明 occupancy 可以作为未来 world state,Drive-OccWorld 则把“不同 ego action 下的 future occupancy”转成轨迹选择依据。
4.5 反事实未来的信息流
Drive-OccWorld 的关键是把候选动作放进世界模型,而不是只在模型输出之后再打分:
history multi-view observations |
这个信息流让 world model 具备反事实能力:同一段历史下,不同 ego action 会对应不同未来 occupancy / flow。规划器真正需要的正是这种“如果我这样开,世界会怎样变化”的接口。
5. 实验与分析
论文在 nuScenes、nuScenes-Occupancy 和 Lyft-Level5 上评估 4D occupancy generation 与 planning。关键结论是:world model 的生成能力可以和规划结合,但生成目标需要贴近几何和碰撞约束。
实验可以按两条线理解:
| 评估线 | 看什么 |
|---|---|
| 4D occupancy / flow forecasting | world model 是否能预测未来空间状态 |
| End-to-end planning | 预测出的未来状态是否能改善轨迹选择 |
两条评估线之间的连接,是 Drive-OccWorld 最值得记住的地方:
candidate ego action |
这个链条使实验不再只是“未来预测准不准”,而是进一步追问“预测结果是否会改变动作选择”。如果 action condition 只是作为额外输入,却没有影响未来 occupancy 或 planning cost,那么方法就不能真正称为 action-conditioned world model。
如果只看第一条线,Drive-OccWorld 是 occupancy forecasting;只有加上第二条线,它才真正体现“world model via planning”的价值。
三个关键数字:
- 4D:预测对象是时空 occupancy / flow。
- 4 类 action conditions:velocity、steering angle、trajectory、commands。
- 3 个数据集:nuScenes、nuScenes-Occupancy、Lyft-Level5。
6. 工程实践
Drive-OccWorld 的实现重点是历史 BEV memory、动作条件注入和基于 occupancy 的轨迹代价。工程上需要处理:
- 未来预测误差累积:预测 horizon 越长,occupancy / flow 越容易漂移。
- 占用分辨率:分辨率决定小障碍表达能力和计算成本。
- 动作采样范围:候选动作覆盖不足会限制 planning 上限。
- 闭环稳定性:规划输出反过来影响下一时刻观测,开环好不等于闭环稳。
- 代价设计:occupancy-based cost 需要和舒适性、交通规则、动力学约束结合。
因此,Drive-OccWorld 更像一个规划世界模型组件,而不是完整自动驾驶系统的最终形态。
7. 研究启示
Drive-OccWorld 说明 occupancy world model 可以从“预测未来”进一步走到“比较动作后果”。这是从感知世界模型走向规划世界模型的重要一步。
路线关系可以压成一句话:
OccWorld 让模型知道未来空间会如何占用; |
这也是自动驾驶 world model 是否有用的关键门槛:如果模型只能生成未来,却不能帮助动作选择,它更像生成器;如果模型能把未来状态转成规划代价,它才真正进入决策链路。