Skip to content

The official implementation for the paper “Quadratic Gaussian Splatting for Efficient and Detailed Surface Reconstruction.”

License

Notifications You must be signed in to change notification settings

QuadraticGS/QGS

Repository files navigation

Quadratic Gaussian Splatting for Efficient and Detailed Surface Reconstruction

Project page | Paper | Quadric Surfel Rasterizer (python)

Image 1

This repo contains the official implementation for the paper “Quadratic Gaussian Splatting for Efficient and Detailed Surface Reconstruction.” Following 2DGS, we also provide a Python demo that demonstrates the differentiable rasterization process for quadratic surfaces:

Image 1 Image 2 Image 3

Installation

# download
git clone https://github.com/QuadraticGS/QGS.git

conda env create -f environment.yml

Training

To train a scene, simply use

python train.py --conf_path ./config/base.yaml

In base.yaml, you can adjust all configurable parameters, with most parameters remaining consistent with 2DGS. Furthermore, we have briefly experimented with curvature-related losses, such as curvature distortion loss and curvature flatten loss. Unfortunately, their performance was not satisfactory.

Tips for adjusting the parameters on your own dataset:

  • We observed that setting pipeline.depth_ratio=1 enhances rendering quality. Additionally, by employing per-pixel reordering, we effectively eliminate the "disk-aliasing" artifacts present in 2DGS when using depth_ratio=1. Therefore, we recommend using pipeline.depth_ratio=1 when aiming to improve rendering quality.
  • In most scenarios, we recommend adjusting the optimizer.densify_grad_threshold and optimizer.lambda_dist parameters to achieve better reconstruction. The former controls the number of Gaussian primitives, while the latter controls the compactness of the primitives.
  • For large scenes, especially aerial or street views, we suggest adjusting the number of training iterations based on the number of images. We provide TNT_Courthouse.yaml as an example.

Testing

To extract scene geometry, simply use:

python render.py --conf_path ./config/base.yaml -m <path to pre-trained model>

In the pipeline section of the base.yaml configuration file, you can set various parameters for mesh extraction, maintaining the same meanings as those in 2DGS.

Evaluation

For geometry reconstruction on the DTU dataset, please download the preprocessed data from Drive or Hugging Face. You also need to download the ground truth DTU point cloud.

Next, modify the DTU.yaml configuration file by setting the load_model_path to the path of your trained model and dataset_GT_path to the path of the ground truth dataset. After making these changes, simply execute the following commands to perform the evaluation:

python scripts/eval_dtu/eval.py --conf_path ./config/DTU.yaml -m <path to pre-trained model>

For the TNT dataset, please download the preprocessed TNT_data. Additionally, you need to download the ground truth TNT_GT.

Next, modify the TNT.yaml configuration file by setting load_model_path to the path of your trained model and dataset_GT_path to the path of the ground truth dataset. After making these changes, simply execute the following commands to perform the evaluation:

python scripts/eval_tnt/run.py --conf_path ./config/TNT.yaml -m <path to pre-trained model>

Acknowledgements

This project is built upon 2DGS. The TSDF fusion for extracting mesh is based on Open3D. The rendering script for MipNeRF360 is adopted from Multinerf, while the evaluation scripts for DTU and Tanks and Temples dataset are taken from DTUeval-python and TanksAndTemples, respectively. We thank all the authors for their great repos.

Citation

If you find our code or paper helps, please consider citing:

@misc{zhang2024quadraticgaussiansplattingefficient,
      title={Quadratic Gaussian Splatting for Efficient and Detailed Surface Reconstruction}, 
      author={Ziyu Zhang and Binbin Huang and Hanqing Jiang and Liyang Zhou and Xiaojun Xiang and Shunhan Shen},
      year={2024},
      eprint={2411.16392},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2411.16392}, 
}

About

The official implementation for the paper “Quadratic Gaussian Splatting for Efficient and Detailed Surface Reconstruction.”

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •