Home

Awesome

MedIM

This repo holds the Pytorch implementation of MedIM:<br />

[MICCAI2023] MedIM: Boost Medical Image Representation via Radiology Report-guided Masking

[Medical Image Analysis] Rethinking Masked Image Modeling for Medical Image Representation

Requirements

Python 3.10
Torch==1.13.1
Torchvision==0.14.1
CUDA 11.6

Usage

conda create --name medim python=3.10
source activate medim
git clone https://github.com/YtongXie/MedIM.git
cd MedIM
pip install -e .
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -r requirements.txt

cd /medim/models/medim/pytorch-cosine-annealing-with-warmup

python setup.py install

Dataset downloading

Datasets for pre-training

Datasets for transfer learning

After downloading datasets, please check if the path in medim/constants.py is correct.

Data Preprocessing

Preprocesseding these datasets and split the dataset into train/val/test set using the code in medim/preprocess.

Pre-training

cd data/mesh

python MeSH_pickle_train.py
python MeSH_pickle_valid.py

for generating captions_train_MeSH.pickle and captions_valid_MeSH.pickle.

cd /medim/models/medim

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python medim_train.py --gpus 8 --epochs 50 --outpath MedIM --strategy ddp

for MedIM pre-training.

Finetune on downstream tasks

CUDA_VISIBLE_DEVICES=0 python medim_finetuner.py --gpus 1 --dataset chexpert5 --batch_size 512 --accumulate 8 --path MedIM/last.ckpt --outdir Cls_chexpert5 --outpath MedIM_1 --data_pct 1
CUDA_VISIBLE_DEVICES=0 python medim_finetuner.py --gpus 1 --dataset chexpert14 --batch_size 512 --accumulate 8 --path MedIM/last.ckpt --outdir Cls_chexpert14 --outpath MedIM_1 --data_pct 1
CUDA_VISIBLE_DEVICES=0 python medim_finetuner.py --gpus 1 --dataset covidx --batch_size 96 --path MedIM/last.ckpt --outdir Cls_covidx --outpath MedIM_1 --data_pct 1
CUDA_VISIBLE_DEVICES=0 python medim_finetuner.py --gpus 1 --dataset vindr --batch_size 512 --path MedIM/last.ckpt --outdir Cls_vindr --outpath MedIM_1 --data_pct 1
CUDA_VISIBLE_DEVICES=0 python medim_segmenter.py --gpus 1 --dataset siim --batch_size 32 --ckpt_path MedIM/last.ckpt --outdir Seg_siim --outpath MedIM_1 --data_pct 1 --seed 123

Acknowledgements

Part of codes is reused from the MGCA. Thanks to Fuying et al. for the codes of MGCA.

Citation

If this code is helpful for your study, please cite:

@inproceedings{xie2023medim,
  title={Medim: Boost medical image representation via radiology report-guided masking},
  author={Xie, Yutong and Gu, Lin and Harada, Tatsuya and Zhang, Jianpeng and Xia, Yong and Wu, Qi},
  booktitle={International Conference on Medical Image Computing and Computer-Assisted Intervention},
  pages={13--23},
  year={2023},
  organization={Springer}
}

@article{xie2024rethinking,
  title={Rethinking masked image modeling for medical image representation},
  author={Xie, Yutong and Gu, Lin and Harada, Tatsuya and Zhang, Jianpeng and Xia, Yong and Wu, Qi},
  journal={Medical Image Analysis},
  pages={103304},
  year={2024},
  publisher={Elsevier}
}

Contact

Yutong Xie (yutong.xie678@gmail.com)