Deblurring Super-Resolution Convolutional Neural Network.
This code is to process the blurred low-resolution images to get deblurred high-residual images.
If this code is helpful for you, please cite this paper: Image Deblurring And Super-Resolution Using Deep Convolutional Neural Networks, F. Albluwi, V. Krylov and R. Dahyot, IEEE International Workshop on Machine Learning for Signal Processing (MLSP 2018 http://mlsp2018.conwiz.dk/home.htm ), September 2018, Aalborg, Danemark.
- Python 3.6.5
- TensorFlow 1.1.0.
- Keras 2.2.2.
- Matlab.
- Matconvnet.
- blur images by gaussian filter (imgaussfilt) at different levels (sigma = 1, 2, 3 and 4).
- resize images with 'bicubic' function using upscaling factor = 3, published papers recently generally use Matlab to produce low-resolution image.
- For a fair comparison with SRCNN network; training set Yang91 is used.
- generate training patches using matlab: run generate_train.m and generate_test.m.
- use Keras with TensorFlow (tf) as a backend to train DBSRCNN model; Adam is used to optimizing the network for fast convergence: run DBSRCNN_train.py to produce DBSRCNN_blur model.
- convert Keras model to .Mat for testing using Matconvnet: run load_save.py first, then run save_model.m to produce Matconvnet model.
- run NB_SRCNN_Concat_blur_test.m in βtestβ folder to test the model; Set5 and Set14 are used as testing data.