{"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/unfolded-deep-kernel-estimation-for-blind","title":"Unfolded Deep Kernel Estimation for Blind Image Super-resolution","arxiv_id":"2203.05568","date":"2022-03-10","proceeding":null,"authors":["Hongyi Zheng","Hongwei Yong","Lei Zhang"],"abstract":"Blind image super-resolution (BISR) aims to reconstruct a high-resolution image from its low-resolution counterpart degraded by unknown blur kernel and noise. Many deep neural network based methods have been proposed to tackle this challenging problem without considering the image degradation model. However, they largely rely on the training sets and often fail to handle images with unseen blur kernels during inference. Deep unfolding methods have also been proposed to perform BISR by utilizing the degradation model. Nonetheless, the existing deep unfolding methods cannot explicitly solve the data term of the unfolding objective function, limiting their capability in blur kernel estimation. In this work, we propose a novel unfolded deep kernel estimation (UDKE) method, which, for the first time to our best knowledge, explicitly solves the data term with high efficiency. The UDKE based BISR method can jointly learn image and kernel priors in an end-to-end manner, and it can effectively exploit the information in both training data and image degradation model. Experiments on benchmark datasets and real-world data demonstrate that the proposed UDKE method could well predict complex unseen non-Gaussian blur kernels in inference, achieving significantly better BISR performance than state-of-the-art. The source code of UDKE is available at: https://github.com/natezhenghy/UDKE.","url_abs":"https://arxiv.org/abs/2203.05568v1","url_pdf":"https://arxiv.org/pdf/2203.05568v1.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":"unfolded-deep-kernel-estimation-for-blind","repo_url":"https://github.com/natezhenghy/udke","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2203.05568","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.05568"}},"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/natezhenghy/UDKE","reach":null}],"summary":{"ran":9,"ran_draft_wrong":3,"unverified":5},"by_repo_kind":{"official":{"samples":17,"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":17,"samples":[{"code_sha256_prefix":"7c56b258ead50df4","entry":"CholeskySolve","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7c56b258ead50df4"}},{"code_sha256_prefix":"ef191ef578a3527f","entry":"HeadNet","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ef191ef578a3527f"}},{"code_sha256_prefix":"80bfa2d5209cd506","entry":"HyPaNet","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"80bfa2d5209cd506"}},{"code_sha256_prefix":"bd4d38b0cdb8120b","entry":"LSTSQSolve","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bd4d38b0cdb8120b"}},{"code_sha256_prefix":"f79303ea7df55a6e","entry":"LSTSQSolveUniversal","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f79303ea7df55a6e"}},{"code_sha256_prefix":"03dcdc2ba11df024","entry":"LUSolve","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"03dcdc2ba11df024"}},{"code_sha256_prefix":"b494a97462e257e5","entry":"NetK","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b494a97462e257e5"}},{"code_sha256_prefix":"e676ecdd9d2b986f","entry":"NetX","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e676ecdd9d2b986f"}},{"code_sha256_prefix":"412ce589a9cf5bb0","entry":"ResBlock","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"412ce589a9cf5bb0"}},{"code_sha256_prefix":"2da0372ce5122959","entry":"conv","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2da0372ce5122959"}},{"code_sha256_prefix":"2b03ad707aa93340","entry":"downsample_strideconv","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2b03ad707aa93340"}},{"code_sha256_prefix":"f444f9523164e159","entry":"upsample_convtranspose","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f444f9523164e159"}},{"code_sha256_prefix":"82684b109b7bb56d","entry":"BodyNet","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"82684b109b7bb56d"}},{"code_sha256_prefix":"e34d363196526e17","entry":"SolveFFT","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e34d363196526e17"}},{"code_sha256_prefix":"53e5dd39d13509c2","entry":"SolveLS","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"53e5dd39d13509c2"}},{"code_sha256_prefix":"c501a18c5e14d5f5","entry":"TailNet","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c501a18c5e14d5f5"}},{"code_sha256_prefix":"2ad026c6b2d18772","entry":"UDKE","repo":"natezhenghy/UDKE","repo_kind":"official","path":"models/network_sr.py","file_url":"https://github.com/natezhenghy/UDKE/blob/HEAD/models/network_sr.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2ad026c6b2d18772"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}