Topic: Denoising via NL-Means now available in COSI-Corr

Dear all,

This message to publicize an optimized implementation of the NL-Means denoising algorithm in the last version of COSI-Corr. If you are interested in learning more about this powerful denoising technique, here are the main papers we used for our implementation:

1- A. Buades, B. Coll, and J.M. Morel, "Nonlocal Image and Movie Denoising"  International Journal of Computer Vision, Vol 76(2), pp: 123-139, 2008.

2- A. Buades, B. Coll, and J.M. Morel, "The staircasing effect in neighborhood filters and its solution" , IEEE transactions on Image Processing, Vol 15(6), pp: 1499-1505, 2006.

3- B. Goossens, H. Luong, A. Pizurica, and W. Philips, "An Improved Non-Local Denoising Algorithm" , in Proceedings of the 2008 International Workshop on Local and Non-Local Approximation in Image Processing (LNLA 2008), Lausanne, Switzerland.

Our algorithm uses SIMD instructions to allow fast multicore parallel execution. Most type of images can be denoised:

- Images can contain NaN (missing) values
- Image data type can be byte, integer, float, or double precision
- Images can contain several bands, i.e., standard RGB images from your digital camera, microscope, telescope, etc.. or they can simply be correlation images with displacement fields in EW and NS direction
- You can use the SNR to further weight the algorithm, if available
- Images can be georeferenced (or not)
- You can queue several processes
- You can apply a spatial subset on the image to filter to only denoise a particular area of the image (to be done when opening the bands)

Adjusting the filtering parameters can be a little tricky if you're not familiar with the algorithm. Using the default parameters, choosing the H value to be around 1.6*stdev(noise) is a good approximation. Note that you can apply the filter only on a small subset of your data, for speeding up the trial and error phase when adjusting parameters. Additional details can be found in the COSI-Corr manual:
http://www.tectonics.caltech.edu/slip_h … _guide.pdf

As you see, this filter is quite general (but only available for windows computers so far). For the particular application of measuring ground displacements, we have found that it is better to denoise the correlation images rather than denoising the satellite images themselves (the noise is indeed Gaussian on the correlation images). In particular, this method is useful if you are interested in deriving strain maps from the correlation images. It is usually a good idea to complement the NL-Means filter with an outlier detection algorithm. We will provide this feature in futures releases of COSI-Corr.

Let us know of your tests and experiments!


PS: if you happen to be on this page without knowing what COSI-Corr is, you can download it here:
http://www.tectonics.caltech.edu/slip_h … tware.html

2 (edited by prateek20111989 2012-10-16 16:28:48)

Re: Denoising via NL-Means now available in COSI-Corr


I have 1 question after correlation should we discard the SNR values less than 0.9 and then apply NLM filtering or only the filtering is enough ? I tried both but when I applied filtering after correlation, the displacement vector field field came out pretty well but after discarding SNR values the density of the displacement vectors became more .


Re: Denoising via NL-Means now available in COSI-Corr

Either way is fine. Often times, I first discard low SNR values, then apply the NLM filter without incorporating the SNR band. This way may be a bit more conservative, but all results should b close. In practice, use what's best for your application.



Re: Denoising via NL-Means now available in COSI-Corr

Hi.  I get the following error message when I try to filter a displacement map with NLM:


I run COSI-Corr on ENVI 5.0 classic on Windows 7.  I use the default parameters of the filter, only thing I set is the "H" parameter.  I have a 3-band displacement map (EW, NS, Up/Down) which I have calculated using ICP.  This 3-band raster is double precision and georeferenced.  I have tried this file in TIFF format or ENVI's format, have tried filtering only 2 bands and all the 3 bands, and I even made a mask layer and used that as the SNR band.  Still get the same error.

Could you help please?


Re: Denoising via NL-Means now available in COSI-Corr

Never mind, solved the problem.  Since I was computing my displacement map with MATLAB, the file type was "double precision" and it looks like the NLMeans filter implementation in COSI-Corr does not accept that format.  I used band math to convert my displacement map to "float" type.  Then NLMeans filter runs with no problem.