ArtifactRemoval#

class deepinv.models.ArtifactRemoval(backbone_net: Denoiser, mode='adjoint', pinv=False, ckpt_path=None, device=None)[source]#

Bases: Reconstructor

Artifact removal architecture.

Transforms a denoiser \(\phi\) into a reconstruction network \(R\) by doing

  • Adjoint: \(\inversef{y}{A}=\phi(A^{\top}y)\) with mode='adjoint'.

  • Pseudoinverse: \(\inversef{y}{A}=\phi(A^{\dagger}y)\) with mode='pinv'.

  • Direct: \(\inversef{y}{A}=\phi(y)\) with mode='direct'.

Note

In the case of mode='pinv', the architecture is inspired by the FBPConvNet approach of https://arxiv.org/pdf/1611.03679 where a deep network \(\phi\) is used to improve the filtered back projection \(A^{\dagger}y\).

Deprecated since version 0.2.2: The pinv parameter is deprecated and might be removed in future versions. Use mode instead.

Parameters:
  • backbone_net (deepinv.models.Denoiser, torch.nn.Module) – Base denoiser network \(\phi\) (see Denoisers for available architectures).

  • mode (str) – Reconstruction mode. Options are ‘direct’, ‘adjoint’ or ‘pinv’.

  • pinv (bool) – (deprecated) if True uses pseudo-inverse \(A^{\dagger}y\) instead of the default transpose.

  • device (torch.device) – cpu or gpu.

forward(y, physics, **kwargs)[source]#

Reconstructs a signal estimate from measurements y

Parameters:

Examples using ArtifactRemoval:#

Training a reconstruction network.

Training a reconstruction network.

Self-supervised learning with measurement splitting

Self-supervised learning with measurement splitting

Self-supervised denoising with the UNSURE loss.

Self-supervised denoising with the UNSURE loss.

Self-supervised denoising with the SURE loss.

Self-supervised denoising with the SURE loss.

Self-supervised denoising with the Neighbor2Neighbor loss.

Self-supervised denoising with the Neighbor2Neighbor loss.

Self-supervised learning from incomplete measurements of multiple operators.

Self-supervised learning from incomplete measurements of multiple operators.