{"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/removing-structured-noise-with-diffusion","title":"Removing Structured Noise with Diffusion Models","arxiv_id":"2302.05290","date":"2023-01-20","proceeding":null,"authors":["Tristan S. W. Stevens","Hans van Gorp","Faik C. Meral","Junseob Shin","Jason Yu","Jean-Luc Robert","Ruud J. G. van Sloun"],"abstract":"Solving ill-posed inverse problems requires careful formulation of prior beliefs over the signals of interest and an accurate description of their manifestation into noisy measurements. Handcrafted signal priors based on e.g. sparsity are increasingly replaced by data-driven deep generative models, and several groups have recently shown that state-of-the-art score-based diffusion models yield particularly strong performance and flexibility. In this paper, we show that the powerful paradigm of posterior sampling with diffusion models can be extended to include rich, structured, noise models. To that end, we propose a joint conditional reverse diffusion process with learned scores for the noise and signal-generating distribution. We demonstrate strong performance gains across various inverse problems with structured noise, outperforming competitive baselines that use normalizing flows and adversarial networks. This opens up new opportunities and relevant practical applications of diffusion modeling for inverse problems in the context of non-Gaussian measurement models.","url_abs":"https://arxiv.org/abs/2302.05290v4","url_pdf":"https://arxiv.org/pdf/2302.05290v4.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":"removing-structured-noise-with-diffusion","repo_url":"https://github.com/tristan-deep/joint-diffusion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-denoising","task_name":"Image Denoising"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"normalizing-flows","method_name":"Normalizing Flows"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.05290","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.05290"}},"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/tristan-deep/joint-diffusion","reach":null}],"summary":{"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":2,"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":3,"samples":[{"code_sha256_prefix":"a53120cd234c1c84","entry":"register_corrector","repo":"tristan-deep/joint-diffusion","repo_kind":"official","path":"generators/SGM/sampling.py","file_url":"https://github.com/tristan-deep/joint-diffusion/blob/HEAD/generators/SGM/sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a53120cd234c1c84"}},{"code_sha256_prefix":"abf6bf1442562d4a","entry":"register_predictor","repo":"tristan-deep/joint-diffusion","repo_kind":"official","path":"generators/SGM/sampling.py","file_url":"https://github.com/tristan-deep/joint-diffusion/blob/HEAD/generators/SGM/sampling.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"abf6bf1442562d4a"}},{"code_sha256_prefix":"1f2515a4dedd4e58","entry":"get_predictor","repo":"tristan-deep/joint-diffusion","repo_kind":"official","path":"generators/SGM/sampling.py","file_url":"https://github.com/tristan-deep/joint-diffusion/blob/HEAD/generators/SGM/sampling.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":"1f2515a4dedd4e58"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}