# Glas Crag Seg Eval

> Evaluates semi-supervised gland segmentation performance on histopathology images under limited labeled data (5% or 10%). It probes the model's ability to disentangle stain color and tissue structure while maintaining boundary precision and shape preservation with minimal annotations. Use when the user wants to benchmark on GlaS, CRAG, or asks about evaluating this task. Reports Dice.

- Skill: `qhjqhj00/glas-crag-seg-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/glas-crag-seg-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/glas-crag-seg-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/glas-crag-seg-eval

---


# glas-crag-seg-eval

> Learning Disentangled Stain and Structural Representations for Semi-Supervised Histopathology Segmentation — Pham et al. (2025) (arXiv:2507.03923, 2025)

## What this evaluates

Evaluates semi-supervised gland segmentation performance on histopathology images under limited labeled data (5% or 10%). It probes the model's ability to disentangle stain color and tissue structure while maintaining boundary precision and shape preservation with minimal annotations.

## Datasets

- **GlaS** — total 165; splits: test (80), train_val (85)
- **CRAG** — total 213; splits: test (42), train_val (171)

## Metrics

- `Dice` **(primary)** — range: [0, 100] percent
  - Dice = 2 * |A ∩ B| / (|A| + |B|), measuring overlap between predicted and ground-truth masks.
- `Jaccard` — range: [0, 100] percent
  - Jaccard = |A ∩ B| / |A ∪ B|, also known as Intersection over Union (IoU).

## Input / output format

**Input**: Histopathology images resized to 256×256, with 5% or 10% of images having ground-truth gland segmentation masks and the rest unlabeled.

**Output**: Pixel-wise binary segmentation mask predicting gland vs. background regions.

## Scoring recipe

```python
def dice_score(pred_mask, gt_mask):
    intersection = np.sum(pred_mask * gt_mask)
    return 2.0 * intersection / (np.sum(pred_mask) + np.sum(gt_mask))

def jaccard_score(pred_mask, gt_mask):
    intersection = np.sum(pred_mask * gt_mask)
    union = np.sum(pred_mask) + np.sum(gt_mask) - intersection
    return intersection / union
```

## Common pitfalls

- Splits are non-standard: 20% of images are fixed as test, while the remaining 80% are split into 5 folds for cross-validation.
- Metrics are reported as percentages in tables (e.g., 82.86) but the underlying formula operates on a [0, 1] scale.
- All images are resized to 256×256 before evaluation, which may distort gland boundaries and affect Dice/Jaccard scores for high-resolution WSIs.

## Evidence (verbatim from paper)

> We evaluated our proposed method on two publicly available histopathological benchmarks. GlaS Sirinukunwattana et al. (2017) is a gland segmentation dataset for colorectal adenocarcinoma across various cancer stages, containing 165 images (37 benign, 48 malignant, and 80 test) with resolutions around 775×522 or 589×453. CRAG Graham et al. (2019) targets gland segmentation in colon histopathology, comprising 213 annotated images, mostly sized 1512×1516. Following prior works, 20% of the images were used as a fixed test set, and the remaining 80% were split into five folds for cross-validation on both datasets. As shown in Table 1, CSDS consistently outperforms previous SOTA methods under limited supervision on both GlaS and CRAG datasets. On the Glas dataset, with only 10% labeled data, CSDS achieves a Dice score of 82.86±1.24 and a Jaccard index of 72.01±1.81...

## Citation

```bibtex
@misc{pham2025csds,
  title={Learning Disentangled Stain and Structural Representations for Semi-Supervised Histopathology Segmentation},
  author={Pham et al. (2025)},
  year={2025},
  note={arXiv:2507.03923}
}
```

- arXiv: 2507.03923

