← all repositories
yu4u/noise2noise

Denoise images without ever seeing a clean photo

A Keras sandbox for the counterintuitive Noise2Noise paper: train on pairs of noisy images and still learn to clean them up.

1.1k stars Python Computer VisionML Frameworks
noise2noise
Velocity · 7d
+0.4
★ / day
Trend
steady
star history

What it does

This repo implements the core Noise2Noise training trick in Keras: you feed a neural network two independently corrupted versions of the same image, and it learns to map from one noise sample to the other. Because the noise is random and zero-mean, the network effectively averages it away and learns to predict the underlying clean signal—without ever being shown ground-truth clean data during training.

The interesting bit

The author swaps in SRResNet or UNet for the paper’s original RED30 architecture, and trades ImageNet for a much smaller super-resolution dataset. The README is admirably honest about the gaps: noisy-target training works, but PSNR lags behind clean-target training by roughly half a decibel on Gaussian noise.

Key highlights

  • Supports Gaussian, text insertion, and random-valued impulse noise models via simple string arguments (gaussian,0,50, text,0,50, etc.)
  • Includes pre-trained weights for all three noise types, both noise-target and clean-target baselines
  • UNet or SRResNet selectable with --model unet
  • Training resumable from checkpoint weights
  • test_model.py handles both synthetic-noise evaluation and denoising of already-noisy images

Caveats

  • The author explicitly calls this “partial” and “unofficial”; dataset and architecture differ from the paper
  • Noisy-target results trail clean-target results in the reported benchmarks, so this is more proof-of-concept than SOTA
  • L0 loss for impulse noise is included, but the README doesn’t explain why it was chosen or how it behaves

Verdict

Worth a spin if you want to see Noise2Noise work without wrangling the official (nonexistent?) release, or if you’re teaching the concept. Skip it if you need production denoising or a faithful paper reproduction.

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