This repo is the implementation of my project proposal for Tensorflow 2.0 Challenge.

What is amethyst

Amethyst is an intelligent photo editor which is capable to remove undesired parts of the images. To clean an image you just have to paint over the annoying item and Amethyst will automatically delete it for you!

Amethyst is an hybrid mobile application (works either on IOS or Android) developed using flutter.


Remove example

How it works?

Amethyst uses a complex GAN architecture to regenerate the drew part of the image. Because of the low compute power and the limited Amethyst uses the lightweight GAN described on this paper.

The goal of this Neural Network is to complete the missing parts of the images based on the general context of the image.

To summarize the Amethyst AI is capable of removing corruption masks over an image using the generic context of the image.

Amethyst GAN

The GAN which is goal is to complete missing parts of images is formed by:

  • Generator: Recieves the corrupted image and removes the corruption. This generator is quite special and is composed of to parts

    • Semantic Encoder: Its goal is to generate a feature map capable of containing the most important images' features.
    • Decoder: Decodes the features generated with Semantic Encoder and generates the image without the corruption mask.
  • Discriminator: NN to help during training, it differenciates between generated and original images without corruption mask. Helps on the backpropagation step influencing to the generator so it can creates more realistic images.

Base papers for architecture

Amethyst architecture

Amethyst Srchitecture

Flutter Mobile App

Splash Screen

Mobile Splash

Image Selector

Select either from camera or gallery

Image selector

Image Editor

Draw over the unwanted part of the image to delete it

The editor provides diferent actions:

  • Delete all the draw
  • Undo a line
  • Pick the brush thickness
  • Done

Image selector

Image completition as a service

Perform a POST to with the following JSON body:

    "img": "<image in base64>"

The response is the image completed in base64.

Built With

Share this project: