Python and Flutter application for Colouring and Enhancing Old Photos

Utkarsh Mishra

APIs Computer Vision Deep Learning Image Processing Machine-Learning

See in schedule

A photo is an image that represents an external form of a person or a thing from the past. It communicates any past incident or activity to the present or future, reminding them of the melodious memories they have.

In the 19th century most photographs were monochromatic, so people hand-coloured them, often for purely aesthetic reasons. Photos with colour just looked nicer on the mantle. Contemporary artists still add colour for those reasons. Colourization is a time-consuming, labour-intensive process when done manually. Realistically capturing undertones in the skin is especially difficult. You may have to add subtle layers of pink, orange, yellow, or blue. Experts recommend finding a colour photo featuring similar skin tones to use as a reference.

To reduce such a manual time-consuming process to a few seconds or a minute, we built a Deep Learning model to colour old black and white images. It uses an autoencoder with skip connections built using TensorFlow backend with Keras to retain details and features from the original image during the conversion. After the coloured image is obtained, a gamma correction filter is being applied to increase the contrast of the image after which an optional operation of super-resolution is performed in accordance with the condition of image size less than 500 pixels. These operations are built into an API which is called using a Flutter Mobile application that takes image input from user from gallery or camera, crop it to get the required section and passed it to the API, which then executes the above processes and the resultant image is passed as output back to the flutter application.

The results of this work will help guide the computer vision developers to incorporate the feature of colouring old images and photos to multiple domains and to further enhance these models by adding variants to them.

Outline
- Introduction to Deep Learning and the model architecture [10 minutes]
- Introduction to API using Flask and Frontend Flutter app [10 minutes]
- Application Demo [5 minutes]
- Q&A [5 minutes]

Type: Talk (30 mins); Python level: Beginner; Domain level: Beginner


Utkarsh Mishra

Quale Infotech

I am a final year undergraduate from UCET Bikaner, majoring in Computer Science and Engineering. With more than 2 years of experience in machine learning and I possess a keen interest in Deep Learning. I also did 2 internships related to ML and Data Science and like to discover new horizons in this field and am currently a Machine Learning Developer in Quale Infotech.

I also gave my first-ever technical talk on his project related to 'Pothole Detection and Visualization on Google Map' in SciPy 2019 at IIT Bombay.

During EuroPython 2021, I wish to share the relevant idea with fellow practitioners.