FPL+: Filtered Pseudo Label-based Unsupervised Cross-Modality Adaptation for 3D Medical Image Segmentation
by Jianghao Wu, et.al.
This repository is for our IEEE TMI paper FPL+: Filtered Pseudo Label-based Unsupervised Cross-Modality Adaptation for 3D Medical Image Segmentation.
Vestibular Schwannoma Segmentation Dataset | BraTS 2020 | MMWHS
For VS dataset, preprocess original data according to ./data/preprocess_vs.py
.
Training CycleGAN, and convert source domain data into source domian-like set and target domian-like set, refer the folder ./dataset
.
Using ./write_csv.py
to write your data into a csv
file
For vs data, ceT1 as the source domain, hrT2 as the target domain, thecsv
file can be seen in ./config_dual/data_vs
:
├──config_dual/data_vs
├── [train_ceT1_like.csv]
├──image,label
├──./dataset/ceT1/img/vs_gk_99_t1.nii.gz,./dataset/ceT1/lab/vs_gk_99_t1_seg.nii.gz
├──./dataset/fake_data/ceT1-hrT2-ceT1_cc/vs_gk_99_t1.nii.gz,./dataset/ceT1/lab/vs_gk_99_t1.nii.gz
├──./dataset/fake_data/ceT1-hrT2-ceT1_ac/vs_gk_99_t1.nii.gz,./dataset/ceT1/lab/vs_gk_99_t1.nii.gz
...
├── [train_hrT2_like.csv]
├──image,label
├──./dataset/fake_data/ceT1-hrT2_cyc/vs_gk_99_t1.nii.gz,./dataset/ceT1/lab/vs_gk_99_t1.nii.gz
├──./dataset/fake_data/ceT1-hrT2_auxcyc/vs_gk_99_t1.nii.gz,./dataset/ceT1/lab/vs_gk_99_t1.nii.gz
...
Write your training config file in config_dual/vs_t1s_g.cfg
export CUDA_VISIBLE_DEVICES=0
export PYTHONPATH=$PYTHONPATH:./PyMIC
## train pseudo label generator
python ./PyMIC/pymic/net_run_dsbn/net_run.py train ./config_dual/vs_t1s_g.cfg
## get pseudo label
python ./PyMIC/pymic/net_run_dsbn/net_run.py test ./config_dual/vs_t1s_g.cfg
## get the pseudo label of fake source image
python ./PyMIC/pymic/net_run_dsbn/net_run.py test ./config_dual/vs_t1s_g_fake.cfg
## get image-level weights
python ./PyMIC/pymic/net_run_dsbn/net_run.py test ./config_dual/vs_t1s_weights.cfg
Weights are saved on [testing][fpl_uncertainty_sorted]
and [testing][fpl_uncertainty_weight]
, run:
python data/get_pixel_weight.py
python data/get image_weight.py
export CUDA_VISIBLE_DEVICES=0
export PYTHONPATH=$PYTHONPATH:./PyMIC
python ./PyMIC/pymic/net_run_dsbn/net_run.py train ./config_dual/vs_t1s_S.cfg
python ./PyMIC/pymic/net_run_dsbn/net_run.py test ./config_dual/vs_t1s_S.cfg
If you find this project useful for your research, please consider citing:
@article{wu2024fpl+,
title={FPL+: Filtered Pseudo Label-based Unsupervised Cross-Modality Adaptation for 3D Medical Image Segmentation},
author={Wu, Jianghao and Guo, Dong and Wang, Guotai and Yue, Qiang and Yu, Huijun and Li, Kang and Zhang, Shaoting},
journal={IEEE Transactions on Medical Imaging},
year={2024},
publisher={IEEE}
}