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 intrain()
after callinginit_transform()
, but before callinginit_optimizer()
andinit_scheduler()
.
-
property
batch_size
¶
-
property
epochs
¶
-
property
fully_learned
¶
-
property
lr
¶
-
property
normalize_by_opnorm
¶
-
property
scales
¶
-
property
skip_channels
¶
-
property
use_sigmoid
¶