# Crossmoda Eval

> Evaluates unsupervised cross-modality domain adaptation for medical image segmentation (Vestibular Schwannoma and Cochlea) and tumour grading (Koos classification) from ceT1 to T2 MRI. Use when the user wants to benchmark on crossMoDA, or asks about evaluating this task. Reports DSC.

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

---


# crossmoda-eval

> crossMoDA Challenge: Evolution of Cross-Modality Domain Adaptation Techniques for Vestibular Schwannoma and Cochlea Segmentation from 2021 to 2023 — Wijethilake et al. (2025) (arXiv:2506.12006, 2025)

## What this evaluates

Evaluates unsupervised cross-modality domain adaptation for medical image segmentation (Vestibular Schwannoma and Cochlea) and tumour grading (Koos classification) from ceT1 to T2 MRI.

## Datasets

- **crossMoDA** — total ?; splits: test (-1)

## Metrics

- `DSC` **(primary)** — range: [0, 1]
  - Dice Similarity Coefficient: 2|A∩B| / (|A|+|B|), measuring overlap between predicted and ground truth masks.
- `ASSD` — range: mm
  - Average Symmetric Surface Distance: mean distance between boundary points of predicted and ground truth masks.
- `MA-MAE` — range: other
  - Mean Absolute Error for Koos grade classification, measuring average deviation from true tumour grade.

## Input / output format

**Input**: ceT1 and T2 MRI scans for segmentation; ceT1 MRI for Koos classification.

**Output**: Binary segmentation masks for Vestibular Schwannoma (and intra/extra-meatal subregions) and Cochlea; or Koos grade label.

## Scoring recipe

```python
def compute_dsc(pred, gt):
    intersection = np.sum(pred & gt)
    return 2.0 * intersection / (np.sum(pred) + np.sum(gt))

def compute_assd(pred, gt):
    pred_boundary = get_boundary(pred)
    gt_boundary = get_boundary(gt)
    dists = [min(np.linalg.norm(p - g) for g in gt_boundary) for p in pred_boundary] + \
            [min(np.linalg.norm(g - p) for p in pred_boundary) for g in gt_boundary]
    return np.mean(dists)
```

## Common pitfalls

- Outliers in ASSD heavily skew aggregate-then-rank aggregation, making rank-then-aggregate more robust.
- Cochlea segmentation shows higher stability than VS due to anatomical uniformity, affecting cross-method comparisons.
- Challenge rankings use a rank-then-aggregate strategy with mean aggregation, not simple metric averaging across test cases.

## Evidence (verbatim from paper)

> Both teams achieved a median DSC above 86% for both cochlea and VS segmentation.

## Citation

```bibtex
@misc{wijethilake2025crossmoda,
  title={crossMoDA Challenge: Evolution of Cross-Modality Domain Adaptation Techniques for Vestibular Schwannoma and Cochlea Segmentation from 2021 to 2023},
  author={Wijethilake et al. (2025)},
  year={2025},
  note={arXiv:2506.12006}
}
```

- arXiv: 2506.12006

