Helin Cao and Sven Behnke
University of Bonn and Lamarr Institute, Bonn, Germany
IROS 2025
Arxiv | Project page
We recommend you to use anaconda to manage dependencies. You may need to change the torch and cuda version according to your computer.
- Create conda environment:
conda create --name diffssc python=3.8
conda activate diffssc
- Please install PyTorch:
conda install pytorch=1.13.0 torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
- Install the additional dependencies:
cd DiffSSC/
pip install -r requirements.txt
- Installing MinkowskiEngine:
pip3 install -U MinkowskiEngine==0.5.4 --install-option="--blas=openblas" -v --no-deps
- We use dvis for visualization, which is a lightweight but efficient tool with a web server. We recommend you to use another conda environment to visualize the result.
conda create --name dvis python=3.8 requests matplotlib pyyaml tqdm imageio
conda activate dvis
pip install visdom
git clone git@github.com:SirWyver/dvis.git
cd dvis
pip install .
- You need to download
- The Semantic Scene Completion dataset v1.1 (SemanticKITTI voxel data (700 MB)) from SemanticKITTI website
- The KITTI Odometry Benchmark calibration data (Download odometry data set (calibration files, 1 MB)) and the RGB images (Download odometry data set (color, 65 GB)) from KITTI Odometry website.
- The dataset folder at /path/to/semantic_kitti should have the following structure:
└── /path/to/semantic_kitti/ └── dataset └── sequences ├── 00 | ├── image_2 | ├── labels | ├── velodyne | ├── voxels | ├── calib.txt | ├── poses.txt | └── times.txt ├── 01 ...
- Create a folder to store SemanticKITTI GroundTruth data at
/path/to/semantic_kitti/groundtruth/folder.
python3 map_from_scans.py --/path/to/semantic_kitti/groundtruth/folder
All the scripts is controlled by the /DiffSSC/diffssc/config/
To train the diffusion model, adjust the configuration file at config/config.yaml, then start the training process with:
python train.py
For the refinement stage, use the configuration in config/config_refine.yaml and execute:
python train_refine.py
Put the checkpoints in the /path/to/kitti/logdir/trained_models/kitti.ckpt, then run:
python evaluation.py
Please follow the guide of dvis, you need to setup the server before running the script.
python visualization.py
If you find this work or code useful, please cite our paper and give this repo a star :)
@inproceedings{cao2025diffssc,
title = {{DiffSSC}: Semantic {LiDAR} Scan Completion using Denoising Diffusion Probabilistic Models},
author = {Cao, Helin and Behnke, Sven},
booktitle = {IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)},
year = {2025},
}
DiffSSC is released under the MIT license. Our code follows several awesome repositories. We appreciate them for making their codes available to public.
