TriGAN-SiaMT: A Triple-Segmentor Adversarial Network with Bounding Box Priors for Semi-Supervised Brain Lesion Segmentation
This is an official implementation of TriGAN-SiaMT: A triple-segmentor adversarial network with bounding box priors for semi-supervised brain lesion segmentation
A brief demo video of the framework is available on YouTube
Release date: 14/Dec/2025
Accurate brain lesion segmentation from MRI is essential for clinical decision-making, yet dense pixel-wise annotations are expensive and limited. We propose TriGAN-SiaMT, a semi-supervised segmentation framework that integrates adversarial learning, multi-level consistency regularization, and bounding box priors. The model employs three segmentors with supervised, Siamese, and EMA-based teacher pathways to effectively leverage both labeled and unlabeled data. Experiments on ISLES 2022 and BraTS 2019 demonstrate strong performance and robustness under limited supervision.
The framework was tested using Python 3.10, PyTorch 2.6, and CUDA 12.4. Ensure that you install all the dependencies listed in requirements.txt.
conda create -n trigan_siamt python=3.10
conda activate trigan_siamt
cd TriGAN-SiaMT
pip install -r requirements.txt
ISLES-2022 dataset can be downloaded from Kaggle, and BraTS-2019 dataset from Kaggle.
After placing the downloaded 3D volumes in data/DATASET/3d_data/, generate 2D slices and patient-wise train/val/test splits using:
python make_dataset.pyThen, bounding boxes are generated using:
python generate_bbox.pydata/
├─ isles22/
│ ├─ 3d_data/ISLES-2022/
│ │ └─ ...
│ ├─ 2d_data/
│ │ ├─ images/
│ │ │ ├─ train/
│ │ │ ├─ val/
│ │ │ └─ test/
│ │ └─ labels/
│ │ ├─ train/
│ │ ├─ val/
│ │ └─ test/
│ └─ bboxes/
│ ├─ mask_bbox/
│ │ ├─ train/
│ │ ├─ val/
│ │ └─ test/
│ ├─ bbox_train.json
│ ├─ bbox_val.json
│ └─ bbox_test.json
├─ brats19/
│ ├─ 3d_data/MICCAI_BraTS_2019_Data_Training/
│ │ └─ ...
│ ├─ 2d_data/
│ │ └─ ...
│ └─ bboxes/
│ └─ ...
After setting labeled_ratio and other parameters in config/config_train.yaml, run the following command to train and evaluate the model:
python train.py
python evaluate.py
If you find this work useful, please consider citing:
@article{ALSHURBAJI202637,
title = {TriGAN-SiaMT: A triple-segmentor adversarial network with bounding box priors for semi-supervised brain lesion segmentation},
journal = {Pattern Recognition Letters},
volume = {200},
pages = {37--43},
year = {2026},
issn = {0167-8655},
doi = {https://doi.org/10.1016/j.patrec.2025.11.032},
url = {https://www.sciencedirect.com/science/article/pii/S0167865525003861},
author = {Mohammad Alshurbaji and Maregu Assefa and Ahmad Obeid and Mohamed L. Seghier and Taimur Hassan and Kamal Taha and Naoufel Werghi}
}Parts of this implementation build upon components from SSL4MIS. We thank the authors for making their work publicly available.
