seg_under_over_segmentation — SEGMENTATION score op

• Data kinds: labels2d × labels2d → table

• Call: import fullseye as fs; fs.ledger.seg_under_over_segmentation(labels_pred, labels_true, *, background: 'int' = 0) -> 'Dict[str, object]' (to call the implementation directly, import segeval; segeval.seg_under_over_segmentation(labels_pred, labels_true, *, background: 'int' = 0) -> 'Dict[str, object]'; from the registry, opssegmentation.get("seg_under_over_segmentation"))

Usage

Counts over- and under-segmentation as the multiplicity of the contingency-table majority vote (Levine & Nazif style) (seg_under_over_segmentation).

Each prediction (other than background) is assigned to the true object it overlaps most (background is also a candidate). The number k_i of predictions assigned to true i is pieces_per_true, over = Σ max(k_i − 1, 0) (into how many pieces 1 true object was split). Each true object is assigned to the prediction it overlaps most, and the number m_j of true objects assigned to prediction j is objects_per_pred, under = Σ max(m_j − 1, 0) (how many true objects 1 prediction swallowed). Predictions assigned to background count as spurious (false), true objects assigned to background as missed (missing).

Returns: over, under, spurious, missed, labels_true / pieces_per_true, labels_pred / objects_per_pred, over_segmented_true (true labels with k ≥ 2), under_segmented_pred (predicted labels with m ≥ 2).

Detailed usage guide

• halcon_segmentation family guide

Background guides (the physics and conventions behind this op)

• segmentation_scoring_and_worlds — Scoring segmentations and synthetic worlds with ground truth — which metric is blind to which failure

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_graph_hierarchy_segmentation — py -3.11 examples/poc_graph_hierarchy_segmentation.py

Ops the type connects to (they accept table as input)

class_ndim_norm

Same category (score)

seg_confusion_table · seg_dice_jaccard · seg_boundary_f · seg_hausdorff · seg_mean_surface_distance · seg_object_counts_match · seg_score_card


*Provenance: segeval.py — SEGMENTATION operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.