{"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-residual-conditioned","title":"Degradation-Aware Residual-Conditioned Optimal Transport for Unified Image Restoration","arxiv_id":"2411.01656","date":"2024-11-03","proceeding":null,"authors":["Xiaole Tang","Xiang Gu","Xiaoyi He","Xin Hu","Jian Sun"],"abstract":"All-in-one image restoration has emerged as a practical and promising low-level vision task for real-world applications. In this context, the key issue lies in how to deal with different types of degraded images simultaneously. In this work, we present a Degradation-Aware Residual-Conditioned Optimal Transport (DA-RCOT) approach that models (all-in-one) image restoration as an optimal transport (OT) problem for unpaired and paired settings, introducing the transport residual as a degradation-specific cue for both the transport cost and the transport map. Specifically, we formalize image restoration with a residual-guided OT objective by exploiting the degradation-specific patterns of the Fourier residual in the transport cost. More crucially, we design the transport map for restoration as a two-pass DA-RCOT map, in which the transport residual is computed in the first pass and then encoded as multi-scale residual embeddings to condition the second-pass restoration. This conditioning process injects intrinsic degradation knowledge (e.g., degradation type and level) and structural information from the multi-scale residual embeddings into the OT map, which thereby can dynamically adjust its behaviors for all-in-one restoration. Extensive experiments across five degradations demonstrate the favorable performance of DA-RCOT as compared to state-of-the-art methods, in terms of distortion measures, perceptual quality, and image structure preservation. Notably, DA-RCOT delivers superior adaptability to real-world scenarios even with multiple degradations and shows distinctive robustness to both degradation levels and the number of degradations.","url_abs":"https://arxiv.org/abs/2411.01656v1","url_pdf":"https://arxiv.org/pdf/2411.01656v1.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-residual-conditioned","repo_url":"https://github.com/xl-tang3/DA-RCOT","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"degradation-aware-residual-conditioned","repo_url":"https://github.com/xl-tang3/RCOT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"5-degradation-blind-all-in-one-image","task_name":"5-Degradation Blind All-in-One Image Restoration"},{"task_slug":"blind-all-in-one-image-restoration","task_name":"Blind All-in-One Image Restoration"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"unified-image-restoration","task_name":"Unified Image Restoration"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/5-degradation-blind-all-in-one-image","task":"5-Degradation Blind All-in-One Image Restoration","dataset":"5-Degradation Blind All-in-One Image Restoration","model":"DA-RCOT","rank_in_archive_order":2,"of":7,"metrics":{"Average PSNR":"30.40","LPIPS":"0.064"},"uses_additional_data":false},{"leaderboard":"/sota/blind-all-in-one-image-restoration-on-3","task":"Blind All-in-One Image Restoration","dataset":"3-Degradations","model":"DA-RCOT","rank_in_archive_order":5,"of":9,"metrics":{"Average PSNR":"32.60","SSIM":"0.917"},"uses_additional_data":false},{"leaderboard":"/sota/blind-all-in-one-image-restoration-on-5","task":"Blind All-in-One Image Restoration","dataset":"5-Degradations","model":"DA-RCOT","rank_in_archive_order":3,"of":9,"metrics":{"Average PSNR":"30.40","LPIPS":"0.064","SSIM":"0.911"},"uses_additional_data":false},{"leaderboard":"/sota/unified-image-restoration-on-bsd68-sigma25","task":"Unified Image Restoration","dataset":"BSD68 sigma25","model":"DA-RCOT","rank_in_archive_order":1,"of":1,"metrics":{"Average PSNR (dB)":"31.23"},"uses_additional_data":false},{"leaderboard":"/sota/unified-image-restoration-on-gopro","task":"Unified Image Restoration","dataset":"GoPro","model":"DA-RCOT","rank_in_archive_order":1,"of":1,"metrics":{"Average PSNR (dB)":"28.68"},"uses_additional_data":false},{"leaderboard":"/sota/unified-image-restoration-on-lol","task":"Unified Image Restoration","dataset":"LOL","model":"DA-RCOT","rank_in_archive_order":1,"of":1,"metrics":{"Average PSNR (dB)":"23.25"},"uses_additional_data":false},{"leaderboard":"/sota/unified-image-restoration-on-reside","task":"Unified Image Restoration","dataset":"RESIDE","model":"DA-RCOT","rank_in_archive_order":1,"of":1,"metrics":{"Average PSNR (dB)":"31.26"},"uses_additional_data":false},{"leaderboard":"/sota/unified-image-restoration-on-rain100l","task":"Unified Image Restoration","dataset":"Rain100L","model":"DA-RCOT","rank_in_archive_order":1,"of":1,"metrics":{"Average PSNR (dB)":"38.36"},"uses_additional_data":true}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2411.01656","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.01656"}},"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/xl-tang3/DA-RCOT","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xl-tang3/RCOT","reach":null}],"summary":{"ran_draft_wrong":1,"ran_honours":3,"ran_fixture":2},"by_repo_kind":{"listed":{"samples":3,"ran":3,"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":6,"samples":[{"code_sha256_prefix":"f4c99d0f2598f605","entry":"PSNR","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"f4c99d0f2598f605"}},{"code_sha256_prefix":"9496ce74f56e1d57","entry":"adjust_learning_rate","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"9496ce74f56e1d57"}},{"code_sha256_prefix":"8d1f8f9a430556d7","entry":"calculate_valid_crop_size","repo":"xl-tang3/RCOT","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/xl-tang3/RCOT/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8d1f8f9a430556d7"}},{"code_sha256_prefix":"44edb0056e842ff7","entry":"downsample","repo":"xl-tang3/RCOT","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/xl-tang3/RCOT/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"44edb0056e842ff7"}},{"code_sha256_prefix":"a23501ebdd938df8","entry":"get_parameter_number","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"a23501ebdd938df8"}},{"code_sha256_prefix":"2ee51c9549987894","entry":"upsample","repo":"xl-tang3/RCOT","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/xl-tang3/RCOT/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2ee51c9549987894"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}