Have you ever had your image compressed beyond belief by an app? Have you ever found that perfect wallpaper on Google only to find that it’s 720p? Have you ever just wanted to be able to enhance, like in CSI? As a student studying deep learning, I had to create my own solution.
What it does
Enhance is a web application that takes low-resolution images as input and upscales them by 4x with deep learning, making features more distinguishable and increasing image resolution.
How I built it
Enhance uses a Generative Adversarial Network trained on two diverse high resolution image datasets: the DIV2K dataset and the Microsoft COCO dataset. I did modeling with Tensorflow and Keras, and to prevent my computer from catching fire, trained it through Google’s Cloud ML Engine. I did preprocessing through basic libraries like NumPy and Matplotlib and used a VGG model for content loss.
I then strapped up an easy-to-use, intuitive web application in Flask so anyone can use my model.
Challenges I ran into
Just trying to download and process all the training data was enough to almost brick my computer. Thankfully, Google Cloud Platform was there to save the day. I ended up doing my training in the Cloud ML Engine, and was definitely glad I did so.