Skip to content

Max-luo-song/EasySplat

 
 

Repository files navigation

EasySplat: View-Adaptive Learning makes 3D Gaussian Splatting Easy(ICME2025)

This project is built upon InstantSplat, extending the capabilities of DUSt3R to handle dense view scenarios.

Contribution:

  • A view-adaptive image pair construction strategy based on image similarity.
  • A novel Gaussian densification approach based on K-Nearest Neighbors (KNN).

KNN-based Densification

Get Started

Installation

  1. Clone EasySplat and download pre-trained model.
git clone --recursive https://github.com/Yuhuoo/EasySplat.git
cd EasySplat
git submodule update --init --recursive
cd submodules/dust3r/
mkdir -p checkpoints/
wget https://download.europe.naverlabs.com/ComputerVision/DUSt3R/DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth -P checkpoints/
cd ../../
  1. Create the environment using conda.
conda create -n easysplat python=3.11 cmake=3.14.0
conda activate easysplat
conda install pytorch torchvision pytorch-cuda=12.1 -c pytorch -c nvidia  # use the correct version of cuda for your system
pip install -r requirements.txt
pip install submodules/simple-knn
# modify the rasterizer
vim submodules/diff-gaussian-rasterization/cuda_rasterizer/auxiliary.h
'p_view.z <= 0.2f' -> 'p_view.z <= 0.001f' # line 154
pip install submodules/diff-gaussian-rasterization
  1. Optional but highly suggested, compile the cuda kernels for RoPE (as in CroCo v2).
# DUST3R relies on RoPE positional embeddings for which you can compile some cuda kernels for faster runtime.
cd submodules/dust3r/croco/models/curope/
python setup.py build_ext --inplace

Usage

  # Obtaining the initialization point cloud and camera poses.
  python dust3r_infer.py --img_base_path data/xxx/images

  # Traing the gaussians.
  python train_joint.py -s data/xxx/ -m output/xxx --optim_pose

Acknowledgement

This work is built on many amazing research works and open-source projects, thanks a lot to all the authors for sharing!

Citation

If you find our work useful in your research, please consider giving a star ⭐ and citing the following paper 📝.

@article{gao2025easysplat,
  title={EasySplat: View-Adaptive Learning makes 3D Gaussian Splatting Easy},
  author={Gao, Ao and Guo, Luosong and Chen, Tao and Wang, Zhao and Tai, Ying and Yang, Jian and Zhang, Zhenyu},
  journal={arXiv preprint arXiv:2501.01003},
  year={2025}
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 87.2%
  • Cuda 8.0%
  • C++ 2.1%
  • Jupyter Notebook 1.7%
  • Shell 0.5%
  • Dockerfile 0.3%
  • Other 0.2%