Introduction#

Reconstruction algorithms define an inversion function \(\hat{x}=\inversef{y}{A}\) which attempts to recover a signal \(x\) from measurements \(y\), (possibly) given an operator \(A\). All reconstruction algorithms in the library inherit from the deepinv.models.Reconstructor base class.

Below we provide a summary of existing reconstruction methods, and a qualitative description of their reconstruction performance and speed.

Tip

Some methods do not require any training and can be quickly deployed in your problem.

Tip

If you need to train your model and don’t have ground truth data, the library provides a large set of self-supervised losses which can learn from measurement data alone.

Table 4 Reconstruction methods#

Family of methods

Description

Requires Training

Iterative

Sampling

Artifact Removal

Applies a neural network to a non-learned pseudo-inverse

Yes

No

No

Plug-and-Play (PnP)

Leverages pretrained denoisers as priors within an optimisation algorithm.

No

Yes

No

Unfolded Networks

Constructs a trainable architecture by unrolling a PnP algorithm.

Yes

Only DEQ

No

Diffusion

Leverages pretrained denoisers within a ODE/SDE.

No

Yes

Yes

Non-learned priors

Solves an optimization problem with hand-crafted priors.

No

Yes

No

Markov Chain Monte Carlo

Leverages pretrained denoisers as priors within an optimisation algorithm.

No

Yes

Yes

Unconditional GANs, deep image prior

Uses a generator network to model the set of possible images.

No

Yes

Depends

Note

Some algorithms might be better at reconstructing images with good perceptual quality (e.g. diffusion methods) whereas other methods are better at reconstructing images with low distortion (close to the ground truth).