GameFormer
本仓库包含ICCV'23论文的代码:
GameFormer:基于博弈论建模和Transformer学习的自动驾驶交互预测与规划
黄智宇、刘浩辰、吕臣
南洋理工大学AutoMan研究实验室
[论文] [arXiv] [项目网站]
概述
在本仓库中,你可以找到以下功能:
包含 🤟:
- 在Waymo开放运动数据集(WOMD)上使用联合模型进行交互预测的代码
- 在WOMD选定的动态场景中进行开环规划的代码
不包含 😵:
- 在WOMD上使用EM集成的边缘模型进行交互预测的代码
- 在WOMD上进行闭环规划的代码。请参考我们之前的工作DIPP
- 打包和提交预测结果到WOMD交互预测挑战赛的代码
对于有兴趣进行nuPlan数据集实验的人,我们邀请你访问GameFormer Planner仓库,该仓库提供了一个更全面的规划框架。
数据集和环境
1. 下载
- 下载Waymo开放运动数据集 v1.1。使用
scenario/training_20s
或scenario/training
中的数据进行训练,使用scenario/validation
和scenario/validation_interactive
中的数据进行测试。 - 克隆此仓库并进入目录:
git clone https://github.com/MCZhi/GameFormer.git && cd GameFormer
2. 环境设置
- 创建conda环境:
conda create -n gameformer python=3.8
- 激活conda环境:
conda activate gameformer
- 安装所需包:
pip install -r requirements.txt
交互预测
进入交互预测目录:
cd interaction_prediction
1. 数据处理
注意:使用training_20s
作为训练集时可能存在一些缺失标注问题,所以请下载scenario/training
代替。
使用以下命令预处理用于模型训练的数据:
python data_process.py \
--load_path path/to/your/dataset/scenario/set_path \
--save_path path/to/your/processed_data/set_path \
--use_multiprocessing \
--processes=8
将--load_path
指定为下载的数据集路径,--save_path
指定为所需的处理后数据路径,并启用--use_multiprocessing
进行并行数据处理。你可以分别对training
和validation_interactive
集进行此操作。
2. 训练与评估
使用以下命令训练模型:
bash train.sh 4 #GPU数量
注意:在训练之前,请在脚本文件中指定--train_set
和--valid_set
的处理后路径。
设置--name
以保存日志和检查点。如train.py
中所述,你还可以调整其他参数,如--seed
、--train_epochs
、--batch_size
以进行自定义训练。
开环规划
进入开环规划目录:
cd open_loop_planning
1. 数据处理
使用以下命令预处理用于模型训练的数据:
python data_process.py \
--load_path path/to/your/dataset/training_20s \
--save_path path/to/your/processed_data \
--use_multiprocessing \
将--load_path
设置为下载的数据集位置,--save_path
设置为所需的处理后数据路径,并启用--use_multiprocessing
进行并行数据处理。你可以分别对训练集和验证集进行此操作。
2. 训练
使用以下命令训练模型:
python train.py \
--train_set path/to/your/processed_data/train \
--valid_set path/to/your/processed_data/valid
指定--train_set
和--valid_set
的路径。你可以设置--levels
来确定交互级别的数量。根据需要调整其他参数,如--seed
、--train_epochs
、--batch_size
和--learning_rate
以进行训练。
训练日志和模型将保存在training_log/{name}
中。
3. 测试
进行测试,运行:
python open_loop_test.py \
--test_set path/to/your/dataset/validation \
--model_path path/to/your/saved/model
将--test_set
指定为scenario/validation
数据的路径,将--model_path
指定为你训练好的模型路径。使用--render
可视化规划和预测结果。
测试结果将保存在testing_log/{name}
中。
引用
如果你发现这个仓库对你的研究有用,请考虑给我们一个星星 🌟 并引用我们的论文。
@InProceedings{Huang_2023_ICCV,
author = {Huang, Zhiyu and Liu, Haochen and Lv, Chen},
title = {GameFormer: Game-theoretic Modeling and Learning of Transformer-based Interactive Prediction and Planning for Autonomous Driving},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2023},
pages = {3903-3913}
}