Papers › DC-Gaussian: Improving 3D Gaussian Splatting for Reflective Dash Cam Videos

DC-Gaussian: Improving 3D Gaussian Splatting for Reflective Dash Cam Videos

27 May 2024arXiv:2405.17705archive 2025-07-28

Linhan Wang, Kai Cheng, Shuo Lei, Shengkun Wang, Wei Yin, Chenyang Lei, Xiaoxiao Long, Chang-Tien Lu

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/.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2405.17705")

Code

Syntology Ran 6 of 10 code samples harvested from 1 repository linked to this paper; 4 have no recorded run. Of those that ran: 1 ran · honoured contract; 1 ran · our draft was wrong; 4 ran with no contract checked.

By repository: official repository: 10 samples from 1 repository, 6 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

linhanwang/DC-Gaussian officialmentioned on GitHubpytorchCC0-1.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

10 samples harvested; 6 ran; 1 honoured the contract we drafted; 4 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
1ran · our draft was wrong
4ran
4unverified

Licence: 0 of the 10 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from linhanwang/DC-Gaussian. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

margin_l1_loss linhanwang/DC-Gaussian/utils/loss_utils.py official repository ran CC0-1.0 (permissive) · 7f9bf918a2148a33 · report
margin_l2_loss linhanwang/DC-Gaussian/utils/loss_utils.py official repository ran CC0-1.0 (permissive) · 88f9eb65bd144122 · report
normalize linhanwang/DC-Gaussian/utils/loss_utils.py official repository ran · our draft was wrong fingerprinted CC0-1.0 (permissive) · e3442ad36daea88b · report
normalize_activation linhanwang/DC-Gaussian/lpipsPyTorch/modules/utils.py official repository ran fingerprinted CC0-1.0 (permissive) · 1dab900b2adbe38e · report
readImages linhanwang/DC-Gaussian/metrics.py official repository ran CC0-1.0 (permissive) · 7033e507518f3b1a · report
read_next_bytes linhanwang/DC-Gaussian/scene/colmap_loader.py official repository ran · honoured contract CC0-1.0 (permissive) · 56858e04e6fdb2ff · report
get_network linhanwang/DC-Gaussian/lpipsPyTorch/modules/networks.py official repository unverified CC0-1.0 (permissive) · 07bd0da29c4dc7bb · report
get_state_dict linhanwang/DC-Gaussian/lpipsPyTorch/modules/utils.py official repository unverified CC0-1.0 (permissive) · b06f27c08cf5d0ca · report
qvec2rotmat linhanwang/DC-Gaussian/scene/colmap_loader.py official repository unverified CC0-1.0 (permissive) · 6ce64cf0fbcd6bb1 · report
rotmat2qvec linhanwang/DC-Gaussian/scene/colmap_loader.py official repository unverified CC0-1.0 (permissive) · 659bc4e7e63ed8f9 · report

Tasks

3DGSAutonomous VehiclesNeural RenderingNovel View Synthesis

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

CAM

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections