Super-Resolution_CNN-PyTorch icon indicating copy to clipboard operation
Super-Resolution_CNN-PyTorch copied to clipboard

Implementation of 'Image Super-Resolution using Deep Convolutional Network'

[PyTorch] Super-Resolution CNN

PyTorch implementation of 'Image Super-Resolution using Deep Convolutional Network'. TensorFlow version is also provided in Related Repository.

Architecture

The architecture of the Super-Resolution Network (SRCNN).

The architecture constructed by three convolutional layers, and the kernel size are 9x9, 1x1, 3x2 respectively. It used RMS loss and stochastic gradient descent opeimizer for training in this repository, but original one was trained by MSE loss (using same optimizer). The input of the SRCNN is Low-Resolution (Bicubic Interpolated) image that same size of the output image, and the output is High-Resolution.

Results

Reconstructed image in each iteration (1k, 10k, 100k iterations).

Comparison between the input (Bicubic Interpolated), reconstructed image (by SRCNN), and target (High-Resolution) image.

Requirements

  • Python 3.6.8
  • PyTorch 1.2.0
  • Numpy 1.14.0
  • Matplotlib 3.1.1

Reference

[1] Image Super-Resolution Using Deep Convolutional Networks, Chao Dong et al., https://ieeexplore.ieee.org/abstract/document/7115171/
[2] Urban 100 dataset, Huang et al., https://sites.google.com/site/jbhuang0604/publications/struct_sr

First commit: 07.October.2018