right evaluation metric for signal denoising

62 views Asked by At

I am trying to bunch of methods denoise 1-D signal . The example given below is using wavelet using scikit-image .

clean_signal = denoise_wavelet(noisy_signal, rescale_sigma=True, wavelet='sym3', wavelet_levels=3, method='BayesShrink', mode='soft')

Next I want to try different parameters and select best one using evaluation metric. As I see from scikit-image there many Hausdorff distance, normalized root mean-squared and mean structural similarity etc.

My objective to maximize "noise reduction" while maintaining structural similarity between clean and noisy signal. What is the right metric I should use ? Is it possible to combine multiple metrics to meet the objectives I have. I appreciate an example with python code.

Thanks in advance

1

There are 1 answers

0
Juan On

You probably want to look at skimage.restoration.calibrate_denoiser, which uses a method conceptually similar to cross-validation to estimate the best parameters for a denoising function.

You can find a full tutorial for this in the scikit-image documentation, but here's the gist:

What is noise? For a certain (and most common) class of noise, it is the part of each pixel that is completely uncorrelated with other pixels. So, you can figure out the optimal parameters of a denoiser by masking each pixel and figuring out how well you can predict it from its neighborhood. The prediction gives you the denoised value, and what you can't predict (the remainder) is the noise.

This method is based on the paper:

Batson, J. & Royer, L.. (2019). Noise2Self: Blind Denoising by Self-Supervision. Proceedings of the 36th International Conference on Machine Learning, in Proceedings of Machine Learning Research 97:524-533

Also available from arXiv.