{"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/rotation-equivariant-self-supervised-method","title":"Rotation-Equivariant Self-Supervised Method in Image Denoising","arxiv_id":"2505.19618","date":"2025-05-26","proceeding":"CVPR 2025 1","authors":["Hanze Liu","Jiahong Fu","Qi Xie","Deyu Meng"],"abstract":"Self-supervised image denoising methods have garnered significant research attention in recent years, for this kind of method reduces the requirement of large training datasets. Compared to supervised methods, self-supervised methods rely more on the prior embedded in deep networks themselves. As a result, most of the self-supervised methods are designed with Convolution Neural Networks (CNNs) architectures, which well capture one of the most important image prior, translation equivariant prior. Inspired by the great success achieved by the introduction of translational equivariance, in this paper, we explore the way to further incorporate another important image prior. Specifically, we first apply high-accuracy rotation equivariant convolution to self-supervised image denoising. Through rigorous theoretical analysis, we have proved that simply replacing all the convolution layers with rotation equivariant convolution layers would modify the network into its rotation equivariant version. To the best of our knowledge, this is the first time that rotation equivariant image prior is introduced to self-supervised image denoising at the network architecture level with a comprehensive theoretical analysis of equivariance errors, which offers a new perspective to the field of self-supervised image denoising. Moreover, to further improve the performance, we design a new mask mechanism to fusion the output of rotation equivariant network and vanilla CNN-based network, and construct an adaptive rotation equivariant framework. Through extensive experiments on three typical methods, we have demonstrated the effectiveness of the proposed method.","url_abs":"https://arxiv.org/abs/2505.19618v1","url_pdf":"https://arxiv.org/pdf/2505.19618v1.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":"rotation-equivariant-self-supervised-method","repo_url":"https://github.com/liuhanze623/adarenet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-denoising","task_name":"Image Denoising"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2505.19618","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.19618"}},"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":"deterministic:regex_extraction","url":"https://github.com/liuhanze623/AdaReNet","reach":null}],"summary":{"ran":5,"ran_draft_wrong":2,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":10,"ran":8,"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":10,"samples":[{"code_sha256_prefix":"ef561bbdb42f1014","entry":"Fconv_PCA","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"ef561bbdb42f1014"}},{"code_sha256_prefix":"4159d5645237d437","entry":"Fconv_PCA_out","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"4159d5645237d437"}},{"code_sha256_prefix":"34bc0f825fa4d786","entry":"GetBasis_PCA","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"34bc0f825fa4d786"}},{"code_sha256_prefix":"41b175f9fee4ce0e","entry":"Getini_reg","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"41b175f9fee4ce0e"}},{"code_sha256_prefix":"7e695ce1f9b75659","entry":"MaskC","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7e695ce1f9b75659"}},{"code_sha256_prefix":"02b6a74acd2f6184","entry":"MaskNetwork","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"02b6a74acd2f6184"}},{"code_sha256_prefix":"6d1052b7aa239206","entry":"ResNetBlock","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"6d1052b7aa239206"}},{"code_sha256_prefix":"9d9e209a98c9f808","entry":"UNet","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"9d9e209a98c9f808"}},{"code_sha256_prefix":"4ae64d16fc1e0304","entry":"AdaReNet","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"4ae64d16fc1e0304"}},{"code_sha256_prefix":"9a61698c9b59c1b0","entry":"UNet_F","repo":"liuhanze623/AdaReNet","repo_kind":"official","path":"AdaReNet.py","file_url":"https://github.com/liuhanze623/AdaReNet/blob/HEAD/AdaReNet.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":"9a61698c9b59c1b0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}