LION.models.learned_fbp.FusionFBP

Classes

DenoisingBlock()

The image denoiser of FusionFBP, adapted from DBP: a convolution and ReLU, fifteen convolution, batch normalisation and ReLU layers, and a last convolution, on one image.

FusionFBPNetwork(operator_params[, ...])

FusionFBP: DeepFBP's learnable filter, interpolation network and backprojection, followed by DBP's deep CNN as the denoiser.

IntermediateResidualBlock(channels)

A residual block of the interpolation network: a depthwise 1D convolution along the detector, batch normalisation and PReLU, each projection on its own (as in DeepFBP).

LearnableFilter(init_filter[, per_angle, ...])

A learnable filter of the projections, applied in the frequency domain (it replaces FBP's ramp filter): init_filter (its initial frequency response), one shared by every angle, or one per angle (per_angle, with num_angles).


class LION.models.learned_fbp.FusionFBP.DenoisingBlock[source]

Bases: Module

The image denoiser of FusionFBP, adapted from DBP: a convolution and ReLU, fifteen convolution, batch normalisation and ReLU layers, and a last convolution, on one image.

Initialize internal Module state, shared by both nn.Module and ScriptModule.

initial_layer(in_channels, out_channels, kernel_size, stride, padding)[source]

The first layer: a convolution and ReLU.

conv_block(in_channels, out_channels, kernel_size, stride, padding)[source]

An intermediate layer: a convolution, batch normalisation and ReLU.

final_layer(in_channels, out_channels, kernel_size, stride, padding)[source]

The last layer: a convolution, no activation.

forward(x)[source]

The denoised images x (B, 1, H, W).

class LION.models.learned_fbp.FusionFBP.FusionFBPNetwork(operator_params, model_parameters=None)[source]

Bases: LIONmodel

FusionFBP: DeepFBP’s learnable filter, interpolation network and backprojection, followed by DBP’s deep CNN as the denoiser. CT only. Takes the measurements (B, 1, angles, detectors).

model_parameters (default_parameters()):

  • filter_type: “Filter I” (one filter for every angle) or anything else (one filter per angle);

  • fft_padding_twice_detectors: the projections zero-padded to at least twice the detectors before filtering (True);

  • normalizer: divide the backprojection by the backprojection of ones (True).

Initialize internal Module state, shared by both nn.Module and ScriptModule.

compute_projection_size_padded()[source]

The FFT length of the filter: the next power of two of at least twice the number of detectors, so filtering isn’t circular (fft_padding_twice_detectors; False: of the number of detectors, as older versions did).

ram_lak_filter(size)[source]

The Ram-Lak (ramp) filter of FFT length size, in the frequency domain: the learnable filter’s initial value.

static default_parameters()[source]

One shared filter, padded FFT, normalised backprojection (see the class).

forward(x)[source]

The reconstructions (B, 1, H, W) of the sinograms x (B, 1, angles, detectors): filter, interpolation, backprojection, denoising.

static cite(cite_format='bib')[source]

Where FusionFBP comes from: the MPhil thesis that proposed it (Sainz Bear), BibTeX (“bib”) or “MLA”.

class LION.models.learned_fbp.FusionFBP.IntermediateResidualBlock(channels)[source]

Bases: Module

A residual block of the interpolation network: a depthwise 1D convolution along the detector, batch normalisation and PReLU, each projection on its own (as in DeepFBP).

Initialize internal Module state, shared by both nn.Module and ScriptModule.

forward(x)[source]

x plus the block of it.

class LION.models.learned_fbp.FusionFBP.LearnableFilter(init_filter, per_angle=False, num_angles=None)[source]

Bases: Module

A learnable filter of the projections, applied in the frequency domain (it replaces FBP’s ramp filter): init_filter (its initial frequency response), one shared by every angle, or one per angle (per_angle, with num_angles).

Initialize internal Module state, shared by both nn.Module and ScriptModule.

forward(x)[source]

The projections x (B, angles, detectors) filtered, each along the detector.