This project is based on Single Image Super-resolution using Machine Learning. The technique we used to finally implement this is called ESRGAN. More can be learned about this from this paper.
The initial phases of the project involved getting to know many of the tools that we finally required to complete the implementation. To get familiar with these we also did many mini-projects associated with certain topics. The code for the mini-projects is in the assignments directory. The Project itself started in the first week of April.
- OpenCV basics
- Assignments 1, 2 and 3 to do with OpenCV
- Google ML course
- Tensorflow course on Udemy
- Implementing a digit recognizer model using a Convolutional Neural Network
- Learning about RESNETS
- Learning about GAN and CGAN
- Implementing CGAN sketch colorizer model
- Reading papers and articles related to ESRGAN
- Final Implementation of ESRGAN model
We learnt a lot about opencv and how to use it in our project in this stage of SoC. Rotating, cropping, blurring, and many more operations were learnt. We also had to use opencv to create a sketch image of ourselves from a live video feed as our assignment. The assignments are here.
In this phase we mainly learnt about the theoretical aspects of machine learning through the google ML course. It helped build a strong foundation for building and training models.
This phase was mostly hands on. We had multiple coding assignments in this phase through the way of the Tensorflow course on Udemy that we followed. This taught us to apply the previously learned theory in a practical setup. We built a digit recognizer using CNNs in this section. The code can be found in this file.
We learnt about different types of ML models like RESNETs, GAN, CGAN and then implemented our learning in a project which was the anime sketch colorizer. This project involves the use of a CGAN to generate colored images from pencil sketches. The code for this is here.
ESRGAN, which is short for Enhanced Super-Resolution Generative Adversarial Network, was the final goal of our SoC. We had to read papers and articles about this topic and finally create our own implementation. A detailed account of the implementation is given here. The code also resides here.
Licensed under the MIT License.