{"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/blind2unblind-self-supervised-image-denoising","title":"Blind2Unblind: Self-Supervised Image Denoising with Visible Blind Spots","arxiv_id":"2203.06967","date":"2022-03-14","proceeding":"CVPR 2022 1","authors":["Zejin Wang","Jiazheng Liu","Guoqing Li","Hua Han"],"abstract":"Real noisy-clean pairs on a large scale are costly and difficult to obtain. Meanwhile, supervised denoisers trained on synthetic data perform poorly in practice. Self-supervised denoisers, which learn only from single noisy images, solve the data collection problem. However, self-supervised denoising methods, especially blindspot-driven ones, suffer sizable information loss during input or network design. The absence of valuable information dramatically reduces the upper bound of denoising performance. In this paper, we propose a simple yet efficient approach called Blind2Unblind to overcome the information loss in blindspot-driven denoising methods. First, we introduce a global-aware mask mapper that enables global perception and accelerates training. The mask mapper samples all pixels at blind spots on denoised volumes and maps them to the same channel, allowing the loss function to optimize all blind spots at once. Second, we propose a re-visible loss to train the denoising network and make blind spots visible. The denoiser can learn directly from raw noise images without losing information or being trapped in identity mapping. We also theoretically analyze the convergence of the re-visible loss. Extensive experiments on synthetic and real-world datasets demonstrate the superior performance of our approach compared to previous work. Code is available at https://github.com/demonsjin/Blind2Unblind.","url_abs":"https://arxiv.org/abs/2203.06967v3","url_pdf":"https://arxiv.org/pdf/2203.06967v3.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":"blind2unblind-self-supervised-image-denoising","repo_url":"https://github.com/demonsjin/blind2unblind","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.06967","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.06967"}},"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/demonsjin/blind2unblind","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/demonsjin/Blind2Unblind","reach":{"status":"ok"}}],"summary":{"ran":3,"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":4,"samples":[{"code_sha256_prefix":"e7537816acecb466","entry":"LR","repo":"demonsjin/Blind2Unblind","repo_kind":"official","path":"arch_unet.py","file_url":"https://github.com/demonsjin/Blind2Unblind/blob/HEAD/arch_unet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e7537816acecb466"}},{"code_sha256_prefix":"9ac797962f880fff","entry":"UNet","repo":"demonsjin/Blind2Unblind","repo_kind":"official","path":"arch_unet.py","file_url":"https://github.com/demonsjin/Blind2Unblind/blob/HEAD/arch_unet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9ac797962f880fff"}},{"code_sha256_prefix":"a3dfefc8c3be59f9","entry":"UP","repo":"demonsjin/Blind2Unblind","repo_kind":"official","path":"arch_unet.py","file_url":"https://github.com/demonsjin/Blind2Unblind/blob/HEAD/arch_unet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a3dfefc8c3be59f9"}},{"code_sha256_prefix":"f5bb0d6d01e05206","entry":"conv1x1","repo":"demonsjin/Blind2Unblind","repo_kind":"official","path":"arch_unet.py","file_url":"https://github.com/demonsjin/Blind2Unblind/blob/HEAD/arch_unet.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":"f5bb0d6d01e05206"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}