Inspiration

We have been reading some interesting research papers about Generative Adversarial Networks (GANs). It is truly inspiring to see what GANs can achieve and we feel that in the future, GANs will be extensively used in image processing. One such paper is by Orest Kupyn et al, which has implemented an optimized architecture such that it can be used to predict real images from the blurred images. The author claims it is 5 times faster than DeepBlur. Inspired by this application, a web app is developed that makes it easier to use the model.

What it does

Predicts the sharp image from the blurred image using a simple Web User Interface.

How I built it

Trained the deblur GAN using the GoPro light dataset with Keras. Meanwhile, built a simple React UI with drag and drop feature to upload the image file which pops up a comparison slider for the resulting image. The UI communicates with the Flask API that accepts the blurred image as input and responds with a sharp image. It uses Keras library with Tensorflow as backend and uses a persisted model to generate predictions. Both UI and server are decoupled and run on the same Virtual Machine instance on Google Cloud.

Challenges I ran into

  1. Finding the right GAN architecture that gives good results
  2. Training the model on time
  3. Used Google Cloud for the first time and ran into minor issues
  4. Creating File Uploader in React and implementing the comparison slider

Accomplishments that I'm proud of

  1. Working application with small-sized images
  2. Trained the model and worked on API and UI in parallel
  3. Designed a user-friendly UI

What I learned

  1. GANs and their applications
  2. Using Virtual Machines and their networking in Google Cloud
  3. Using persisted ML models with Flask API
  4. Implementing React components like drag and drop, image upload and Comparison Slider

What's next for Crispify.ai

  1. Train using the bigger dataset
  2. Merge images to create higher resolution outputs
  3. Build an Android app

Built With

Share this project:

Updates