assafshocher / ZSSR

"Zero-Shot" Super-Resolution using Deep Internal Learning
Other
399 stars 102 forks source link

Kernel for X4 #4

Closed andreas128 closed 5 years ago

andreas128 commented 5 years ago

Dear Assaf,

I'm using ZSSR as benchmark for my paper. Could you please provide the kernels for 4x upscaling for BSD100?

Best regards, Andreas

assafshocher commented 5 years ago

Hi Andreas, BSD100 has no specific kernels. It depends on how you downscale the original images. For the experiment described in the paper we generated random kernels to downscale and then evaluated them using Michaeli&Irani2013 and applied ZSSR. This experiment was for 2xSR.

If you wish to conduct an experiment, you have the option of downscaling the images by yourself and then use the ground-truth kernels. Be very careful from misalignment (pay attention to the comments in the coder regarding kernel-shifting).

Let me know if there is any other way I can help.

andreas128 commented 5 years ago

Hi Assaf, thank you very much. I now used run_ZSSR.py and set the scaling to [[4.0, 4.0]] in config.py. This learns the kernel for each image in test_data individually, if I understood correctly. Is that right?

assafshocher commented 5 years ago

Hi Andreas, ZSSR does not learn the downscaling-blur-kernel by itself. There are two main options:

  1. Use a kernel as an input (known or estimated by some method).
  2. Assume some common downscaling (for example Bicubic interpolation). In our experiments we used [BlindSR; Michaeli&Irani2103] to estimate the kernels for the unknown kernels cases. When applying run_ZSSR.py without specifying a kenrel or configuration, then default kernel is used (Bicubic). Hope that helped.
nanmehta commented 4 years ago

@assafshocher Hey thanks for this wonderful paper, I have a doubt regarding ground truth kernels, sinc I am new to this field. Does ground truth kernel means the kernel present in the high resolution images and what if we are doing for real world images , where we dont have any ground truth available

assafshocher commented 4 years ago

For real world images you would usually not have a GT kernel (perhaps you can infer it somehow from the optical process). Usually there is also no GT HR image. In such cases kernel can be estimated (see https://github.com/sefibk/KernelGAN).