{"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/structure-consistent-gaussian-splatting-with","title":"Structure Consistent Gaussian Splatting with Matching Prior for Few-shot Novel View Synthesis","arxiv_id":"2411.03637","date":"2024-11-06","proceeding":null,"authors":["Rui Peng","Wangze Xu","Luyang Tang","Liwei Liao","Jianbo Jiao","Ronggang Wang"],"abstract":"Despite the substantial progress of novel view synthesis, existing methods, either based on the Neural Radiance Fields (NeRF) or more recently 3D Gaussian Splatting (3DGS), suffer significant degradation when the input becomes sparse. Numerous efforts have been introduced to alleviate this problem, but they still struggle to synthesize satisfactory results efficiently, especially in the large scene. In this paper, we propose SCGaussian, a Structure Consistent Gaussian Splatting method using matching priors to learn 3D consistent scene structure. Considering the high interdependence of Gaussian attributes, we optimize the scene structure in two folds: rendering geometry and, more importantly, the position of Gaussian primitives, which is hard to be directly constrained in the vanilla 3DGS due to the non-structure property. To achieve this, we present a hybrid Gaussian representation. Besides the ordinary non-structure Gaussian primitives, our model also consists of ray-based Gaussian primitives that are bound to matching rays and whose optimization of their positions is restricted along the ray. Thus, we can utilize the matching correspondence to directly enforce the position of these Gaussian primitives to converge to the surface points where rays intersect. Extensive experiments on forward-facing, surrounding, and complex large scenes show the effectiveness of our approach with state-of-the-art performance and high efficiency. Code is available at https://github.com/prstrive/SCGaussian.","url_abs":"https://arxiv.org/abs/2411.03637v1","url_pdf":"https://arxiv.org/pdf/2411.03637v1.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":"structure-consistent-gaussian-splatting-with","repo_url":"https://github.com/prstrive/scgaussian","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"3dgs","task_name":"3DGS"},{"task_slug":"nerf","task_name":"NeRF"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"},{"task_slug":null,"task_name":"Position"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2411.03637","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.03637"}},"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/prstrive/scgaussian","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran_fixture":3,"ran":3,"unverified":8},"by_repo_kind":{"official":{"samples":14,"ran":6,"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":14,"samples":[{"code_sha256_prefix":"86af5225b3bb6811","entry":"Thres_metrics","repo":"prstrive/SCGaussian","repo_kind":"official","path":"render.py","file_url":"https://github.com/prstrive/SCGaussian/blob/HEAD/render.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"86af5225b3bb6811"}},{"code_sha256_prefix":"ac0e42d6fbcfbbe6","entry":"l1_loss","repo":"prstrive/scgaussian","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/utils/loss_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ac0e42d6fbcfbbe6"}},{"code_sha256_prefix":"8c3b0f873ba11813","entry":"l2_loss","repo":"prstrive/scgaussian","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/utils/loss_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c3b0f873ba11813"}},{"code_sha256_prefix":"1dab900b2adbe38e","entry":"normalize_activation","repo":"prstrive/scgaussian","repo_kind":"official","path":"lpipsPyTorch/modules/utils.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/lpipsPyTorch/modules/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1dab900b2adbe38e"}},{"code_sha256_prefix":"46959ddc3b4a8888","entry":"visualize_cmap","repo":"prstrive/SCGaussian","repo_kind":"official","path":"render.py","file_url":"https://github.com/prstrive/SCGaussian/blob/HEAD/render.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"46959ddc3b4a8888"}},{"code_sha256_prefix":"9a7dd063ea98b616","entry":"weighted_percentile","repo":"prstrive/SCGaussian","repo_kind":"official","path":"render.py","file_url":"https://github.com/prstrive/SCGaussian/blob/HEAD/render.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9a7dd063ea98b616"}},{"code_sha256_prefix":"c71fbbc2d2cd0666","entry":"fast_make_matching_figure","repo":"prstrive/scgaussian","repo_kind":"official","path":"data_preprocess/get_match_info.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/data_preprocess/get_match_info.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c71fbbc2d2cd0666"}},{"code_sha256_prefix":"07bd0da29c4dc7bb","entry":"get_network","repo":"prstrive/scgaussian","repo_kind":"official","path":"lpipsPyTorch/modules/networks.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/lpipsPyTorch/modules/networks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"07bd0da29c4dc7bb"}},{"code_sha256_prefix":"607e79d74fd3d4f1","entry":"get_smooth_loss","repo":"prstrive/scgaussian","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/utils/loss_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"607e79d74fd3d4f1"}},{"code_sha256_prefix":"b06f27c08cf5d0ca","entry":"get_state_dict","repo":"prstrive/scgaussian","repo_kind":"official","path":"lpipsPyTorch/modules/utils.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/lpipsPyTorch/modules/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b06f27c08cf5d0ca"}},{"code_sha256_prefix":"ac4a67fb6b06aa51","entry":"readImages","repo":"prstrive/scgaussian","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ac4a67fb6b06aa51"}},{"code_sha256_prefix":"bffc442d2a070add","entry":"read_image","repo":"prstrive/scgaussian","repo_kind":"official","path":"data_preprocess/get_match_info.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/data_preprocess/get_match_info.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"bffc442d2a070add"}},{"code_sha256_prefix":"55ec6eda769b51be","entry":"resize_image","repo":"prstrive/scgaussian","repo_kind":"official","path":"data_preprocess/get_match_info.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/data_preprocess/get_match_info.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"55ec6eda769b51be"}},{"code_sha256_prefix":"21e47ce3c2a42a3c","entry":"visualization","repo":"prstrive/scgaussian","repo_kind":"official","path":"render_video.py","file_url":"https://github.com/prstrive/scgaussian/blob/HEAD/render_video.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"21e47ce3c2a42a3c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}