This paper was accepted at ICRA 2025 (IEEE International Conference on Robotics and Automation 2025, CCF B, Core A*). This repository is the official PyTorch Lightning implementation.
| Paper (PDF) | Project Page | Code |
|---|---|---|
| arXiv | xll0328.github.io/drive | GitHub |
Authors: Songning Lai~, Tianlang Xue~, Hongru Xiao, Lijie Hu, Jiemin Wu, Ninghui Feng, Runwei Guan, Haicheng Liao, Zhenning Li, Yutao Yue†
DRIVE is a comprehensive framework for improving the dependability and stability of explanations in end-to-end unsupervised autonomous driving models. It addresses instability issues in concept-based explainable systems (e.g. built on Concept Gridlock (DCG)) and provides both consistent/stable interpretability and consistent/stable control output.
- Consistent interpretability — explanations align with model behavior across samples.
- Stable interpretability — explanations remain robust under input perturbations.
- Consistent output — predictions are reliable across scenarios.
- Stable output — performance is robust under perturbations.
Teaser: see the project page for the animated overview. Framework figure:
- Method
- Installation
- Project structure
- Setup
- Arguments
- Training & evaluation
- Analysis & scripts
- Citation
- License
DRIVE defines four key attributes and implements a training/evaluation pipeline to achieve them:
- Consistent interpretability — concept explanations are aligned with the model’s actual reasoning.
- Stable interpretability — concept explanations remain stable under input noise/perturbations.
- Consistent output — driving decisions are consistent across similar inputs.
- Stable output — driving performance is robust under perturbations.
The codebase builds on a concept-bottleneck driving model: first train a DCG-style checkpoint, then resume with the DRIVE pipeline (see Training & evaluation) to optimize for the above properties. Novel metrics for evaluating dependability are included in the analysis notebooks.
git clone https://github.com/xll0328/ICRA25-DRIVE.git
cd ICRA25-DRIVE
conda create -n drive python=3.8
conda activate drive
pip install -r DRIVE/requirement.txtICRA25-DRIVE/
├── README.md
├── LICENSE
├── DRIVE/
│ ├── requirement.txt
│ ├── dataloader_comma.py
│ ├── comma_preprocess/ # Data preprocessing (raw_readers, clean_up_data)
│ ├── DCG_Core/ # Core DCG model and training
│ │ ├── main.py, model.py, module.py
│ │ └── README.md
│ └── DRIVE/
│ ├── main_copy1.py # Main entry for DRIVE training/testing
│ ├── model_copy1.py, model_copy2.py, module_copy1.py
│ ├── losses.py, PGD.py
│ ├── sh_scripts/ # Training and evaluation scripts
│ ├── attacks/ # Perturbation and noise tools
│ ├── scenarios_DCG/ # Scenario configs
│ └── analysis/ # Notebooks for MAE, concept visualization, performance
- Comma2k19: commaai/comma2k19
- Download: Academic Torrents
Extract video frames, obtain sample data, and save to HDF5:
- Run
DRIVE/comma_preprocess/raw_readers.ipynb - Run
DRIVE/comma_preprocess/clean_up_data.ipynb
Paths inside the notebooks and scripts (e.g. dataset path, checkpoint path) should be set to your local environment.
| Argument | Example | Description |
|---|---|---|
-task |
angle / distance / multitask |
Task for the model |
-train |
True |
Enable training |
-test |
False |
Enable testing |
-gpu_num |
1 |
Number of GPUs |
-dataset_path |
/path/to/dataset |
Path to dataset and checkpoints |
-concept_features |
True |
Use concept bottleneck |
-new_version |
True |
Train from scratch (do not resume) |
-save_path |
/path/to/savepath |
Path for saving CSV predictions |
-num-gpus |
1 |
Number of GPUs |
-max_epochs |
200 |
Maximum epochs |
-bs |
4 |
Batch size |
-checkpoint_path |
path/to/checkpoint.ckpt |
Checkpoint for resume / test |
img_noise |
GaussianNoise |
Noise type (build noisy dataset via DRIVE/DRIVE/attacks/ if needed) |
Follow Concept Gridlock (DCG) to obtain a DCG checkpoint.
From the repository root (or from DRIVE/DRIVE/ if your paths are set there):
python main_copy1.py -dataset comma -backbone none -concept_features -ground_truth normal \
-train -gpu_num 1 -max_epochs 50 -task distance -bs 2 -checkpoint_path DCG_checkpointMore examples: see DRIVE/DRIVE/sh_scripts/ (e.g. run_experiments_concept_comma_DRIVE.sh, testconcept.sh).
- MAE and predictions:
DRIVE/DRIVE/mae_test.ipynb— load checkpoints, run prediction, compute MAE and save results. - Concept visualization:
DRIVE/DRIVE/analysis/showconcepts.ipynb— visualize concept activations and compare across conditions. - Model performance:
DRIVE/DRIVE/analysis/observe_model_performances.ipynb— aggregate metrics and plots. - Perturbation / noise:
DRIVE/DRIVE/attacks/— e.g.noise-img.pyfor adding Gaussian noise to HDF5 image data; adjusth5_file_pathand output paths for your setup.
@inproceedings{lai2025drive,
title={DRIVE: Dependable Robust Interpretable Visionary Ensemble Framework in Autonomous Driving},
author={Songning Lai and Tianlang Xue and Hongru Xiao and Lijie Hu and Jiemin Wu and Ninghui Feng and Runwei Guan and Haicheng Liao and Zhenning Li and Yutao Yue},
booktitle={Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)},
year={2025},
eprint={2409.10330},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2409.10330},
}This project is licensed under the MIT License — see LICENSE.
