Skip to content

DriveSceneGen: Generating Diverse and Realistic Driving Scenarios from Scratch

License

Notifications You must be signed in to change notification settings

SS47816/DriveSceneGen

Repository files navigation

DriveSceneGen

[Paper] [Project Page] [Code]

Alt text

DriveSceneGen: Generating Diverse and Realistic Driving Scenarios from Scratch

Shuo Sun, Zekai Gu, Tianchen Sun, Jiawei Sun, Chengran Yuan, Yuhang Han, Dongen Li, and Marcelo H. Ang Jr.

Advanced Robotics Centre, National University of Singapore

Indicates Equal Contribution

Abstract

Realistic and diverse traffic scenarios in large quantities are crucial for the development and validation of autonomous driving systems. However, owing to numerous difficulties in the data collection process and the reliance on intensive annotations, real-world datasets lack sufficient quantity and diversity to support the increasing demand for data. This work introduces DriveSceneGen, a data-driven driving scenario generation method that learns from the real-world driving dataset and generates entire dynamic driving scenarios from scratch. Experimental results on 5k generated scenarios highlight that DriveSceneGen is able to generate novel driving scenarios that align with real-world data distributions with high fidelity and diversity. To the best of our knowledge, DriveSceneGen is the first method that generates novel driving scenarios involving both static map elements and dynamic traffic participants from scratch. Extensive experiments demonstrate that our two-stage method outperforms existing state-of-the-art map generation methods and trajectory simulation methods on their respective tasks.

Install

  1. Clone this repository
git clone https://github.com/SS47816/DriveSceneGen.git
cd DriveSceneGen
  1. Install all Dependencies
make install
conda activate DriveSceneGen
make pip-install

Usage

Prepare Training Data

  1. Download the official Waymo Motion Dataset to the ./data/raw directory

  2. Preprocess the downloaded data

    python3 DriveSceneGen/scripts/data_preprocess.py
  3. Plot training data

    python3 DriveSceneGen/scripts/data_rasterization.py
  4. Train the diffusion model

    python3 DriveSceneGen/scripts/train.py
  5. Generate scenes using your trained diffusion model

    python3 DriveSceneGen/scripts/generation.py
  6. Vectorize the generated scenes

    python3 DriveSceneGen/scripts/vectorization.py

BibTeX

If you find our work interesting, please consider citing our paper:

@misc{sun2023drivescenegen,
    title={DriveSceneGen: Generating Diverse and Realistic Driving Scenarios from Scratch},
    author={Shuo Sun and Zekai Gu and Tianchen Sun and Jiawei Sun and Chengran Yuan and Yuhang Han and Dongen Li and Marcelo H. Ang Jr au2},
    year={2023},
    eprint={2309.14685},
    archivePrefix={arXiv},
    primaryClass={cs.RO}
}

License

This repository is licensed under the Apache License 2.0

Project based on Nesta's data science project template