{"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/dc-gaussian-improving-3d-gaussian-splatting","title":"DC-Gaussian: Improving 3D Gaussian Splatting for Reflective Dash Cam Videos","arxiv_id":"2405.17705","date":"2024-05-27","proceeding":null,"authors":["Linhan Wang","Kai Cheng","Shuo Lei","Shengkun Wang","Wei Yin","Chenyang Lei","Xiaoxiao Long","Chang-Tien Lu"],"abstract":"We present DC-Gaussian, a new method for generating novel views from in-vehicle dash cam videos. While neural rendering techniques have made significant strides in driving scenarios, existing methods are primarily designed for videos collected by autonomous vehicles. However, these videos are limited in both quantity and diversity compared to dash cam videos, which are more widely used across various types of vehicles and capture a broader range of scenarios. Dash cam videos often suffer from severe obstructions such as reflections and occlusions on the windshields, which significantly impede the application of neural rendering techniques. To address this challenge, we develop DC-Gaussian based on the recent real-time neural rendering technique 3D Gaussian Splatting (3DGS). Our approach includes an adaptive image decomposition module to model reflections and occlusions in a unified manner. Additionally, we introduce illumination-aware obstruction modeling to manage reflections and occlusions under varying lighting conditions. Lastly, we employ a geometry-guided Gaussian enhancement strategy to improve rendering details by incorporating additional geometry priors. Experiments on self-captured and public dash cam videos show that our method not only achieves state-of-the-art performance in novel view synthesis, but also accurately reconstructing captured scenes getting rid of obstructions. See the project page for code, data: https://linhanwang.github.io/dcgaussian/.","url_abs":"https://arxiv.org/abs/2405.17705v3","url_pdf":"https://arxiv.org/pdf/2405.17705v3.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":"dc-gaussian-improving-3d-gaussian-splatting","repo_url":"https://github.com/linhanwang/DC-Gaussian","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"CC0-1.0"}}],"tasks":[{"task_slug":"3dgs","task_name":"3DGS"},{"task_slug":"autonomous-vehicles","task_name":"Autonomous Vehicles"},{"task_slug":"neural-rendering","task_name":"Neural Rendering"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"}],"methods":[{"method_slug":"cam","method_name":"CAM"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.17705","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.17705"}},"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/linhanwang/DC-Gaussian","reach":{"status":"ok","spdx":"CC0-1.0"}}],"summary":{"ran":4,"ran_draft_wrong":1,"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":10,"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":0,"samples":[{"code_sha256_prefix":"7f9bf918a2148a33","entry":"margin_l1_loss","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/utils/loss_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7f9bf918a2148a33"}},{"code_sha256_prefix":"88f9eb65bd144122","entry":"margin_l2_loss","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/utils/loss_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"88f9eb65bd144122"}},{"code_sha256_prefix":"e3442ad36daea88b","entry":"normalize","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"utils/loss_utils.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/utils/loss_utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e3442ad36daea88b"}},{"code_sha256_prefix":"1dab900b2adbe38e","entry":"normalize_activation","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"lpipsPyTorch/modules/utils.py","file_url":"https://github.com/linhanwang/DC-Gaussian/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":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1dab900b2adbe38e"}},{"code_sha256_prefix":"7033e507518f3b1a","entry":"readImages","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"metrics.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7033e507518f3b1a"}},{"code_sha256_prefix":"56858e04e6fdb2ff","entry":"read_next_bytes","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"scene/colmap_loader.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/scene/colmap_loader.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"56858e04e6fdb2ff"}},{"code_sha256_prefix":"07bd0da29c4dc7bb","entry":"get_network","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"lpipsPyTorch/modules/networks.py","file_url":"https://github.com/linhanwang/DC-Gaussian/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":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"07bd0da29c4dc7bb"}},{"code_sha256_prefix":"b06f27c08cf5d0ca","entry":"get_state_dict","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"lpipsPyTorch/modules/utils.py","file_url":"https://github.com/linhanwang/DC-Gaussian/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":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b06f27c08cf5d0ca"}},{"code_sha256_prefix":"6ce64cf0fbcd6bb1","entry":"qvec2rotmat","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"scene/colmap_loader.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/scene/colmap_loader.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6ce64cf0fbcd6bb1"}},{"code_sha256_prefix":"659bc4e7e63ed8f9","entry":"rotmat2qvec","repo":"linhanwang/DC-Gaussian","repo_kind":"official","path":"scene/colmap_loader.py","file_url":"https://github.com/linhanwang/DC-Gaussian/blob/HEAD/scene/colmap_loader.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"659bc4e7e63ed8f9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}