Learning to See in the Dark is a deep learning model for enhancing low-light photographs by learning to map short-exposure, high-ISO images to their long-exposure equivalents.
The project addresses the problem of noise and detail loss in low-light photography. Rather than applying traditional image processing pipelines, it trains a convolutional neural network end-to-end on raw sensor data to learn the mapping from underexposed images to properly exposed results. The approach works directly on raw image formats using the SID dataset, which pairs short-exposed photographs with corresponding long-exposed ground truth images captured at different camera settings and ISO levels.
This is a research implementation suited for developers working on computational photography, image enhancement, or low-light imaging problems who want to build on or reproduce the published results. The project provides both training and testing code, allowing users to either evaluate the pretrained models on the Sony and Fuji camera datasets or train new models from scratch. The codebase requires Tensorflow, Scipy, Numpy, and Rawpy, and was tested on GPU hardware with CUDA and CuDNN support, though CPU execution is noted as theoretically possible with modifications.
The repository maintains the original research code with periodic updates addressing practical concerns. The maintainers have documented known data quality issues affecting specific images in the dataset and have shifted from automated downloads to manual dataset retrieval to manage infrastructure costs. The project provides multiple dataset access options including direct downloads and alternative mirrors to accommodate varying network conditions and regional availability constraints.