This repo is the implementation of my project proposal for Tensorflow 2.0 Challenge.
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.
Example:
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.
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.
- Generator: The Semantic Encoder is based on VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION - VGG16 and the decoder is a simple stack of layers formed by convolutional, conv-transpose and elu activation.
- Discriminator: Based on Context Encoders: Feature Learning by Inpainting
Select either from camera or gallery
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
Perform a POST to https://shrouded-refuge-72036.herokuapp.com/complete-image with the following JSON body:
{
"img": "<image in base64>"
}The response is the image completed in base64.





