Papers › A Dynamic Kernel Prior Model for Unsupervised Blind Image Super-Resolution

A Dynamic Kernel Prior Model for Unsupervised Blind Image Super-Resolution

24 Apr 2024CVPR 2024 1arXiv:2404.15620archive 2025-07-28

Zhixiong Yang, Jingyuan Xia, Shengxi Li, Xinghua Huang, Shuanghui Zhang, Zhen Liu, Yaowen Fu, Yongxiang Liu

Deep learning-based methods have achieved significant successes on solving the blind super-resolution (BSR) problem. However, most of them request supervised pre-training on labelled datasets. This paper proposes an unsupervised kernel estimation model, named dynamic kernel prior (DKP), to realize an unsupervised and pre-training-free learning-based algorithm for solving the BSR problem. DKP can adaptively learn dynamic kernel priors to realize real-time kernel estimation, and thereby enables superior HR image restoration performances. This is achieved by a Markov chain Monte Carlo sampling process on random kernel distributions. The learned kernel prior is then assigned to optimize a blur kernel estimation network, which entails a network-based Langevin dynamic optimization strategy. These two techniques ensure the accuracy of the kernel estimation. DKP can be easily used to replace the kernel estimation models in the existing methods, such as Double-DIP and FKP-DIP, or be added to the off-the-shelf image restoration model, such as diffusion model. In this paper, we incorporate our DKP model with DIP and diffusion model, referring to DIP-DKP and Diff-DKP, for validations. Extensive simulations on Gaussian and motion kernel scenarios demonstrate that the proposed DKP model can significantly improve the kernel estimation with comparable runtime and memory usage, leading to state-of-the-art BSR results. The code is available at https://github.com/XYLGroup/DKP.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2404.15620")

Code

Syntology Ran 11 of 19 code samples harvested from 1 repository linked to this paper; 8 have no recorded run. Of those that ran: 4 ran · honoured contract; 3 ran · our draft was wrong; 4 ran with no contract checked.

By repository: official repository: 19 samples from 1 repository, 11 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

XYLGroup/DKP officialmentioned in papermentioned on GitHubpytorchApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

19 samples harvested; 11 ran; 4 honoured the contract we drafted; 8 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

4ran · honoured contract
3ran · our draft was wrong
4ran
8unverified

Licence: 0 of the 19 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from XYLGroup/DKP. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

Complex_MSELoss XYLGroup/DKP/DiffDKP/guided_diffusion/ComplexUnet.py official repository ran fingerprinted Apache-2.0 (permissive) · 8d2fbfb08af4ef06 · report
act XYLGroup/DKP/DIPDKP/DIPDKP/model/common.py official repository ran · our draft was wrong Apache-2.0 (permissive) · e3edcd371d85dd22 · report
bn XYLGroup/DKP/DIPDKP/DIPDKP/model/common.py official repository ran · our draft was wrong Apache-2.0 (permissive) · cd7e7024386fb823 · report
c2c XYLGroup/DKP/DIPDKP/NonblindSR/usrnet.py official repository ran · honoured contract fingerprinted Apache-2.0 (permissive) · 30e7c61b0ccdb5ad · report
create_window XYLGroup/DKP/DIPDKP/DIPDKP/model/SSIM.py official repository ran · honoured contract fingerprinted Apache-2.0 (permissive) · 6154e3744ece5728 · report
gaussian XYLGroup/DKP/DIPDKP/DIPDKP/model/SSIM.py official repository ran · honoured contract fingerprinted Apache-2.0 (permissive) · c56b7ef16f309a45 · report
get_kernel XYLGroup/DKP/DIPDKP/DIPDKP/model/downsampler.py official repository ran Apache-2.0 (permissive) · 64ede614fd07fbc6 · report
r2c XYLGroup/DKP/DIPDKP/NonblindSR/usrnet.py official repository ran · honoured contract fingerprinted Apache-2.0 (permissive) · 3a47878a83b2d0ed · report
rotate XYLGroup/DKP/DIPDKP/DIPDKP/model/kernel_generate.py official repository ran Apache-2.0 (permissive) · 5ef1d876e7a41a26 · report
splits XYLGroup/DKP/DIPDKP/NonblindSR/usrnet.py official repository ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · bb9dc6b4b21ead20 · report
ssim XYLGroup/DKP/DIPDKP/DIPDKP/model/SSIM.py official repository ran Apache-2.0 (permissive) · 63eca60947e4f78f · report
conv XYLGroup/DKP/DIPDKP/DIPDKP/model/common.py official repository unverified Apache-2.0 (permissive) · a6d21f2388fdb345 · report
fcn XYLGroup/DKP/DiffDKP/guided_diffusion/networks.py official repository unverified Apache-2.0 (permissive) · 91c3693e49dac4ea · report
gen_kernel_fixed XYLGroup/DKP/DIPDKP/DIPDKP/model/kernel_generate.py official repository unverified Apache-2.0 (permissive) · 12415f02d9f67741 · report
gen_kernel_random XYLGroup/DKP/DIPDKP/DIPDKP/model/kernel_generate.py official repository unverified Apache-2.0 (permissive) · 8c93af9b82fa2f55 · report
parameters_setting XYLGroup/DKP/DIPDKP/DIPDKP/Settings.py official repository unverified Apache-2.0 (permissive) · 5f60ddc99c4ff052 · report
skip XYLGroup/DKP/DiffDKP/guided_diffusion/networks.py official repository unverified Apache-2.0 (permissive) · 1fb5210be0317d62 · report
skip XYLGroup/DKP/DIPDKP/DIPDKP/model/networks.py official repository unverified Apache-2.0 (permissive) · 934de750b2c90b3e · report
tiny_skip XYLGroup/DKP/DiffDKP/guided_diffusion/networks.py official repository unverified Apache-2.0 (permissive) · 2567a711ac781505 · report

Tasks

Blind Super-ResolutionImage RestorationImage Super-ResolutionSuper-Resolution

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

Diffusion

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections