UniAD:规划导向的自动驾驶统一算法框架,实现感知、预测与规划一体化

[CVPR 2023 Best Paper Award] Planning-oriented Autonomous Driving

分支2Tags2
文件最后提交记录最后更新时间
2 年前
2 年前
9 个月前
9 个月前
2 年前
9 个月前
9 个月前
3 年前
3 年前
3 年前
9 个月前
9 个月前

Important

🌟 请访问 opendrivelab.com 获取最新动态!

面向规划的自动驾驶

论文预印本 | 视频 | 海报 | 幻灯片

https://github.com/OpenDriveLab/UniAD/assets/48089846/bcf685e4-2471-450e-8b77-e028a46bd0f7



🚀 2025/10/29 UniAD 2.0 版本发布

我们激动地宣布 UniAD 2.0 版本正式发布!这是一个里程碑式的版本,带来了关键升级和面向未来的功能!

🔑 核心增强

  • 🛠️ 框架:迁移至 mmdet3d 1.xtorch 2.x(当前广泛使用的版本)。详情请参见 发布说明
  • 🔄 兼容性:保留现有工作流程 - 可通过 评估示例 复现我们的结果。
  • 📊 数据集:集成 nuPlanNAVSIM 数据集。

📅 待办事项

目录:

  1. 核心亮点
  2. 最新动态
  3. 快速开始
  4. 结果与模型
  5. 许可证
  6. 引用

核心亮点

  • 🚘 面向规划的设计理念:UniAD 是一个遵循面向规划设计理念的统一自动驾驶算法框架。与独立模块化设计和多任务学习不同,我们将感知、预测和规划等一系列任务进行层次化构建。
  • 🏆 最先进性能:UniAD 中的所有任务均达到最先进性能,尤其是预测和规划任务(运动预测:0.71米 minADE,占据预测:63.4% IoU,规划:0.31% avg.Col)

新闻

  • 2025/10/29:我们发布了 UniAD 实现的新版本。详情请参见 发布说明

  • 论文标题变更:为避免与机器人领域中的“目标点”导航概念混淆,根据评审专家建议,我们将标题从“Goal-oriented”更改为“Planning-oriented”。感谢!

  • 规划指标:相关讨论 [参考链接:https://github.com/OpenDriveLab/UniAD/issues/29]:关于开环规划结果比较的 说明注意事项

  • 2024/08/27 新功能:CARLA 的实现以及在 CARLA Leaderboard 2.0 场景上的闭环评估已在 Bench2Drive 中提供。

  • 2023/08/03 错误修复 [提交记录]:此前,可视化的规划结果与真实值在 x 轴方向上相反。现已修复。

  • 2023/06/12 错误修复 [参考链接:https://github.com/OpenDriveLab/UniAD/issues/21]:此前,由于错误地添加了 loss_past_traj 并冻结了 img_neckBN,导致 stage1 模型(track_map)从零开始训练时无法复现性能。通过在训练中移除 loss_past_traj 并解冻 img_neckBN,可以复现报告的结果(AMOTA:0.393,stage1_train_log)。

  • 2023/04/18 新功能:您可以用其他 BEV 编码方法替换 BEVFormer,例如 LSS,只需在 track_traintrack_inference 中提供 bev_embedbev_pos 即可。确保您的 BEV 与我们的 BEV 形状相同。

  • 2023/04/18 基础模型检查点已发布。

  • 2023/03/29 代码和模型初始版本 v1.0 发布。

  • 2023/03/21 🌟🌟 UniAD 被 CVPR 2023 接收,并成为 奖项候选论文(在 2360 篇接收论文中位列前 12)!

  • 2022/12/21 UniAD 论文 在 arXiv 上发布。

快速开始

结果与预训练模型

UniAD 的训练分为两个阶段。两个阶段的预训练检查点都将发布,各模型的结果如下表所示。

阶段一:感知训练

我们首先训练感知模块(即跟踪和地图),以获得稳定的权重初始化,为下一阶段做准备。BEV 特征通过 5 帧进行聚合(queue_length = 5)。

方法 编码器 跟踪
AMOTA
地图
IoU-lane
配置文件 下载
UniAD-B R101 0.394 0.294 base-stage1 base-stage1

阶段二:端到端训练

我们对所有任务模块进行联合优化,包括跟踪、地图、运动、占用和规划。BEV 特征通过 3 帧进行聚合(queue_length = 3)。

方法 编码器 跟踪
AMOTA
地图
IoU-lane
运动
minADE
占用
IoU-n.
规划
avg.Col.
配置文件 下载
UniAD-B R101 0.380 0.314 0.794 64.0 0.29 base-stage2 base-stage2

在 nuScense 基准测试集上的规划结果

方法 编码器 L2 距离(米) 碰撞率(%)
1秒 2秒 3秒 平均值 1秒 2秒 3秒 平均值
UniAD-B R101 0.29 0.89 1.53 0.90 0.15 0.20 0.53 0.29

✨v2.0 新增:在 NAVSIM 基准测试集上的规划结果(来自 NAVSIM)。

方法 编码器 NC DAC TTC Comf. EP PDMS
UniAD R34 97.8 91.9 92.9 100 78.8 83.4

检查点使用方法

  • 将所需的检查点下载到 UniAD/ckpts/ 目录中。
  • 您可以评估这些检查点以复现结果,请遵循 TRAIN_EVAL.md 中的“评估”部分。
  • 您也可以使用提供的权重初始化自己的模型。在配置文件中将 load_from 字段修改为 path/of/ckpt,然后按照 TRAIN_EVAL.md 中的“训练”部分开始训练。

模型结构

UniAD 的整体流程由 uniad_e2e.py 控制,该文件协调 UniAD/projects/mmdet3d_plugin/uniad/dense_heads 中的所有任务模块。如果您对特定任务模块的实现感兴趣,请参考其对应的文件,例如 motion_head

许可证

除非另有说明,所有资源和代码均遵循 Apache 2.0 许可证

引用

如果您发现我们的项目对您的研究有所帮助,请考虑通过以下 BibTeX 引用我们的论文和代码库:

@inproceedings{hu2023_uniad,
 title={Planning-oriented Autonomous Driving}, 
 author={Yihan Hu and Jiazhi Yang and Li Chen and Keyu Li and Chonghao Sima and Xizhou Zhu and Siqi Chai and Senyao Du and Tianwei Lin and Wenhai Wang and Lewei Lu and Xiaosong Jia and Qiang Liu and Jifeng Dai and Yu Qiao and Hongyang Li},
 booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
 year={2023},
}
@misc{contributors2023_uniadrepo,
  title={Planning-oriented Autonomous Driving},
  author={UniAD contributors},
  howpublished={\url{https://github.com/OpenDriveLab/UniAD}},
  year={2023}
}

相关资源

Awesome