Subframe denoising

December 18, 2012
When I capture one subframe to survey or frame a region of the night sky, the result is noisy due to the short exposure. I have wondered if it would be possible to denoise a subframe easily. Here are the results of my experiments with a method by Luisier et al[1][2]. The method is attractive because it addresses both the photon noise and read noise components of CCD detector noise. The method takes as input one subframe and detector noise parameters. Output is the denoised subframe. The crops below show an example. I applied a nonlinear transfer function to improve visibility.
 
Input crop, 1x zoom, Original:
blog 2012_12_18 denoise 0.0 1x
 
Output crop, 1x zoom, Original:
blog 2012_12_18 denoise 1.0 1x
 
Input crop, 2x zoom:
blog 2012_12_18 denoise 0.0 2x
 
Output crop, 2x zoom:
blog 2012_12_18 denoise 1.0 2x

The crops below show the noise guessed by the method, i.e the difference between the noisy input and the denoised output. Ideally the residual should have the same statistics as the noise. For example, the residual should correlate with signal intensity due to the intensity dependent photon noise. But beyond the noise statistics the residual should not reflect the structure of the input.
 
Method noise crop, 1x zoom, Original:
blog 2012_12_18 method 1.0 1x
 
Method noise crop, 2x zoom:
blog 2012_12_18 method 1.0 2x
 
The Luisier method denoises images corrupted by mixed Poisson-Gaussian noise using the model
  • y ~ α Ƥ(x) + Ɲ(δσ^2),
where:
  • y: noisy input data (DN),
  • x: noise-free data (unitless),
  • α: detector gain (DN),
  • δ: detector offset (DN),
  • σ: standard deviation of the detector Gaussian noise (DN).
Ƥ(x) represents a Poisson distribution with mean x. Ɲ(δ, σ^2) represents a normal (Gaussian) distribution with mean δ and variance σ^2. The Ƥ and Ɲ terms characterize the photon noise and the read noise components of CCD detector noise, respectively.
 
Given this noise model, the expectation ξ{y} and variance V{y} of the noisy input data y are
  • ξ{y} = α x + δ,
  • V{y} = α^2 x + σ^2.
The expectation equals the detector gain times the noise-free data plus the detector offset. The variance is the sum of the noise-free data dependent Poisson noise variance and the constant Gaussian noise variance.
 
The Luisier software is capable of automatically estimating the detector noise parameters αδ and σ, but when these estimates are used various artifacts and a loss of resolution are apparent. To avoid this problem I used parameters measured by running separate calibration software. The measurements for dark subtracted and flat fielded input data are detector gain 0.93 DN/e-, offset 0 DN and noise 14 DN. I dark subtract and flat field the input data to remove fixed pattern noise prior to denoising[3]. Both input and output data are normalized to the range [0, 1] by convention, so I pre-scaled the input data by 65535 DN and post-scaled the output data by 1 / 65535 DN and clipped them to the range [0, 1]. Denosing the 2 megapixel subframe with 8 cycle-spins required approximately 1 minute of computation time on my laptop.
 
I have experimented with a simple technique that modulates the amount of denoising performed by the Luisier method. I introduce a parameter β in the range (0, 1] and scale the noise parameters α and σ by β^0.5. As a result, the input data is modeled with a noise variance scaled by β. The crops below show the result with β = 0.5.
 
Output crop, β = 0.5, 1x zoom, Original:
blog 2012_12_18 denoise 0.5 1x
 
Output crop, β = 0.5, 2x zoom:
blog 2012_12_18 denoise 0.5 2x
 
Method noise crop, β = 0.5, 1x zoom, Original:
blog 2012_12_18 method 0.5 1x
 
Method noise crop, β = 0.5, 2x zoom:
blog 2012_12_18 method 0.5 2x
 
The images below show a synthetic example consisting of a series of gradients corrupted by mixed Poisson-Gaussian noise. The noise parameters equal those of my detector scaled by 1000^0.5 to improve noise visibility with a linear transfer function. Noise variance varies by a factor of approximately 8 as a function of intensity. The method noise image shows this dependency, but no unwanted structures are apparent.
 
Input, 2x zoom, Original:
blog 2012_12_18 gradient noise zoom
 
Output, 2x zoom, Original:
blog 2012_12_18 gradient denoise zoom
 
Method noise, 2x zoom, Original:
block 2012_12_18 gradient method zoom
 
 
[2] Luisier et al., "Fast Interscale Wavelet Denoising of Poisson-Corrupted Images", Signal Processing, 90(2):415-427, 2010 February.
 
[3] Janesick, Photon Transfer DN → λ, SPIE, Bellingham, WA, 2007.

Archive
January February March April May June July August September October November December (4)
January (1) February (1) March April May June July August September October November December
January February March April May June July August September October November December
January February March April May June July August September October November December
January February March April May June July August September October November December