{"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/deep-multi-scale-convolutional-neural-network","title":"Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring","arxiv_id":"1612.02177","date":"2016-12-07","proceeding":"CVPR 2017 7","authors":["Seungjun Nah","Tae Hyun Kim","Kyoung Mu Lee"],"abstract":"Non-uniform blind deblurring for general dynamic scenes is a challenging\ncomputer vision problem as blurs arise not only from multiple object motions\nbut also from camera shake, scene depth variation. To remove these complicated\nmotion blurs, conventional energy optimization based methods rely on simple\nassumptions such that blur kernel is partially uniform or locally linear.\nMoreover, recent machine learning based methods also depend on synthetic blur\ndatasets generated under these assumptions. This makes conventional deblurring\nmethods fail to remove blurs where blur kernel is difficult to approximate or\nparameterize (e.g. object motion boundaries). In this work, we propose a\nmulti-scale convolutional neural network that restores sharp images in an\nend-to-end manner where blur is caused by various sources. Together, we present\nmulti-scale loss function that mimics conventional coarse-to-fine approaches.\nFurthermore, we propose a new large-scale dataset that provides pairs of\nrealistic blurry image and the corresponding ground truth sharp image that are\nobtained by a high-speed camera. With the proposed model trained on this\ndataset, we demonstrate empirically that our method achieves the\nstate-of-the-art performance in dynamic scene deblurring not only\nqualitatively, but also quantitatively.","url_abs":"http://arxiv.org/abs/1612.02177v2","url_pdf":"http://arxiv.org/pdf/1612.02177v2.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":"deep-multi-scale-convolutional-neural-network","repo_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"deblurring","task_name":"Deblurring"},{"task_slug":"image-deblurring","task_name":"Image Deblurring"}],"methods":[],"datasets_introduced":[{"slug":"gopro","name":"GoPro","full_name":""}],"methods_introduced":[],"results":[{"leaderboard":"/sota/deblurring-on-gopro","task":"Deblurring","dataset":"GoPro","model":"Nah et al","rank_in_archive_order":51,"of":56,"metrics":{"PSNR":"29.08","SSIM":"0.9135"},"uses_additional_data":true},{"leaderboard":"/sota/deblurring-on-hide-trained-on-gopro","task":"Deblurring","dataset":"HIDE (trained on GOPRO)","model":"Nah et al","rank_in_archive_order":26,"of":26,"metrics":{"PSNR (sRGB)":"25.73"},"uses_additional_data":false},{"leaderboard":"/sota/deblurring-on-realblur-r-trained-on-gopro","task":"Deblurring","dataset":"RealBlur-R (trained on GoPro)","model":"Nah et al","rank_in_archive_order":19,"of":19,"metrics":{"SSIM (sRGB)":"0.841"},"uses_additional_data":false},{"leaderboard":"/sota/image-deblurring-on-gopro","task":"Image Deblurring","dataset":"GoPro","model":"Nah et al","rank_in_archive_order":50,"of":55,"metrics":{"PSNR":"29.08","SSIM":"0.9135"},"uses_additional_data":true}],"syntology":{"syntology_url":"https://syntology.ai/paper/1612.02177","atlas_url":"https://app.syntology.ai/?focus=1612.02177","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1612.02177"}},"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/SeungjunNah/DeepDeblur-PyTorch","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"17a9b6e426c0dc58","entry":"ResNet","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/structure.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/structure.py","link_basis":"first_harvest_node","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":"17a9b6e426c0dc58"}},{"code_sha256_prefix":"10d1127a3f643335","entry":"build_model","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/MSResNet.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/MSResNet.py","link_basis":"first_harvest_node","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":"10d1127a3f643335"}},{"code_sha256_prefix":"bf5bf2723333f402","entry":"build_model","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/ResNet.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/ResNet.py","link_basis":"first_harvest_node","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":"bf5bf2723333f402"}},{"code_sha256_prefix":"63d5fc80979f2742","entry":"decoder","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/structure.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/structure.py","link_basis":"first_harvest_node","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":"63d5fc80979f2742"}},{"code_sha256_prefix":"37a49bceb7355edb","entry":"default_conv","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/common.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/common.py","link_basis":"first_harvest_node","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":"37a49bceb7355edb"}},{"code_sha256_prefix":"4e46152975c0143c","entry":"default_norm","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/common.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/common.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":"4e46152975c0143c"}},{"code_sha256_prefix":"4986decdbcb47823","entry":"empty_h","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/common.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/common.py","link_basis":"first_harvest_node","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":"4986decdbcb47823"}},{"code_sha256_prefix":"febb4c023ef09ae5","entry":"encoder","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/model/structure.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/model/structure.py","link_basis":"first_harvest_node","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":"febb4c023ef09ae5"}},{"code_sha256_prefix":"fc6599d8dacc846a","entry":"int2str","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","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":"fc6599d8dacc846a"}},{"code_sha256_prefix":"1d3b2776cacc0f66","entry":"setup","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/option.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/option.py","link_basis":"first_harvest_node","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":"1d3b2776cacc0f66"}},{"code_sha256_prefix":"5b79c2dada2b986a","entry":"str2bool","repo":"SeungjunNah/DeepDeblur-PyTorch","repo_kind":"official","path":"src/utils.py","file_url":"https://github.com/SeungjunNah/DeepDeblur-PyTorch/blob/HEAD/src/utils.py","link_basis":"first_harvest_node","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":"5b79c2dada2b986a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}