Skip to content

stepankonev/StandardE2E

Repository files navigation

StandardE2E Logo

A framework for unified end-to-end autonomous driving datasets processing

Python versions PyTorch License Tests codecov Code Style mypy StandardE2E

Docs Discord

StandardE2E provides a consistent interface for preprocessing, loading, and training with multimodal data from various end-to-end autonomous driving datasets. It standardizes the complex process of working with different dataset formats, allowing researchers to focus on model development rather than data engineering.

StandardE2E Architecture


πŸ“– Documentation

πŸ“¦ Installation

Option 1: From PyPI (Recommended for Users)

pip install standard-e2e

Option 2: Development with uv (recommended)

# Install uv: https://docs.astral.sh/uv/
git clone https://github.com/stepankonev/StandardE2E.git
cd StandardE2E
uv sync --all-extras   # installs deps and dev deps from uv.lock
uv run pytest tests/   # run tests

Option 3: Manual development (pip/conda)

conda create -n standard_e2e python=3.12
conda activate standard_e2e
pip install -e ".[dev]"

Plan for E2E Autonomous Driving Datasets Support

Dataset Cameras Lidar HD Map Detections Driving Command Preference Trajectories
Waymo End-to-end βœ… ❌ ❌ βœ… βœ…
Waymo Perception βœ… βœ… βœ… ❌ ❌
Navsim βœ… βœ… βœ… βœ… ❌
WayveScenes101 βœ… ❌ ❌ ❌ ❌
Argoverse 2 Sensor βœ… βœ… βœ… ❌ ❌
Argoverse 2 Lidar ❌ βœ… βœ… ❌ ❌ ❌
Argoverse 2 Map Change βœ… βœ… βœ… ❌ ❌ ❌
KITTI βœ… ❓ ❓ ❓ ❓
KITTI-360 + 2 x βœ… ❓ ❓ ❓ ❓
Waymo Motion Prediction ❌ βœ… βœ… βœ… ❌ ❌
Argoverse 2 Motion Forecasting [?] ❌ ❌ βœ… βœ… ❌ ❌

πŸš€ Key Features

  • Unified Dataset Interface: Work with multiple datasets through a single API
  • Multimodal Support: Cameras, LiDAR , HD maps , trajectories, detections and more
  • Flexible Preprocessing: Configurable pipelines with standardization and augmentation
  • Trajectory Management: Advanced handling of time-series vehicle data
  • PyTorch Integration: Ready-to-use datasets and dataloaders

πŸ“ Quick Start & Examples

Notebooks

Code Examples

Run from the project root so uv run uses the project environment. If you use pip/conda instead, activate your env and use python in place of uv run python.

  1. Preprocess Waymo End-to-end dataset - Convert raw dataset to standardized format (dataset_preprocessing.py)

    uv run python examples/dataset_preprocessing.py \
      --e2e_dataset_path E2E_DATASET_PATH \
      --split {training,val,test} \
      --processed_data_path PROCESSED_DATA_PATH
  2. Train your model - End-to-end training with multimodal data (very_simple_training.py). This example illustrates iteration over the preprocessed dataset. Also, in this example for validation we use 2 DataLoaders - full validation split and filtered validation split that only contains samples with preferred trajectories.

    uv run python examples/very_simple_training.py --processed_data_path PROCESSED_DATA_PATH
  3. Create a unified DataLoader: This example shows how to process 2 different datasets within same DataLoader. First, please do preprocessing for Waymo E2E and Waymo Perception datasets in order to utilize them in the DataLoader with the script (prepare_datasets_waymo_e2e_perception.sh).

    The script creating_unified_dataloader.py created a unified dataloader that iterates over both Waymo E2E and Waymo Perception in one epoch providing consistent data structure.

    uv run python examples/creating_unified_dataloader.py --processed_data_path PROCESSED_DATA_PATH
  4. Add a new dataset adapter - Guide for adding support for new datasets (adding_new_dataset.md)

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“š Citation

If you find this project useful, you can support it by giving it a ⭐, or by contributing with your PRs / issues / feature requests. Also, if you use this project, you can greatly support it by citing

@software{standarde2e,
  title={StandardE2E: A Unified Framework for Autonomous Driving Dataset Management},
  author={stepankonev},
  year={2025},
  url={https://github.com/stepankonev/StandardE2E}
}

and using the badge StandardE2E

Markdown

[![StandardE2E](https://raw.githubusercontent.com/stepankonev/StandardE2E/refs/heads/main/assets/StandardE2E_gh_badge_dark.svg)](https://github.com/stepankonev/StandardE2E)

HTML

<a href="https://github.com/stepankonev/StandardE2E">
  <img src="https://raw.githubusercontent.com/stepankonev/StandardE2E/refs/heads/main/assets/StandardE2E_gh_badge_dark.svg" alt="StandardE2E"/>
</a>

About

A framework for unified end-to-end autonomous driving datasets processing

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors