/freeseed

Official implementation of "FreeSeed: Frequency-band-aware and Self-guided Network for Sparse-view CT Reconstruction"

Primary LanguageJupyter Notebook

FreeSeed: Frequency-band-aware and Self-guided Network for Sparse-view CT Reconstruction

This is the official implementation of the paper "FreeSeed: Frequency-band-aware and Self-guided Network for Sparse-view CT Reconstruction" (arxiv, springer).

Updates

  • Aug, 2023: fixed bugs in dudo_trainer.py (and corresponding details in basic_wrapper_v2.py, dudofree.py, main.py, train.sh)
  • Jul, 2023: initial commit.

Data Preparation

The AAPM-Myo dataset can be downloaded from: CT Clinical Innovation Center (or the box link). Please walk through ./datasets/process_aapm.ipynb for more details on preparing the dataset. Please see here for simple data preprocessing.

Training & Inference

Please check train.sh for training script (or test.sh for inference script) once the data is well prepared. Specify the dataset path and other setting in the script, and simply run it in the terminal.

Notably, it is time-consuming to directly train sinogram-domain sub-network and image-domain sub-network of FreeSeedDUDO using a combination of loss functions simultaneously. A more efficient way, as in dudo_trainer.py, is to:

  • First, warm up the image-domain FreeNet first with image-domain losses (pixel loss and SeedNet loss) for a few epochs;
  • Then, jointly train the two sub-networks with dual-domain losses (pixel loss, sinogram loss, and Radon consistency loss) for the rest epochs.

Requirements

- Linux Platform
- python==3.7.16
- torch==1.7.1+cu110  # depends on the CUDA version of your machine
- torchaudio==0.7.2
- torchvision==0.8.2+cu110
- torch-radon==1.0.0
- monai==1.0.1
- scipy==1.7.3
- einops==0.6.1
- opencv-python==4.7.0.72
- SimpleITK==2.2.1
- numpy==1.21.6
- pandas==1.3.5  # optional
- tensorboard==2.11.2  # optional
- wandb==0.15.2  # optional
- tqdm==4.65.0  # optional

Other Notes

We choose torch-radon toolbox to build our framework because it processes tomography really fast! For those who have problems installing torch-radon toolbox:

  • There seems to be other forks of torch-radon like this that can be installed via python setup.py install without triggering too many compilation errors🤔.
  • Check the issues of torch-radon (both open & closed), since there is discussion about any possible errors you may encounter during installation.

Citation

If you find our work and code helpful, please kindly cite the corresponding paper:

@inproceedings{ma2023freeseed,
  title={FreeSeed: Frequency-band-aware and Self-guided Network for Sparse-view CT Reconstruction},  
  author={Ma, Chenglong and Li, Zilong and Zhang, Yi and Zhang, Junping and Shan, Hongming}, 
  booktitle={Medical Image Computing and Computer Assisted Intervention -- MICCAI 2023},
  year={2023}
}