{"id":18600791,"url":"https://github.com/autonomousvision/unisurf","last_synced_at":"2025-09-13T12:19:02.650Z","repository":{"id":43971409,"uuid":"404249556","full_name":"autonomousvision/unisurf","owner":"autonomousvision","description":"[ICCV'21] UNISURF: Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction","archived":false,"fork":false,"pushed_at":"2024-03-02T19:18:48.000Z","size":11445,"stargazers_count":419,"open_issues_count":18,"forks_count":32,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-03-29T11:07:42.171Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","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","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":"2021-09-08T07:18:21.000Z","updated_at":"2025-03-18T11:43:52.000Z","dependencies_parsed_at":"2024-12-21T23:11:53.048Z","dependency_job_id":null,"html_url":"https://github.com/autonomousvision/unisurf","commit_stats":{"total_commits":14,"total_committers":5,"mean_commits":2.8,"dds":0.6428571428571428,"last_synced_commit":"224efc73d50acf422edacaebcaf59a8b8ba6d1ff"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Funisurf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Funisurf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Funisurf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/autonomousvision%2Funisurf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/autonomousvision","download_url":"https://codeload.github.com/autonomousvision/unisurf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332605,"owners_count":20921853,"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":[],"created_at":"2024-11-07T02:05:33.057Z","updated_at":"2025-04-05T12:06:42.309Z","avatar_url":"https://github.com/autonomousvision.png","language":"Python","funding_links":[],"categories":["Papers","Multiple View Stereovision"],"sub_categories":["NeRF Related Tasks","Machine Learning based MVS"],"readme":"# UNISURF: Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction\n## [Project Page](https://moechsle.github.io/unisurf/) | [Paper](http://www.cvlibs.net/publications/Oechsle2021ICCV.pdf) | [Supplementary](http://www.cvlibs.net/publications/Oechsle2021ICCV_supplementary.pdf) | [Video](https://www.youtube.com/watch?v=WXUfHvZge0E)\n\n![](./media/unisurf_teaser.gif)\n\nThis repository contains the implementation of the paper:\n\nUNISURF: Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction  \n[Michael Oechsle](https://moechsle.github.io/), [Songyou Peng](https://pengsongyou.github.io/), and [Andreas Geiger](http://www.cvlibs.net/)  \n**ICCV 2021 (Oral)**  \n\nNeural implicit 3D representations have emerged as a powerful paradigm for reconstructing surfaces from multi-view images and synthesizing novel views. Unfortunately, existing methods such as DVR or IDR require accurate per-pixel object masks as supervision. At the same time, neural radiance fields have revolutionized novel view synthesis. However, NeRF's estimated volume density does not admit accurate surface reconstruction. Our key insight is that implicit surface models and radiance fields can be formulated in a unified way, enabling both surface and volume rendering using the same model. This unified perspective enables novel, more efficient sampling procedures and the ability to reconstruct accurate surfaces without input masks. We compare our method on the DTU, BlendedMVS, and a synthetic indoor dataset. Our experiments demonstrate that we outperform NeRF in terms of reconstruction quality while performing on par with IDR without requiring masks.\n\nIf you find our code or paper useful, please cite as\n```bibtex\n@inproceedings{Oechsle2021ICCV,\n  author    = {Michael Oechsle and Songyou Peng and Andreas Geiger},\n  title     = {UNISURF: Unifying Neural Implicit Surfaces and Radiance Fields for Multi-View Reconstruction},\n  booktitle = {International Conference on Computer Vision (ICCV)},\n  year      = {2021}\n} \n```    \n    \n## Installation\n\nFirst you have to make sure that you have all dependencies in place.\nThe simplest way to do so, is to use [anaconda](https://www.anaconda.com/).\n\nYou can create an anaconda environment called `unisurf` using\n```\nconda env create -f environment.yaml\nconda activate unisurf\n```\nNext, compile the extension modules.\nYou can do this via\n```\npython setup.py build_ext --inplace\n```\n\n## Dataset\nFor downloading the preprocessed data, run the following script. The data is adapted from [DVR](https://github.com/autonomousvision/differentiable_volumetric_rendering) and [IDR](https://github.com/lioryariv/idr)\n```\nsource ./download_dataset.sh\n```\n\n## Extract mesh from a pretrained model\n\nIf you just want to quickly extract a mesh from a pre-trained model, you can run our demo with \n```\npython extract.py configs/DTU_pre/scan_0$id.yaml \n```\n\nYou can find predicted meshes in `out/scan_0$id/`.\n\n\n## Training\nFor training a model from scratch run \n```\npython train.py configs/DTU/scan_0$id.yaml\n```\nin the conda environment.\nYou can use tensor board to visualize the training process. The logfiles are saved to the `logs` folder in the output directory.\n```\ntensorboard --logdir ./out --port 6006\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousvision%2Funisurf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautonomousvision%2Funisurf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautonomousvision%2Funisurf/lists"}