Image based denoising
Image denoising is the process of removing noise from a digital image. Noise in images can occur due to various factors such as low light conditions, high ISO settings, and image compression. There are various methods for denoising an image, including statistical methods, filter-based methods, and deep learning-based methods. Here I explore a few popular methods.
Gaussian kernel method
A Gaussian kernel is a low-pass filter that smoothens the image by blurring out high frequency noise while preserving low frequency details. A denoised image is obtained by convolving the gaussian kernel across each pixel in the input image. The size and standard deviation of the Gaussian kernel can be adjusted to balance smoothing and detail preservation.
Gaussian Kernel of Size 10 and Sigma 1




Advantages
- Simple and relatively fast on modern hardware
Disadvantages
- Non-edge perserving
- Does not account for local image statistics
Bilateral filter
A blast from the past: the Bilateral Filter proposed by C. Tomasi and R. Manduchi in 1998 is a non-linear, edge-preserving filter. The main idea is illustrated below:




Some fine tuning is necessary with this filter. The filter works well on regions with uniform color, low noise, and near boundaries (e.g. top of spheres). However, like shown on the bottom of the spheres, it is unable to deal with very high noisy regions without overly smoothing with the distance gaussian.
Neural Network Based Denoising
The simple test scene I have used to evaluate denoising algorithms has revealed the challenge of the task. The classical denoising methods given above assume that noise in an image is Gaussian and can be removed using Gaussian-based approaches. However, the results on the simple Cornell Box rendering indicate that noise is rarely purely Gaussian. This motivates one to tackle to denoising task with a neural network approach that makes little assumptions about the underlying noise distribution in the image. Training a neural network architecture on real images with corresponding noisy and denoised pairs would learn the desired mapping without explicitly defining the type of global noise in an image.