{"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/modem-a-morton-order-degradation-estimation","title":"MODEM: A Morton-Order Degradation Estimation Mechanism for Adverse Weather Image Recovery","arxiv_id":"2505.17581","date":"2025-05-23","proceeding":null,"authors":["Hainuo Wang","Qiming Hu","Xiaojie Guo"],"abstract":"Restoring images degraded by adverse weather remains a significant challenge due to the highly non-uniform and spatially heterogeneous nature of weather-induced artifacts, e.g., fine-grained rain streaks versus widespread haze. Accurately estimating the underlying degradation can intuitively provide restoration models with more targeted and effective guidance, enabling adaptive processing strategies. To this end, we propose a Morton-Order Degradation Estimation Mechanism (MODEM) for adverse weather image restoration. Central to MODEM is the Morton-Order 2D-Selective-Scan Module (MOS2D), which integrates Morton-coded spatial ordering with selective state-space models to capture long-range dependencies while preserving local structural coherence. Complementing MOS2D, we introduce a Dual Degradation Estimation Module (DDEM) that disentangles and estimates both global and local degradation priors. These priors dynamically condition the MOS2D modules, facilitating adaptive and context-aware restoration. Extensive experiments and ablation studies demonstrate that MODEM achieves state-of-the-art results across multiple benchmarks and weather types, highlighting its effectiveness in modeling complex degradation dynamics. Our code will be released at https://github.com/hainuo-wang/MODEM.git.","url_abs":"https://arxiv.org/abs/2505.17581v1","url_pdf":"https://arxiv.org/pdf/2505.17581v1.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":"modem-a-morton-order-degradation-estimation","repo_url":"https://github.com/hainuo-wang/modem","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"state-space-models","task_name":"State Space Models"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2505.17581","atlas_url":"https://app.syntology.ai/?focus=2505.17581","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2505.17581"}},"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/hainuo-wang/modem","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"ran_draft_wrong":2,"ran_fixture":2,"unverified":3},"by_repo_kind":{"official":{"samples":13,"ran":10,"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":"afe014eb9d1adbc3","entry":"batch_bitwise_interleave","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/archs/modem_arch.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/archs/modem_arch.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":"afe014eb9d1adbc3"}},{"code_sha256_prefix":"ef9faf68f492a375","entry":"flow_warp","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/archs/arch_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/archs/arch_util.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ef9faf68f492a375"}},{"code_sha256_prefix":"cd569444547de84f","entry":"get_position_from_periods","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/lr_scheduler.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/lr_scheduler.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cd569444547de84f"}},{"code_sha256_prefix":"96ad5dc9ca239aec","entry":"make_layer","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/archs/arch_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/archs/arch_util.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"96ad5dc9ca239aec"}},{"code_sha256_prefix":"136057cc1b1e47d7","entry":"morton_indices","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/archs/modem_arch.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/archs/modem_arch.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":"136057cc1b1e47d7"}},{"code_sha256_prefix":"95c6eba9350a455a","entry":"prepare_for_ssim","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/metrics/psnr_ssim.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/metrics/psnr_ssim.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":"95c6eba9350a455a"}},{"code_sha256_prefix":"fb93712db7064ac4","entry":"prepare_for_ssim_rgb","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/metrics/psnr_ssim.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/metrics/psnr_ssim.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":"fb93712db7064ac4"}},{"code_sha256_prefix":"95067518dc16b3e5","entry":"reorder_image","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/metrics/metric_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/metrics/metric_util.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"95067518dc16b3e5"}},{"code_sha256_prefix":"5a1d8458dc7077a6","entry":"resize_flow","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/archs/arch_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/archs/arch_util.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":"5a1d8458dc7077a6"}},{"code_sha256_prefix":"33cccb3f76cf7c17","entry":"to_2d","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/archs/modem_arch.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/archs/modem_arch.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":"33cccb3f76cf7c17"}},{"code_sha256_prefix":"a648a03a952822c0","entry":"reduce_loss","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/losses/loss_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/losses/loss_util.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":"a648a03a952822c0"}},{"code_sha256_prefix":"1ba39317ea81871a","entry":"weight_reduce_loss","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/losses/loss_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/losses/loss_util.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":"1ba39317ea81871a"}},{"code_sha256_prefix":"cf63f8afc13f62a7","entry":"weighted_loss","repo":"hainuo-wang/modem","repo_kind":"official","path":"basicsr/models/losses/loss_util.py","file_url":"https://github.com/hainuo-wang/modem/blob/HEAD/basicsr/models/losses/loss_util.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":"cf63f8afc13f62a7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}