{"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/ap-bsn-self-supervised-denoising-for-real","title":"AP-BSN: Self-Supervised Denoising for Real-World Images via Asymmetric PD and Blind-Spot Network","arxiv_id":"2203.11799","date":"2022-03-22","proceeding":"CVPR 2022 1","authors":["Wooseok Lee","Sanghyun Son","Kyoung Mu Lee"],"abstract":"Blind-spot network (BSN) and its variants have made significant advances in self-supervised denoising. Nevertheless, they are still bound to synthetic noisy inputs due to less practical assumptions like pixel-wise independent noise. Hence, it is challenging to deal with spatially correlated real-world noise using self-supervised BSN. Recently, pixel-shuffle downsampling (PD) has been proposed to remove the spatial correlation of real-world noise. However, it is not trivial to integrate PD and BSN directly, which prevents the fully self-supervised denoising model on real-world images. We propose an Asymmetric PD (AP) to address this issue, which introduces different PD stride factors for training and inference. We systematically demonstrate that the proposed AP can resolve inherent trade-offs caused by specific PD stride factors and make BSN applicable to practical scenarios. To this end, we develop AP-BSN, a state-of-the-art self-supervised denoising method for real-world sRGB images. We further propose random-replacing refinement, which significantly improves the performance of our AP-BSN without any additional parameters. Extensive studies demonstrate that our method outperforms the other self-supervised and even unpaired denoising methods by a large margin, without using any additional knowledge, e.g., noise level, regarding the underlying unknown noise.","url_abs":"https://arxiv.org/abs/2203.11799v2","url_pdf":"https://arxiv.org/pdf/2203.11799v2.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":"ap-bsn-self-supervised-denoising-for-real","repo_url":"https://github.com/wooseoklee4/ap-bsn","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"ap-bsn-self-supervised-denoising-for-real","repo_url":"https://github.com/ucaszyp/steps","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2203.11799","atlas_url":"https://app.syntology.ai/?focus=2203.11799","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.11799"}},"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/ucaszyp/steps","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wooseoklee4/ap-bsn","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/wooseoklee4/AP-BSN","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":2,"ran":1,"repositories":1},"listed":{"samples":6,"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":"c1319ce8a90e6268","entry":"DBSNl","repo":"wooseoklee4/AP-BSN","repo_kind":"official","path":"src/model/APBSN.py","file_url":"https://github.com/wooseoklee4/AP-BSN/blob/HEAD/src/model/APBSN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c1319ce8a90e6268"}},{"code_sha256_prefix":"62287188376f0ba0","entry":"disp_to_depth","repo":"ucaszyp/steps","repo_kind":"listed","path":"components/layers.py","file_url":"https://github.com/ucaszyp/steps/blob/HEAD/components/layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"62287188376f0ba0"}},{"code_sha256_prefix":"955112f5788539a8","entry":"get_translation_matrix","repo":"ucaszyp/steps","repo_kind":"listed","path":"components/layers.py","file_url":"https://github.com/ucaszyp/steps/blob/HEAD/components/layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"955112f5788539a8"}},{"code_sha256_prefix":"08cfd0df32f897ae","entry":"resnet18_backbone","repo":"ucaszyp/steps","repo_kind":"listed","path":"components/resnet_backbone.py","file_url":"https://github.com/ucaszyp/steps/blob/HEAD/components/resnet_backbone.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"08cfd0df32f897ae"}},{"code_sha256_prefix":"d5082e6229312f27","entry":"resnet34_backbone","repo":"ucaszyp/steps","repo_kind":"listed","path":"components/resnet_backbone.py","file_url":"https://github.com/ucaszyp/steps/blob/HEAD/components/resnet_backbone.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d5082e6229312f27"}},{"code_sha256_prefix":"cdc03d6bfc4d3a34","entry":"transformation_from_parameters","repo":"ucaszyp/steps","repo_kind":"listed","path":"components/layers.py","file_url":"https://github.com/ucaszyp/steps/blob/HEAD/components/layers.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cdc03d6bfc4d3a34"}},{"code_sha256_prefix":"edad589bb83c337b","entry":"APBSN","repo":"wooseoklee4/AP-BSN","repo_kind":"official","path":"src/model/APBSN.py","file_url":"https://github.com/wooseoklee4/AP-BSN/blob/HEAD/src/model/APBSN.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"edad589bb83c337b"}},{"code_sha256_prefix":"41226517c1fbe4bf","entry":"load_pretrained_weights","repo":"ucaszyp/steps","repo_kind":"listed","path":"components/resnet_backbone.py","file_url":"https://github.com/ucaszyp/steps/blob/HEAD/components/resnet_backbone.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"41226517c1fbe4bf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}