/ESPCN-TensorFlow

An implementation of the Efficient Sub-Pixel Convolutional Neural Network in TensorFlow

Primary LanguagePython

ESPCN-TensorFlow

TensorFlow implementation of the Efficient Sub-Pixel Convolutional Neural Network in TensorFlow (ESPCN). Network based on this paper and code adapted from this repo.
This network can achieve the real-time performance of the FSRCNN while also surpassing the quality of the SRCNN.

Prerequisites

  • Python 2.7
  • TensorFlow
  • Numpy
  • Scipy version > 0.18

Usage

For training: python train.py
Can specify epochs, learning rate, batch size etc:
python train.py --epochs 10 --learning_rate 0.0001 --batch_size 32

For generating: python generate.py
Must specify checkpoint, low-resolution image, and output path
python generate.py --checkpoint logdir/train --lr_image images/butterfly_lr.png --out_path results/butterfly_hr.png

Run prepare_images.py and then prepare_data.py to format the training and validation data

Check params.json for parameter values

Result

Original butterfly image:
orig
Bicubic interpolated image:
bicubic
Super-resolved image:
espcn

References