{"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/rethinking-data-augmentation-for-image-super","title":"Rethinking Data Augmentation for Image Super-resolution: A Comprehensive Analysis and a New Strategy","arxiv_id":"2004.00448","date":"2020-04-01","proceeding":"CVPR 2020 6","authors":["Jaejun Yoo","Namhyuk Ahn","Kyung-Ah Sohn"],"abstract":"Data augmentation is an effective way to improve the performance of deep networks. Unfortunately, current methods are mostly developed for high-level vision tasks (e.g., classification) and few are studied for low-level vision tasks (e.g., image restoration). In this paper, we provide a comprehensive analysis of the existing augmentation methods applied to the super-resolution task. We find that the methods discarding or manipulating the pixels or features too much hamper the image restoration, where the spatial relationship is very important. Based on our analyses, we propose CutBlur that cuts a low-resolution patch and pastes it to the corresponding high-resolution image region and vice versa. The key intuition of CutBlur is to enable a model to learn not only \"how\" but also \"where\" to super-resolve an image. By doing so, the model can understand \"how much\", instead of blindly learning to apply super-resolution to every given pixel. Our method consistently and significantly improves the performance across various scenarios, especially when the model size is big and the data is collected under real-world environments. We also show that our method improves other low-level vision tasks, such as denoising and compression artifact removal.","url_abs":"https://arxiv.org/abs/2004.00448v2","url_pdf":"https://arxiv.org/pdf/2004.00448v2.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":"rethinking-data-augmentation-for-image-super","repo_url":"https://github.com/clovaai/cutblur","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"rethinking-data-augmentation-for-image-super","repo_url":"https://github.com/sanglee325/cutblur","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[{"method_slug":"cutblur","method_name":"CutBlur"}],"datasets_introduced":[],"methods_introduced":[{"slug":"cutblur","name":"CutBlur","full_name":"CutBlur"}],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2004.00448","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2004.00448"}},"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/clovaai/cutblur","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sanglee325/cutblur","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":1,"unverified":6},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":6,"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":"5c5d5425a50b6a93","entry":"im2tensor","repo":"clovaai/cutblur","repo_kind":"official","path":"inference.py","file_url":"https://github.com/clovaai/cutblur/blob/HEAD/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5c5d5425a50b6a93"}},{"code_sha256_prefix":"7195495a7e5f7899","entry":"apply_augment","repo":"sanglee325/cutblur","repo_kind":"listed","path":"augments.py","file_url":"https://github.com/sanglee325/cutblur/blob/HEAD/augments.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":"7195495a7e5f7899"}},{"code_sha256_prefix":"6ecf3f61f26db83f","entry":"blend","repo":"sanglee325/cutblur","repo_kind":"listed","path":"augments.py","file_url":"https://github.com/sanglee325/cutblur/blob/HEAD/augments.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":"6ecf3f61f26db83f"}},{"code_sha256_prefix":"caf501ae165407b8","entry":"crop","repo":"sanglee325/cutblur","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/sanglee325/cutblur/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":"caf501ae165407b8"}},{"code_sha256_prefix":"e9beea360eab8f20","entry":"flip_and_rotate","repo":"sanglee325/cutblur","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/sanglee325/cutblur/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":"e9beea360eab8f20"}},{"code_sha256_prefix":"dabc44d88ae91f5c","entry":"mixup","repo":"sanglee325/cutblur","repo_kind":"listed","path":"augments.py","file_url":"https://github.com/sanglee325/cutblur/blob/HEAD/augments.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":"dabc44d88ae91f5c"}},{"code_sha256_prefix":"efa3843b35382db3","entry":"rgb2ycbcr","repo":"sanglee325/cutblur","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/sanglee325/cutblur/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":"efa3843b35382db3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}