{"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/iterative-predictor-critic-code-decoding-for","title":"Iterative Predictor-Critic Code Decoding for Real-World Image Dehazing","arxiv_id":"2503.13147","date":"2025-03-17","proceeding":"CVPR 2025 1","authors":["Jiayi Fu","Siyu Liu","Zikun Liu","Chun-Le Guo","Hyunhee Park","Ruiqi Wu","Guoqing Wang","Chongyi Li"],"abstract":"We propose a novel Iterative Predictor-Critic Code Decoding framework for real-world image dehazing, abbreviated as IPC-Dehaze, which leverages the high-quality codebook prior encapsulated in a pre-trained VQGAN. Apart from previous codebook-based methods that rely on one-shot decoding, our method utilizes high-quality codes obtained in the previous iteration to guide the prediction of the Code-Predictor in the subsequent iteration, improving code prediction accuracy and ensuring stable dehazing performance. Our idea stems from the observations that 1) the degradation of hazy images varies with haze density and scene depth, and 2) clear regions play crucial cues in restoring dense haze regions. However, it is non-trivial to progressively refine the obtained codes in subsequent iterations, owing to the difficulty in determining which codes should be retained or replaced at each iteration. Another key insight of our study is to propose Code-Critic to capture interrelations among codes. The Code-Critic is used to evaluate code correlations and then resample a set of codes with the highest mask scores, i.e., a higher score indicates that the code is more likely to be rejected, which helps retain more accurate codes and predict difficult ones. Extensive experiments demonstrate the superiority of our method over state-of-the-art methods in real-world dehazing.","url_abs":"https://arxiv.org/abs/2503.13147v2","url_pdf":"https://arxiv.org/pdf/2503.13147v2.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":[],"tasks":[{"task_slug":"image-dehazing","task_name":"Image Dehazing"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2503.13147","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.13147"}},"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/Jiayi-Fu/IPC-Dehaze","reach":null}],"summary":{"ran":11,"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"found_in_text":{"samples":20,"ran":12,"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":20,"samples":[{"code_sha256_prefix":"aaa4bfa4a0eea373","entry":"ActLayer","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"aaa4bfa4a0eea373"}},{"code_sha256_prefix":"0a5de9ed10ccdafd","entry":"CombineQuantBlock","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0a5de9ed10ccdafd"}},{"code_sha256_prefix":"109eb1b677c849fe","entry":"DecoderBlock","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"109eb1b677c849fe"}},{"code_sha256_prefix":"8e2c391fd64aed64","entry":"Mlp","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8e2c391fd64aed64"}},{"code_sha256_prefix":"b591aca99bb99d1f","entry":"NormLayer","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b591aca99bb99d1f"}},{"code_sha256_prefix":"5c1daf6a341d95b2","entry":"PatchEmbed","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5c1daf6a341d95b2"}},{"code_sha256_prefix":"7c8f22b18444dd18","entry":"PatchUnEmbed","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7c8f22b18444dd18"}},{"code_sha256_prefix":"13d3284e9e0c34cf","entry":"RSTB","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"13d3284e9e0c34cf"}},{"code_sha256_prefix":"8015e08347d10f82","entry":"ResBlock","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8015e08347d10f82"}},{"code_sha256_prefix":"d5c7da63d4b432a2","entry":"VectorQuantizer","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d5c7da63d4b432a2"}},{"code_sha256_prefix":"043b34b25af94079","entry":"WindowAttention","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"043b34b25af94079"}},{"code_sha256_prefix":"5360d45b71ae2bb1","entry":"insert_bn","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5360d45b71ae2bb1"}},{"code_sha256_prefix":"eb571572b02e7a9c","entry":"BasicLayer","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"eb571572b02e7a9c"}},{"code_sha256_prefix":"231d61fe8498e940","entry":"DehazeTokenNet","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"231d61fe8498e940"}},{"code_sha256_prefix":"72809a8e8ec55496","entry":"Fuse_sft_block","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"72809a8e8ec55496"}},{"code_sha256_prefix":"688fd740d4eec7e0","entry":"MultiScaleEncoder","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"688fd740d4eec7e0"}},{"code_sha256_prefix":"c800eb76e72597d7","entry":"Predictor","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c800eb76e72597d7"}},{"code_sha256_prefix":"9d34603e56c1b0b3","entry":"SwinTransformerBlock","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9d34603e56c1b0b3"}},{"code_sha256_prefix":"4ce3da5e0a77d9a2","entry":"VGGFeatureExtractor","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4ce3da5e0a77d9a2"}},{"code_sha256_prefix":"37ca0b29b9bc4104","entry":"VQGAN","repo":"Jiayi-Fu/IPC-Dehaze","repo_kind":"found_in_text","path":"basicsr/archs/dehazeToken_arch.py","file_url":"https://github.com/Jiayi-Fu/IPC-Dehaze/blob/HEAD/basicsr/archs/dehazeToken_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"37ca0b29b9bc4104"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}