XPDNet-brain-af4
tags: - TensorFlow - MRI reconstruction - MRI datasets: - fastMRI
This model was used to achieve the 3rd highest submission in terms of PSNR on the fastMRI dataset (see https://fastmri.org/leaderboards/). It is a base model for acceleration factor 4. The model uses 25 iterations and a medium MWCNN, and a big sensitivity maps refiner.
Model description
For more details, see https://arxiv.org/abs/2010.07290. This section is WIP.
Intended uses and limitations
This model can be used to reconstruct brain data from Siemens scanner at acceleration factor 4. It was shown here, that it can generalize well, although further tests are required.
How to use
This model can be loaded using the following repo: https://github.com/zaccharieramzi/fastmri-reproducible-benchmark.
After cloning the repo, git clone https://github.com/zaccharieramzi/fastmri-reproducible-benchmark
, you can install the package via pip install fastmri-reproducible-benchmark
.
The framework is TensorFlow.
You can initialize and load the model weights as follows:
import tensorflow as tf
from fastmri_recon.models.subclassed_models.denoisers.proposed_params import get_model_specs
from fastmri_recon.models.subclassed_models.xpdnet import XPDNet
n_primal = 5
model_fun, model_kwargs, n_scales, res = [
(model_fun, kwargs, n_scales, res)
for m_name, m_size, model_fun, kwargs, _, n_scales, res in get_model_specs(n_primal=n_primal, force_res=False)
if m_name == 'MWCNN' and m_size == 'medium'
][0]
model_kwargs['use_bias'] = False
run_params = dict(
n_primal=n_primal,
multicoil=True,
n_scales=n_scales,
refine_smaps=True,
refine_big=True,
res=res,
output_shape_spec=True,
n_iter=25,
)
model = XPDNet(model_fun, model_kwargs, **run_params)
kspace_size = [1, 1, 320, 320]
inputs = [
tf.zeros(kspace_size + [1], dtype=tf.complex64), # kspace
tf.zeros(kspace_size, dtype=tf.complex64), # mask
tf.zeros(kspace_size, dtype=tf.complex64), # smaps
tf.constant([[320, 320]]), # shape
]
model(inputs)
model.load_weights('model_weights.h5')
Using the model is then as simple as:
model([
kspace, # shape: [n_slices, n_coils, n_rows, n_cols, 1]
mask, # shape: [n_slices, n_coils, n_rows, n_cols]
smaps, # shape: [n_slices, n_coils, n_rows, n_cols]
shape, # shape: [n_slices, 2]
])
Limitations and bias
The limitations and bias of this model have not been properly investigated.
Training data
This model was trained using the fastMRI dataset.
Training procedure
The training procedure is described in https://arxiv.org/abs/2010.07290. This section is WIP.
Evaluation results
On the fastMRI validation dataset, the same model with a smaller sensitivity maps refiner gives the following results for 30 validation volumes per contrast:
Contrast | T1 | T2 | FLAIR | T1-POST |
---|---|---|---|---|
PSNR | 41.56 | 40.68 | 39.60 | 42.53 |
SSIM | 0.9506 | 0.9554 | 0.9321 | 0.9683 |
Further results can be seen on the fastMRI leaderboards for the test and challenge dataset: https://fastmri.org/leaderboards/
Bibtex entry
@inproceedings{Ramzi2020d,
archivePrefix = {arXiv},
arxivId = {2010.07290},
author = {Ramzi, Zaccharie and Ciuciu, Philippe and Starck, Jean-Luc},
booktitle = {ISMRM},
eprint = {2010.07290},
pages = {1--4},
title = {{XPDNet for MRI Reconstruction: an application to the 2020 fastMRI challenge}},
url = {http://arxiv.org/abs/2010.07290},
year = {2021}
}