EPLLDenoiser
- class deepinv.models.EPLLDenoiser(GMM=None, n_components=200, pretrained='download', patch_size=6, channels=1, device='cpu')[source]
Bases:
Module
Expected Patch Log Likelihood denoising method.
Denoising method based on the minimization problem
\[\underset{x}{\arg\min} \, \|y-x\|^2 - \sum_i \log p(P_ix)\]where the first term is a standard L2 data-fidelity, and the second term represents a patch prior via Gaussian mixture models, where \(P_i\) is a patch operator that extracts the ith (overlapping) patch from the image.
- Parameters:
GMM (None, deepinv.optim.utils.GaussianMixtureModel) – Gaussian mixture defining the distribution on the patch space.
None
creates a GMM with n_components components of dimension accordingly to the arguments patch_size and channels.n_components (int) – number of components of the generated GMM if GMM is
None
.pretrained (str, None) – Path to pretrained weights of the GMM with file ending
.pt
. None for no pretrained weights,"download"
for pretrained weights on the BSDS500 dataset,"GMM_lodopab_small"
for the weights from the limited-angle CT example. See pretrained-weights for more details.patch_size (int) – patch size.
channels (int) – number of color channels (e.g. 1 for gray-valued images and 3 for RGB images)
device (str) – defines device (
cpu
orcuda
)
- forward(x, sigma, betas=None, batch_size=-1)[source]
Denoising method based on the minimization problem.
- Parameters:
y (torch.Tensor) – noisy image. Shape: batch size x …
physics (deepinv.physics.LinearPhysics) – Forward linear operator.
betas (list[float]) – parameters from the half-quadratic splitting.
None
uses the standard choice[1,4,8,16,32]/sigma_sq
batch_size (int) – batching the patch estimations for large images. No effect on the output, but a small value reduces the memory consumption and might increase the computation time.
-1
for considering all patches at once.