anomaly_pro — SPC anomaly_eval op

• Data kinds: video × video → table

• Call: import fullseye as fs; fs.ledger.anomaly_pro(scores, masks, fpr_max=0.3) (to call the implementation directly, import anomeval; anomeval.anomaly_pro(scores, masks, fpr_max=0.3); from the registry, opsspc.get("anomaly_pro"))

Usage

Per-region overlap (PRO) curve and its normalised area AUPRO up to fpr_max (table).

Definition (Bergmann et al., CVPR 2020): at a threshold t, every 8-connected defect region C of every mask scores |{score >= t} ∩ C| / |C|; PRO(t) is the mean over all regions, so a small defect weighs as much as a large one. FPR(t) is the fraction of all good pixels with score >= t. The curve is evaluated exactly at every distinct score (sorted cumulative sums, no threshold grid), starts at (0, 0), is integrated by the trapezoid rule up to fpr_max (the customary 0.3; linear interpolation at the cut) and divided by fpr_max → aupro in [0, 1]. Returns aupro, fpr / pro (the curve up to the cut), n_regions, fpr_max.

Raises ValueError on empty / mismatched / non-finite input, non-binary masks, no defect region, no good pixel, or fpr_max outside (0, 1].

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)

• anomaly_eval_metrics — py -3.11 examples/anomaly_eval_metrics.py

• poc_good_sample_variation_model — py -3.11 examples/poc_good_sample_variation_model.py

• poc_patch_anomaly — py -3.11 examples/poc_patch_anomaly.py

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

msa_anova_table · msa_gauge_rr · msa_bias_linearity · msa_attribute_agreement · gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo

Same category (anomaly_eval)

anomaly_image_auroc · anomaly_pixel_auroc · anomaly_region_overlap · anomaly_pixel_f1_max · anomaly_image_f1_max · anomaly_operating_point


*Provenance: anomeval.py — SPC 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.