Thursday October 28 12:00 PM – Thursday October 28 12:30 PM in Talks II

Python and Flutter application for Colouring and Enhancing Old Photos

Utkarsh Mishra

Prior knowledge:
Previous knowledge expected
Basics of Python and Machine Learning


Colour catches the eye and communicates the mood. Monochromatic photos feel empty and timeless, whereas coloured ones feel like a gust of colours with emotions. Colouring these photos is a time-consuming and labour-intensive process and to reduce this to a matter of seconds or a minute, we built a Deep Learning model which has been wrapped in an API and can be accessed using a flutter application.


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]