Skip to main content

A non-local algorithm for image denoising

Published in  2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, this paper introduces two main ideas
  1. Method noise
  2. Non-local (NL) means algorithm to denoise images

Method noise

It is defined as the difference between the original (noisy) image and its denoised version. Some of the intuitions that can be drawn by analysing method noise are

  1. Zero method noise means perfect denoising (complete removal of noise without lose of image data).
  2. If a denoising method performed well, the method noise must look like a noise and should contain as little structure as possible from the original image
The authors then discuss the method noise properties for different denoising filters. They are derived based on the filter properties. We will not be going in detail for each filter as the properties of the filters are known facts. The paper explains those properties using the intuitions of method noise.

NL-means idea

Denoised value at point of an image is the mean of all points whose gaussian neighborhood is similar to the neighborhood of x. This technique is different from local filtering and frequency domain filtering techniques as it takes what the entire image has to offer to help denoise the image rather than only looking at neighboring pixels and noise characteristics.

NL-means algorithm

  1. Given a noisy image Nfor each pixel i, calculate the weighted average of all the pixels in the image to obtain the denoised value for pixel i
  2. The weight given to each pixel in the weighted average is directly proportional to the similarity with pixel i.
    1. All weights are between 0 and 1
    2. Sum of weights is equal to 1
  3. Similarity between two pixels i and j is measured based on the similarity between the gray level vectors of the square neighborhoods of the pixels.
    1. Similarity is measured as a decreasing function (Guassian kernel) of the weighted Euclidean distance.
    2. Based on the similarity, the weights are assigned.
For pixel p, it is clear that neighborhood of points q1 and q2 are similar and hence w(p,q1) and w(p,q2) are larger. Similarly, q3 having a much different neihborhood attributes lower weight to w(p,q3).

The figure above shows the weight distribution of other pixels with respect to the central pixel. White being closer to weight 1 and black to 0.

Why does averaging work?

This averaging of similar pixels obtained from all the over the image, reduces the noise. As we know for a fact that image averaging works on the assumption that the noise in the image follows a random distribution. This way random fluctuations above and below the actual image data gets smoothened out as one averages.

The paper further discussed the consistency of the NL-means algorithm and experimental results. I encourage you to go through the paper and take a look at the mathematical derivations and the following experiments. (All pictures in this post were borrowed from the paper)

Learning links

Comments

Popular Posts

Joint Pose and Shape Estimation of Vehicles from LiDAR Data

In this paper , the authors address the problem of estimating the pose and shape of vehicles from LiDAR Data. This is a common problem to be solved in autonomous vehicle applications. Autonomous vehicles are equipped with many sensors to perceive the world around them. LiDAR being one of them is what the authors focus on in this paper. A key requirement of the perception system is to identify other vehicles in the road and make decisions based on their pose and shape. The authors put forth a pipeline that jointly determines pose and shape from LiDAR data.  More about Pose and Shape Estimation LiDAR sensors capture the world around them in point clouds. Often, the first step in LiDAR processing is to perform some sort of clustering or segmentation, to isolate parts of the point cloud which belong to individual objects.  The next step is to infer the pose and shape of the object. This is mostly done by a modal perception . Meaning the whole object is perceived based on partial s...

ES3Net: Accurate and Efficient Edge-based Self-Supervised Stereo Matching Network

Efficient and accurate depth estimation plays an indispensable role in many real-world applications, such as autonomous vehicles, 3D reconstruction, and drone navigation. Despite the precision of stereo matching, its computational intensity can pose significant challenges for edge deployment. Moreover, the struggle of acquiring ground-truth depths for training stereo-matching networks further amplifies these challenges. Enter ES3Net, the Edge-based Self-Supervised Stereo matching Network, a solution designed to mitigate these obstacles. The Challenges of Depth Estimation When it comes to applications like autonomous driving or drone navigation, the importance of accurate depth estimation is hard to overstate. It provides a foundational understanding of the 3D world, allowing for intelligent decision-making and navigation. Traditionally, stereo matching has provided greater accuracy than monocular depth estimation due to the availability of a reference image. However, it also bri...