qobilidop / srcnn

A course project on convolutional neural networks for single image super-resolution

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Update on 2018-10-07

Just find that fast.ai now has a fantastic lecture on super resolution. Check it out!

Update on 2018-03-30

This 2-week course project got more visitors than we expected. Although we have since moved on to other things, with no intention to improve this work, we felt obliged to list some useful resources here for whoever stumbles on this page:

What follows is the original README:

Convolutional Neural Networks for Single Image Super-Resolution

We have implemented SRCNN, FSRCNN and ESPCN in Keras with TensorFlow backend. The network architectures are implemented in models.py and layers.py. Our results are described in our final report. The experiments data used to get our results are also provided. To reduce the file size, weights files at each epoch are not included in the data file. But the final model file is included and there are enough data to reproduce all the plots in our final report.

Installation

A Python package toolbox is developed to facilitate our experiments. You need to install it to reproduce our experiments. If the dependencies as defined in env-gpu.yml or env-cpu.yml are already satisfied, simply do

pip install -e .

to install the package. Otherwise you can create a conda environment srcnn for all the dependencies by

conda env create -f install/env-gpu.yml

or

conda env create -f install/env-cpu.yml

We have also provided scripts to make it easy to set up an environment on a vanilla Ubuntu machine. Simply do

eval "$(curl -fsSL https://raw.githubusercontent.com/qobilidop/srcnn/master/install/create-env-gpu.sh)"

or

eval "$(curl -fsSL https://raw.githubusercontent.com/qobilidop/srcnn/master/install/create-env-cpu.sh)"

and you'll be in the ~/srcnn directory and the srcnn conda environment, ready to run any experiment.

Experiments

An experiment is configured by a json file in the experiments directory. To run an experiment, cd into the experiments directory and do

python run.py {experiment-name}.json

You can also do

python run_all.py

to run all the experiments at once. But note that it may take a very long time.

Once some experiments are finished, diagnostic plots can be made by

python plot.py

Authors

The Deep Glasses Team đź‘“

About

A course project on convolutional neural networks for single image super-resolution

License:MIT License


Languages

Language:Python 94.6%Language:Shell 5.4%