LION.models.learned_fbp.FusionFBP¶
Classes
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. |
|
|
FusionFBP: DeepFBP's learnable filter, interpolation network and backprojection, followed by DBP's deep CNN as the denoiser. |
|
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). |
|
A learnable filter of the projections, applied in the frequency domain (it replaces FBP's ramp filter): |
- class LION.models.learned_fbp.FusionFBP.DenoisingBlock[source]¶
Bases:
ModuleThe 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.
- class LION.models.learned_fbp.FusionFBP.FusionFBPNetwork(operator_params, model_parameters=None)[source]¶
Bases:
LIONmodelFusionFBP: 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).
- class LION.models.learned_fbp.FusionFBP.IntermediateResidualBlock(channels)[source]¶
Bases:
ModuleA 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.
- class LION.models.learned_fbp.FusionFBP.LearnableFilter(init_filter, per_angle=False, num_angles=None)[source]¶
Bases:
ModuleA 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, withnum_angles).Initialize internal Module state, shared by both nn.Module and ScriptModule.