This repository provides a GPU-accelerated patch-based multi-layer perceptron (MLP) for voxel-wise fusion of multiple spleen segmentation pipelines.
The model integrates local CT intensity patches, local mask agreement/disagreement, and 3D spatial coordinates to produce an improved spleen segmentation.
A fully reproducible Apptainer/Singularity image is available on Zenodo.
- Learned fusion of four pipelines:
- TotalSegmentator
- DeepSpleenSeg
- DeepMultiOrgSeg
- GennUNet
- CUDA-enabled voxel-wise patch inference
- Dataset-agnostic: accepts any folder structure using
--mask_paths - Includes a working sample test case
- Reproducible: packaged as a .sif container (Zenodo DOI)
A complete working example is included:
test_case/
├── INPUTS/
│ └── image.nii.gz
└── OUTPUTS/
└──TotalSegmentator.nii.gz
└──DeepSpleenSeg.nii.gz
└──DeepMultiOrgSeg.nii.gz
└──GennUNet_spleen.nii.gz
Use the following command exactly as shown.
This binds your /home-local directory and runs inference on a chosen case:
singularity run --nv -e --contain -B /home-local:/home-local mlp_fusion_v1.0.1.sif --case_dir test_case --mask_paths "OUTPUTS/TotalSegmentator.nii.gz,OUTPUTS/DeepSpleenSeg.nii.gz,OUTPUTS/DeepMultiOrgSeg.nii.gz,OUTPUTS/GennUNet_spleen.nii.gz
singularity run --nv -e --contain \
-B $PWD:$PWD \
mlp_fusion_v1.0.1.sif \
--case_dir $PWD/test_case \
--mask_paths "OUTPUTS/TotalSegmentator.nii.gz,OUTPUTS/DeepSpleenSeg.nii.gz,OUTPUTS/DeepMultiOrgSeg.nii.gz,OUTPUTS/GennUNet_spleen.nii.gz"
After running, the fused MLP segmentation is written to:
/OUTPUTS/mlp_spleen_torch.nii.gz
Latest version DOI (all versions):
https://doi.org/10.5281/zenodo.17903413