LUX is a web application I created for my senior project senior project Lightning up images with deep learning techniques. It is programmed in Flask and it uses a Generative Adversarial Network (GAN) to fix the brightness of extremely dark PNG and JPEG images.
Input (dark image) | Output (illuminated image) |
---|---|
The encoder-decoder network that processes the image was trained with a GAN approach using the Tensorflow package. The architecture is a modification of the well-known pix2pix model, while the dataset has been obtained from the Learning to See in the Dark collection. All the details on the architecture of the model, the obtaining of the dataset and the training process can be found in the project memoir. Besides, the scripts and notebooks employed in the process are allocated in the lux-model repository.
Originally, Lux was dockerized and deployed on Google Cloud (the details are in the memoir), but it ran only for a few months due to the financial cost.
You can easily run the development version of LUX on your PC, although I've only tested it in Linux.
The trained GAN generator can be downloaded in the link below:
https://drive.google.com/drive/folders/1S7Oy1wJnjbZppYpfAtSQfBJThNbcxtzR?usp=sharing
It must be allocated inside the static/models folder. Then, the app (main.py
) can be run with Python3 (the TensorFlow package must be installed). Three demo images can be found in the repository, but you can upload any dark PNG or JPEG image.
The quality of the output is not good for low resolution inputs.