{"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/degradation-aware-feature-perturbation-for","title":"Degradation-Aware Feature Perturbation for All-in-One Image Restoration","arxiv_id":"2505.12630","date":"2025-05-19","proceeding":"CVPR 2025 1","authors":["Xiangpeng Tian","Xiangyu Liao","Xiao Liu","Meng Li","Chao Ren"],"abstract":"All-in-one image restoration aims to recover clear images from various degradation types and levels with a unified model. Nonetheless, the significant variations among degradation types present challenges for training a universal model, often resulting in task interference, where the gradient update directions of different tasks may diverge due to shared parameters. To address this issue, motivated by the routing strategy, we propose DFPIR, a novel all-in-one image restorer that introduces Degradation-aware Feature Perturbations(DFP) to adjust the feature space to align with the unified parameter space. In this paper, the feature perturbations primarily include channel-wise perturbations and attention-wise perturbations. Specifically, channel-wise perturbations are implemented by shuffling the channels in high-dimensional space guided by degradation types, while attention-wise perturbations are achieved through selective masking in the attention space. To achieve these goals, we propose a Degradation-Guided Perturbation Block (DGPB) to implement these two functions, positioned between the encoding and decoding stages of the encoder-decoder architecture. Extensive experimental results demonstrate that DFPIR achieves state-of-the-art performance on several all-in-one image restoration tasks including image denoising, image dehazing, image deraining, motion deblurring, and low-light image enhancement. Our codes are available at https://github.com/TxpHome/DFPIR.","url_abs":"https://arxiv.org/abs/2505.12630v1","url_pdf":"https://arxiv.org/pdf/2505.12630v1.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":"degradation-aware-feature-perturbation-for","repo_url":"https://github.com/txphome/dfpir","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"all","task_name":"All"},{"task_slug":"deblurring","task_name":"Deblurring"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-dehazing","task_name":"Image Dehazing"},{"task_slug":"image-denoising","task_name":"Image Denoising"},{"task_slug":"image-enhancement","task_name":"Image Enhancement"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"low-light-image-enhancement","task_name":"Low-Light Image Enhancement"},{"task_slug":"rain-removal","task_name":"Rain Removal"}],"methods":[{"method_slug":"align","method_name":"ALIGN"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2505.12630","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.12630"}},"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/txphome/dfpir","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/TxpHome/DFPIR","reach":{"status":"ok"}}],"summary":{"ran":6,"unverified":1},"by_repo_kind":{"official":{"samples":7,"ran":6,"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":7,"samples":[{"code_sha256_prefix":"2df4621147879677","entry":"Attention","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"2df4621147879677"}},{"code_sha256_prefix":"77d1bb9e87c3b5fc","entry":"BiasFree_LayerNorm","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"77d1bb9e87c3b5fc"}},{"code_sha256_prefix":"f1c9d08271b6e681","entry":"LayerNorm","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"f1c9d08271b6e681"}},{"code_sha256_prefix":"a1516aec3a9327cc","entry":"PromptGenBlock","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"a1516aec3a9327cc"}},{"code_sha256_prefix":"cde7278418c4fe09","entry":"TransformerBlock","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"cde7278418c4fe09"}},{"code_sha256_prefix":"5bf117f23f08da74","entry":"WithBias_LayerNorm","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"5bf117f23f08da74"}},{"code_sha256_prefix":"d44ec5b6ba535a19","entry":"PromptIR","repo":"TxpHome/DFPIR","repo_kind":"official","path":"net/model.py","file_url":"https://github.com/TxpHome/DFPIR/blob/HEAD/net/model.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":"d44ec5b6ba535a19"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}