Python and Flutter application for Colouring and Enhancing Old Photos

Utkarsh Mishra (~utkarsh13)



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.

Potential Work

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.


  1. Introduction to Deep Learning and the model architecture [10 minutes]
  2. Introduction to API using Flask and Frontend Flutter app [10 minutes]
  3. Application Demo [5 minutes]
  4. Q&A [5 minutes]


Basic understanding of machine learning and deep learning and would be best if have a little knowledge on flutter app development.

Video URL:

Speaker Info:

Utkarsh Mishra is a final year undergraduate from UCET Bikaner, majoring in Computer Science and Engineering. With more than 2 years of experience in machine learning and have a keen interest in Deep Learning. He did 3 internships related to ML and Data Science and like to discover new horizons in this field.

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

During PyCon India'2021, he wishes to share the relevant idea with fellow practitioners.

Section: Data Science, Machine Learning and AI
Type: Talks
Target Audience: Beginner
Last Updated: