uniad

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

https://github.com/opendrivelab/uniad

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    2 of 12 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary

Keywords

autonomous-driving autonomous-driving-framework bev-segmentation end-to-end-autonomous-driving motion-planning motion-prediction multi-object-tracking occupancy-prediction perception-prediction-planning
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: OpenDriveLab
  • License: apache-2.0
  • Language: Python
  • Default Branch: v2.0
  • Homepage:
  • Size: 9.38 MB
Statistics
  • Stars: 4,185
  • Watchers: 41
  • Forks: 479
  • Open Issues: 106
  • Releases: 2
Topics
autonomous-driving autonomous-driving-framework bev-segmentation end-to-end-autonomous-driving motion-planning motion-prediction multi-object-tracking occupancy-prediction perception-prediction-planning
Created about 3 years ago · Last pushed 8 months ago
Metadata Files
Readme Funding License Code of conduct Citation

README.md

[!IMPORTANT] 🌟 Stay up to date at opendrivelab.com!

# Planning-oriented Autonomous Driving

arXiv | Video | Poster | Slides

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



🚀 2025/02/27 UniAD 2.0 Preview

We’re thrilled to announce ​UniAD 2.0, a milestone release delivering critical upgrades and future-ready capabilities!

🔑 ​Key Enhancements​ - 🛠️ ​​Framework: Migrating to mmdet3d 1.x & torch 2.x (commonly used version today).
- 🔄 ​Compatibility: Existing workflows preserved - replicate our results via Evaluation Example. - 📊 ​Dataset: Integrating nuPlan and NAVSIM datasets.

​📅 ​TODO List - [x] Framework upgrade​ (mmdet3d 1.0.0rc6, torch 2.0.1+cu118) → Installation Guide. - [ ] Tools release for nuPlan and NAVSIM benchmark. [ETA 2025Q2]

Table of Contents:

  1. Highlights
  2. News
  3. Getting Started
  4. Results and Models
  5. License
  6. Citation
  7. 🔥 See Also: GenAD & Vista

Highlights

  • :oncoming_automobile: Planning-oriented philosophy: UniAD is a Unified Autonomous Driving algorithm framework following a planning-oriented philosophy. Instead of standalone modular design and multi-task learning, we cast a series of tasks, including perception, prediction and planning tasks hierarchically.
  • :trophy: SOTA performance: All tasks within UniAD achieve SOTA performance, especially prediction and planning (motion: 0.71m minADE, occ: 63.4% IoU, planning: 0.31% avg.Col)

News

  • Paper Title Change: To avoid confusion with the "goal-point" navigation in Robotics, we change the title from "Goal-oriented" to "Planning-oriented" suggested by Reviewers. Thank you!

  • Planning Metric: Discussion [Ref: https://github.com/OpenDriveLab/UniAD/issues/29]: Clarification and Notice regarding open-loop planning results comparison.

  • 2024/08/27 New feature: Implementation for CARLA and closed-loop evaluation on CARLA Leaderboard 2.0 scenarios are available in Bench2Drive.

  • 2023/08/03 Bugfix [Commit]: Previously, the visualized planning results were in opposition on the x axis, compared to the ground truth. Now it's fixed.

  • 2023/06/12 Bugfix [Ref: https://github.com/OpenDriveLab/UniAD/issues/21]: Previously, the performance of the stage1 model (trackmap) could not be replicated when trained from scratch, due to mistakenly adding `losspasttrajand freezingimgneckandBN. By removinglosspasttrajand unfreezingimg_neckandBN` in training, the reported results could be reproduced (AMOTA: 0.393, stage1trainlog).

  • 2023/04/18 New feature: You can replace BEVFormer with other BEV Encoding methods, e.g., LSS, as long as you provide the bev_embed and bev_pos in track_train and track_inference. Make sure your bevs and ours are of the same shape.

  • 2023/04/18 Base-model checkpoints are released.

  • 2023/03/29 Code & model initial release v1.0.

  • 2023/03/21 🌟🌟 UniAD is accepted by CVPR 2023, as an Award Candidate (12 out of 2360 accepted papers)!

  • 2022/12/21 UniAD paper is available on arXiv.

Getting Started

Results and Pre-trained Models

UniAD is trained in two stages. Pretrained checkpoints of both stages will be released and the results of each model are listed in the following tables.

Stage1: Perception training

We first train the perception modules (i.e., track and map) to obtain a stable weight initlization for the next stage. BEV features are aggregated with 5 frames (queue_length = 5).

| Method | Encoder | Tracking
AMOTA | Mapping
IoU-lane | config | Download | | :---: | :---: | :---: | :---: | :---:|:---:| | UniAD-B | R101 | 0.390 | 0.297 | base-stage1 | base-stage1 |

Stage2: End-to-end training

We optimize all task modules together, including track, map, motion, occupancy and planning. BEV features are aggregated with 3 frames (queue_length = 3).

| Method | Encoder | Tracking
AMOTA | Mapping
IoU-lane | Motion
minADE |Occupancy
IoU-n. | Planning
avg.Col. | config | Download | | :---: | :---: | :---: | :---: | :---:|:---:| :---: | :---: | :---: | | UniAD-B | R101 | 0.363 | 0.313 | 0.705 | 63.7 | 0.29 | base-stage2 | base-stage2 |

Planning results on the nuScense benchmark

Method Encoder L2(m) Col. Rate(%)
1s 2s 3s Avg. 1s 2s 3s Avg.
UniAD-B R101 0.48 0.96 1.65 1.03 0.05 0.17 0.71 0.31

✨NEW in v2.0: Planning results on the NAVSIM benchmark (from NAVSIM).

| Method | Encoder | NC | DAC | TTC | Comf. | EP | PDMS | | :---: | :---: | :---: | :---: | :---:|:---:|:---:|:---:| | UniAD | R34 | 97.8 | 91.9 | 92.9 | 100 | 78.8 | 83.4 |

Checkpoint Usage

  • Download the checkpoints you need into UniAD/ckpts/ directory.
  • You can evaluate these checkpoints to reproduce the results, following the evaluation section in TRAIN_EVAL.md.
  • You can also initialize your own model with the provided weights. Change the load_from field to path/of/ckpt in the config and follow the train section in TRAIN_EVAL.md to start training.

Model Structure

The overall pipeline of UniAD is controlled by uniad_e2e.py which coordinates all the task modules in UniAD/projects/mmdet3d_plugin/uniad/dense_heads. If you are interested in the implementation of a specific task module, please refer to its corresponding file, e.g., motion_head.

License

All assets and code are under the Apache 2.0 license unless specified otherwise.

Citation

If you find our project useful for your research, please consider citing our paper and codebase with the following BibTeX:

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}, }

