{"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/learning-enriched-features-for-real-image","title":"Learning Enriched Features for Real Image Restoration and Enhancement","arxiv_id":"2003.06792","date":"2020-03-15","proceeding":"ECCV 2020 8","authors":["Syed Waqas Zamir","Aditya Arora","Salman Khan","Munawar Hayat","Fahad Shahbaz Khan","Ming-Hsuan Yang","Ling Shao"],"abstract":"With the goal of recovering high-quality image content from its degraded version, image restoration enjoys numerous applications, such as in surveillance, computational photography, medical imaging, and remote sensing. Recently, convolutional neural networks (CNNs) have achieved dramatic improvements over conventional approaches for image restoration task. Existing CNN-based methods typically operate either on full-resolution or on progressively low-resolution representations. In the former case, spatially precise but contextually less robust results are achieved, while in the latter case, semantically reliable but spatially less accurate outputs are generated. In this paper, we present a novel architecture with the collective goals of maintaining spatially-precise high-resolution representations through the entire network and receiving strong contextual information from the low-resolution representations. The core of our approach is a multi-scale residual block containing several key elements: (a) parallel multi-resolution convolution streams for extracting multi-scale features, (b) information exchange across the multi-resolution streams, (c) spatial and channel attention mechanisms for capturing contextual information, and (d) attention based multi-scale feature aggregation. In a nutshell, our approach learns an enriched set of features that combines contextual information from multiple scales, while simultaneously preserving the high-resolution spatial details. Extensive experiments on five real image benchmark datasets demonstrate that our method, named as MIRNet, achieves state-of-the-art results for a variety of image processing tasks, including image denoising, super-resolution, and image enhancement. The source code and pre-trained models are available at https://github.com/swz30/MIRNet.","url_abs":"https://arxiv.org/abs/2003.06792v2","url_pdf":"https://arxiv.org/pdf/2003.06792v2.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":"learning-enriched-features-for-real-image","repo_url":"https://github.com/swz30/MIRNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/Rishit-dagli/MIRNet-TFJS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/pminhtam/MIRnet_SIDD","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/sayannath/Low-Light-Image-Enhancement","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/sayannath/MIRNet-Flutter","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/swz30/CycleISP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/swz30/MPRNet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/swz30/mirnetv2","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/swz30/restormer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/venkat2319/Mirnet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/sldyns/MIRNet_paddle","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":null},{"paper_slug":"learning-enriched-features-for-real-image","repo_url":"https://github.com/tuvovan/MIRNet---Keras","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"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":"spectral-reconstruction","task_name":"Spectral Reconstruction"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-denoising-on-dnd","task":"Image Denoising","dataset":"DND","model":"MIRNet","rank_in_archive_order":7,"of":16,"metrics":{"PSNR (sRGB)":"39.88","SSIM (sRGB)":"0.956"},"uses_additional_data":false},{"leaderboard":"/sota/image-denoising-on-sidd","task":"Image Denoising","dataset":"SIDD","model":"MIRNet","rank_in_archive_order":10,"of":22,"metrics":{"PSNR (sRGB)":"39.72","SSIM (sRGB)":"0.959"},"uses_additional_data":false},{"leaderboard":"/sota/image-restoration-on-cdd-11","task":"Image Restoration","dataset":"CDD-11","model":"MIRNet","rank_in_archive_order":7,"of":14,"metrics":{"Average PSNR (dB)":"25.97","SSIM":"0.8474"},"uses_additional_data":false},{"leaderboard":"/sota/spectral-reconstruction-on-arad-1k","task":"Spectral Reconstruction","dataset":"ARAD-1K","model":"MIRNet","rank_in_archive_order":5,"of":11,"metrics":{"MRAE":"0.1890","PSNR":"33.29","RMSE":"0.0274"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2003.06792","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2003.06792"}},"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/swz30/MPRNet","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/swz30/MIRNet","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/swz30/mirnetv2","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/swz30/restormer","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/venkat2319/Mirnet","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sayannath/Low-Light-Image-Enhancement","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sayannath/MIRNet-Flutter","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pminhtam/MIRnet_SIDD","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/swz30/CycleISP","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tuvovan/MIRNet---Keras","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sldyns/MIRNet_paddle","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Rishit-dagli/MIRNet-TFJS","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"ran_fixture":2,"unverified":17},"by_repo_kind":{"listed":{"samples":18,"ran":1,"repositories":3}},"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":3,"samples":[{"code_sha256_prefix":"ae39f655cba1d67e","entry":"get_args","repo":"sldyns/MIRNet_paddle","repo_kind":"listed","path":"infer.py","file_url":"https://github.com/sldyns/MIRNet_paddle/blob/HEAD/infer.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":"ae39f655cba1d67e"}},{"code_sha256_prefix":"82a15cc1e46f7e4d","entry":"to_3d","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"82a15cc1e46f7e4d"}},{"code_sha256_prefix":"b20f2a5df739a59e","entry":"to_4d","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"b20f2a5df739a59e"}},{"code_sha256_prefix":"8e0e5c2b567503d2","entry":"channel_attention_block","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/dual_attention_unit/attention_blocks.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/dual_attention_unit/attention_blocks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e0e5c2b567503d2"}},{"code_sha256_prefix":"0c7e98b7a4175fdf","entry":"closest_number","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/utils.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0c7e98b7a4175fdf"}},{"code_sha256_prefix":"bdaa97ac65e6ada5","entry":"down_sampling_module","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/residual_resizing_modules.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/residual_resizing_modules.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bdaa97ac65e6ada5"}},{"code_sha256_prefix":"2ebf26d1f976b945","entry":"dual_attention_unit_block","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/dual_attention_unit/dau.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/dual_attention_unit/dau.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2ebf26d1f976b945"}},{"code_sha256_prefix":"24a751f9bed72798","entry":"get_lowres_image","repo":"tuvovan/MIRNet---Keras","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/tuvovan/MIRNet---Keras/blob/HEAD/utils.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":"24a751f9bed72798"}},{"code_sha256_prefix":"d497c1746ea0f9b8","entry":"mirnet_model","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/mirnet_model.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/mirnet_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d497c1746ea0f9b8"}},{"code_sha256_prefix":"0f2455cb54afff72","entry":"multi_scale_residual_block","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/mirnet_model.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/mirnet_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0f2455cb54afff72"}},{"code_sha256_prefix":"b3cb48216a7303e7","entry":"predict_images","repo":"tuvovan/MIRNet---Keras","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/tuvovan/MIRNet---Keras/blob/HEAD/utils.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":"b3cb48216a7303e7"}},{"code_sha256_prefix":"b6b9b6c72f37dbc2","entry":"psnr","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/utils.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b6b9b6c72f37dbc2"}},{"code_sha256_prefix":"004145b87f7e0002","entry":"random_crop","repo":"tuvovan/MIRNet---Keras","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/tuvovan/MIRNet---Keras/blob/HEAD/utils.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":"004145b87f7e0002"}},{"code_sha256_prefix":"7d848435a0d2da12","entry":"random_crop","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/dataloader/common.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/dataloader/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7d848435a0d2da12"}},{"code_sha256_prefix":"2a3989cdfa8362a3","entry":"random_flip","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/dataloader/common.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/dataloader/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2a3989cdfa8362a3"}},{"code_sha256_prefix":"24a1bd3b90502aa0","entry":"read_images","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/dataloader/common.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/dataloader/common.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"24a1bd3b90502aa0"}},{"code_sha256_prefix":"57ee64d680125fc8","entry":"recursive_residual_group","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/mirnet_model.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/mirnet_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"57ee64d680125fc8"}},{"code_sha256_prefix":"04528d72d04da9ca","entry":"selective_kernel_feature_fusion","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/skff.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/skff.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"04528d72d04da9ca"}},{"code_sha256_prefix":"6d70bcbf3768d570","entry":"spatial_attention_block","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/dual_attention_unit/attention_blocks.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/dual_attention_unit/attention_blocks.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6d70bcbf3768d570"}},{"code_sha256_prefix":"0c84208cefde62f7","entry":"up_sampling_module","repo":"venkat2319/Mirnet","repo_kind":"listed","path":"mirnet/model/residual_resizing_modules.py","file_url":"https://github.com/venkat2319/Mirnet/blob/HEAD/mirnet/model/residual_resizing_modules.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0c84208cefde62f7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}