LION.models.learned_fbp.DeepFusionBP¶
Classes
|
DBP's deep CNN: a convolution and ReLU, fifteen convolution, batch normalisation and ReLU layers, and a last convolution, from the |
|
DeepFusionBP: DeepFBP's learnable filter and interpolation network, then a backprojection of each angle on its own, and DBP's deep CNN fusing them into one image (for sparse-view CT). |
|
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): |
|
The backprojection of each projection on its own: one differentiable backprojector per angle, made from the geometry with that angle (so they add up to the full backprojection). |
- class LION.models.learned_fbp.DeepFusionBP.DBP_block(channels)[source]¶
Bases:
ModuleDBP’s deep CNN: a convolution and ReLU, fifteen convolution, batch normalisation and ReLU layers, and a last convolution, from the
channelssingle-angle backprojections to 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.DeepFusionBP.DeepFusionBPNetwork(operator_params, model_parameters=None)[source]¶
Bases:
LIONmodelDeepFusionBP: DeepFBP’s learnable filter and interpolation network, then a backprojection of each angle on its own, and DBP’s deep CNN fusing them into one image (for sparse-view CT). 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).
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.
- class LION.models.learned_fbp.DeepFusionBP.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.DeepFusionBP.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.
- class LION.models.learned_fbp.DeepFusionBP.single_back_projections(operator_params)[source]¶
Bases:
ModuleThe backprojection of each projection on its own: one differentiable backprojector per angle, made from the geometry with that angle (so they add up to the full backprojection).
Initialize internal Module state, shared by both nn.Module and ScriptModule.