liaohaofu / adn

ADN: Artifact Disentanglement Network for Unsupervised Metal Artifact Reduction
Other
164 stars 39 forks source link
adn artifact-removal deblurring deep-learning deep-neural-networks dehazing deraining disentangled-representations image-enhancement medical-image-processing medical-imaging metal-artifact

ADN: Artifact Disentanglement Network for Unsupervised Metal Artifact Reduction [Paper]

By Haofu Liao (liaohaofu@gmail.com), Spring, 2019

Overview

Citation

If you use this code for your research, please cite our paper.

@inproceedings{adn2019_miccai,
  title={Artifact Disentanglement Network for Unsupervised Metal Artifact Reduction},
  author={Haofu Liao, Wei-An Lin, Jianbo Yuan, S. Kevin Zhou, Jiebo Luo},
  booktitle={International Conference on Medical Image Computing and Computer-Assisted Intervention (MICCAI)},
  year={2019}
}
@article{adn2019_tmi, 
  author={H. {Liao} and W. {Lin} and S. K. {Zhou} and J. {Luo}}, 
  journal={IEEE Transactions on Medical Imaging}, 
  title={ADN: Artifact Disentanglement Network for Unsupervised Metal Artifact Reduction}, 
  year={2019},
  doi={10.1109/TMI.2019.2933425}
}

Prerequisites

This repository is tested under the following system settings:

Install

Local

For most of the users, you may consider install ADN locally on your machine with the following steps.

git clone https://github.com/liaohaofu/adn.git
pip install -r requirements.txt

Docker

For Docker users, we provide a pre-built docker image as well as a Dockerfile.

docker pull liaohaofu/adn
cd docker/
docker build -t liaohaofu/adn .
docker run -it --runtime=nvidia liaohaofu/adn

Datasets

Two publicly available datasets (DeepLesion and Spineweb) are supported. As a courtesy, we also support training/testing with natural images.

DeepLesion

ln -s path_to_DeepLesion/Images_png data/deep_lesion/raw
>> prepare_deep_lesion

Spineweb

mkdir data/spineweb
ln -s path_to_Spineweb/ data/spineweb/raw
python prepare_spineweb.py

Natural image

your_dataset
├── test
│   ├── artifact # a folder containing all the testing images with artifact
│   └── no_artifact # a folder containing all the testing images without artifact
└── train
    ├── artifact # a folder containing all the training images with artifact
    └── no_artifact # a folder containing all the training images without artifact
ln -s path_to_your_dataset data/nature_image

Demo

python demo.py deep_lesion
python demo.py spineweb

Train and Test

python train.py deep_lesion
python train.py spineweb
python train.py nature_image
python test.py deep_lesion
python test.py spineweb
python test.py nature_image

Acknowledgement

The authors would like to thank Dr. Yanbo Zhang (yanbozhang007@gmail.com) and Dr. Hengyong Yu (hengyong_yu@uml.edu) for providing the artifact synthesis code used in this repository.