Histogram Matching for Domain Adaptation: Solution to M&Ms 2020
The authors of this paper declare that the segmentation method they implemented for participation in the M&Ms challenge has not used any pre-trained models nor additional MRI datasets other than those provided by the organizers.
-
Clone this repo. and put testing cases in
mnms
-
Copy and rename the the end-diastole (ED) and end-systole (ES) phases data to a single folder
test_data
, by running
python prepare_data.py
-
Download (also extract) trained models and put them in
V2_nnUNet/nnUNet/nnunet
-
Install nnUNet
cd V2_nnUNet/nnUNet
pip install -e .
cd nnunet
Please use our modified nnUNet in this repo. rather than the official nnUNet.
All the following commands should be run in V2_nnUNet/nnUNet/nnunet
Run
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/solution1_output -m 3d_fullres -t Task601_BestHMAug --save_npz
Segmentation Results will be in HM_DataAug/mnms/solution1_output
.
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/solution2_output -m 3d_fullres -t Task602_HMAugMMS --save_npz
Segmentation Results will be in HM_DataAug/mnms/solution2_output
.
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/temp_solution3 -m 2d -t Task601_BestHMAug --save_npz
nnUNet_ensemble -f ../../../mnms/solution1_output ../../../mnms/temp_solution3 -o ../../../mnms/solution3_output
Segmentation Results will be in HM_DataAug/mnms/solution3_output
.
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/temp_solution4 -m 2d -t Task602_HMAugMMS --save_npz
nnUNet_ensemble -f ../../../mnms/solution2_output ../../../mnms/temp_solution4 -o ../../../mnms/solution4_output
Segmentation Results will be in HM_DataAug/mnms/solution4_output
.
nnUNet_ensemble -f ../../../mnms/solution1_output ../../../mnms/solution2_output ../../../mnms/temp_solution3 ../../../mnms/temp_solution4 -o ../../../mnms/solution5_output
Segmentation Results will be in HM_DataAug/mnms/solution5_output
.
Obtaining the segmentation results of the 5 solutions in a container rather than creating 5 containers.
# generate softmax predictions
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/solution1_output -m 3d_fullres -t Task601_BestHMAug --save_npz
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/solution2_output -m 3d_fullres -t Task602_HMAugMMS --save_npz
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/temp_solution3 -m 2d -t Task601_BestHMAug --save_npz
nnUNet_predict -i ../../../mnms/test_data -o ../../../mnms/temp_solution4 -m 2d -t Task602_HMAugMMS --save_npz
# ensemble
nnUNet_ensemble -f ../../../mnms/solution1_output ../../../mnms/temp_solution3 -o ../../../mnms/solution3_output
nnUNet_ensemble -f ../../../mnms/solution2_output ../../../mnms/temp_solution4 -o ../../../mnms/solution4_output
nnUNet_ensemble -f ../../../mnms/solution1_output ../../../mnms/solution2_output ../../../mnms/temp_solution3 ../../../mnms/temp_solution4 -o ../../../mnms/solution5_output
- cd ../../../mnms
- rm -rf temp*
- rm solution1_output/*.npz
- rm solution1_output/*.pkl
- rm solution2_output/*.npz
- rm solution2_output/*.pkl