Skip to content

alsombra/multi_residual_sr

Repository files navigation

Super-Resolution Network for Multiple Degradations (SRMD)

PyTorch Implementation of Learning a Single Convolutional Super-Resolution Network for Multiple Degradations (CVPR 2018)

All the files in the directory kernels are from [1].

Requirements

  • python 3.6
  • pytorch==0.4.0
  • visdom
  • pillow
  • h5py

Usage

First, download images from the Internet and put them into a folder Database as follows:

+---SRMD-pytorch
    +---Database
        +---train                  # For training
        |       1.png
        |       10.jpg
        |        ...
        \---test                   # For testing
                5.png
                10.bmp
                 ...

Second, train the network

$ python main.py --scale_factor=2 --mode='train'

Third, do testing (Not implemented yet)

$ python main.py --scale_factor=2 --mode='test'

Results

  • First column: LR image, Second column: SR image, Third column: HR image

Images (SRMDNFx2)

drawing

Images (SRMDNFx3)

drawing

Images (SRMDNFx4)

drawing

Notes

  • The implementation is slightly different with one in original paper.
  • I put a sigmoid function right after the last convolutional layer.
    • No sigmoid resulted in unstable results (bouncing pixels even after large iterations)

To-Do

  • To implement method test() of class Solver considering users' favor (specific blur kernel as input)
  • To train on the other scale factors (SRMDNFx3, SRMDNFx4)
  • To consider additive noise after downsampling (SRMDx2, SRMDx3, SRMDx4)
  • To evaluate quantitative performances of the trained networks

Reference

[1] MatConvNet implementation of one author of the paper (only test code available, as of June 27, 2018)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published