Skip to content

MRI: Accelerated imaing with spatial prior

Fa-Hsuan Lin edited this page Aug 20, 2023 · 11 revisions

Here are routines to reconstruct MR images using an iterative solver. The purpose is to reconstruct images based on data encoded by either spatially linear or nonlinear gradient fields, including PatLoc or O-space imaging.

Definitions

Note: Please refer to the page for the range for k-space coordinates and the strength of spatial encoding magnetic fields (gradients).

Data:

MRI reconstruction: accelerated imaging with a spatial prior

This example reconstructs an image using an eight-channel coil array with the 2x2-fold acceleration and relatively low SNR (10). Without any other prior knowledge, the reconstructed image can be noisy. However, if a correct spatial prior is provided, the reconstructed image can have a higher quality.

We first specified the acceleration rate and SNR for this simulation.

R={
    [2 2],
    };

...

SNR=[10]; %amplitude SNR

regularization parameter choice

When incorporating a spatial prior, a regularization constant is needed to trade-off between the discrepancy between measured and modeled data and the 'prior cost'. Estimating a good regularization constant is not an easy job. Typically it involves trials and errors. However, it has been suggested that the largest singular value of the system matrix that relates between the measurements and the unknown image to be solved can be a good hint. Here we use the power iteration approach to estimate the largest singular value.

            [lambda_est,lambda_est_history]=itdr6_core_ktraj_itr('n_freq',matrix{m_idx}(2),'n_phase',matrix{m_idx}(1),'Y',ACC_enc,'S',b1,'flag_display',1,'X0',x0,'K_general',K_general,'G_general',G_general,'iteration_max',20,'epsilon',1e-80);

Three regularization parameters in the following was arbitrarily set to the 1/100, 1/10, and a copy of this lambda_est to represent light, intermediate, and heavy regularization, respectively. A larger regularization parameter bias the reconstruction toward the given spatial prior, while a smaller regularization parameter reduce the influence of the spatial prior over the reconstruction.

spatial prior choice

To bias the reconstruction toward a specified prior, we need to set this prior explicitly. Here, we provided a spatial prior x0, the true answer that generated the simulated measurements, to see how this information "guide" the reconstruction. For comparison, we also reconstructed an image without any prior information.

            [recon_opt_reg_x0,recon_history_opt_reg_x0,error_opt_reg_x0]=itdr6_core_ktraj_cg('n_freq',matrix{m_idx}(2),'n_phase',matrix{m_idx}(1),'Y',ACC_enc,'S',b1,'flag_display',1,'X0',x0,'lambda',lambda_est./10,'K_general',K_general,'G_general',G_general,'iteration_max',20,'epsilon',1e-80);

The reconstruction recon_opt_reg_x0 is regularized (with intermediate regularization) to the provided spatial prior x0.

Just now we provided the exact solution as the spatial prior. However, this situation never happens in the real world, because we do not have the true answer to the unknown. A common spatial prior in practice is an image of 'zeros' (a null image).

         [recon_opt_reg_0,recon_history_opt_reg_0,error_opt_reg_0]=itdr6_core_ktraj_cg('n_freq',matrix{m_idx}(2),'n_phase',matrix{m_idx}(1),'Y',ACC_enc,'S',b1,'flag_display',1,'X0',zeros(size(x0)),'lambda',lambda_est./10,'K_general',K_general,'G_general',G_general,'iteration_max',20,'epsilon',1e-80);

Here are images with priors of the exact answer x0 (top row) and a zero image (bottom row) using a small (1/100 of the first singular value), medium (1/10 of the first singular value), and large (the first singular value) regularization parameter.

spatial prior in different representations

The spatial prior can be represented in other domains. Two common choices are measuring the sparsity of the reconstructed image in the wavelet domain or the smoothness of the reconstructed image. These options were based on the belief that the image can be sparsely represented in a specific way or the image itself is spatially smooth.

         [recon_opt_reg_wavelet_0,recon_history_opt_reg_wavelet_0,error_opt_reg_wavelet_0]=itdr6_core_ktraj_cg('n_freq',matrix{m_idx}(2),'n_phase',matrix{m_idx}(1),'Y',ACC_enc,'S',b1,'flag_display',1,'X0',zeros(size(x0)),'lambda',lambda_est./10,'K_general',K_general,'G_general',G_general,'iteration_max',20,'epsilon',1e-80,'sparse_tx','cs');
         [recon_opt_reg_del2_0,recon_history_opt_reg_del2_0,error_opt_reg_del2_0]=itdr6_core_ktraj_cg('n_freq',matrix{m_idx}(2),'n_phase',matrix{m_idx}(1),'Y',ACC_enc,'S',b1,'flag_display',1,'X0',zeros(size(x0)),'lambda',lambda_est./10,'K_general',K_general,'G_general',G_general,'iteration_max',20,'epsilon',1e-80,'sparse_tx','del2');

Images at left, middle, and right are reconstructions with priors using an identity matrix, wavelet transform, and a discrete Laplacian operator over the reconstructed image, respectively.

NOTE Providing a prior deviating from the true solution causes biases. It is essential to choose your prior and the regularization parameter (&lambda) wisely.

Clone this wiki locally