The field of image denoising is currently dominated by discriminative deep learning methods that are trained on pairs of noisy input and clean target images. Recently it has been shown that such methods can also be trained without clean targets. Instead, independent pairs of noisy images can be used, in an approach known as Noise2Noise (N2N). Here, we introduce Noise2Void (N2V), a training scheme that takes this idea one step further. It does not require noisy image pairs, nor clean target images. Consequently, N2V allows us to train directly on the body of data to be denoised and can therefore be applied when other methods cannot. Especially interesting is the application to biomedical image data, where the acquisition of training targets, clean or noisy, is frequently not possible. We compare the performance of N2V to approaches that have either clean target images and/or noisy image pairs available. Intuitively, N2V cannot be expected to outperform methods that have more information available during training. Still, we observe that the denoising performance of Noise2Void drops in moderation and compares favorably to training-free denoising methods.

How to use N2V in Python How to use N2V in Fiji How to export trained N2V networks from Python for Fiji

Setup and Exercises

Structured noise

While the original Noise2Void implementation can only remove pixel independent noise, it got extended to also deal with structured noise. Read and cite this paper by C. Broaddus et al. for reference.

How to use StructN2V in Python How to use StructN2V in Fiji (coming soon)

Source code

N2V in Python N2V in Java / Fiji