You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.9 KiB

EMCAD

Official Pytorch implementation of the paper EMCAD: Efficient Multi-scale Convolutional Attention Decoding for Medical Image Segmentation published in CVPR 2024. arxiv code video
Md Mostafijur Rahman, Mustafa Munir, Radu Marculescu

The University of Texas at Austin

🔍 Check out our CVPR 2025 paper! EffiDec3D

🔍 Check out our CVPRW 2024 paper! PP-SAM

🔍 Check out our WACV 2024 paper! G-CASCADE

🔍 Check out our MIDL 2023 paper! MERIT

🔍 Check out our WACV 2023 paper! CASCADE

Update

➡️ Please follow our CASCADE training and inference code for ACDC dataset!!!

🚀 May 6, 2025: Synapse inference code released!!!

🚀 September 12, 2024: Synapse training code released!!!

Architecture

Quantitative Results

Qualitative Results

Usage:

Please run the following commands.

conda create -n emcadenv python=3.8
conda activate emcadenv

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html

pip install -r requirements.txt

Data preparation:

  • Synapse Multi-organ dataset: Sign up in the official Synapse website and download the dataset. Then split the 'RawData' folder into 'TrainSet' (18 scans) and 'TestSet' (12 scans) following the TransUNet's lists and put in the './data/synapse/Abdomen/RawData/' folder. Finally, preprocess using python ./utils/preprocess_synapse_data.py or download the preprocessed data and save in the './data/synapse/' folder. Note: If you use the preprocessed data from TransUNet, please make necessary changes (i.e., remove the code segment (line# 88-94) to convert groundtruth labels from 14 to 9 classes) in the utils/dataset_synapse.py.

  • ACDC dataset: Download the preprocessed ACDC dataset from Google Drive of MT-UNet and move into './data/ACDC/' folder.

Pretrained model:

You should download the pretrained PVTv2 model from Google Drive/PVT GitHub, and then put it in the './pretrained_pth/pvt/' folder for initialization.

Training:

cd into EMCAD
python -W ignore train_synapse.py --root_path /path/to/train/data --volume_path path/to/test/data --encoder pvt_v2_b2         # replace --root_path and --volume_path with your actual path to data.

python train_synapse.py --root_path ./data/Synapse/train_npz --volume_path ./data/Synapse/test_vol_h5 --encoder pvt_v2_b2 --batch_size 2 --max_epochs 50 --max_iterations 2000

Testing:

cd into EMCAD 

Acknowledgement

We are very grateful for these excellent works timm, CASCADE, MERIT, G-CASCADE, PP-SAM, PraNet, Polyp-PVT and TransUNet, which have provided the basis for our framework.

Citations

@inproceedings{rahman2024emcad,
  title={Emcad: Efficient multi-scale convolutional attention decoding for medical image segmentation},
  author={Rahman, Md Mostafijur and Munir, Mustafa and Marculescu, Radu},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={11769--11779},
  year={2024}
}