← all repositories
cchen156/Learning-to-See-in-the-Dark

Neural night vision that only speaks raw sensor data

A research prototype that learns to turn extremely dark raw sensor data into bright, clean images by training on paired long-exposure ground truth.

5.6k stars Python Computer Vision
Learning-to-See-in-the-Dark
Not currently ranked — collecting fresh signals.
star history

What it does This is the authors’ TensorFlow implementation of a 2018 CVPR paper that reconstructs bright, low-noise photographs from extremely dark raw sensor data. It learns to map short-exposure raw images—captured in near-total darkness—to the equivalent of clean, long-exposure shots without relying on the camera’s built-in image signal processor.

The interesting bit Instead of fighting noise after the camera ISP has compressed dynamic range and smeared fine detail, the network learns to recover signal directly from the unprocessed sensor readout. That tight coupling to specific sensor noise characteristics is exactly why the pretrained models are locked to the Sony and Fuji datasets used in the paper.

Key highlights

  • Explicitly a research prototype, not a consumer product; the authors state it is meant to prove a concept
  • Ships with pretrained models and training code for paired Sony (25 GB) and Fuji (52 GB) short-exposure/long-exposure raw datasets
  • Requires a legacy software stack: Python 2.7, TensorFlow ≥1.1, and was originally tested on an Nvidia Titan X with CUDA ≥8.0
  • Training is memory-hungry: loading the full ground-truth dataset into RAM takes 64 GB for Sony and 128 GB for Fuji
  • The pretrained models are sensor-specific; the FAQ warns they will not work on JPG/PNG images or on raw files from different camera sensors

Caveats

  • Built for a 2018-era stack: Python 2.7, TensorFlow ≥1.1, and an Nvidia Titan X with CUDA ≥8.0
  • Pretrained models are sensor-specific; the authors warn they will not work on post-ISP JPG/PNG or raw data from different camera sensors
  • Training requires 64–128 GB of RAM unless you rewrite the data loader, and the dataset auto-downloader was removed after the authors incurred heavy cloud-storage bills

Verdict Computer vision researchers working with low-light raw imagery or sensor-level noise reduction should find the paired dataset and reference model useful. Everyone else—especially anyone hoping for a smartphone night-mode drop-in—should keep scrolling.

Frequently asked

What is cchen156/Learning-to-See-in-the-Dark?
A research prototype that learns to turn extremely dark raw sensor data into bright, clean images by training on paired long-exposure ground truth.
Is Learning-to-See-in-the-Dark open source?
Yes — cchen156/Learning-to-See-in-the-Dark is open source, released under the MIT license.
What language is Learning-to-See-in-the-Dark written in?
cchen156/Learning-to-See-in-the-Dark is primarily written in Python.
How popular is Learning-to-See-in-the-Dark?
cchen156/Learning-to-See-in-the-Dark has 5.6k stars on GitHub.
Where can I find Learning-to-See-in-the-Dark?
cchen156/Learning-to-See-in-the-Dark is on GitHub at https://github.com/cchen156/Learning-to-See-in-the-Dark.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.