{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/vip-nerf-visibility-prior-for-sparse-input","title":"ViP-NeRF: Visibility Prior for Sparse Input Neural Radiance Fields","arxiv_id":"2305.00041","date":"2023-04-28","proceeding":null,"authors":["Nagabhushan Somraj","Rajiv Soundararajan"],"abstract":"Neural radiance fields (NeRF) have achieved impressive performances in view synthesis by encoding neural representations of a scene. However, NeRFs require hundreds of images per scene to synthesize photo-realistic novel views. Training them on sparse input views leads to overfitting and incorrect scene depth estimation resulting in artifacts in the rendered novel views. Sparse input NeRFs were recently regularized by providing dense depth estimated from pre-trained networks as supervision, to achieve improved performance over sparse depth constraints. However, we find that such depth priors may be inaccurate due to generalization issues. Instead, we hypothesize that the visibility of pixels in different input views can be more reliably estimated to provide dense supervision. In this regard, we compute a visibility prior through the use of plane sweep volumes, which does not require any pre-training. By regularizing the NeRF training with the visibility prior, we successfully train the NeRF with few input views. We reformulate the NeRF to also directly output the visibility of a 3D point from a given viewpoint to reduce the training time with the visibility constraint. On multiple datasets, our model outperforms the competing sparse input NeRF models including those that use learned priors. The source code for our model can be found on our project page: https://nagabhushansn95.github.io/publications/2023/ViP-NeRF.html.","url_abs":"https://arxiv.org/abs/2305.00041v1","url_pdf":"https://arxiv.org/pdf/2305.00041v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"vip-nerf-visibility-prior-for-sparse-input","repo_url":"https://github.com/NagabhushanSN95/ViP-NeRF","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"depth-estimation","task_name":"Depth Estimation"},{"task_slug":"nerf","task_name":"NeRF"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.00041","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.00041"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/NagabhushanSN95/ViP-NeRF","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"394f27a5ebdc6374","entry":"compute_average_pose","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/database_utils/nerf_llff/train_test_creators/VideoPoseCreator01_Spiral.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/database_utils/nerf_llff/train_test_creators/VideoPoseCreator01_Spiral.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"394f27a5ebdc6374"}},{"code_sha256_prefix":"239d97a8bb478fd7","entry":"create_data_frame","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/database_utils/nerf_llff/train_test_creators/TrainTestCreator01_UniformSparseSampling.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/database_utils/nerf_llff/train_test_creators/TrainTestCreator01_UniformSparseSampling.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"239d97a8bb478fd7"}},{"code_sha256_prefix":"0349fe7195c04bcc","entry":"create_scene_frames_data","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/database_utils/nerf_llff/train_test_creators/TrainTestCreator01_UniformSparseSampling.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/database_utils/nerf_llff/train_test_creators/TrainTestCreator01_UniformSparseSampling.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0349fe7195c04bcc"}},{"code_sha256_prefix":"7de7b28aa71fed89","entry":"demo2","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/qa/01_RMSE/src/RMSE02_NeRF_LLFF.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/qa/01_RMSE/src/RMSE02_NeRF_LLFF.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7de7b28aa71fed89"}},{"code_sha256_prefix":"4f7a32b6fe532883","entry":"main","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/qa/01_RMSE/src/RMSE02_NeRF_LLFF.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/qa/01_RMSE/src/RMSE02_NeRF_LLFF.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4f7a32b6fe532883"}},{"code_sha256_prefix":"06dd6b4e79dcfc3b","entry":"normalize","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/database_utils/nerf_llff/train_test_creators/VideoPoseCreator01_Spiral.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/database_utils/nerf_llff/train_test_creators/VideoPoseCreator01_Spiral.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"06dd6b4e79dcfc3b"}},{"code_sha256_prefix":"e6ca4d2cadc77b4c","entry":"read_image","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/prior_generators/sparse_depth/DepthEstimator02_NeRF_LLFF.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/prior_generators/sparse_depth/DepthEstimator02_NeRF_LLFF.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e6ca4d2cadc77b4c"}},{"code_sha256_prefix":"4092816527da04fb","entry":"sample_sparse_train_frames","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/database_utils/nerf_llff/train_test_creators/TrainTestCreator01_UniformSparseSampling.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/database_utils/nerf_llff/train_test_creators/TrainTestCreator01_UniformSparseSampling.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4092816527da04fb"}},{"code_sha256_prefix":"38b1e79bd65c3546","entry":"start_qa","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/qa/01_RMSE/src/RMSE02_NeRF_LLFF.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/qa/01_RMSE/src/RMSE02_NeRF_LLFF.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"38b1e79bd65c3546"}},{"code_sha256_prefix":"be0faeb202d0287d","entry":"view_matrix","repo":"NagabhushanSN95/ViP-NeRF","repo_kind":"official","path":"src/database_utils/nerf_llff/train_test_creators/VideoPoseCreator01_Spiral.py","file_url":"https://github.com/NagabhushanSN95/ViP-NeRF/blob/HEAD/src/database_utils/nerf_llff/train_test_creators/VideoPoseCreator01_Spiral.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"be0faeb202d0287d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}