Awesome
Refactored implementation of paper "MotionCNN: A Strong Baseline for Motion Prediction in Autonomous Driving"
This repository contains updated code for our team's solution of Waymo Motion Prediction Challenge 2021 where we have achieved 3rd place.
- π Paper [pdf]
- π€ Presentation [pdf]
- π€ Announcement [youtube]
- π Waymo Motion Prediction Challenge website
- π©βπ« CVPR2021 Workshop on Autonomous Driving
- βUPDATE: Related repo with 3rd place solution code for Waymo Motion Prediction Challenge 2022
If you find this repo helpful feel free to share and βοΈ it
Related repos
Team behind this solution:
Listed as in the paper
- Stepan Konev [LinkedIn] [Twitter] [GitHub]
- Kirill Brodt [GitHub]
- Artsiom Sanakoyeu [Homepage] [Twitter] [Telegram Channel] [LinkedIn]
Dataset
Download
datasets
uncompressed/tf_example/{training,validation,testing}
Training and prerendering
In order to train the model first you need to prepare the dataset in a convenient format
python prerender.py \
--data-path path/to/original/split \
--output-path path/to/preprocessed/split \
--config path/to/config.yaml \
--n-jobs 16 \
--n-shards 8 \
--shard-id 0 \
Rendering the training
split without sharding might be very resource demanding, so we recommend to use sharding (the number of shards depends on your computer's configuration)
Once the dataset is preprocessed, you can run the training script
python train.py \
--train-data-path path/to/preprocessed/training/split \
--val-data-path path/to/preprocessed/validation/split \
--checkpoints-path path/to/save/checkpoints \
--config path/to/config.yaml \
[--multi-gpu]
TODO:
Recently a Waymo Open Motion Dataset support was added to trajdata repo, that provides a unified way to work with different motion datasets. We aim to refactor this code to consume trajdata
format
Citation
@misc{konev2022motioncnn,
title={MotionCNN: A Strong Baseline for Motion Prediction in Autonomous Driving},
author={Stepan Konev and Kirill Brodt and Artsiom Sanakoyeu},
year={2022},
eprint={2206.02163},
archivePrefix={arXiv},
primaryClass={cs.CV}
}