Skip to content

A demonstration of multiple Machine Learning methods to remove Tropospheric Signals from InSAR data. The work has been developed for the NASA SpaceApps Hackathon 2022 - InSAR Change Detectives!

License

Notifications You must be signed in to change notification settings

asthanameghna/ML-InSAR-denoising

Repository files navigation

ML-InSAR-denoising

A demonstration of multiple Machine Learning methods to remove Tropospheric Signals from InSAR data. The work has been developed for the NASA SpaceApps Hackathon 2022 - InSAR Change Detectives! https://2022.spaceappschallenge.org/challenges/2022-challenges/insar-change-detectives/details

Fast NL Means Algorithm (OpenCV)

Non-local means is an algorithm in image processing for image denoising. Unlike "local mean" filters, which take the mean value of a group of pixels surrounding a target pixel to smooth the image, non-local means filtering takes a mean of all pixels in the image, weighted by how similar these pixels are to the target pixel. This results in much greater post-filtering clarity, and less loss of detail in the image compared with local mean algorithms.

The non-local means algorithm replaces the value of a pixel by an average of a selection of other pixels values: small patches centered on the other pixels are compared to the patch centered on the pixel of interest, and the average is performed only for pixels that have patches close to the current patch. As a result, this algorithm can restore well textures, that would be blurred by other denoising algorithm. When fast_mode is True a faster algorithm employing uniform spatial weighting on the patches is applied.

Results

Common arguments are:

  • h : parameter deciding filter strength. Higher h value removes noise better, but removes details of image also. (experimented with 10 & 11)
  • hForColorComponents : same as h, but for color images only. (normally same as h)
  • templateWindowSize : should be odd. (recommended 7)
  • searchWindowSize : should be odd. (recommended 21)

Screenshot 2022-10-02 at 20 13 38

Dictionary Learning (scikit-learn)

Dictionary learning is a sparse encoding schema. Where encoding schema is lossless from an analytical implementation perspective. And it is guaranteed global optimum encoding from a numerical implementation perspective because the analytical re-formulation is a convex optimization problem.

In our experiment, the dictionary is fitted on the distorted left half of the image, and subsequently used to reconstruct the right half. Note that even better performance could be achieved by fitting to an undistorted (i.e. noiseless) image, but here we start from the assumption that it is not available.

A common practice for evaluating the results of image denoising is by looking at the difference between the reconstruction and the original image. If the reconstruction is perfect this will look like Gaussian noise.

It can be seen from the plots that the results of Orthogonal Matching Pursuit (OMP) with two non-zero coefficients is a bit less biased than when keeping only one (the edges look less prominent). It is in addition closer from the ground truth in Frobenius norm.

The result of Least Angle Regression is much more strongly biased: the difference is reminiscent of the local intensity value of the original image.

Thresholding is clearly not useful for denoising, but it is here to show that it can produce a suggestive output with very high speed, and thus be useful for other tasks such as object classification, where performance is not necessarily related to visualisation.

Screenshot 2022-10-02 at 21 05 31 Screenshot 2022-10-02 at 21 05 50

Reference

About

A demonstration of multiple Machine Learning methods to remove Tropospheric Signals from InSAR data. The work has been developed for the NASA SpaceApps Hackathon 2022 - InSAR Change Detectives!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published