deepmr.prox.WaveletDictDenoiser#

class deepmr.prox.WaveletDictDenoiser(*args: Any, **kwargs: Any)[source]#

Overcomplete Wavelet denoising with the \(\ell_1\) norm.

This denoiser is defined as the solution to the optimization problem:

\[\underset{x}{\arg\min} \; \|x-y\|^2 + \lambda \|\Psi x\|_n\]

where \(\Psi\) is an overcomplete wavelet transform, composed of 2 or more wavelets, i.e., \(\Psi=[\Psi_1,\Psi_2,\dots,\Psi_L]\), \(\lambda>0\) is a hyperparameter, and where \(\|\cdot\|_n\) is either the \(\ell_1\) norm (non_linearity="soft"), the \(\ell_0\) norm (non_linearity="hard") or a variant of the \(\ell_0\) norm (non_linearity="topk") where only the top-k coefficients are kept; see deepinv.models.WaveletDenoiser() for more details.

The solution is not available in closed-form, thus the denoiser runs an optimization algorithm for each test image.

ndim#

Number of spatial dimensions, can be either 2 or 3.

Type:

int

ths#

Denoise threshold. The default is 0.1.

Type:

float, optional

trainable#

If True, threshold value is trainable, otherwise it is not. The default is False.

Type:

bool, optional

wv#

List of mother wavelets. The names of the wavelets can be found in here. The default is ["db8", "db4"].

Type:

Iterable[str], optional

device#

Device on which the wavelet transform is computed. The default is None (infer from input).

Type:

str, optional

non_linearity#

"soft", "hard" or "topk" thresholding. The default is "soft".

Type:

str, optional

level#

Level of the wavelet transform. The default is None.

Type:

int, optional

max_iter#

Number of iterations of the optimization algorithm. The default is 10.

Type:

int, optional

__init__(ndim, ths=0.1, trainable=False, wv=None, device=None, non_linearity='soft', level=None, max_iter=10, *args, **kwargs)[source]#

Methods

__init__(ndim[, ths, trainable, wv, device, ...])

forward(input)