bibtex @misc{contributors2023_uniadrepo, title={Planning-oriented Autonomous Driving}, author={UniAD contributors}, howpublished={\url{https://github.com/OpenDriveLab/UniAD}}, year={2023} }

Related Resources

Awesome - BEVFormer (Ours!) - ST-P3 (Ours!) - FIERY - MOTR

🔥 See Also

We are thrilled to launch our recent line of works: GenAD and Vista, to advance driving world models with the largest driving video dataset collected from the web - OpenDV.

GenAD: Generalized Predictive Model for Autonomous Driving (CVPR'24, Highlight ⭐)

Vista: A Generalizable Driving World Model with High Fidelity and Versatile Controllability 🌏

Owner

  • Name: OpenDriveLab
  • Login: OpenDriveLab
  • Kind: organization
  • Email: contact@opendrivelab.com
  • Location: Hong Kong

AI for Robotics and Autonomous Driving, affiliated at The University of Hong Kong (HKU).

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - name: "UniAD Contributors"
title: "Planning-oriented Autonomous Driving"
date-released: 2023-03-26
url: "https://github.com/OpenDriveLab/UniAD"
license: Apache-2.0

GitHub Events

Total
  • Issues event: 38
  • Watch event: 707
  • Delete event: 4
  • Issue comment event: 105
  • Push event: 6
  • Pull request event: 7
  • Fork event: 92
  • Create event: 3
Last Year
  • Issues event: 38
  • Watch event: 707
  • Delete event: 4
  • Issue comment event: 105
  • Push event: 6
  • Pull request event: 7
  • Fork event: 92
  • Create event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 109
  • Total Committers: 12
  • Avg Commits per committer: 9.083
  • Development Distribution Score (DDS): 0.367
Past Year
  • Commits: 24
  • Committers: 5
  • Avg Commits per committer: 4.8
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
YTEP-ZHI y****z@g****m 69
ilnehc i****c@u****u 13
Hongyang Li h****0@g****m 7
lihongchen l****1@g****m 5
Tianyu Li l****u@o****m 3
Lihongchen 5****n 3
Yihanhu y****6@g****m 2
William Ljungbergh w****h@z****m 2
陈立 P****1@s****g 2
faikit 2****t 1
Ikko Eltociear Ashimine e****r@g****m 1
Chonghao Sima s****c@p****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 162
  • Total pull requests: 19
  • Average time to close issues: 25 days
  • Average time to close pull requests: 7 days
  • Total issue authors: 122
  • Total pull request authors: 12
  • Average comments per issue: 2.26
  • Average comments per pull request: 0.32
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 32
  • Pull requests: 6
  • Average time to close issues: 1 day
  • Average time to close pull requests: 2 minutes
  • Issue authors: 29
  • Pull request authors: 5
  • Average comments per issue: 0.28
  • Average comments per pull request: 0.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • meua (13)
  • haibao-yu (5)
  • TonyPeng-2018 (5)
  • Christinepan881 (4)
  • yudefu (4)
  • Rango-T10000 (4)
  • MPCheng-ZW (2)
  • chriskeraly (2)
  • zengyf131 (2)
  • AI-WangTao (2)
  • bzha5848 (2)
  • buaazeus (2)
  • wljungbergh (2)
  • whystopped (2)
  • zhoujiawei3 (2)
Pull Request Authors
  • YTEP-ZHI (3)
  • wljungbergh (3)
  • lhcstation (2)
  • Yihanhu (2)
  • yjmade (2)
  • hli2020 (2)
  • litanlitudan (1)
  • yksu (1)
  • techkang (1)
  • luoxiao23333 (1)
  • Rango-T10000 (1)
  • ilnehc (1)
  • eltociear (1)
Top Labels
Issue Labels
question (14) good issue (4) bug (4) enhancement (4) fixed (2) documentation (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 2
proxy.golang.org: github.com/OpenDriveLab/UniAD
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago
proxy.golang.org: github.com/opendrivelab/uniad
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago