{"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/path-restore-learning-network-path-selection","title":"Path-Restore: Learning Network Path Selection for Image Restoration","arxiv_id":"1904.10343","date":"2019-04-23","proceeding":null,"authors":["Ke Yu","Xintao Wang","Chao Dong","Xiaoou Tang","Chen Change Loy"],"abstract":"Very deep Convolutional Neural Networks (CNNs) have greatly improved the performance on various image restoration tasks. However, this comes at a price of increasing computational burden, hence limiting their practical usages. We observe that some corrupted image regions are inherently easier to restore than others since the distortion and content vary within an image. To leverage this, we propose Path-Restore, a multi-path CNN with a pathfinder that can dynamically select an appropriate route for each image region. We train the pathfinder using reinforcement learning with a difficulty-regulated reward. This reward is related to the performance, complexity and \"the difficulty of restoring a region\". A policy mask is further investigated to jointly process all the image regions. We conduct experiments on denoising and mixed restoration tasks. The results show that our method achieves comparable or superior performance to existing approaches with less computational cost. In particular, Path-Restore is effective for real-world denoising, where the noise distribution varies across different regions on a single image. Compared to the state-of-the-art RIDNet, our method achieves comparable performance and runs 2.7x faster on the realistic Darmstadt Noise Dataset.","url_abs":"https://arxiv.org/abs/1904.10343v2","url_pdf":"https://arxiv.org/pdf/1904.10343v2.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":"path-restore-learning-network-path-selection","repo_url":"https://github.com/yuke93/Path-Restore","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":null,"task_name":"Pathfinder"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1904.10343","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1904.10343"}},"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/yuke93/Path-Restore","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":5},"by_repo_kind":{"listed":{"samples":5,"ran":0,"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":"6426faa931d8fa63","entry":"get_mse_psnr","repo":"yuke93/Path-Restore","repo_kind":"listed","path":"codes/util.py","file_url":"https://github.com/yuke93/Path-Restore/blob/HEAD/codes/util.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":"6426faa931d8fa63"}},{"code_sha256_prefix":"fa18aca8466a65f8","entry":"patch2image","repo":"yuke93/Path-Restore","repo_kind":"listed","path":"codes/util.py","file_url":"https://github.com/yuke93/Path-Restore/blob/HEAD/codes/util.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":"fa18aca8466a65f8"}},{"code_sha256_prefix":"ad3cb19482bbb5a9","entry":"res_blk","repo":"yuke93/Path-Restore","repo_kind":"listed","path":"codes/block.py","file_url":"https://github.com/yuke93/Path-Restore/blob/HEAD/codes/block.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":"ad3cb19482bbb5a9"}},{"code_sha256_prefix":"7ca4e04867b47453","entry":"res_blk_down_up","repo":"yuke93/Path-Restore","repo_kind":"listed","path":"codes/block.py","file_url":"https://github.com/yuke93/Path-Restore/blob/HEAD/codes/block.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":"7ca4e04867b47453"}},{"code_sha256_prefix":"df431cff6fc703a2","entry":"res_blk_single_layer","repo":"yuke93/Path-Restore","repo_kind":"listed","path":"codes/block.py","file_url":"https://github.com/yuke93/Path-Restore/blob/HEAD/codes/block.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":"df431cff6fc703a2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}