This repository holds the code for RefineGAN,
Overview of the proposed method: it aims to reconstruct the images which are satisfied the constraint of under-sampled measurement data; and whether those look similar to the fully aliasing-free results. Additionally, if the fully sampled images taken from the database go through the same process of under-sampling acceleration; we can still receive the reconstruction as expected to the original images.
Two learning processes are trained adversarially to achieve better reconstruction from generator G and to fool the ability of recognizing the real or fake MR image from discriminator D
The cyclic data consistency loss, which is a combination of under-sampled frequency loss and the fully reconstructed image loss.
Generator G, built by basic building blocks, can reconstruct inverse amplitude of the residual component causes by reconstruction from under-sampled k-space data. The final result is obtained by adding the zero-filling reconstruction to the output of G
It is developed for research purposes only and not for commercialization. If you use it, please refer to our work.
@ARTICLE{8327637,
author={T. M. Quan and T. Nguyen-Duc and W. Jeong},
journal={IEEE Transactions on Medical Imaging},
title={Compressed Sensing MRI Reconstruction Using a Generative Adversarial Network With a Cyclic Loss},
year={2018},
volume={37},
number={6},
pages={1488-1497},
doi={10.1109/TMI.2018.2820120},
ISSN={0278-0062},
month={June},
}
Directory structure of data:
tree data
data/
├── brain
│ ├── db_train
│ └── db_valid
├── knees
│ ├── db_train
│ └── db_valid
└── mask
├── cartes
│ ├── mask_1
│ ├── mask_2
│ ├── ...
│ └── mask_9
├── gauss
│ ├── mask_1
│ ├── mask_2
│ ├── ...
│ └── mask_9
├── radial
│ ├── mask_1
│ ├── mask_2
│ ├── ...
│ └── mask_9
└── spiral
├── mask_1
├── mask_2
├── ...
└── mask_9
Brain data is used for magnitude-value experiment, it is extracted from http://brain-development.org/ixi-dataset/
Knees data is used for complex-value experiment, it is extracted from http://mridata.org
Prerequisites
sudo pip install tensorflow_gpu==1.4.0
sudo pip install tensorpack==0.8.2
sudo pip install scikit-image==0.13.0
sudo pip install whatever-missing_libraries
To begin, the template for such an experiment is provided in exp_dset_RefineGAN_mask_strategy_rate.py
For example, if you want to run the training and testing for case knees data, mask radial 10%, please make a soft link to the experiment name, like this
ln -s exp_dset_RefineGAN_mask_strategy_rate.py \
exp_knees_RefineGAN_mask_radial_1.py
To train the model
python exp_knees_RefineGAN_mask_radial_1.py \
--gpu='0' \
--imageDir='data/knees/db_train/' \
--labelDir='data/knees/db_train/' \
--maskDir='data/mask/radial/mask_1/'
Checkpoint of training will be save to directory train_log
To test the model
mkdir result
python exp_knees_RefineGAN_mask_radial_1.py \
--gpu='0' \
--imageDir='data/knees/db_valid/' \
--labelDir='data/knees/db_valid/' \
--maskDir='data/mask/radial/mask_1/' \
--sample='result/exp_knees_RefineGAN_mask_radial_1/' \
--load='train_log/exp_knees_RefineGAN_mask_radial_1/max-validation_PSNR_boost_A.data-00000-of-00001'
The authors would like to thank Dr. Yoonho Nam for the helpful discussion and MRI data, and Yuxin Wu for the help on Tensorpack.