Design suggestion for IterativeSENSE reconstruction algorithm
class iterativeSENSE(Reconstruction):
acquisition_model: LinearOperator
initial_value: None | IData
n_max_iterations: int
dcf: DcfOperator | None
Design suggestion for IterativeSENSEWithTikonov reconstruction algorithm
class iterativeSENSEWithTikonov(Reconstruction):
acquisition_model: LinearOperator
initial_value: None | IData
n_max_iterations: int
dcf: DcfOperator | None
regularisation_image: None | IData
regularisation_weight: float
If regularisation_weight == 0 or regularisation_image is None this defaults to iterativeSENSE
Open questions:
Should we have an additional l2_regularised_least_squares optimizer which solves the more general problem ||Ax - y||_2^2 + lambda||Tx - xreg||_2^2 or are we happy to use cg directly
In order to be able to write A^H A + lambda as an operator do we need an additional unity operator or can this already be achieved with our current operator classes
Would it make sense to have an (Linear)AcquisitionModel Operator which includes the functionality of "from_kdata", "recalculate_csm", "recalculate_fourier_op"... which is currently in DirectReconstruction. DirectReconstruction could then also get acquisition_model as input.
supersedes #6
Design suggestion for IterativeSENSE reconstruction algorithm
Design suggestion for IterativeSENSEWithTikonov reconstruction algorithm
If regularisation_weight == 0 or regularisation_image is None this defaults to
iterativeSENSE
Open questions:
||Ax - y||_2^2 + lambda||Tx - xreg||_2^2
or are we happy to use cg directlyA^H A + lambda
as an operator do we need an additional unity operator or can this already be achieved with our current operator classesDirectReconstruction
.DirectReconstruction
could then also getacquisition_model
as input.