{"id":18600786,"url":"https://github.com/autonomousvision/gaussian-opacity-fields","last_synced_at":"2025-05-15T05:06:46.523Z","repository":{"id":233513450,"uuid":"787330778","full_name":"autonomousvision/gaussian-opacity-fields","owner":"autonomousvision","description":"[SIGGRAPH Asia'24 \u0026 TOG] Gaussian Opacity Fields: Efficient Adaptive Surface Reconstruction in Unbounded Scenes","archived":false,"fork":false,"pushed_at":"2024-11-15T11:57:45.000Z","size":5265,"stargazers_count":873,"open_issues_count":35,"forks_count":55,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-04-14T08:10:02.274Z","etag":null,"topics":["3d-reconstruction","gaussian-splatting","novel-view-synthesis","surface-reconstruction","tetrahedral-meshing"],"latest_commit_sha":null,"homepage":"https://niujinshuchong.github.io/gaussian-opacity-fields/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/autonomousvision.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-16T10:17:21.000Z","updated_at":"2025-04-12T16:46:59.000Z","dependencies_parsed_at":"2024-09-11T11:19:35.884Z","dependency_job_id":"e15d295c-1066-413f-8c49-d6ab825e87c2","html_url":"https://github.com/autonomousvision/gaussian-opacity-fields","commit_stats":{"total_commits":33,"total_committers":5,"mean_commits":6.6,"dds":"0.12121212121212122","last_synced_commit":"5245b20e5d11acd6d1ff5af4b890dc2bedd99693"},"previous_names":["autonomousvision/gaussian-opacity-fields"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Fgaussian-opacity-fields","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Fgaussian-opacity-fields/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Fgaussian-opacity-fields/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Fgaussian-opacity-fields/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autonomousvision","download_url":"https://codeload.github.com/autonomousvision/gaussian-opacity-fields/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276447,"owners_count":22043867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-reconstruction","gaussian-splatting","novel-view-synthesis","surface-reconstruction","tetrahedral-meshing"],"created_at":"2024-11-07T02:05:25.490Z","updated_at":"2025-05-15T05:06:41.496Z","avatar_url":"https://github.com/autonomousvision.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\n  \u003ch1 align=\"center\"\u003eGaussian Opacity Fields: Efficient Adaptive Surface Reconstruction in Unbounded Scenes\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://niujinshuchong.github.io/\"\u003eZehao Yu\u003c/a\u003e\n    ·\n    \u003ca href=\"https://tsattler.github.io/\"\u003eTorsten Sattler\u003c/a\u003e\n    ·\n    \u003ca href=\"http://www.cvlibs.net/\"\u003eAndreas Geiger\u003c/a\u003e\n\n  \u003c/p\u003e\n\n  \u003ch2 align=\"center\"\u003eSIGGRAPH ASIA 2024 (Journal Track)\u003c/h2\u003e\n\n  \u003ch3 align=\"center\"\u003e\u003ca href=\"https://drive.google.com/file/d/1_IEpaSqDP4DzQ3TbhKyjhXo6SKscpaeq/view?usp=share_link\"\u003ePaper\u003c/a\u003e | \u003ca href=\"https://arxiv.org/pdf/2404.10772.pdf\"\u003earXiv\u003c/a\u003e | \u003ca href=\"https://niujinshuchong.github.io/gaussian-opacity-fields/\"\u003eProject Page\u003c/a\u003e  \u003c/h3\u003e\n  \u003cdiv align=\"center\"\u003e\u003c/div\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"\"\u003e\n    \u003cimg src=\"./media/teaser_gof.png\" alt=\"Logo\" width=\"95%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nGaussian Opacity Fields (GOF) enables geometry extraction with 3D Gaussians directly by indentifying its level set. Our regularization improves surface reconstruction and we utilize Marching Tetrahedra for adaptive and compact mesh extraction.\u003c/p\u003e\n\u003cbr\u003e\n\n# Updates\n\n* **[2024.09.11]**: GOF is accepted to SIGGRAPH ASIA 2024 Journal Track. We updated paper with more details, explanations, and ablations.\n\n* **[2024.06.10]**: 🔥 Improve the training speed by 2x with [merged operations](https://github.com/autonomousvision/gaussian-opacity-fields/pull/58). 6 scenes in TNT dataset can be trained in ~24 mins and the bicycle scene in the Mip-NeRF 360 dataset can be trained in ~45 mins. Please pull the latest code and reinstall with `pip install submodules/diff-gaussian-rasterization` to use it.\n\n# Installation\nClone the repository and create an anaconda environment using\n```\ngit clone git@github.com:autonomousvision/gaussian-opacity-fields.git\ncd gaussian-opacity-fields\n\nconda create -y -n gof python=3.8\nconda activate gof\n\npip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html\nconda install cudatoolkit-dev=11.3 -c conda-forge\n\npip install -r requirements.txt\n\npip install submodules/diff-gaussian-rasterization\npip install submodules/simple-knn/\n\n# tetra-nerf for triangulation\ncd submodules/tetra-triangulation\nconda install cmake\nconda install conda-forge::gmp\nconda install conda-forge::cgal\ncmake .\n# you can specify your own cuda path\n# export CPATH=/usr/local/cuda-11.3/targets/x86_64-linux/include:$CPATH\nmake \npip install -e .\n```\n\n# Dataset\n\nPlease download the Mip-NeRF 360 dataset from the [official webiste](https://jonbarron.info/mipnerf360/), the NeRF-Synthetic dataset from the [NeRF's official Google Drive](https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1), the preprocessed DTU dataset from [2DGS](https://surfsplatting.github.io/), the proprocessed Tanks and Temples dataset from [here](https://huggingface.co/datasets/ZehaoYu/gaussian-opacity-fields/tree/main). You need to download the ground truth point clouds from the [DTU dataset](https://roboimagedata.compute.dtu.dk/?page_id=36) and save to `dtu_eval/Offical_DTU_Dataset` to evaluate the geometry reconstruction. For the [Tanks and Temples](https://www.tanksandtemples.org/download/) dataset, you need to download the ground truth point clouds, alignments and cropfiles and save to `eval_tnt/TrainingSet`, such as `eval_tnt/TrainingSet/Caterpillar/Caterpillar.ply`.\n\n\n# Training and Evaluation\n```\n# you might need to update the data path in the script accordingly\n\n# NeRF-synthetic dataset\npython scripts/run_nerf_synthetic.py\n\n# Mip-NeRF 360 dataset\npython scripts/run_mipnerf360.py\n\n# Tanks and Temples dataset\npython scripts/run_tnt.py\n\n# DTU dataset\npython scripts/run_dtu.py\n```\n\n# Custom Dataset\nWe use the same data format from 3DGS, please follow [here](https://github.com/graphdeco-inria/gaussian-splatting?tab=readme-ov-file#processing-your-own-scenes) to prepare the your dataset. Then you can train your model and extract a mesh (we use the Tanks and Temples dataset for example)\n```\n# training\n# -r 2 for using downsampled images with factor 2\n# --use_decoupled_appearance to enable decoupled appearance modeling if your images has changing lighting conditions\npython train.py -s TNT_GOF/TrainingSet/Caterpillar -m exp_TNT/Caterpillar -r 2 --use_decoupled_appearance\n\n# extract the mesh after training\npython extract_mesh.py -m exp_TNT/Caterpillar --iteration 30000\n\n# you can open extracted mesh with meshlab or using the following script based on open3d\npython mesh_viewer.py exp_TNT/Caterpillar/test/ours_30000/fusion/mesh_binary_search_7.ply\n```\n\n# Acknowledgements\nThis project is built upon [3DGS](https://github.com/graphdeco-inria/gaussian-splatting) and [Mip-Splatting](https://github.com/autonomousvision/mip-splatting). Regularizations and some visualizations are taken from [2DGS](https://surfsplatting.github.io/). Tetrahedra triangulation is taken from [Tetra-NeRF](https://github.com/jkulhanek/tetra-nerf). Marching Tetrahdedra is adapted from [Kaolin](https://github.com/NVIDIAGameWorks/kaolin/blob/master/kaolin/ops/conversions/tetmesh.py) Library. Evaluation scripts for DTU and Tanks and Temples dataset are taken from [DTUeval-python](https://github.com/jzhangbs/DTUeval-python) and [TanksAndTemples](https://github.com/isl-org/TanksAndTemples/tree/master/python_toolbox/evaluation) respectively. We thank all the authors for their great work and repos. \n\n# Citation\nIf you find our code or paper useful, please cite\n```bibtex\n@article{Yu2024GOF,\n  author    = {Yu, Zehao and Sattler, Torsten and Geiger, Andreas},\n  title     = {Gaussian Opacity Fields: Efficient Adaptive Surface Reconstruction in Unbounded Scenes},\n  journal   = {ACM Transactions on Graphics},\n  year      = {2024},\n}\n```\nIf you find the regularizations useful, please kindly cite\n```bibtex\n@inproceedings{Huang2DGS2024,\n    title={2D Gaussian Splatting for Geometrically Accurate Radiance Fields},\n    author={Huang, Binbin and Yu, Zehao and Chen, Anpei and Geiger, Andreas and Gao, Shenghua},\n    publisher = {Association for Computing Machinery},\n    booktitle = {SIGGRAPH 2024 Conference Papers},\n    year      = {2024},\n    doi       = {10.1145/3641519.3657428}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousvision%2Fgaussian-opacity-fields","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautonomousvision%2Fgaussian-opacity-fields","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousvision%2Fgaussian-opacity-fields/lists"}