An official PyTorch implementation of the ISRResCNet network as described in the paper Deep Iterative Residual Convolutional Network for Single Image Super-Resolution which is published in the 25th International Conference of Pattern Recognition (ICPR), 2020.
✨ Visual examples:
- Abstract
- Oral Presentation Video
- Citation
- Quick Test
- ISRResCNet Architecture
- Quantitative Results
- Visual Results
- Code Acknowledgement
Deep convolutional neural networks (CNNs) have recently achieved great success for single image super-resolution (SISR) task due to their powerful feature representation capabilities. The most recent deep learning based SISR methods focus on designing deeper / wider models to learn the non-linear mapping between low-resolution (LR) inputs and high-resolution (HR) outputs. These existing SR methods do not take into account the image observation (physical) model and thus require a large number of network's trainable parameters with a great volume of training data. To address these issues, we propose a deep Iterative Super-Resolution Residual Convolutional Network (ISRResCNet) that exploits the powerful image regularization and large-scale optimization techniques by training the deep network in an iterative manner with a residual learning approach. Extensive experimental results on various super-resolution benchmarks demonstrate that our method with a few trainable parameters improves the results for different scaling factors in comparison with the state-of-art methods.
@InProceedings{Umer_2020_ICPR,
author = {Muhammad Umer, Rao and Luca Foresti, Gian and Micheloni, Christian},
title = {Deep Iterative Residual Convolutional Network for Single Image Super-Resolution},
booktitle = {Proceedings of the International Conference of Pattern Recognition (ICPR)},
month = {January},
year = {2021}
}
This model can be run on arbitrary images with a Docker image hosted on Replicate: https://beta.replicate.ai/RaoUmer/ISRResCNet. Below are instructions for how to run the model without Docker:
- Python 3.7 (version >= 3.0)
- PyTorch >= 1.0 (CUDA version >= 8.0 if installing with CUDA.)
- Python packages:
pip install numpy opencv-python
- Clone this github repository as the following commands:
git clone https://github.com/RaoUmer/ISRResCNet
cd ISRResCNet
cd isrrescnet_code_demo
- Place your own low-resolution images in the
./isrrescnet_code_demo/LR
folder. (There are two sample images i.e. set5_img_butterfly_x4 and urban100_img_092_x4). - Run the test by the provided script
test_isrrescnet.py
.
python test_isrrescnet.py
- The SR results are in the
./isrrescnet_code_demo/sr_results
folder.
Average PSNR/SSIM values for scale factors x2, x3, and x4 with the bicubic degradation model. The best performance is shown in red and the second best performance is shown in blue.
Visual comparison of our method with other state-of-the-art methods on the x4 super-resolution over the SR benchmarks. For visual comparison on the benchmarks, you can download our results from the Google Drive: ISRResCNet.
The training codes is based on burst-photography and deep_demosaick.