DAGAN
This is the official implementation code for DAGAN: Deep De-Aliasing Generative Adversarial Networks for Fast Compressed Sensing MRI Reconstruction published in IEEE Transactions on Medical Imaging (2018).
Yang, Guang, et al. "DAGAN: Deep de-aliasing generative adversarial networks for fast compressed sensing MRI reconstruction." IEEE transactions on medical imaging 37.6 (2017): 1310-1321.
If you use this code for your research, please cite our paper.
@article{yang2018_dagan,
author = {Yang, Guang and Yu, Simiao and Dong, Hao and Slabaugh, Gregory G. and Dragotti, Pier Luigi and Ye, Xujiong and Liu, Fangde and Arridge, Simon R. and Keegan, Jennifer and Guo, Yike and Firmin, David N.},
journal = {IEEE Trans. Med. Imaging},
number = 6,
pages = {1310--1321},
title = {{DAGAN: deep de-aliasing generative adversarial networks for fast compressed sensing MRI reconstruction}},
volume = 37,
year = 2018
}
Prerequisites
The original code is in python 3.5 under the following dependencies:
- tensorflow (v1.1.0)
- tensorlayer (v1.7.2)
- easydict (v1.6)
- nibabel (v2.1.0)
- scikit-image (v0.12.3)
Code tested in Ubuntu 16.04 with Nvidia GPU + CUDA CuDNN (whose version is compatible to tensorflow v1.1.0).
How to use
-
Prepare data
- Data used in this work are publicly available from the MICCAI 2013 grand challenge (link). We refer users to register with the grand challenge organisers to be able to download the data.
- Download training and test data respectively into data/MICCAI13_SegChallenge/Training_100 and data/MICCAI13_SegChallenge/Testing_100 (We randomly included 100 T1-weighted MRI datasets for training and 50 datasets for testing)
- run 'python data_loader.py'
- after running the code, training/validation/testing data should be saved to 'data/MICCAI13_SegChallenge/' in pickle format.
-
Download pretrained VGG16 model
- Download 'vgg16_weights.npz' from this link
- Save 'vgg16_weights.npz' into 'trained_model/VGG16'
-
Train model
- run 'CUDA_VISIBLE_DEVICES=0 python train.py --model MODEL --mask MASK --maskperc MASKPERC' where you should specify MODEL, MASK, MASKPERC respectively:
- MODEL: choose from 'unet' or 'unet_refine'
- MASK: choose from 'gaussian1d', 'gaussian2d', 'poisson2d'
- MASKPERC: choose from '10', '20', '30', '40', '50' (percentage of mask)
-
Test trained model
- run 'CUDA_VISIBLE_DEVICES=0 python test.py --model MODEL --mask MASK --maskperc MASKPERC' where you should specify MODEL, MASK, MASKPERC respectively (as above).
Results
Please refer to the paper for the detailed results.