dival.reconstructors.iradonmap_reconstructor module

class dival.reconstructors.iradonmap_reconstructor.IRadonMapReconstructor(ray_trafo, coord_mat=None, **kwargs)[source]

Bases: dival.reconstructors.standard_learned_reconstructor.StandardLearnedReconstructor

CT reconstructor that learns a fully connected layer for filtering along the axis of the detector pixels s, followed by the backprojection (segment 1). After that, a residual CNN acts as a post-processing net (segment 2). We use the U-Net from the FBPUnet model.

In the original paper 1, a learned version of the back- projection layer (sinusoidal layer) is used. This layer introduces a lot more parameters. Therefore, we added an option to directly use the operator in our implementation. Additionally, we drop the tanh activation after the first fully connected layer, due to bad performance.

In any configuration, the iRadonMap has less parameters than an Automap network 2.

References

1

J. He and J. Ma, 2020, “Radon Inversion via Deep Learning”. IEEE Transactions on Medical Imaging, vol. 39, no. 6, pp. 2076-2087 doi:10.1109/TMI.2020.2964266

2

B. Zhu, J. Z. Liu, S. F. Cauly et al., 2018, “Image Reconstruction by Domain-Transform Manifold Learning”. Nature 555, 487–492. doi:10.1038/nature25988

HYPER_PARAMS = {'batch_size': {'default': 64, 'retrain': True}, 'epochs': {'default': 20, 'retrain': True}, 'fully_learned': {'default': False, 'retrain': True}, 'lr': {'default': 0.01, 'retrain': True}, 'normalize_by_opnorm': {'default': False, 'retrain': True}, 'scales': {'default': 5, 'retrain': True}, 'skip_channels': {'default': 4, 'retrain': True}, 'use_sigmoid': {'default': False, 'retrain': True}}
__init__(ray_trafo, coord_mat=None, **kwargs)[source]
Parameters
  • ray_trafo (odl.tomo.RayTransform) – Ray transform (the forward operator).

  • coord_mat (array, optional) – Precomputed coordinate matrix for the LearnedBackprojection. This option is provided for performance optimization. If None is passed, the matrix is computed in init_model().

  • keyword arguments are passed to super()__init__() (Further) –

init_model()[source]

Initialize model. Called in train() after calling init_transform(), but before calling init_optimizer() and init_scheduler().

property batch_size
property epochs
property fully_learned
property lr
property normalize_by_opnorm
property scales
property skip_channels
property use_sigmoid