vSHARP: variable Splitting Half-quadratic ADMM algorithm for Reconstruction of inverse-Problems#
This folder contains the training code specific for reproduction of our experiments as presented in our paper vSHARP: variable Splitting Half-quadratic ADMM algorithm for Reconstruction of inverse-Problems (pre-print).
Figure 1: Overview of our proposed method vSHARP.#
Dataset#
For the proposed model, the comparison, and ablation studies we used the fastMRI prostate T2 dataset.
To constract the training, validation and test data we used code provided in cai2r/fastMRI_prostate from the raw ismrmd data format.
We employed a retrospective Cartesian equispaced scheme to undersample our data.
Training#
Assuming data are stored in data_root the standard training command direct train can be used for training.
Our model and baselines configuration files can be found in the vSHARP project folder.
To train vSHARP or the any of the baselines presented in the paper use the following command:
direct train <output_folder> \
--training-root /.../data_root/<training_data_directory> \
--validation-root /.../data_root/<validation_data_directory> \
--cfg projects/vSHARP/fastmri_prostate/base_<name_of_model>.yaml \
--num-gpus <number_of_gpus> \
--num-workers <number_of_workers> \
For further information about training see Training.
During training, training loss, validation metrics and validation image predictions are logged. Additionally, Tensorboard allows for visualization of the above.
Inference#
To perform inference on test set run:
direct predict <output_directory> \
--checkpoint <path_or_url_to_checkpoint> \
--cfg projects/vSHARP/fastmri_prostate/base_<name_of_model>.yaml \
--data-root /.../data_root/<validation_data_directory> \
--num-gpus <number_of_gpus> \
--num-workers <number_of_workers> \
[--other-flags]
Note that the above command will produce reconstructions for 4x accelerated data. To change the acceleration faction make sure to adapt the inference field in the respective yaml file. For instance:
inference:
crop: header
batch_size: 5
dataset:
name: FastMRI
transforms:
use_seed: True
masking:
name: FastMRIEquispaced
accelerations: [8]
center_fractions: [0.04]
cropping:
crop: null
sensitivity_map_estimation:
estimate_sensitivity_maps: true
normalization:
scaling_key: masked_kspace
scale_percentile: 0.995
text_description: inference-8x # Description for logging
can be used for an acceleration factor of 8.
Citing this work#
Please use the following BiBTeX entries if you use vSHARP in your work:
@article{yiasemis2023vsharp,
title = {vSHARP: variable Splitting Half-quadratic ADMM algorithm for Reconstruction of inverse-Problems},
author = {George Yiasemis and Nikita Moriakov and Jan-Jakob Sonke and Jonas Teuwen},
month = {Sep},
year = {2023},
eprint = {2309.09954},
archivePrefix = {arXiv},
journal = {arXiv.org},
doi = {10.48550/arXiv.2309.09954},
url = {https://doi.org/10.48550/arXiv.2309.09954},
note = {arXiv:2309.09954 [eess.IV]},
primaryClass = {eess.IV}
}
@article{DIRECTTOOLKIT,
doi = {10.21105/joss.04278},
url = {https://doi.org/10.21105/joss.04278},
year = {2022},
publisher = {The Open Journal},
volume = {7},
number = {73},
pages = {4278},
author = {George Yiasemis and Nikita Moriakov and Dimitrios Karkalousos and Matthan Caan and Jonas Teuwen},
title = {DIRECT: Deep Image REConstruction Toolkit},
journal = {Journal of Open Source Software}
}