{"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/deblur4dgs-4d-gaussian-splatting-from-blurry","title":"Deblur4DGS: 4D Gaussian Splatting from Blurry Monocular Video","arxiv_id":"2412.06424","date":"2024-12-09","proceeding":null,"authors":["Renlong Wu","Zhilu Zhang","Mingyang Chen","Xiaopeng Fan","Zifei Yan","WangMeng Zuo"],"abstract":"Recent 4D reconstruction methods have yielded impressive results but rely on sharp videos as supervision. However, motion blur often occurs in videos due to camera shake and object movement, while existing methods render blurry results when using such videos for reconstructing 4D models. Although a few NeRF-based approaches attempted to address the problem, they struggled to produce high-quality results, due to the inaccuracy in estimating continuous dynamic representations within the exposure time. Encouraged by recent works in 3D motion trajectory modeling using 3D Gaussian Splatting (3DGS), we suggest taking 3DGS as the scene representation manner, and propose the first 4D Gaussian Splatting framework to reconstruct a high-quality 4D model from blurry monocular video, named Deblur4DGS. Specifically, we transform continuous dynamic representations estimation within an exposure time into the exposure time estimation. Moreover, we introduce exposure regularization to avoid trivial solutions, as well as multi-frame and multi-resolution consistency ones to alleviate artifacts. Furthermore, to better represent objects with large motion, we suggest blur-aware variable canonical Gaussians. Beyond novel-view synthesis, Deblur4DGS can be applied to improve blurry video from multiple perspectives, including deblurring, frame interpolation, and video stabilization. Extensive experiments on the above four tasks show that Deblur4DGS outperforms state-of-the-art 4D reconstruction methods. The codes are available at https://github.com/ZcsrenlongZ/Deblur4DGS.","url_abs":"https://arxiv.org/abs/2412.06424v1","url_pdf":"https://arxiv.org/pdf/2412.06424v1.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":"deblur4dgs-4d-gaussian-splatting-from-blurry","repo_url":"https://github.com/zcsrenlongz/deblur4dgs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"3dgs","task_name":"3DGS"},{"task_slug":"4d-reconstruction","task_name":"4D reconstruction"},{"task_slug":"deblurring","task_name":"Deblurring"},{"task_slug":"nerf","task_name":"NeRF"},{"task_slug":"novel-view-synthesis","task_name":"Novel View Synthesis"},{"task_slug":"trajectory-modeling","task_name":"Trajectory Modeling"},{"task_slug":"video-stabilization","task_name":"Video Stabilization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2412.06424","atlas_url":"https://app.syntology.ai/?focus=2412.06424","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.06424"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/zcsrenlongz/deblur4dgs","reach":{"status":"ok"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":8,"samples":[{"code_sha256_prefix":"2ec290e4113d63bf","entry":"adaptive_slides","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"run_testing.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/run_testing.py","link_basis":"first_harvest_node","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":"2ec290e4113d63bf"}},{"code_sha256_prefix":"722f01e434c3b946","entry":"masked_huber_loss","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"flow3d/loss_utils.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/flow3d/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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"722f01e434c3b946"}},{"code_sha256_prefix":"2c92db70455e0fb0","entry":"masked_l1_loss","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"flow3d/loss_utils.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/flow3d/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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2c92db70455e0fb0"}},{"code_sha256_prefix":"d360a15f31e2ec8f","entry":"masked_mse_loss","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"flow3d/loss_utils.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/flow3d/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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d360a15f31e2ec8f"}},{"code_sha256_prefix":"81255d035db937b0","entry":"psnr","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"run_compute_metrics.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/run_compute_metrics.py","link_basis":"first_harvest_node","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":"81255d035db937b0"}},{"code_sha256_prefix":"514dd3c0eee3691c","entry":"score_2afc_dataset","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"models/dist_model.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/models/dist_model.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":"514dd3c0eee3691c"}},{"code_sha256_prefix":"a4d02c500a136258","entry":"spatial_average","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"models/networks_basic.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/models/networks_basic.py","link_basis":"first_harvest_node","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":"a4d02c500a136258"}},{"code_sha256_prefix":"428e5c90c2a34b67","entry":"upsample","repo":"zcsrenlongz/deblur4dgs","repo_kind":"official","path":"models/networks_basic.py","file_url":"https://github.com/zcsrenlongz/deblur4dgs/blob/HEAD/models/networks_basic.py","link_basis":"first_harvest_node","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":"428e5c90c2a34b67"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}