Skip to content

Official PyTorch implementation of "GaussianLSS - Toward Real-world BEV Perception via Depth Uncertainty Estimation using Gaussian Splatting" (CVPR 2025).

License

Notifications You must be signed in to change notification settings

HCIS-Lab/GaussianLSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GaussianLSS

This is the official repository of our paper:

[Paper] [Project page]

Toward Real-world BEV Perception: Depth Uncertainty Estimation via Gaussian Splatting
Shu-Wei Lu, Yi-Hsuan Tsai, Yi-Ting Chen.
CVPR 2025

⚙️ Installation

Create the environment with conda:

# Clone repo first
git clone https://github.com/HCIS-Lab/GaussianLSS

# Create python 3.8
conda create -y --name GaussianLSS python=3.8.0
conda activate GaussianLSS

# Install pytorch 2.1.0
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121

# Install other dependencies
pip install -r requirements.txt

# Install Gaussian Splatting
# Check if your cudatoolkit's version is same as pytorch build.
cd GaussianLSS/model/diff-gaussian-rasterization
pip install -e .

📦 Dataset preparation

📁 nuScenes Dataset

Go to nuScenes and download & unzip the following data:

  • Trainval
  • Map expansion

After unzipping, create a link file:

mkdir data
ln -s {YOUR_NUSC_DATA_PATH} ./data/nuscenes

🏷️ Generate lable

Generate required labels for running via:

python scripts/generate_data.py

This packs 3D bounding boxes into individual files with ego poses. It would take within 10 minutes.

If you want to run on a subset of data, you could download the v1.0-mini version of nuScenes dataset and generate labels with:

python scripts/generate_data.py data.version=v1.0-mini

🚀 Training

To train GaussianLSS with vehicle class only:

python scripts/train.py +experiment=GaussianLSS

Or pedestrian class:

python scripts/train.py +experiment=GaussianLSS data=nuscenes_ped

And also map classes:

python scripts/train.py +experiment=GaussianLSS_map

Training an epoch would take about 15 minutes with 2 RTX4090 gpus.

✅ Evaluation

Evaluate trained model with:

python scripts/evaluate.py +experiment={EXP_NAME} +ckpt={CHECKPOINT_PATH}

🖼️ Visualization

Run visualize.ipynb to create a gif visualization like this:

Checkpoints

Backbone Resolution Visibility IoU
Eff-b4 224x480 1 38.3
Eff-b4 224x480 2 42.8

TODOs

  • Add checkpoints.
  • Add det3d code.

🙏 Acknowledgements

This implementation is mainly based on:

And Gaussian Splatting:

Thanks to these great open-source implementations!

📚 Bibtex

If you find this work helpful, please consider citing our paper:

@inproceedings{lu2025GaussianLSS,
        author    = {Shu-Wei Lu and Yi-Hsuan Tsai and Yi-Ting Chen},
        title     = {Toward Real-world BEV Perception: Depth Uncertainty Estimation via Gaussian Splatting},
        booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
        year      = {2025}
}

About

Official PyTorch implementation of "GaussianLSS - Toward Real-world BEV Perception via Depth Uncertainty Estimation using Gaussian Splatting" (CVPR 2025).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published