Skip to content

Blind Super Resolution based on USRNet and Kernel GAN

License

Notifications You must be signed in to change notification settings

geopi1/Improved_USRNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLIND USRNET

A project in Statistical Image Processing. Extension of Deep unfolding network for image super-resolution for Blind Super Resolution via Kernel Estimation

In this project we aim to extend USRNet [1] for Blind Super Resolution. We added a step of blind kernel estimation [2] and noise STD estimation [3] algorithm. These additions show SOTA performance in Blind-SR

Default

Getting Started

Clone the Repo:

git clone https://github.com/geopi1/Improved_USRNet.git

Datasets

Download the Datasets (a bicubically downscaled version of DIV2K):

Download DIV2K
This link will download 2 folders:

  • DIV2K_LR - the low resolution input
  • DIV2K_HR_ds2 - Ground truth high resolution images

Prerequisites

Tested and ran on:

  • UBUNTU 18.04
  • RTX 2080
  • Nvidia driver 440.95.10
  • cuda 10.1.243
  • cudnn 7.6.5
  • pytorch 1.5
  • TF 1.14
    for additional package information please refer to requirements.txt or env.yml
  1. Setup conda
    conda env create -f env.yml
    This will create a working environment named Blind_USRNet
  2. Setup can also be performed with pip (virtual env) via the requirements.txt file
    python -m venv Blind_USRNet
    pip install -r requirements.txt
  3. put images in right place

Testing

Code

python main.py 

This will output 4 types of images to ./results:

  • Default USRNet settings
  • Default USRNet settings + estimated Noise STD
  • Kernel estimated USRNet
  • Kernel estimated USRNet + estimated Noise STD

Additionally, for each estimated image a side-by-side image with the LR version is saved with the degredation kernel (default or estimated)

Numerical Evaluation

To calculate the numeric results on the whole dataset run:

python utils/get_results.py

This will calculate the mean PSNR and SSIM on the SR<->HR on all the results

Numerical Results

Metric Default Default + Noise Est. Kernel Est. Kernel Est. + Noise Est.
PSNR 22.35 dB 22.30 (-0.05) dB 26.31 (+3.96) dB 26.29 (+3.94) dB
SSIM 0.756 0.755 (-0.001) 0.797 (+0.041) 0.797 (+0.041)

Visual Results

On the left, the LR image and on the Right the reconstructed HR image.
The blur kernel of the LR image is at the top left corner.
Default:
Default
Ours:
Ours
Default:
Default
Ours:
Ours

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

[1] Zhang, Kai, Luc Van Gool, and Radu Timofte. "Deep unfolding network for image super-resolution." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.

[2] Bell-Kligler, Sefi, Assaf Shocher, and Michal Irani. "Blind super-resolution kernel estimation using an internal-gan." Advances in Neural Information Processing Systems. 2019.

[3] Chen G , Zhu F , Heng P A . "An Efficient Statistical Method for Image Noise Level Estimation" 2015 IEEE International Conference on Computer Vision (ICCV). IEEE Computer Society, 2015.

About

Blind Super Resolution based on USRNet and Kernel GAN

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages