[!注意] 存储许多演示文件的 Amazon AWS S3 存储桶
argoai-argoverse
已遭到破坏。这些文件可能已损坏。 引用此 S3 存储桶的文件已被修改,从该存储桶的所有检索操作都已被注释掉。 请谨慎操作。
LaneGCN: 学习车道图表示用于运动预测
论文 | 幻灯片 | 项目页面 | ECCV 2020 口头报告 视频
Ming Liang, Bin Yang, Rui Hu, Yun Chen, Renjie Liao, Song Feng, Raquel Urtasun
在 Argoverse 运动预测竞赛 中 排名第一
目录
安装依赖
你需要安装以下包才能运行代码:
- 以下是使用 anaconda 从头开始创建环境的示例,你也可以使用 pip:
conda create --name lanegcn python=3.7
conda activate lanegcn
conda install pytorch==1.5.1 torchvision cudatoolkit=10.2 -c pytorch # 代码发布时使用 pytorch=1.5.1
# 安装 argoverse api
pip install git+https://github.com/argoai/argoverse-api.git
# 安装其他依赖
pip install scikit-image IPython tqdm ipdb
- [可选但推荐] 安装 Horovod 和
mpi4py
用于分布式训练。Horovod 比nn.DataParallel
更高效,比nn.DistributedDataParallel
更易用。在安装 horovod 之前,请确保已安装 openmpi(sudo apt-get install -y openmpi-bin
)。
pip install mpi4py
# 安装支持 GPU 的 horovod,这可能需要一些时间
HOROVOD_GPU_OPERATIONS=NCCL pip install horovod==0.19.4
# 如果你只有单个 GPU,为了代码兼容性请安装
pip install horovod
如果你在安装 horovod 时遇到任何问题,请参考 horovod github
准备数据:Argoverse 运动预测
你可以查看脚本,并下载处理好的数据,而不是运行数小时。
bash get_data.sh
训练
[推荐] 使用 Horovod 多 GPU 训练
# 单节点 4 个 GPU
horovodrun -np 4 -H localhost:4 python /path/to/train.py -m lanegcn
# 2 个节点,每个节点 4 个 GPU
horovodrun -np 8 -H serverA:4,serverB:4 python /path/to/train.py -m lanegcn
在 4 个 GPU (RTX 5000) 上使用 horovod 训练模型需要 8 小时。
我们还提供了 训练日志 供你调试。
[推荐] 在单 GPU 上使用 Horovod 进行训练/调试
python train.py -m lanegcn
测试
你可以从 这里 下载预训练模型
对测试集进行推理以提交结果
python test.py -m lanegcn --weight=/absolute/path/to/36.000.ckpt --split=test
对验证集进行推理以获取指标
python test.py -m lanegcn --weight=36.000.ckpt --split=val
定性结果
标签(红色)预测(绿色)其他代理(蓝色)
定量结果
许可证
查看 LICENSE
引用
如果你使用我们的源代码,请考虑引用以下内容:
@InProceedings{liang2020learning,
title={Learning lane graph representations for motion forecasting},
author={Liang, Ming and Yang, Bin and Hu, Rui and Chen, Yun and Liao, Renjie and Feng, Song and Urtasun, Raquel},
booktitle = {ECCV},
year={2020}
}
如果你对代码有任何问题,请提出 issue 并 @chenyuntc。