mirror of
https://github.com/harry7557558/spirula-studio.git
synced 2026-10-02 02:44:54 +08:00
251107-multi-gpu
…
…
spirulae-splat
My custom 3D Gaussian Splatting method for Nerfstudio. Modified the splatfacto method in official Nerfstudio implementation.
Currently supports
- Vanilla, Abs-GS, and MCMC densification
- Bilateral grid (fully fused CUDA implementation), as well as another exposure correction method based on linear least squares
- PhyGaussian and erank regularization to reduce spiky Gaussians
- 3DGUT for fisheye, with an MCMC-friendly way to eliminate large/spiky Gaussians for compatibility with vanilla 3DGS viewers
- Use SH for background color, removes floaters from sky when combined with opacity regularization
- Batching for very large scenes
Partially supports
- Masking (sky mode and people/car mode)
- Depth and normal supervision using monocular geometry models
- Regularization to balance sky removal and discouraging transparency
TODO
- Multi resolution loss
- Better camera pose optimizer
- Better mesh export
- Faster training (Taming-GS backward, fused/lazy optimizer, Stop-the-pop tile culling, etc.)
- Multi-GPU training
Additional features
- Display number of Gaussians and training loss/PSNR/SSIM in terminal during training
- Reduced system RAM usage for data loader when cached on CPU (up to 2x)
WebGL viewer features (see webgl)
- Fisheye distortion (supports >180deg fisheye)
- Compression
- Collision detection (WIP)
Scripts (see scripts)
- Extract frames from video, auto skip blurry frames
- Segmentation using SAM-2
- Process a folder of camera raw images to specific color space
Installation
Install Nerfstudio (see instructions). Clone this repository and run the commands:
cd spirulae-splat/
git checkout stable
git submodule update --init
MAX_JOBS=8 pip install -e . --no-build-isolation
ns-install-cli
Running the method
This repository creates a new Nerfstudio method named "spirulae". To train with it, run the command:
ns-train spirulae --data [DATASET_PATH]
By default, spirulae-splat uses all available images for training. To support ns-eval, for nerfstudio dataset, use the following command for training:
ns-train spirulae --data [DATASET_PATH] nerfstudio-data --train-split-fraction 0.9
Description
GitHub Trending: harry7557558/spirula-studio
360-camera3d-gaussian-splatting3d-reconstruction3dgs3dgs-accelerationcomputer-visioncross-vendorcudagaussian-splattingmesh-generationquantized-trainingstructure-from-motionvram-optimizationvulkan
Readme
GPL-3.0
46 MiB
Languages
C++
80.5%
Cuda
7.7%
Slang
6.7%
Python
2.4%
JavaScript
1.3%
Other
1.2%