LION.models.learned_fbp.DeepFBP¶
Classes
|
DeepFBP (Tan et al., 2024): FBP with learned parts. |
|
A 2D residual block of the denoiser: two 3x3 convolutions with a ReLU between them, added to the input. |
|
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.DeepFBP.DeepFBPNetwork(operator_params, model_parameters=None)[source]¶
Bases:
LIONmodelDeepFBP (Tan et al., 2024): FBP with learned parts. A learnable filter (initially Ram-Lak), an interpolation network (1D convolutions along the detector, each projection on its own), a differentiable backprojection (normalised by the backprojection of ones), and a residual CNN denoiser with a ReLU output. 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.DeepFBP.DenoisingResidualBlock(channels)[source]¶
Bases:
ModuleA 2D residual block of the denoiser: two 3x3 convolutions with a ReLU between them, added to the input.
Initialize internal Module state, shared by both nn.Module and ScriptModule.
- class LION.models.learned_fbp.DeepFBP.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.DeepFBP.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.