Giter Site home page Giter Site logo

bbbbbbzhou / mdpet Goto Github PK

View Code? Open in Web Editor NEW
14.0 2.0 2.0 374 KB

MDPET: A Unified Motion Correction and Denoising Adversarial Network for Low-dose Gated PET (IEEE Transactions on Medical Imaging, 2021)

License: MIT License

Python 75.68% Shell 0.30% MATLAB 24.02%

mdpet's Introduction

MDPET: A Unified Motion Correction and Denoising Adversarial Network for Low-dose Gated PET

Bo Zhou, Yu-Jung Tsai, Xiongchao Chen, James S. Duncan and Chi Liu

IEEE Transactions on Medical Imaging (TMI), 2021

[Paper]

This repository contains the PyTorch implementation of MDPET.

Citation

If you use this code for your research or project, please cite:

@article{zhou2021mdpet,
  title={MDPET: A Unified Motion Correction and Denoising Adversarial Network for Low-dose Gated PET},
  author={Zhou, Bo and Tsai, Yu-Jung and Chen, Xiongchao and Duncan, James S and Liu, Chi},
  journal={IEEE Transactions on Medical Imaging},
  year={2021},
  publisher={IEEE}
}

Environment and Dependencies

Requirements:

  • Python 3.7
  • Pytorch 1.4.0
  • scipy
  • scikit-image
  • itertools
  • tqdm
  • csv
  • json

Our code has been tested with Python 3.7, Pytorch 1.4.0, CUDA 10.0 on Ubuntu 18.04.

Dataset Setup

./preprocess/              # data setup 
│
├── train                  # training data -- each .h5 contains 6 x high-dose gated data and 6 x low-dose gated data
│   ├── case_1.h5     
│   ├── case_2.h5       
│   ├── case_3.h5 
│   ├── ...    
│   └── case_N.h5
│
├── test                   # test data -- each .h5 contains 6 x high-dose gated data and 6 x low-dose gated data
│   ├── case_N+1.h5     
│   ├── case_N+2.h5       
│   ├── case_N+3.h5 
│   ├── ...    
│   └── case_M.h5         
└── 

Each .h5 file should contain 6 gated image at high-dose level and 6 gated image at low-dose level.
The variable name in the .h5 should be 'G1LD' / 'G2LD' / 'G3LD' / 'G4LD' / 'G5LD' / 'G6LD' for low-dose gated images, and 'G1HD' / 'G2HD' / 'G3HD' / 'G4HD' / 'G5HD' / 'G6HD' for high-dose gated images.

To Run Our Code

  • Train the model
python train.py \
--experiment_name 'experiment_train_svrhddn_dp_gan_mse' \
--model_type 'model_svrhd_dp_gan' \
--data_root './preprocess/' \
--net_G1 'svr_dp' \
--net_G2 'unet' \
--net_D 'patchGAN' \
--weight_dn_recon 100 \
--weight_reg 1000 \
--image_loss 'mse' \
--batch_size 1 \
--zoomsize_train 106 106 106 \
--cropsize_train 96 96 96 \
--rotate_train 30 \
--AUG \
--eval_epochs 20 \
--save_epochs 20 \
--snapshot_epochs 20 \
--lr 1e-4

where
--experiment_name provides the experiment name for the current run, and save all the corresponding results under the experiment_name's folder.
--data_root provides the data folder directory (with structure and files illustrated above).
--net_G1 specifies the motion estimation network type.
--net_G2 specifies the denoising network type.
--net_D specifies the discriminator network type.
--AUG enables the data augumentation during the training.
Other hyperparameters can be adjusted in the code as well.

  • Test the model
python test.py \
--resume './outputs/experiment_train_svrhddn_dp_gan_mse/checkpoints/model_xxx.pt' \
--experiment_name 'experiment_test_svrhddn_dp_gan_mse' \
--model_type 'model_svrhd_dp_gan' \
--data_root './preprocess/' \
--net_G1 'svr_dp' \
--net_G2 'unet' \
--net_D 'patchGAN'

Sample training/test scripts are provided under './scripts/' and can be directly executed.

Test Data

We provide one test data which includes the input to MDPET and output of the MDPET.
Please see the following link to request the test data.
[Drive Link]

Contact

If you have any question, please file an issue or contact the author:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.