GithubHelp home page GithubHelp logo

pari-singh / wild-gaussians Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jkulhanek/wild-gaussians

0.0 0.0 0.0 6.08 MB

WildGaussians: 3D Gaussian Splatting In the Wild

Home Page: https://wild-gaussians.github.io

License: Other

C++ 3.74% Python 79.98% C 0.20% Cuda 15.84% CMake 0.24%

wild-gaussians's Introduction

 WildGaussians: 3D Gaussian Splatting in the Wild

Jonas Kulhanek · Songyou Peng · Zuzana Kukelova · Marc Pollefeys · Torsten Sattler


WildGaussians model appearance WildGaussians remove occluders

We introduce WildGaussians, a novel approach to handle occlusions and appearance changes with 3DGS. By leveraging robust DINO features and integrating an appearance modeling module within 3DGS, our method achieves state-of-the-art results. We demonstrate that WildGaussians matches the real-time rendering speed of 3DGS while surpassing both 3DGS and NeRF baselines in handling in-the-wild data, all within a simple architectural framework.


Installation

We offer two ways to install the method: local installation (through a conda environment) and installation from NerfBaselines, where multiple backends (conda,docker,apptainer) can be selected.

Install from NerfBaselines (recommended)

The easiest way to install WildGaussians is by using NerfBaselines. First (if not already done), install NerfBaselines by running:

conda create -n nb python=3.11
conda activate nb
pip install nerfbaselines>=1.0.1

WildGaussians is then installed by running:

nerfbaselines install-method --spec https://raw.githubusercontent.com/jkulhanek/wild-gaussians/main/wildgaussians/wildgaussians_spec.py

Local installation

Clone the repository and create a python == 3.11 Anaconda environment with CUDA toolkit 11.8 installed using

git clone [email protected]:jkulhanek/wild-gaussians.git
cd wild-gaussians

conda create -y -n wg python=3.11
conda activate wg
conda install -y --override-channels -c nvidia/label/cuda-11.8.0 cuda-toolkit
conda env config vars set NERFBASELINES_BACKEND=python
pip install --upgrade pip
pip install -r requirements.txt
pip install nerfbaselines>=1.0.1
pip install -e ./submodules/diff-gaussian-rasterization ./submodules/simple-knn
pip install -e .

Checkpoints, predictions, and data

The checkpoints and predictions are available online at https://huggingface.co/jkulhanek/wild-gaussians/tree/main:

In order to train/evaluate on the NeRF On-the-go dataset, please download the undistorted version from the following link: https://huggingface.co/datasets/jkulhanek/nerfonthego-wg/tree/main

Interactive viewer

To start the viewer and explore the trained models, run one of the following:

# Photo Tourism
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/phototourism/trevi-fountain.zip/checkpoint --data external://phototourism/trevi-fountain
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/phototourism/sacre-coeur.zip/checkpoint --data external://phototourism/sacre-coeur
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/phototourism/brandenburg-gate.zip/checkpoint --data external://phototourism/brandenburg-gate

# NeRF on-the-go
# NOTE: Optionally attach `--data {path to data}` to load the dataset (recommended)
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/nerfonthego/fountain.zip/checkpoint
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/nerfonthego/mountain.zip/checkpoint
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/nerfonthego/corner.zip/checkpoint
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/nerfonthego/patio.zip/checkpoint
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/nerfonthego/spot.zip/checkpoint
nerfbaselines viewer --checkpoint https://huggingface.co/jkulhanek/wild-gaussians/resolve/main/nerfonthego/patio-high.zip/checkpoint

Training

To start the training on the Photo Tourism dataset, run one of following commands:

# Photo Tourism
nerfbaselines train --method wildgaussians --data external://phototourism/trevi-fountain
nerfbaselines train --method wildgaussians --data external://phototourism/sacre-coeur
nerfbaselines train --method wildgaussians --data external://phototourism/brandenburg-gate

# NeRF on-the-go
nerfbaselines train --method wildgaussians --data {path to data}

The training will also generate output artifacts containing the test set predictions, checkpoint, and tensorboard logs.

Rendering videos

To render a video on a trajectory (e.g., generated from the interactive viewer), run:

nerfbaselines render --checkpoint {checkpoint} --trajectory {trajectory file}

Concurrent works

There are several concurrent works that also aim to extend 3DGS to handle in-the-wild data:

Acknowledgements

We would like to thank Weining Ren for his help with the NeRF On-the-go dataset and code and Tobias Fischer and Xi Wang for fruitful discussions. This work was supported by the Czech Science Foundation (GAČR) EXPRO (grant no. 23-07973X) and by the Ministry of Education, Youth and Sports of the Czech Republic through the e-INFRA CZ (ID:90254). The renderer is built on 3DGS and Mip-Splatting. Please follow the license of 3DGS and Mip-Splatting.
We thank all the authors for their great work and released code.

Citation

If you find our code or paper useful, please cite:

@article{kulhanek2024wildgaussians,
  title={WildGaussians: 3D Gaussian Splatting in the Wild},
  author={Kulhanek, Jonas and Peng, Songyou and Kukelova, Zuzana and Pollefeys, Marc and Sattler, Torsten},
  journal={arXiv},
  year={2024}
}

wild-gaussians's People

Contributors

jkulhanek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.