All projects
Research
2026· ML Research Engineer

Semi-Supervised Melanoma Nuclei Segmentation

Can a model learn to segment cell nuclei in melanoma tissue from only a handful of labeled images?

semi-supervisedmelanomanucleisegmentation.app
Semi-Supervised Melanoma Nuclei Segmentation

Overview

Fully supervised nuclei segmentation works well when there's enough labeled tissue to train on — the problem is that in melanoma histopathology, there almost never is. This project investigates whether a model can still learn to accurately segment cell nuclei using only a handful of labeled images, by also learning from a larger pool of unlabeled ones. Working with the PUMA histopathology dataset, a U-Net segmentation baseline reached 0.91 Dice under full supervision, closely matching the benchmark reported in the target research lab's own published work (Akbarpour et al., J. Imaging 11(8):274, 2025). Four distinct semi-supervised learning techniques were then implemented and rigorously compared against that matched supervised baseline under simulated label scarcity.

Key features

  • U-Net supervised baseline on the PUMA dataset (205 annotated images), reaching 0.91 Dice — within 1.2 points of the benchmark paper's 0.916
  • Four semi-supervised techniques compared under matched conditions: Mean Teacher consistency regularization, a semi-supervised GAN, autoencoder pretraining, and confidence-based pseudo-labeling
  • Simulated label scarcity at 15 and 40 labeled images, with every method benchmarked against the same supervised baseline at each label count
  • GAN-based SSL reaching near-parity with full supervision using only 15 labeled images (0.869 vs. 0.870 Dice)
  • A follow-up domain-diversity experiment using real out-of-domain histopathology data sourced from the public TCGA-SKCM archive via the NIH GDC API

Architecture & engineering decisions

01

U-Net segmentation backbone shared across the supervised baseline and all four semi-supervised variants, so comparisons isolate the SSL method rather than the architecture

02

Mean Teacher branch: a slower-moving teacher network whose predictions on augmented unlabeled patches supervise the student via a consistency loss

03

Semi-supervised GAN branch: a discriminator trained to distinguish real segmentation masks from generated ones, providing an additional training signal from unlabeled images

04

Autoencoder pretraining branch: an encoder pretrained to reconstruct unlabeled tissue patches, then fine-tuned for segmentation

05

Pseudo-labeling branch: confidence-gated pseudo-masks generated on unlabeled patches and folded back into training

06

A domain-diversity ablation pulling real out-of-domain melanoma histopathology from TCGA-SKCM via the NIH GDC API, to isolate the effect of unlabeled-data diversity from unlabeled-data quantity

Challenges & how I solved them

A promising SSL method stalled well below the supervised baseline in one setting, with no obvious bug in the implementation

Traced the stall to insufficient diversity in the unlabeled pool rather than a modeling flaw, and tested that diagnosis directly by sourcing real out-of-domain histopathology data from TCGA-SKCM via the NIH GDC API — which partially closed the gap under controlled ablation, confirming the diagnosis without overclaiming a fix.

Comparing four SSL methods fairly, rather than letting each look strongest under its own best-case setup

Held the backbone, label counts (15 and 40), and evaluation protocol identical across all four methods and the supervised baseline, so the comparison reflects the method itself rather than incidental tuning differences.

Validating the supervised baseline against a benchmark from a different lab's dataset and pipeline

Reproduced a U-Net baseline on PUMA and compared directly against Akbarpour et al.'s published Dice score, landing within 1.2 points — close enough to trust the baseline as a fair reference point for the SSL comparison that followed.

Lessons learned

  • A near-parity result at 15 labeled images (0.869 vs. 0.870 Dice) is the headline, but the real finding is that GAN-based SSL was the only one of four methods to get there — the other three didn't close the gap at the same label count.
  • Diagnosing a stalled result as a data problem rather than a modeling problem only meant something once it was tested against real out-of-domain data, not just asserted.

Stack

Python
PyTorch
U-Net
Supervised baseline (U-Net)0.91 Dice
GAN-based SSL at 15 labels0.869 Dice (near-parity)
DatasetPUMA · 205 annotated images
RoleML Research Engineer
Year2026