基于图的拓扑推理用于驾驶场景
- 来自 OpenDriveLab。与华为诺亚方舟实验室、复旦大学和香港大学多媒体实验室的合作伙伴共同完成。
- 主要联系人: Tianyu Li (litianyu@opendrivelab.com) 或/和 Li Chen。
本仓库包含 TopoNet 的源代码, 基于图的拓扑推理用于驾驶场景。
TopoNet 是第一个端到端的框架,能够抽象交通知识超越常规感知任务,即从传感器输入"推理道路中心线和交通元素之间的连接"。它统一了异质特征学习,并通过图神经网络架构和知识图设计增强了特征交互。
相比于识别车道,我们坚持建模车道拓扑更为"合适"来构建感知框架内的道路组件,从而促进最终驾驶舒适。这与UniAD理念一致。
目录
新闻
置顶:
排行榜用于车道拓扑挑战比赛全年开放常规提交。本挑战将于2024年恢复。[2023/11]
:fire:已发布OpenLane-V2子集B的代码和模型![2023/08]
已发布TopoNet的代码和模型![2023/04]
TopoNet 论文已在arXiv上发布。[2023/01]
介绍在CVPR 2023上举办的自动驾驶挑战赛车道拓扑赛道。
主要结果
OpenLane-V2 子集A验证集结果
我们在 Openlane-V2 子集A 验证集上提供结果。
方法 | 主干网络 | 轮次 | DETl | TOPll | DETt | TOPlt | OLS |
---|---|---|---|---|---|---|---|
STSU | ResNet-50 | 24 | 12.7 | 0.5 | 43.0 | 15.1 | 25.4 |
VectorMapNet | ResNet-50 | 24 | 11.1 | 0.4 | 41.7 | 6.2 | 20.8 |
MapTR | ResNet-50 | 24 | 8.3 | 0.2 | 43.5 | 5.8 | 20.0 |
MapTR* | ResNet-50 | 24 | 17.7 | 1.1 | 43.5 | 10.4 | 26.0 |
TopoNet | ResNet-50 | 24 | 28.6 | 4.1 | 48.6 | 20.3 | 35.6 |
:fire:: 基于更新的v1.1
OpenLane-V2开发包和指标,我们重新评估了TopoNet和其他SOTA模型的性能。更多细节请参见OpenLane-V2的issue #76。
方法 | 主干网络 | 轮次 | DETl | TOPll | DETt | TOPlt | OLS |
---|---|---|---|---|---|---|---|
STSU | ResNet-50 | 24 | 12.7 | 2.9 | 43.0 | 19.8 | 29.3 |
VectorMapNet | ResNet-50 | 24 | 11.1 | 2.7 | 41.7 | 9.2 | 24.9 |
MapTR | ResNet-50 | 24 | 8.3 | 2.3 | 43.5 | 8.9 | 24.2 |
MapTR* | ResNet-50 | 24 | 17.7 | 5.9 | 43.5 | 15.1 | 31.0 |
TopoNet | ResNet-50 | 24 | 28.6 | 10.9 | 48.6 | 23.8 | 39.8 |
*: 基于Chamfer距离的匹配结果评估。
TopoNet的结果来自本仓库。
OpenLane-V2 子集B验证集结果
方法 | 主干网络 | 轮次 | DETl | TOPll | DETt | TOPlt | OLS |
---|---|---|---|---|---|---|---|
TopoNet | ResNet-50 | 24 | 24.4 | 6.7 | 52.6 | 16.7 | 36.0 |
结果基于更新的
v1.1
OpenLane-V2开发包和指标。
TopoNet的结果来自本仓库。
模型库
模型 | 数据集 | 骨干网络 | 迭代轮数 | OLS | 内存 | 配置 | 下载 |
---|---|---|---|---|---|---|---|
TopoNet-R50 | subset-A | ResNet-50 | 24 | 39.8 | 12.3G | 配置 | 检查点 / 日志 |
TopoNet-R50 | subset-B | ResNet-50 | 24 | 36.0 | 8.2G | 配置 | 检查点 / 日志 |
前提条件
- Linux
- Python 3.8.x
- NVIDIA GPU + CUDA 11.1
- PyTorch 1.9.1
安装
我们建议使用 conda 来运行代码。
conda create -n toponet python=3.8 -y
conda activate toponet
# (可选) 如果您的电脑上已经安装了 CUDA, 跳过这一步
conda install cudatoolkit=11.1.1 -c conda-forge
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html
安装 mm-系列包。
pip install mmcv-full==1.5.2 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
pip install mmdet==2.26.0
pip install mmsegmentation==0.29.1
pip install mmdet3d==1.0.0rc6
安装其他所需的包。
pip install -r requirements.txt
准备数据集
按照 OpenLane-V2 repo 下载数据并运行 预处理 代码。
cd TopoNet
mkdir data && cd data
ln -s {PATH to OpenLane-V2 repo}/data/OpenLane-V2
设置完成后, data
文件夹的层次结构如下:
data/OpenLane-V2
├── train
| └── ...
├── val
| └── ...
├── test
| └── ...
├── data_dict_subset_A_train.pkl
├── data_dict_subset_A_val.pkl
├── data_dict_subset_B_train.pkl
├── data_dict_subset_B_val.pkl
├── ...
训练和评估
训练
我们建议使用 8 个 GPU 进行训练。如果使用不同数量的 GPU, 您可以通过配置 --autoscale-lr
选项来提高性能。训练日志将保存到 work_dirs/toponet
。
cd TopoNet
mkdir -p work_dirs/toponet
./tools/dist_train.sh 8 [--autoscale-lr]
评估
您可以设置 --show
来可视化结果。
./tools/dist_test.sh 8 [--show]
许可证
所有资产和代码都受 Apache 2.0 许可证 的约束, 除非另有说明。
引用
如果这项工作对您的研究有帮助, 请考虑引用以下 BibTeX 条目。
@article{li2023toponet,
title={Graph-based Topology Reasoning for Driving Scenes},
author={Li, Tianyu and Chen, Li and Wang, Huijie and Li, Yang and Yang, Jiazhi and Geng, Xiangwei and Jiang, Shengyin and Wang, Yuting and Xu, Hang and Xu, Chunjing and Yan, Junchi and Luo, Ping and Li, Hongyang},
journal={arXiv preprint arXiv:2304.05277},
year={2023}
}
@inproceedings{wang2023openlanev2,
title={OpenLane-V2: A Topology Reasoning Benchmark for Unified 3D HD Mapping},
author={Wang, Huijie and Li, Tianyu and Li, Yang and Chen, Li and Sima, Chonghao and Liu, Zhenbo and Wang, Bangjun and Jia, Peijin and Wang, Yuting and Jiang, Shengyin and Wen, Feng and Xu, Hang and Luo, Ping and Yan, Junchi and Zhang, Wei and Li, Hongyang},
booktitle={NeurIPS},
year={2023}
}
相关资源
我们感谢以下开源项目的贡献者,使得这项工作得以实现: