Skip to content

nerficg-project/SPaGS

Repository files navigation

SPaGS: Fast and Accurate 3D Gaussian Splatting for Spherical Panoramas

EGSR 2025

Junbo Li1    Florian Hahlbohm1    Timon Scholz1    Martin Eisemann1    Jan-Philipp Tauscher1    Marcus Magnor1,2
1Computer Graphics Lab, TU Braunschweig, Germany    2University of New Mexico, USA   

Dataset

We use OmniBlender and Ricoh360 datasets from EgoNeRF, and also our own dataset RaR (Roaming and Rounding). Download link: RaR_pano.

Remarks: The above link only refers to the 360-degree panoramic image data. Our RaR dataset also provides perspective image data. The full version can be downloaded from our project page. The original image resolution is about 4K, and you can use mogrify to downscale it, for example:

mogrify -quality 100 -resize 50% -path your_data_path/images_2 your_data_path/images/*.png

Also, we used original images from our RaR dataset to do the evaluation in our paper. Because we had to keep the published data anonymous (e.g., blurring license plates and faces), the final results might be slightly different from the ones listed in our paper and supplemental material. The new results of SPaGS on the published version of the RaR dataset are listed below:

Metric I_alley I_avenue I_bridge I_bypath I_garden O_car O_lion O_statuary O_stone O_windmill Mean
PSNR 26.096 28.650 23.514 30.675 25.396 26.385 28.459 25.130 25.112 26.567 26.598
SSIM 0.837 0.874 0.742 0.916 0.752 0.878 0.880 0.817 0.829 0.799 0.832
LPIPS 0.254 0.219 0.327 0.227 0.293 0.180 0.185 0.264 0.212 0.273 0.243

Installation

First follow the instructions to clone and install our NeRFICG framework, then go to the directory your_path/nerficg.

Then clone this repository into path src/Methods of our framework and install it with:

./scripts/install.py -m SPaGS

Dataloader

Currently, the dataloaders for the RaR and EgoNeRF datasets (OmniBlender and Ricoh360) have to be moved from src/Methods/SPaGS/dataloader to src/Datasets directory, you can use the script:

./src/Methods/SPaGS/move_dataloader.sh

Train

First create a configuration file for training (you can also add the -a or --all wildcard to create configuration files for the entire dataset at once):

./scripts/defaultConfig.py -m SPaGS -d <DATASET_TYPE> -o <CONFIG_NAME>

Then train a model with created configuration file:

./scripts/train.py -c configs/<CONFIG_NAME>.yaml

or to train the entire dataset at once using:

./scripts/sequentialTrain.py -d configs/<CONFIGS_FOLDER_NAME>

Remarks:

  1. If your GPU have a large VRAM, you can set the TO_DEVICE variable to true (default is false). This will make training much faster.
  2. Set IMAGE_SCALE_FACTOR to 0.5 to use a resolution close to Full HD, the default is the original image resolution (~4K).
  3. The near plane is adjusted since some objects in certain scenes of the OmniBlender dataset are extremely close to the virtual camera. The values are: 0.05 for the fisher-hut scene, 0.01 for the archiviz-flat, barbershop, classroom, restroom, LOU scenes, and 0.1 for the rest. All the other parameters are all the same as listed in our supplemental material (most of which are already included in the default configuration).

Visualization

To visualize the trained model, you can use the GUI from our framework:

./scripts/gui.py

then select the folder that contains the model you want to visualize.

License and Citation

This work is licensed under the MIT license (see LICENSE).

If you use this code for your research, please cite:

@article{li2025spags,
  title = {{SP}a{GS}: Fast and Accurate 3D Gaussian Splatting for Spherical Panoramas},
  author = {Li, Junbo and Hahlbohm, Florian and Scholz, Timon and Eisemann, Martin and Tauscher, Jan-Philipp and Magnor, Marcus},
  journal = {Computer Graphics Forum},
  doi = {10.1111/cgf.70171},
  volume = {44},
  number = {4},
  month = {Jun},
  year = {2025}
}

About

SPaGS: Fast and Accurate 3D Gaussian Splatting for Spherical Panoramas

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published