Zero-Shot Image Super Resolution
Sumedh Pendurkar
Shivajinagar, Maharashtra
- 0 Collaborators
Due to limitations of camera, we are unable to capture the real life scenarios as they are. We lose resolution in that process. Due, to this limitations, we have lower performance in some applications such as OCR, satellite imaging, etc. Getting the high resolution from the low resolution is a ill-imposed problem as it is not possible to recover all the details. A lot of image processing techniques and probabilistic methods have been used traditionally to solve this problem. Recently, Deep learning solutions are beating state-of-the-art accuracies. I tend explore some of these solutions, and try to fit them in zero-shot method. ...learn more
Project status: Under Development
Intel Technologies
AI DevCloud / Xeon,
Intel Opt ML/DL Framework
Overview / Usage
This solution can be used to improve accuracies of various other problems. This can be used to improve the OCR results. in addition this can also be used for satellite imaging. If we attain higher accuracies, the images can be compressed and stored on disk, and using this model we could recover it, thus saving the space.
Initially, probabilistic models such as Markov models were used to solve this ill-imposed problem.. With the advent of deep learning and convolutional neural networks, models such as SRCNNs were used, who had a ground breaking accuracy. Along with that, certain new models emerged with better accuracies such as fast-SRCNN, Sub-pixel mapping based network, GAN based, etc. However, as most of the supervised learning problems these required training data. Assaf Shocher in "Zero-Shot" Super-Resolution using Deep Internal Learning" showed that due to property of internal recurrences in most of the images, the model could be trained on the same image. Thus, I intend to exploit this property of images and use better and faster neural networks to get better accuracy.
Methodology / Approach
Following steps are followed as suggested in "Zero-Shot" Super-Resolution using Deep Internal Learning"
- Downscale image by 1/2.
- Extract patches from image of size 8 * 8 with a stride of 4 from both, original image as well as downscaled image.
- Train a model with input as the downscaled patches and output as upscaled patches.
- We have currently used SRCNN like model (3 convolutional layers)
Technologies Used
- Intel optimized libraries: numpy, scipy, tensorflow
- Other libraries: keras, opencv
- Other tools: matlab
- Hardware: Intel DevCloud