Joint frequency- and image- space learning for Fourier imaging tasks.
keywords: image reconstruction, motion correction, denoising, magnetic resonance imaging, deep learning
All dependencies required to run this code are specified in environment.yml
. To create an anaconda environment with those dependencies installed, run conda env create --name <env> --file environment.yml
. You will also need to add this repo to your python path (if you're using conda, conda-develop /path/to/interlacer/
).
If you'd like to incorporate our joint learning strategy into your own networks, we provide a standalone Keras Layer in interlacer/layers.py
. This layer currently supports only 2D inputs.
Unfortunately, we are unable to provide the images used for training, due to license restrictions. However, we provide code to train on alternative datasets. To specify your own dataset paths and paths for output of training results, fill in the appropriate fields in scripts/filepaths.py
.
The entry to our training code is in scripts/train.py
, which is called via python scripts/train.py $path_to_config.ini
. Running this script:
- reads the experiment configuration specified
- loads the appropriate model architecture
- loads the training data
- executes training
- writes all training logs to a subdirectory created under
training/
.
We provide a helper script to generate config files for experiments comparing multiple models in scripts/make_configs.py
. This script allows the user to specify the name of an experiment as well as lists of model/data parameters to be tried (e.g. a list of model architectures). Running scripts/make_configs.py
creates the subdirectory configs/$experiment_name
, which contains a single configuration file for each specified model/data combination.
For SLURM users, running python scripts/run_experiment.py ../configs/$experiment_name$
starts training (by running train.py
) for each configuration file within the directory.
Pretrained models are available in the pretrained models
directory. This directory also includes a jupyter notebook which shows how to load and run inference using the models.
If you use the ideas or implementation in this repository, please cite our paper:
@article{melba:2022:018:singh,
title = "Joint Frequency and Image Space Learning for MRI Reconstruction and Analysis",
authors = "Singh, Nalini M. and Iglesias, Juan Eugenio and Adalsteinsson, Elfar and Dalca, Adrian V. and Golland, Polina",
journal = "Machine Learning for Biomedical Imaging",
volume = "1",
issue = "June 2022 issue",
year = "2022"
}