Deep Learning Image Denoising

       Image noise has always been my biggest problem in the project in recent months. Finding a good and fast denoising method plays a key role in the progress of the project and the final effect. In recent years, deep learning denoising is also a popular direction, with many remarkable research results. I found it very interesting to reproduce one of the denoising papers. I didn't need clean data, but I finally trained a denoising model. (Because it is a laborious thing to obtain a noise-free image in an actual project).

Image noise origin:

       Image noise is caused by the camera when capturing signals or transmitting signals, and is related to artifacts. It manifests itself in the image as a color speck or a brightness speck.

Traditional common filtering methods:

For different noises, there are some practical filtering methods.

  1. Mean filtering: Mean filtering is also called linear filtering, and the main method used is the neighborhood averaging method. This method can smooth the image with fast speed and simple algorithm. However, the noise cannot be removed, but the influence of the noise can be weakened.

  2. Median filtering: Median filtering is a non-linear smoothing technique, which sets the gray value of each pixel to the median value of the gray values ​​of all pixels in a certain neighborhood window of the point. This method can be used to protect edge information, is a classic method of smoothing noise, and is very effective in eliminating salt and pepper noise.

  3. Gaussian filter: Gaussian filter is a linear filter that can effectively suppress noise and smooth images. It is suitable for filtering Gaussian white noise and has been widely used in the preprocessing stage of image processing.

  4. Bilateral filtering: Bilateral filtering is a filter that can preserve edges and denoise.

Deep Learning Filtering:

       The traditional neural network denoising, the most classic is the denoising self-encoder, to achieve image denoising and restoration, the key is to obtain a pure image, through training, learn the noise characteristics, so as to have the ability to recover from the noise image. The ability to present a clean image.

       Today's Noise2Noise does not require a pure image, that is, by inputting a noise image, the label is also an image containing the noise. Through training, the characteristics of the noise can be obtained to achieve the effect of filtering.

       When there are few training samples, he can only learn the transformation between the two. But when the training samples reach a certain amount, since the noise is unmeasurable, the network can learn the real pure image.

The original paper has done multiple sets of experiments, including Gaussian noise removal, Poisson noise removal, Bernoulli noise removal, watermark removal, etc.

       Code reproduction This article will no longer provide my reproduction, because nvidia provides open source code on github, https://github.com/NVlabs/noise2noise. Interested friends can read the source code carefully. It is a very interesting article that can do a lot of things in denoising.

       The denoising effect I reproduced:

Original image:   c03d7d8c53e5600b4ef5a81fddb7accb.png

Noise map: f273edac267b07f3ef6be0f5f24b3459.png

Denoising map: 79741fbbf287df326348bc7a2015fbe6.png

Guess you like

Origin blog.csdn.net/weixin_41202834/article/details/123321150