semigda-medical-seg-eval
SemiGDA: Generative Dual-distribution Alignment for Semi-Supervised Medical Image Segmentation — Huang et al. (2026) (arXiv:2604.23274, 2026)
What this evaluates
Evaluates semi-supervised medical image segmentation performance under limited labeled data ratios (10% and 30%). It measures segmentation accuracy and boundary precision across multiple medical domains including colonoscopy, dermoscopy, pathology, and ultrasound.
Datasets
- Colonoscopy (CVC-ClinicDB, Kvasir, CVC-300) — total ?; splits: train (1450), val (145), test (-1)
- ISIC-2018 — total 3594; splits: train (2075), val (519), test (1000)
- BCSS — total 3888; splits: train (-1), val (-1), test (-1)
- BUSI — total 647; splits: train (-1), test (-1)
Metrics
Dice coefficient (Dice) (primary) — range: percent
- Dice = 2 * |A ∩ B| / (|A| + |B|), where A and B are the predicted and ground truth segmentation masks. Measures overlap between prediction and target.
Intersection over Union (IoU) — range: percent
- IoU = |A ∩ B| / |A ∪ B|. Measures the ratio of intersection area to union area between prediction and ground truth.
95% Hausdorff Distance (95HD) — range: other
- 95th percentile of the maximum distance from any point on the predicted boundary to the closest point on the ground truth boundary. Measures boundary precision.
Input / output format
Input: 224×224 medical images (colonoscopy, dermoscopy, pathology patches, ultrasound) with corresponding segmentation masks for labeled samples; unlabeled samples provided without masks.
Output: Binary segmentation mask of the same spatial dimensions as the input image.
Scoring recipe
def evaluate(preds, gts):
dice_scores, iou_scores, hd95_scores = [], [], []
for pred, gt in zip(preds, gts):
inter = np.sum(pred & gt)
dice = 2.0 * inter / (np.sum(pred) + np.sum(gt))
iou = inter / np.sum(pred | gt)
pred_pts = np.argwhere(pred)
gt_pts = np.argwhere(gt)
dists = cdist(pred_pts, gt_pts)
hd95 = np.percentile(np.max(dists, axis=1), 95)
dice_scores.append(dice)
iou_scores.append(iou)
hd95_scores.append(hd95)
return np.mean(dice_scores), np.mean(iou_scores), np.mean(hd95_scores)
Common pitfalls
- Semi-supervised setting uses only 10% or 30% labeled data for training, with the rest unlabeled; evaluation is strictly on the test split.
- Inference averages two predictions (likely from dual encoders or teacher-student setup), which must be replicated to match reported scores.
- All input images are resized to 224×224 before processing, which may impact boundary metrics like 95HD compared to full-resolution evaluation.
Evidence (verbatim from paper)
We employ three commonly used metrics, namely the Dice coefficient (Dice), Intersection over Union (IoU), and 95% Hausdorff Distance (95HD).
Citation
@misc{huang2026semigda,
title={SemiGDA: Generative Dual-distribution Alignment for Semi-Supervised Medical Image Segmentation},
author={Huang et al. (2026)},
year={2026},
note={arXiv:2604.23274}
}
1---2name: semigda-medical-seg-eval3description: Evaluates semi-supervised medical image segmentation performance under limited labeled data ratios (10% and 30%). It measures segmentation accuracy and boundary precision across multiple medical domains including colonoscopy, dermoscopy, pathology, and ultrasound. Use when the user wants to benchmark on Colonoscopy (CVC-ClinicDB, Kvasir, CVC-300), ISIC-2018, BCSS, BUSI, or asks about evaluating this task. Reports Dice coefficient (Dice).4---56# semigda-medical-seg-eval78> SemiGDA: Generative Dual-distribution Alignment for Semi-Supervised Medical Image Segmentation — Huang et al. (2026) (arXiv:2604.23274, 2026)910## What this evaluates1112Evaluates semi-supervised medical image segmentation performance under limited labeled data ratios (10% and 30%). It measures segmentation accuracy and boundary precision across multiple medical domains including colonoscopy, dermoscopy, pathology, and ultrasound.1314## Datasets1516- **Colonoscopy (CVC-ClinicDB, Kvasir, CVC-300)** — total ?; splits: train (1450), val (145), test (-1)17- **ISIC-2018** — total 3594; splits: train (2075), val (519), test (1000)18- **BCSS** — total 3888; splits: train (-1), val (-1), test (-1)19- **BUSI** — total 647; splits: train (-1), test (-1)2021## Metrics2223- `Dice coefficient (Dice)` **(primary)** — range: percent24 - Dice = 2 * |A ∩ B| / (|A| + |B|), where A and B are the predicted and ground truth segmentation masks. Measures overlap between prediction and target.25- `Intersection over Union (IoU)` — range: percent26 - IoU = |A ∩ B| / |A ∪ B|. Measures the ratio of intersection area to union area between prediction and ground truth.27- `95% Hausdorff Distance (95HD)` — range: other28 - 95th percentile of the maximum distance from any point on the predicted boundary to the closest point on the ground truth boundary. Measures boundary precision.2930## Input / output format3132**Input**: 224×224 medical images (colonoscopy, dermoscopy, pathology patches, ultrasound) with corresponding segmentation masks for labeled samples; unlabeled samples provided without masks.3334**Output**: Binary segmentation mask of the same spatial dimensions as the input image.3536## Scoring recipe3738```python39def evaluate(preds, gts):40 dice_scores, iou_scores, hd95_scores = [], [], []41 for pred, gt in zip(preds, gts):42 inter = np.sum(pred & gt)43 dice = 2.0 * inter / (np.sum(pred) + np.sum(gt))44 iou = inter / np.sum(pred | gt)45 pred_pts = np.argwhere(pred)46 gt_pts = np.argwhere(gt)47 dists = cdist(pred_pts, gt_pts)48 hd95 = np.percentile(np.max(dists, axis=1), 95)49 dice_scores.append(dice)50 iou_scores.append(iou)51 hd95_scores.append(hd95)52 return np.mean(dice_scores), np.mean(iou_scores), np.mean(hd95_scores)53```5455## Common pitfalls5657- Semi-supervised setting uses only 10% or 30% labeled data for training, with the rest unlabeled; evaluation is strictly on the test split.58- Inference averages two predictions (likely from dual encoders or teacher-student setup), which must be replicated to match reported scores.59- All input images are resized to 224×224 before processing, which may impact boundary metrics like 95HD compared to full-resolution evaluation.6061## Evidence (verbatim from paper)6263> We employ three commonly used metrics, namely the Dice coefficient (Dice), Intersection over Union (IoU), and 95% Hausdorff Distance (95HD).6465## Citation6667```bibtex68@misc{huang2026semigda,69 title={SemiGDA: Generative Dual-distribution Alignment for Semi-Supervised Medical Image Segmentation},70 author={Huang et al. (2026)},71 year={2026},72 note={arXiv:2604.23274}73}74```7576- arXiv: 2604.23274