{"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/practical-blind-denoising-via-swin-conv-unet","title":"Practical Blind Image Denoising via Swin-Conv-UNet and Data Synthesis","arxiv_id":"2203.13278","date":"2022-03-24","proceeding":null,"authors":["Kai Zhang","Yawei Li","Jingyun Liang","JieZhang Cao","Yulun Zhang","Hao Tang","Deng-Ping Fan","Radu Timofte","Luc van Gool"],"abstract":"While recent years have witnessed a dramatic upsurge of exploiting deep neural networks toward solving image denoising, existing methods mostly rely on simple noise assumptions, such as additive white Gaussian noise (AWGN), JPEG compression noise and camera sensor noise, and a general-purpose blind denoising method for real images remains unsolved. In this paper, we attempt to solve this problem from the perspective of network architecture design and training data synthesis. Specifically, for the network architecture design, we propose a swin-conv block to incorporate the local modeling ability of residual convolutional layer and non-local modeling ability of swin transformer block, and then plug it as the main building block into the widely-used image-to-image translation UNet architecture. For the training data synthesis, we design a practical noise degradation model which takes into consideration different kinds of noise (including Gaussian, Poisson, speckle, JPEG compression, and processed camera sensor noises) and resizing, and also involves a random shuffle strategy and a double degradation strategy. Extensive experiments on AGWN removal and real image denoising demonstrate that the new network architecture design achieves state-of-the-art performance and the new degradation model can help to significantly improve the practicability. We believe our work can provide useful insights into current denoising research.","url_abs":"https://arxiv.org/abs/2203.13278v4","url_pdf":"https://arxiv.org/pdf/2203.13278v4.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":"practical-blind-denoising-via-swin-conv-unet","repo_url":"https://github.com/cszn/scunet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"practical-blind-denoising-via-swin-conv-unet","repo_url":"https://github.com/zhuangpeiyu/reloc","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"},{"task_slug":"image-to-image-translation","task_name":"Image-to-Image Translation"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"stochastic-depth","method_name":"Stochastic Depth"},{"method_slug":"swin-transformer","method_name":"Swin Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-denoising-on-urban100-sigma50","task":"Image Denoising","dataset":"Urban100 sigma50","model":"SCUNet SCUNet","rank_in_archive_order":3,"of":4,"metrics":{"PSNR":"30.14"},"uses_additional_data":false},{"leaderboard":"/sota/image-denoising-on-urban100-sigma15","task":"Image Denoising","dataset":"urban100 sigma15","model":"SCUNet SCUNet","rank_in_archive_order":2,"of":4,"metrics":{"Average PSNR":"35.18"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2203.13278","atlas_url":"https://app.syntology.ai/?focus=2203.13278","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.13278"}},"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/zhuangpeiyu/reloc","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cszn/scunet","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":"1cc30139985a9baf","entry":"get_image_paths","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_image.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_image.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1cc30139985a9baf"}},{"code_sha256_prefix":"226f6afcd57ff476","entry":"is_image_file","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_image.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_image.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"226f6afcd57ff476"}},{"code_sha256_prefix":"8e2cdf074541b1a3","entry":"sizeof_fmt","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_googledownload.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_googledownload.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e2cdf074541b1a3"}},{"code_sha256_prefix":"8afaf26fe2391d00","entry":"test","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_model.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_model.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8afaf26fe2391d00"}},{"code_sha256_prefix":"54f9c2acc0385e32","entry":"test_pad","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_model.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_model.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"54f9c2acc0385e32"}},{"code_sha256_prefix":"135b3dc835ffe6ad","entry":"get_confirm_token","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_googledownload.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_googledownload.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"135b3dc835ffe6ad"}},{"code_sha256_prefix":"3984b3ec31e90ef0","entry":"patches_from_image","repo":"cszn/scunet","repo_kind":"official","path":"utils/utils_image.py","file_url":"https://github.com/cszn/scunet/blob/HEAD/utils/utils_image.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3984b3ec31e90ef0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}