P

Project Efface

Ever clicked a photograph of a wonderful moment just to realize that a few elements take the beauty out of it. Well, we might have a solution!

The problem Project Efface solves

A perfect photograph is worth a thousand words. But that’s not always the case. A lot of our photos contain some elements which depreciates the meaning and value of it. In order to make it more appealing, such unwanted elements must be removed as if they never existed in the first place!
What if we told you such thing was possible? Intriguing right?
In this project of ours, we have tried to achieve this goal using a procedure known as Image Inpainting.
The classic method of Image Inpainting is not very efficient in its working, especially if the area gets bigger in size. It simply doesn’t look natural!
For this project, we have used a system of Deep Neural Networks known as GAN (Generative Adversarial Network). This approach gives us way better results than the traditional approaches to Image Inpainting, with nearly perfect results if the size of the object to be removed is small as compared to complete picture.
In this event, we have successfully managed to implement a GAN, which is able to fill small voids in the image, created by the user using OpenCV masks. Future changes in this project includes extending the idea to deal with larger objects, decrease the influece of the mask in the output, and changes to the model to make it more efficient in its working.

Challenges we ran into

We came across several hurdles while trying to solve this problem. Some of the major problems were:

  1. Intensive Research Work: Finding relevant resources to study about GAN's and their possible use in void filling was a really hard task. Most of the resources were either in the form of documents or research papers. We had to go through several papers before actually making this project.
  2. Finding Relevant Dataset: This was a herculean task as the performance of our whole project came down to this. During our research, we came across a few pre-trained models and architectures which proved to be useful during the course of this project.
  3. Means of Output: Clearly we needed a good means of communicating our results with the user without actually scavenging through the scripts. Keeping in mind the time-frame, we agreed upon a standard OpenCV window with two parallel images showing the input and output along with a slider to adjust the pen-size. However, we made the code flexible enough so that it can be actually integrated into Websites and other Apps in future.

Discussion