mri.optimizers.primal_dual#

This module defines primal dual optimizers.

condatvu(gradient_op, linear_op, dual_regularizer, cost_op, kspace_generator=None, estimate_call_period=None, max_nb_of_iter=150, tau=None, sigma=None, relaxation_factor=1.0, x_init=None, std_est=None, std_est_method=None, std_thr=2.0, nb_of_reweights=1, metric_call_period=5, metrics={}, verbose=0)[source]#

Condat-Vu sparse reconstruction with reweightings.

Parameters
  • gradient_op (instance of class GradBase) – the gradient operator.

  • linear_op (instance of LinearBase) – the linear operator: seek the sparsity, ie. a wavelet transform.

  • dual_regularizer (instance of ProximityParent) – the dual regularization operator

  • cost_op (instance of costObj) – the cost function used to check for convergence during the optimization.

  • kspace_generator (instance of class BaseKspaceGenerator, default None) – If not None, run the algorithm in an online way, where the data is updated between iterations.

  • estimate_call_period (int, default None) – In an online configuration (kspace_generator is defined), retrieve partial results at this interval.

  • max_nb_of_iter (int, default 150) – the maximum number of iterations in the Condat-Vu proximal-dual splitting algorithm.

  • tau (float, default None) – parameters of the Condat-Vu proximal-dual splitting algorithm. If None estimates these parameters.

  • sigma (float, default None) – parameters of the Condat-Vu proximal-dual splitting algorithm. If None estimates these parameters.

  • relaxation_factor (float, default 0.5) – parameter of the Condat-Vu proximal-dual splitting algorithm. If 1, no relaxation.

  • x_init (numpy.ndarray (optional, default None)) – the initial guess of image

  • std_est (float, default None) – the noise std estimate. If None use the MAD as a consistent estimator for the std.

  • std_est_method (str, default None) – if the standard deviation is not set, estimate this parameter using the mad routine in the image (‘primal’) or in the sparse wavelet decomposition (‘dual’) domain.

  • std_thr (float, default 2.) – use this treshold expressed as a number of sigma in the residual proximity operator during the thresholding.

  • relaxation_factor – parameter of the Condat-Vu proximal-dual splitting algorithm. If 1, no relaxation.

  • nb_of_reweights (int, default 1) – the number of reweightings.

  • metric_call_period (int (default 5)) – the period on which the metrics are compute.

  • metrics (dict (optional, default None)) – the list of desired convergence metrics: {‘metric_name’: [@metric, metric_parameter]}. See modopt for the metrics API.

  • verbose (int, default 0) – the verbosity level.

Returns

  • x_final (numpy.ndarray) – the estimated CONDAT-VU solution.

  • costs (list of float) – the cost function values.

  • metrics (dict) – the requested metrics values during the optimization.

  • y_final (numpy.ndarray) – the estimated dual CONDAT-VU solution