From 63ee07fe610c65488a977f2603ee6ab96a375760 Mon Sep 17 00:00:00 2001 From: jungfrau Date: Sun, 25 Oct 2026 09:48:20 +0100 Subject: [PATCH] a gold outline the reviewer kept from the model's proposal is not judged 454 of the 1 029 gold outlines are a proposal kept unchanged (loop 159 of 317, pin 140 of 224, face 140 of 295, crystal 14 of 149): the pre-labelling model's own masks. The evaluation now ignores them object by object for every model, like a crowd region: they leave the gold, and an unmatched prediction on one of them is not a false alarm. tools/gold_kept.py finds them against the studio's batch proposals (mask IoU >= 0.98) and writes data/gold/kept_machine.json; evaluate_image, evaluate_dirs and gate_stats.per_frame read it. With it, the frame-level exclusion of 845bd87 is no longer applied (it stays as the fallback without the file), so the gold set can grow with frames the active model pre-labelled. Every registry model is measured again on this basis and the three v5 runs are re-gated, without promotion. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_013uu3Bxsu5JqFhaWa9Ftu6z --- data/gold/kept_machine.json | 892 ++++ .../gold_report.json | 89 +- .../gold_report.json | 91 +- .../gold_report.json | 91 +- .../gold_report.json | 89 +- .../gold_report.json | 91 +- .../gold_report.json | 89 +- .../gold_report.json | 95 +- .../gold_report.json | 89 +- .../gold_report.json | 91 +- .../gold_report.json | 93 +- .../gold_report.json | 91 +- .../gold_report.json | 97 +- .../gold_report.json | 131 +- .../metadata.json | 52 +- .../gold_report.json | 96 +- .../gold_report.json | 125 +- .../metadata.json | 50 +- .../gold_report.json | 93 +- .../gold_report.json | 92 +- .../gold_report.json | 125 +- .../metadata.json | 54 +- runs/2026-10-22_v5-noflip-mask1/metrics.json | 52 +- runs/2026-10-22_v5-noflip-mask1/run.json | 26 +- runs/2026-10-23_v5-n-1024px/metrics.json | 54 +- runs/2026-10-23_v5-n-1024px/run.json | 26 +- .../2026-10-23_v5-s-noflip-mask1/metrics.json | 56 +- runs/2026-10-23_v5-s-noflip-mask1/run.json | 30 +- runs/README.md | 15 +- runs/clean_gold_comparison.json | 4690 +++++++++-------- src/eval/evaluate.py | 10 +- src/eval/metrics.py | 26 +- src/eval/yolo_labels.py | 16 +- tests/test_metrics_ignore.py | 32 + tools/compare_unseen.py | 17 +- tools/gate_stats.py | 11 +- tools/gold_kept.py | 101 + tools/train_run.py | 5 +- 38 files changed, 4800 insertions(+), 3173 deletions(-) create mode 100644 data/gold/kept_machine.json create mode 100644 tests/test_metrics_ignore.py create mode 100644 tools/gold_kept.py diff --git a/data/gold/kept_machine.json b/data/gold/kept_machine.json new file mode 100644 index 00000000..a6edc2ad --- /dev/null +++ b/data/gold/kept_machine.json @@ -0,0 +1,892 @@ +{ + "built": "2026-10-25T09:43:48", + "frames": { + "tpi_10130": [ + 1 + ], + "tpi_14689": [ + 0, + 1, + 2 + ], + "tpi_16092": [ + 0, + 1 + ], + "tpi_16223": [ + 0 + ], + "tpi_16235": [ + 0, + 1 + ], + "tpi_16252": [ + 0, + 1, + 2 + ], + "tpi_16321": [ + 0, + 1, + 2 + ], + "tpi_16325": [ + 0, + 1 + ], + "tpi_16361": [ + 0 + ], + "tpi_16956": [ + 0 + ], + "tpi_17889": [ + 0 + ], + "tpi_24512": [ + 0, + 1, + 2 + ], + "tpi_2869": [ + 0, + 1 + ], + "tpi_31669": [ + 0 + ], + "tpi_31928": [ + 0 + ], + "tpi_32422": [ + 0, + 1, + 2 + ], + "tpi_32690": [ + 0, + 1, + 2 + ], + "tpi_32762": [ + 0, + 1, + 2 + ], + "tpi_33849": [ + 1, + 2 + ], + "tpi_34038": [ + 0, + 1, + 2 + ], + "tpi_34389": [ + 0, + 1 + ], + "tpi_36563": [ + 1, + 2 + ], + "tpi_44119": [ + 0, + 1, + 2 + ], + "tpi_45649": [ + 0 + ], + "tpi_46469": [ + 0, + 1, + 2 + ], + "tpi_48284": [ + 0 + ], + "tpi_48572": [ + 0 + ], + "tpi_48994": [ + 0, + 1 + ], + "tpi_49039": [ + 0, + 1, + 2, + 3 + ], + "tpi_50822": [ + 0, + 1, + 2 + ], + "tpi_51387": [ + 0, + 1, + 2 + ], + "tpi_51699": [ + 0, + 1, + 2 + ], + "tpi_51773": [ + 0, + 1, + 2 + ], + "tpi_52248": [ + 0, + 1 + ], + "tpi_52402": [ + 0, + 1 + ], + "tpi_53961": [ + 0, + 1, + 2 + ], + "tpi_5421": [ + 0 + ], + "tpi_54266": [ + 0, + 1 + ], + "tpi_54621": [ + 0 + ], + "tpi_55277": [ + 0, + 1, + 2 + ], + "tpi_55303": [ + 0, + 1 + ], + "tpi_55371": [ + 0, + 1 + ], + "tpi_55383": [ + 0 + ], + "tpi_55408": [ + 0, + 1, + 2 + ], + "tpi_55416": [ + 0, + 1, + 2 + ], + "tpi_55896": [ + 2 + ], + "tpi_55912": [ + 0 + ], + "tpi_56012": [ + 0 + ], + "tpi_56096": [ + 0 + ], + "tpi_56104": [ + 0 + ], + "tpi_56717": [ + 0 + ], + "tpi_56840": [ + 0, + 1, + 2 + ], + "tpi_57300": [ + 0 + ], + "tpi_57342": [ + 0, + 1, + 2 + ], + "tpi_57684": [ + 0 + ], + "tpi_57702": [ + 1 + ], + "tpi_57991": [ + 0 + ], + "tpi_59080": [ + 0 + ], + "tpi_59496": [ + 0 + ], + "tpi_59564": [ + 0 + ], + "tpi_59868": [ + 0, + 1 + ], + "tpi_59935": [ + 0 + ], + "tpi_59988": [ + 0, + 1 + ], + "tpi_60116": [ + 0, + 1 + ], + "tpi_60129": [ + 0 + ], + "tpi_60568": [ + 0, + 1, + 2 + ], + "tpi_60625": [ + 0, + 1 + ], + "tpi_60637": [ + 0, + 1, + 2 + ], + "tpi_61066": [ + 0, + 1, + 2 + ], + "tpi_61069": [ + 0, + 1, + 2 + ], + "tpi_61087": [ + 0 + ], + "tpi_61136": [ + 0, + 1, + 2 + ], + "tpi_61317": [ + 0 + ], + "tpi_61327": [ + 0 + ], + "tpi_61334": [ + 0 + ], + "tpi_61343": [ + 0 + ], + "tpi_61344": [ + 0, + 1, + 2 + ], + "tpi_61358": [ + 0, + 1, + 2 + ], + "tpi_61361": [ + 0 + ], + "tpi_61364": [ + 0, + 1, + 2 + ], + "tpi_61372": [ + 0 + ], + "tpi_61374": [ + 0, + 1, + 2 + ], + "tpi_61379": [ + 0, + 1, + 2 + ], + "tpi_61380": [ + 0, + 1 + ], + "tpi_61381": [ + 0, + 1, + 2 + ], + "tpi_61385": [ + 0, + 1 + ], + "tpi_61392": [ + 0, + 1 + ], + "tpi_61411": [ + 0, + 1, + 2 + ], + "tpi_61419": [ + 0, + 1, + 2 + ], + "tpi_61430": [ + 0, + 1 + ], + "tpi_61439": [ + 0 + ], + "tpi_61441": [ + 0, + 1, + 2 + ], + "tpi_61442": [ + 0, + 1, + 2 + ], + "tpi_61443": [ + 0, + 1, + 2 + ], + "tpi_61445": [ + 0 + ], + "tpi_61447": [ + 0 + ], + "tpi_61449": [ + 0 + ], + "tpi_61452": [ + 0, + 1, + 2 + ], + "tpi_61457": [ + 0, + 1, + 2 + ], + "tpi_61565": [ + 0 + ], + "tpi_61572": [ + 0 + ], + "tpi_61579": [ + 0 + ], + "tpi_61581": [ + 0, + 1 + ], + "tpi_61594": [ + 0, + 1 + ], + "tpi_61610": [ + 0, + 1, + 2 + ], + "tpi_61613": [ + 0 + ], + "tpi_61627": [ + 0 + ], + "tpi_61651": [ + 0 + ], + "tpi_61670": [ + 0 + ], + "tpi_61702": [ + 0, + 1, + 2 + ], + "tpi_61769": [ + 0 + ], + "tpi_61839": [ + 0 + ], + "tpi_61865": [ + 0, + 1 + ], + "tpi_62017": [ + 0, + 1 + ], + "tpi_62033": [ + 0, + 1, + 2 + ], + "tpi_62361": [ + 0, + 1 + ], + "tpi_62413": [ + 0, + 1 + ], + "tpi_62598": [ + 0 + ], + "tpi_62617": [ + 0, + 1, + 2 + ], + "tpi_62621": [ + 0, + 1 + ], + "tpi_62622": [ + 0, + 1, + 2 + ], + "tpi_62623": [ + 0, + 1, + 2 + ], + "tpi_62631": [ + 0, + 1, + 2 + ], + "tpi_62634": [ + 0, + 2 + ], + "tpi_62640": [ + 0, + 1 + ], + "tpi_62645": [ + 0, + 1, + 2 + ], + "tpi_62646": [ + 0, + 1 + ], + "tpi_62649": [ + 0, + 1 + ], + "tpi_62656": [ + 0, + 1 + ], + "tpi_62669": [ + 0, + 1, + 2 + ], + "tpi_62682": [ + 0, + 1, + 2 + ], + "tpi_62692": [ + 0, + 1, + 2 + ], + "tpi_62697": [ + 0, + 1, + 2 + ], + "tpi_62700": [ + 0 + ], + "tpi_62703": [ + 0, + 1, + 2 + ], + "tpi_62711": [ + 0, + 1 + ], + "tpi_62717": [ + 0, + 1 + ], + "tpi_62718": [ + 0, + 1, + 2 + ], + "tpi_62719": [ + 0, + 1, + 2 + ], + "tpi_62720": [ + 0, + 1, + 2 + ], + "tpi_62739": [ + 0, + 2 + ], + "tpi_62740": [ + 0, + 1 + ], + "tpi_62742": [ + 0, + 1, + 2 + ], + "tpi_62745": [ + 0, + 1, + 2 + ], + "tpi_62746": [ + 0, + 1, + 2 + ], + "tpi_62747": [ + 0, + 1 + ], + "tpi_62749": [ + 0, + 1, + 2 + ], + "tpi_62751": [ + 0, + 1 + ], + "tpi_62754": [ + 0, + 1, + 2 + ], + "tpi_62755": [ + 0, + 1 + ], + "tpi_62756": [ + 0, + 1, + 2 + ], + "tpi_62757": [ + 0, + 1 + ], + "tpi_62758": [ + 0, + 1, + 2 + ], + "tpi_62759": [ + 0, + 1, + 2 + ], + "tpi_62760": [ + 0, + 1 + ], + "tpi_62761": [ + 0, + 1 + ], + "tpi_62762": [ + 0, + 1, + 2 + ], + "tpi_62763": [ + 0, + 1, + 2 + ], + "tpi_62764": [ + 0, + 1 + ], + "tpi_62766": [ + 0, + 1, + 2 + ], + "tpi_62767": [ + 0, + 1, + 2 + ], + "tpi_62768": [ + 0, + 1 + ], + "tpi_62769": [ + 0, + 1, + 2 + ], + "tpi_62772": [ + 0 + ], + "tpi_62773": [ + 0, + 1 + ], + "tpi_62775": [ + 0, + 1 + ], + "tpi_62776": [ + 0, + 1, + 2 + ], + "tpi_62910": [ + 0, + 1, + 2 + ], + "tpi_62927": [ + 0, + 1, + 2 + ], + "tpi_62928": [ + 0, + 1, + 2 + ], + "tpi_62965": [ + 0, + 1, + 2 + ], + "tpi_63041": [ + 0, + 1 + ], + "tpi_63202": [ + 0, + 1 + ], + "tpi_63206": [ + 0, + 1, + 2 + ], + "tpi_63207": [ + 0, + 1, + 2 + ], + "tpi_63223": [ + 0, + 1 + ], + "tpi_63226": [ + 0, + 1, + 2 + ], + "tpi_63228": [ + 0, + 1 + ], + "tpi_63234": [ + 0, + 1 + ], + "tpi_63239": [ + 0, + 1 + ], + "tpi_63376": [ + 0, + 1, + 2 + ], + "tpi_63389": [ + 0, + 1, + 2 + ], + "tpi_63390": [ + 0, + 1, + 2, + 3 + ], + "tpi_63416": [ + 0, + 1, + 2 + ], + "tpi_63420": [ + 0, + 1, + 2, + 3 + ], + "tpi_63426": [ + 0, + 1, + 2 + ], + "tpi_63434": [ + 0, + 1 + ], + "tpi_63436": [ + 0, + 1, + 2 + ], + "tpi_63461": [ + 0 + ], + "tpi_63463": [ + 0, + 1, + 2 + ], + "tpi_63479": [ + 0, + 1 + ], + "tpi_63481": [ + 0, + 1, + 2, + 3 + ], + "tpi_63484": [ + 0, + 1 + ], + "tpi_63490": [ + 0, + 1 + ], + "tpi_63492": [ + 0, + 1 + ], + "tpi_63516": [ + 0, + 1 + ], + "tpi_63517": [ + 0 + ], + "tpi_63518": [ + 0, + 1 + ], + "tpi_63522": [ + 0, + 1 + ], + "tpi_63535": [ + 0, + 1, + 2 + ], + "tpi_63540": [ + 0, + 1, + 2, + 3 + ], + "tpi_63546": [ + 0, + 1 + ], + "tpi_63548": [ + 0, + 1, + 2 + ], + "tpi_63554": [ + 0, + 1, + 2 + ], + "tpi_8285": [ + 0, + 1, + 2 + ], + "tpi_8378": [ + 0 + ], + "tpi_8507": [ + 0 + ] + }, + "gold_by_class": { + "crystal": 149, + "ice": 43, + "loop_all": 317, + "loop_face": 295, + "needle": 1, + "pin": 224 + }, + "gold_frames": 335, + "iou": 0.98, + "kept_by_class": { + "crystal": 14, + "ice": 1, + "loop_all": 159, + "loop_face": 140, + "pin": 140 + }, + "source": "/home/jungfrau/AareLC_studio/data/pipeline_prod", + "with_a_proposal": 265 +} diff --git a/models/registry/yolo26n-seg-alc-v1-2026-09-28/gold_report.json b/models/registry/yolo26n-seg-alc-v1-2026-09-28/gold_report.json index 17cdfbb1..b6b60174 100644 --- a/models/registry/yolo26n-seg-alc-v1-2026-09-28/gold_report.json +++ b/models/registry/yolo26n-seg-alc-v1-2026-09-28/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 296, - "fp": 30, - "fn": 21, - "precision": 0.9079754601226994, - "recall": 0.9337539432176656, - "f1": 0.9206842923794711, - "mean_mask_iou": 0.9073751532898063, - "n_matched": 296 + "tp": 143, + "fp": 29, + "fn": 15, + "precision": 0.8313953488372093, + "recall": 0.9050632911392406, + "f1": 0.8666666666666667, + "mean_mask_iou": 0.8674415312015792, + "n_matched": 143 }, "pin": { - "tp": 210, - "fp": 31, - "fn": 14, - "precision": 0.8713692946058091, - "recall": 0.9375, - "f1": 0.9032258064516129, - "mean_mask_iou": 0.9251018239521286, - "n_matched": 210 + "tp": 72, + "fp": 28, + "fn": 12, + "precision": 0.72, + "recall": 0.8571428571428571, + "f1": 0.782608695652174, + "mean_mask_iou": 0.9005936416376064, + "n_matched": 72 }, "crystal": { - "tp": 63, + "tp": 59, "fp": 60, - "fn": 86, - "precision": 0.5121951219512195, - "recall": 0.4228187919463087, - "f1": 0.4632352941176471, - "mean_mask_iou": 0.7350608356484347, - "n_matched": 63 + "fn": 76, + "precision": 0.4957983193277311, + "recall": 0.43703703703703706, + "f1": 0.4645669291338583, + "mean_mask_iou": 0.7375392182625371, + "n_matched": 59 }, "loop_face": { - "tp": 242, - "fp": 57, - "fn": 53, - "precision": 0.8093645484949833, - "recall": 0.8203389830508474, - "f1": 0.8148148148148148, - "mean_mask_iou": 0.8947509538634725, - "n_matched": 242 + "tp": 116, + "fp": 53, + "fn": 39, + "precision": 0.6863905325443787, + "recall": 0.7483870967741936, + "f1": 0.7160493827160493, + "mean_mask_iou": 0.8449184154775634, + "n_matched": 116 }, "ice": { "tp": 4, "fp": 14, - "fn": 39, + "fn": 38, "precision": 0.2222222222222222, - "recall": 0.09302325581395349, - "f1": 0.13114754098360654, + "recall": 0.09523809523809523, + "f1": 0.13333333333333333, "mean_mask_iou": 0.8004176972482764, "n_matched": 4 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 815, - "fp": 192, - "fn": 214, - "precision": 0.8093346573982125, - "recall": 0.7920310981535471, - "f1": 0.8005893909626718, - "mean_mask_iou": 0.89434927935403, - "n_matched": 815 + "tp": 394, + "fp": 184, + "fn": 181, + "precision": 0.6816608996539792, + "recall": 0.6852173913043478, + "f1": 0.6834345186470078, + "mean_mask_iou": 0.8467357919330295, + "n_matched": 394 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-2026-09-28/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:38:35" + "measured_at": "2026-10-25T09:45:18" } diff --git a/models/registry/yolo26n-seg-alc-v1-800px-2026-09-29/gold_report.json b/models/registry/yolo26n-seg-alc-v1-800px-2026-09-29/gold_report.json index 943c94b9..e146e4d6 100644 --- a/models/registry/yolo26n-seg-alc-v1-800px-2026-09-29/gold_report.json +++ b/models/registry/yolo26n-seg-alc-v1-800px-2026-09-29/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 301, - "fp": 46, - "fn": 16, - "precision": 0.8674351585014409, - "recall": 0.9495268138801262, - "f1": 0.9066265060240963, - "mean_mask_iou": 0.9106655381480923, - "n_matched": 301 + "tp": 147, + "fp": 41, + "fn": 11, + "precision": 0.7819148936170213, + "recall": 0.930379746835443, + "f1": 0.8497109826589595, + "mean_mask_iou": 0.8807960658528784, + "n_matched": 147 }, "pin": { - "tp": 205, - "fp": 23, - "fn": 19, - "precision": 0.8991228070175439, - "recall": 0.9151785714285714, - "f1": 0.9070796460176992, - "mean_mask_iou": 0.9271949529032009, - "n_matched": 205 + "tp": 70, + "fp": 19, + "fn": 14, + "precision": 0.7865168539325843, + "recall": 0.8333333333333334, + "f1": 0.8092485549132948, + "mean_mask_iou": 0.9075385327840141, + "n_matched": 70 }, "crystal": { - "tp": 68, - "fp": 79, - "fn": 81, - "precision": 0.46258503401360546, - "recall": 0.4563758389261745, - "f1": 0.45945945945945943, - "mean_mask_iou": 0.7521428721132434, - "n_matched": 68 + "tp": 64, + "fp": 78, + "fn": 71, + "precision": 0.4507042253521127, + "recall": 0.4740740740740741, + "f1": 0.46209386281588444, + "mean_mask_iou": 0.7550301651989408, + "n_matched": 64 }, "loop_face": { - "tp": 231, - "fp": 54, - "fn": 64, - "precision": 0.8105263157894737, - "recall": 0.7830508474576271, - "f1": 0.796551724137931, - "mean_mask_iou": 0.9043612742080045, - "n_matched": 231 + "tp": 105, + "fp": 47, + "fn": 50, + "precision": 0.6907894736842105, + "recall": 0.6774193548387096, + "f1": 0.6840390879478827, + "mean_mask_iou": 0.8603735901165422, + "n_matched": 105 }, "ice": { "tp": 3, "fp": 6, - "fn": 40, + "fn": 39, "precision": 0.3333333333333333, - "recall": 0.06976744186046512, - "f1": 0.11538461538461539, + "recall": 0.07142857142857142, + "f1": 0.11764705882352941, "mean_mask_iou": 0.9028650216500921, "n_matched": 3 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 808, - "fp": 208, - "fn": 221, - "precision": 0.7952755905511811, - "recall": 0.7852283770651117, - "f1": 0.7902200488997555, - "mean_mask_iou": 0.8996869517802373, - "n_matched": 808 + "tp": 389, + "fp": 191, + "fn": 186, + "precision": 0.6706896551724137, + "recall": 0.6765217391304348, + "f1": 0.6735930735930735, + "mean_mask_iou": 0.8595744770570013, + "n_matched": 389 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-800px-2026-09-29/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:38:43" + "measured_at": "2026-10-25T09:45:26" } diff --git a/models/registry/yolo26n-seg-alc-v1-humanonly-2026-09-28/gold_report.json b/models/registry/yolo26n-seg-alc-v1-humanonly-2026-09-28/gold_report.json index ea039073..66f8b300 100644 --- a/models/registry/yolo26n-seg-alc-v1-humanonly-2026-09-28/gold_report.json +++ b/models/registry/yolo26n-seg-alc-v1-humanonly-2026-09-28/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 297, - "fp": 28, - "fn": 20, - "precision": 0.9138461538461539, - "recall": 0.9369085173501577, - "f1": 0.9252336448598131, - "mean_mask_iou": 0.9095758214023709, - "n_matched": 297 + "tp": 145, + "fp": 26, + "fn": 13, + "precision": 0.847953216374269, + "recall": 0.9177215189873418, + "f1": 0.8814589665653495, + "mean_mask_iou": 0.8662224294961051, + "n_matched": 145 }, "pin": { - "tp": 211, - "fp": 22, - "fn": 13, - "precision": 0.9055793991416309, - "recall": 0.9419642857142857, - "f1": 0.9234135667396062, - "mean_mask_iou": 0.918075781649843, - "n_matched": 211 + "tp": 72, + "fp": 20, + "fn": 12, + "precision": 0.782608695652174, + "recall": 0.8571428571428571, + "f1": 0.8181818181818182, + "mean_mask_iou": 0.9004199640700032, + "n_matched": 72 }, "crystal": { - "tp": 73, - "fp": 80, - "fn": 76, - "precision": 0.477124183006536, - "recall": 0.4899328859060403, - "f1": 0.48344370860927155, - "mean_mask_iou": 0.7356274524847086, - "n_matched": 73 + "tp": 68, + "fp": 79, + "fn": 67, + "precision": 0.46258503401360546, + "recall": 0.5037037037037037, + "f1": 0.4822695035460993, + "mean_mask_iou": 0.7430181470498084, + "n_matched": 68 }, "loop_face": { - "tp": 240, - "fp": 47, - "fn": 55, - "precision": 0.8362369337979094, - "recall": 0.8135593220338984, - "f1": 0.8247422680412371, - "mean_mask_iou": 0.8954467214590506, - "n_matched": 240 + "tp": 113, + "fp": 43, + "fn": 42, + "precision": 0.7243589743589743, + "recall": 0.7290322580645161, + "f1": 0.7266881028938906, + "mean_mask_iou": 0.8464124446162589, + "n_matched": 113 }, "ice": { "tp": 5, "fp": 16, - "fn": 38, + "fn": 37, "precision": 0.23809523809523808, - "recall": 0.11627906976744186, - "f1": 0.15625, + "recall": 0.11904761904761904, + "f1": 0.15873015873015875, "mean_mask_iou": 0.7708521231731791, "n_matched": 5 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 826, - "fp": 193, - "fn": 203, - "precision": 0.8105986261040236, - "recall": 0.8027210884353742, - "f1": 0.806640625, - "mean_mask_iou": 0.8914289185012624, - "n_matched": 826 + "tp": 403, + "fp": 184, + "fn": 172, + "precision": 0.686541737649063, + "recall": 0.7008695652173913, + "f1": 0.693631669535284, + "mean_mask_iou": 0.8448054356001627, + "n_matched": 403 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-humanonly-2026-09-28/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:38:51" + "measured_at": "2026-10-25T09:45:33" } diff --git a/models/registry/yolo26n-seg-alc-v1-mask1-2026-09-28/gold_report.json b/models/registry/yolo26n-seg-alc-v1-mask1-2026-09-28/gold_report.json index 4f7b8dae..bcee5b97 100644 --- a/models/registry/yolo26n-seg-alc-v1-mask1-2026-09-28/gold_report.json +++ b/models/registry/yolo26n-seg-alc-v1-mask1-2026-09-28/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 303, - "fp": 47, - "fn": 14, - "precision": 0.8657142857142858, - "recall": 0.9558359621451105, - "f1": 0.9085457271364318, - "mean_mask_iou": 0.9069670864361529, - "n_matched": 303 + "tp": 147, + "fp": 44, + "fn": 11, + "precision": 0.7696335078534031, + "recall": 0.930379746835443, + "f1": 0.8424068767908309, + "mean_mask_iou": 0.8678916321179074, + "n_matched": 147 }, "pin": { - "tp": 204, - "fp": 21, - "fn": 20, - "precision": 0.9066666666666666, - "recall": 0.9107142857142857, - "f1": 0.9086859688195991, - "mean_mask_iou": 0.9359407329356912, - "n_matched": 204 + "tp": 68, + "fp": 20, + "fn": 16, + "precision": 0.7727272727272727, + "recall": 0.8095238095238095, + "f1": 0.7906976744186046, + "mean_mask_iou": 0.9136319159785413, + "n_matched": 68 }, "crystal": { - "tp": 52, + "tp": 46, "fp": 47, - "fn": 97, - "precision": 0.5252525252525253, - "recall": 0.348993288590604, - "f1": 0.41935483870967744, - "mean_mask_iou": 0.7462760360786713, - "n_matched": 52 + "fn": 89, + "precision": 0.4946236559139785, + "recall": 0.34074074074074073, + "f1": 0.4035087719298245, + "mean_mask_iou": 0.7437556227192347, + "n_matched": 46 }, "loop_face": { - "tp": 252, - "fp": 52, - "fn": 43, - "precision": 0.8289473684210527, - "recall": 0.8542372881355932, - "f1": 0.8414023372287145, - "mean_mask_iou": 0.8995485516679328, - "n_matched": 252 + "tp": 118, + "fp": 48, + "fn": 37, + "precision": 0.7108433734939759, + "recall": 0.7612903225806451, + "f1": 0.735202492211838, + "mean_mask_iou": 0.8528360467721436, + "n_matched": 118 }, "ice": { "tp": 4, "fp": 10, - "fn": 39, + "fn": 38, "precision": 0.2857142857142857, - "recall": 0.09302325581395349, - "f1": 0.14035087719298245, + "recall": 0.09523809523809523, + "f1": 0.14285714285714285, "mean_mask_iou": 0.8357625526706466, "n_matched": 4 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 815, - "fp": 177, - "fn": 214, - "precision": 0.8215725806451613, - "recall": 0.7920310981535471, - "f1": 0.8065314200890649, - "mean_mask_iou": 0.9013234059093594, - "n_matched": 815 + "tp": 383, + "fp": 169, + "fn": 192, + "precision": 0.6938405797101449, + "recall": 0.6660869565217391, + "f1": 0.6796805678793256, + "mean_mask_iou": 0.8561292495633251, + "n_matched": 383 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-mask1-2026-09-28/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:38:59" + "measured_at": "2026-10-25T09:45:41" } diff --git a/models/registry/yolo26n-seg-alc-v1-noflip-2026-09-28/gold_report.json b/models/registry/yolo26n-seg-alc-v1-noflip-2026-09-28/gold_report.json index ae628250..8c05ed9b 100644 --- a/models/registry/yolo26n-seg-alc-v1-noflip-2026-09-28/gold_report.json +++ b/models/registry/yolo26n-seg-alc-v1-noflip-2026-09-28/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 301, - "fp": 35, - "fn": 16, - "precision": 0.8958333333333334, - "recall": 0.9495268138801262, - "f1": 0.9218989280245022, - "mean_mask_iou": 0.9062259909805817, - "n_matched": 301 + "tp": 147, + "fp": 33, + "fn": 11, + "precision": 0.8166666666666667, + "recall": 0.930379746835443, + "f1": 0.8698224852071006, + "mean_mask_iou": 0.8655259237412337, + "n_matched": 147 }, "pin": { - "tp": 208, - "fp": 24, - "fn": 16, - "precision": 0.896551724137931, - "recall": 0.9285714285714286, - "f1": 0.912280701754386, - "mean_mask_iou": 0.9247143441757603, - "n_matched": 208 + "tp": 71, + "fp": 21, + "fn": 13, + "precision": 0.7717391304347826, + "recall": 0.8452380952380952, + "f1": 0.8068181818181818, + "mean_mask_iou": 0.8996192482083158, + "n_matched": 71 }, "crystal": { - "tp": 59, - "fp": 54, - "fn": 90, - "precision": 0.5221238938053098, - "recall": 0.3959731543624161, - "f1": 0.450381679389313, - "mean_mask_iou": 0.7515763531776168, - "n_matched": 59 + "tp": 55, + "fp": 53, + "fn": 80, + "precision": 0.5092592592592593, + "recall": 0.4074074074074074, + "f1": 0.45267489711934156, + "mean_mask_iou": 0.7579461585093508, + "n_matched": 55 }, "loop_face": { - "tp": 255, - "fp": 62, - "fn": 40, - "precision": 0.804416403785489, - "recall": 0.864406779661017, - "f1": 0.8333333333333334, - "mean_mask_iou": 0.8987716581416572, - "n_matched": 255 + "tp": 121, + "fp": 56, + "fn": 34, + "precision": 0.6836158192090396, + "recall": 0.7806451612903226, + "f1": 0.7289156626506025, + "mean_mask_iou": 0.8493116285087041, + "n_matched": 121 }, "ice": { "tp": 3, "fp": 7, - "fn": 40, + "fn": 39, "precision": 0.3, - "recall": 0.06976744186046512, - "f1": 0.11320754716981132, + "recall": 0.07142857142857142, + "f1": 0.11538461538461536, "mean_mask_iou": 0.7530200271235444, "n_matched": 3 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 826, - "fp": 182, - "fn": 203, - "precision": 0.8194444444444444, - "recall": 0.8027210884353742, - "f1": 0.8109965635738832, - "mean_mask_iou": 0.8969775358579729, - "n_matched": 826 + "tp": 397, + "fp": 170, + "fn": 178, + "precision": 0.7001763668430335, + "recall": 0.6904347826086956, + "f1": 0.6952714535901927, + "mean_mask_iou": 0.8509271618682365, + "n_matched": 397 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-noflip-2026-09-28/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:07" + "measured_at": "2026-10-25T09:45:49" } diff --git a/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/gold_report.json b/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/gold_report.json index 310b8eb9..910528e1 100644 --- a/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/gold_report.json +++ b/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 298, - "fp": 38, - "fn": 19, - "precision": 0.8869047619047619, - "recall": 0.9400630914826499, - "f1": 0.9127105666156202, - "mean_mask_iou": 0.9176975714925484, - "n_matched": 298 + "tp": 145, + "fp": 37, + "fn": 13, + "precision": 0.7967032967032966, + "recall": 0.9177215189873418, + "f1": 0.8529411764705882, + "mean_mask_iou": 0.8769675310992452, + "n_matched": 145 }, "pin": { - "tp": 209, - "fp": 29, - "fn": 15, - "precision": 0.8781512605042017, - "recall": 0.9330357142857143, - "f1": 0.9047619047619047, - "mean_mask_iou": 0.9435781234732605, - "n_matched": 209 + "tp": 70, + "fp": 26, + "fn": 14, + "precision": 0.7291666666666666, + "recall": 0.8333333333333334, + "f1": 0.7777777777777777, + "mean_mask_iou": 0.9126956941970581, + "n_matched": 70 }, "crystal": { - "tp": 74, + "tp": 69, "fp": 83, - "fn": 75, - "precision": 0.4713375796178344, - "recall": 0.4966442953020134, - "f1": 0.4836601307189542, - "mean_mask_iou": 0.7637412283661057, - "n_matched": 74 + "fn": 66, + "precision": 0.45394736842105265, + "recall": 0.5111111111111111, + "f1": 0.4808362369337979, + "mean_mask_iou": 0.7589545831684434, + "n_matched": 69 }, "loop_face": { - "tp": 253, - "fp": 64, - "fn": 42, - "precision": 0.7981072555205048, - "recall": 0.8576271186440678, - "f1": 0.8267973856209151, - "mean_mask_iou": 0.907481124159418, - "n_matched": 253 + "tp": 120, + "fp": 54, + "fn": 35, + "precision": 0.6896551724137931, + "recall": 0.7741935483870968, + "f1": 0.729483282674772, + "mean_mask_iou": 0.8574801797985127, + "n_matched": 120 }, "ice": { "tp": 7, "fp": 16, - "fn": 36, + "fn": 35, "precision": 0.30434782608695654, - "recall": 0.16279069767441862, - "f1": 0.21212121212121213, + "recall": 0.16666666666666666, + "f1": 0.2153846153846154, "mean_mask_iou": 0.8089197334873823, "n_matched": 7 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 841, - "fp": 230, - "fn": 188, - "precision": 0.7852474323062558, - "recall": 0.8172983479105929, - "f1": 0.800952380952381, - "mean_mask_iou": 0.906603706963766, - "n_matched": 841 + "tp": 411, + "fp": 216, + "fn": 164, + "precision": 0.6555023923444976, + "recall": 0.7147826086956521, + "f1": 0.6838602329450915, + "mean_mask_iou": 0.8563915244575192, + "n_matched": 411 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:15" + "measured_at": "2026-10-25T09:45:57" } diff --git a/models/registry/yolo26n-seg-overlap-false-2026-04-12/gold_report.json b/models/registry/yolo26n-seg-overlap-false-2026-04-12/gold_report.json index a3dd110e..53b61214 100644 --- a/models/registry/yolo26n-seg-overlap-false-2026-04-12/gold_report.json +++ b/models/registry/yolo26n-seg-overlap-false-2026-04-12/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 271, - "fp": 34, - "fn": 46, - "precision": 0.8885245901639345, - "recall": 0.8548895899053628, - "f1": 0.8713826366559485, - "mean_mask_iou": 0.9178478445187722, - "n_matched": 271 + "tp": 120, + "fp": 32, + "fn": 38, + "precision": 0.7894736842105263, + "recall": 0.759493670886076, + "f1": 0.7741935483870968, + "mean_mask_iou": 0.8686593143838969, + "n_matched": 120 }, "pin": { - "tp": 193, - "fp": 39, - "fn": 31, - "precision": 0.8318965517241379, - "recall": 0.8616071428571429, - "f1": 0.8464912280701755, - "mean_mask_iou": 0.9465569860568435, - "n_matched": 193 + "tp": 60, + "fp": 35, + "fn": 24, + "precision": 0.631578947368421, + "recall": 0.7142857142857143, + "f1": 0.670391061452514, + "mean_mask_iou": 0.9142336983351689, + "n_matched": 60 }, "crystal": { - "tp": 57, + "tp": 54, "fp": 91, - "fn": 92, - "precision": 0.38513513513513514, - "recall": 0.3825503355704698, - "f1": 0.38383838383838387, - "mean_mask_iou": 0.7631099261639591, - "n_matched": 57 + "fn": 81, + "precision": 0.3724137931034483, + "recall": 0.4, + "f1": 0.38571428571428573, + "mean_mask_iou": 0.7631927995812678, + "n_matched": 54 }, "loop_face": { - "tp": 233, - "fp": 72, - "fn": 62, - "precision": 0.7639344262295082, - "recall": 0.7898305084745763, - "f1": 0.7766666666666666, - "mean_mask_iou": 0.921962263303789, - "n_matched": 233 + "tp": 101, + "fp": 59, + "fn": 54, + "precision": 0.63125, + "recall": 0.6516129032258065, + "f1": 0.6412698412698413, + "mean_mask_iou": 0.8756678161736451, + "n_matched": 101 }, "ice": { - "tp": 13, + "tp": 12, "fp": 23, "fn": 30, - "precision": 0.3611111111111111, - "recall": 0.3023255813953488, - "f1": 0.32911392405063294, - "mean_mask_iou": 0.8470510637223766, - "n_matched": 13 + "precision": 0.34285714285714286, + "recall": 0.2857142857142857, + "f1": 0.3116883116883117, + "mean_mask_iou": 0.8346283164485953, + "n_matched": 12 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 767, - "fp": 259, - "fn": 262, - "precision": 0.7475633528265108, - "recall": 0.7453838678328474, - "f1": 0.7464720194647202, - "mean_mask_iou": 0.9136224265229171, - "n_matched": 767 + "tp": 347, + "fp": 240, + "fn": 228, + "precision": 0.5911413969335605, + "recall": 0.6034782608695652, + "f1": 0.5972461273666093, + "mean_mask_iou": 0.8609900289178314, + "n_matched": 347 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_studio/models/best_yolo26n-seg-overlap-false_2026-04-12.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:40:12" + "measured_at": "2026-10-25T09:47:40" } diff --git a/models/registry/yolo26n-seg-v2-recipeA-2026-09-29/gold_report.json b/models/registry/yolo26n-seg-v2-recipeA-2026-09-29/gold_report.json index a60ac3ce..44bc261c 100644 --- a/models/registry/yolo26n-seg-v2-recipeA-2026-09-29/gold_report.json +++ b/models/registry/yolo26n-seg-v2-recipeA-2026-09-29/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 304, - "fp": 40, - "fn": 13, - "precision": 0.8837209302325582, - "recall": 0.9589905362776026, - "f1": 0.9198184568835098, - "mean_mask_iou": 0.8999997153410435, - "n_matched": 304 + "tp": 149, + "fp": 33, + "fn": 9, + "precision": 0.8186813186813187, + "recall": 0.9430379746835443, + "f1": 0.8764705882352942, + "mean_mask_iou": 0.8575752170782032, + "n_matched": 149 }, "pin": { - "tp": 212, - "fp": 33, + "tp": 72, + "fp": 29, "fn": 12, - "precision": 0.8653061224489796, - "recall": 0.9464285714285714, - "f1": 0.9040511727078892, - "mean_mask_iou": 0.9265693926582884, - "n_matched": 212 + "precision": 0.7128712871287128, + "recall": 0.8571428571428571, + "f1": 0.7783783783783783, + "mean_mask_iou": 0.9008857646241738, + "n_matched": 72 }, "crystal": { - "tp": 60, - "fp": 57, - "fn": 89, - "precision": 0.5128205128205128, - "recall": 0.40268456375838924, - "f1": 0.45112781954887216, - "mean_mask_iou": 0.7585980276654778, - "n_matched": 60 + "tp": 55, + "fp": 56, + "fn": 80, + "precision": 0.4954954954954955, + "recall": 0.4074074074074074, + "f1": 0.4471544715447154, + "mean_mask_iou": 0.7581973650603907, + "n_matched": 55 }, "loop_face": { - "tp": 251, - "fp": 76, - "fn": 44, - "precision": 0.7675840978593272, - "recall": 0.8508474576271187, - "f1": 0.8070739549839228, - "mean_mask_iou": 0.8968178309993826, - "n_matched": 251 + "tp": 119, + "fp": 71, + "fn": 36, + "precision": 0.6263157894736842, + "recall": 0.7677419354838709, + "f1": 0.6898550724637681, + "mean_mask_iou": 0.8456455896715827, + "n_matched": 119 }, "ice": { "tp": 8, "fp": 37, - "fn": 35, + "fn": 34, "precision": 0.17777777777777778, - "recall": 0.18604651162790697, - "f1": 0.18181818181818182, + "recall": 0.19047619047619047, + "f1": 0.1839080459770115, "mean_mask_iou": 0.7778219649966538, "n_matched": 8 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 835, - "fp": 243, - "fn": 194, - "precision": 0.774582560296846, - "recall": 0.8114674441205053, - "f1": 0.7925961082107261, - "mean_mask_iou": 0.8944579133748279, - "n_matched": 835 + "tp": 403, + "fp": 226, + "fn": 172, + "precision": 0.6406995230524642, + "recall": 0.7008695652173913, + "f1": 0.6694352159468437, + "mean_mask_iou": 0.8466445120764414, + "n_matched": 403 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v2-recipeA-2026-09-29/weights.pt", "environment": { @@ -83,5 +84,5 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:23" + "measured_at": "2026-10-25T09:46:06" } diff --git a/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json b/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json index 3f0b3aa6..76f17988 100644 --- a/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json +++ b/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 308, - "fp": 33, - "fn": 9, - "precision": 0.9032258064516129, - "recall": 0.9716088328075709, - "f1": 0.9361702127659575, - "mean_mask_iou": 0.9278619630785258, - "n_matched": 308 + "tp": 150, + "fp": 29, + "fn": 8, + "precision": 0.8379888268156425, + "recall": 0.9493670886075949, + "f1": 0.8902077151335311, + "mean_mask_iou": 0.8837871374185333, + "n_matched": 150 }, "pin": { - "tp": 214, - "fp": 19, - "fn": 10, - "precision": 0.9184549356223176, - "recall": 0.9553571428571429, - "f1": 0.936542669584245, - "mean_mask_iou": 0.9456527987011091, - "n_matched": 214 - }, - "crystal": { "tp": 74, - "fp": 60, - "fn": 75, - "precision": 0.5522388059701493, - "recall": 0.4966442953020134, - "f1": 0.5229681978798587, - "mean_mask_iou": 0.766323017315329, + "fp": 18, + "fn": 10, + "precision": 0.8043478260869565, + "recall": 0.8809523809523809, + "f1": 0.8409090909090908, + "mean_mask_iou": 0.9129160323387382, "n_matched": 74 }, + "crystal": { + "tp": 67, + "fp": 60, + "fn": 68, + "precision": 0.5275590551181102, + "recall": 0.4962962962962963, + "f1": 0.5114503816793893, + "mean_mask_iou": 0.7563014436506881, + "n_matched": 67 + }, "loop_face": { - "tp": 267, - "fp": 54, - "fn": 28, - "precision": 0.8317757009345794, - "recall": 0.9050847457627119, - "f1": 0.8668831168831169, - "mean_mask_iou": 0.9131015467260754, - "n_matched": 267 + "tp": 130, + "fp": 50, + "fn": 25, + "precision": 0.7222222222222222, + "recall": 0.8387096774193549, + "f1": 0.7761194029850746, + "mean_mask_iou": 0.8556288501030779, + "n_matched": 130 }, "ice": { "tp": 4, "fp": 19, - "fn": 39, + "fn": 38, "precision": 0.17391304347826086, - "recall": 0.09302325581395349, - "f1": 0.12121212121212122, + "recall": 0.09523809523809523, + "f1": 0.12307692307692307, "mean_mask_iou": 0.7417344288796006, "n_matched": 4 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 867, - "fp": 185, - "fn": 162, - "precision": 0.8241444866920152, - "recall": 0.8425655976676385, - "f1": 0.8332532436328688, - "mean_mask_iou": 0.9130612889537925, - "n_matched": 867 + "tp": 425, + "fp": 176, + "fn": 150, + "precision": 0.7071547420965059, + "recall": 0.7391304347826086, + "f1": 0.7227891156462585, + "mean_mask_iou": 0.8588111575514382, + "n_matched": 425 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/weights.pt", "environment": { @@ -83,7 +84,7 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:30", + "measured_at": "2026-10-25T09:46:15", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/gold_report.json", "f1_delta": 0.0284, diff --git a/models/registry/yolo26n-seg-v3-recipeA-2026-09-29/gold_report.json b/models/registry/yolo26n-seg-v3-recipeA-2026-09-29/gold_report.json index 93a3a78e..829066b4 100644 --- a/models/registry/yolo26n-seg-v3-recipeA-2026-09-29/gold_report.json +++ b/models/registry/yolo26n-seg-v3-recipeA-2026-09-29/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 306, - "fp": 23, - "fn": 11, - "precision": 0.9300911854103343, - "recall": 0.9652996845425867, - "f1": 0.9473684210526315, - "mean_mask_iou": 0.9094462017528081, - "n_matched": 306 + "tp": 150, + "fp": 21, + "fn": 8, + "precision": 0.8771929824561403, + "recall": 0.9493670886075949, + "f1": 0.911854103343465, + "mean_mask_iou": 0.8727343113100435, + "n_matched": 150 }, "pin": { - "tp": 213, - "fp": 32, + "tp": 73, + "fp": 29, "fn": 11, - "precision": 0.8693877551020408, - "recall": 0.9508928571428571, - "f1": 0.9083155650319831, - "mean_mask_iou": 0.9262696606645503, - "n_matched": 213 + "precision": 0.7156862745098039, + "recall": 0.8690476190476191, + "f1": 0.7849462365591398, + "mean_mask_iou": 0.8966474690281144, + "n_matched": 73 }, "crystal": { - "tp": 67, + "tp": 61, "fp": 60, - "fn": 82, - "precision": 0.5275590551181102, - "recall": 0.44966442953020136, - "f1": 0.4855072463768116, - "mean_mask_iou": 0.761630287259793, - "n_matched": 67 + "fn": 74, + "precision": 0.5041322314049587, + "recall": 0.45185185185185184, + "f1": 0.4765625, + "mean_mask_iou": 0.7686510752576673, + "n_matched": 61 }, "loop_face": { - "tp": 262, - "fp": 58, - "fn": 33, - "precision": 0.81875, - "recall": 0.888135593220339, - "f1": 0.8520325203252033, - "mean_mask_iou": 0.8993687596276626, - "n_matched": 262 + "tp": 128, + "fp": 55, + "fn": 27, + "precision": 0.6994535519125683, + "recall": 0.8258064516129032, + "f1": 0.757396449704142, + "mean_mask_iou": 0.8499420270231782, + "n_matched": 128 }, "ice": { - "tp": 6, + "tp": 5, "fp": 17, "fn": 37, - "precision": 0.2608695652173913, - "recall": 0.13953488372093023, - "f1": 0.18181818181818182, - "mean_mask_iou": 0.7961226947704595, - "n_matched": 6 + "precision": 0.22727272727272727, + "recall": 0.11904761904761904, + "f1": 0.15624999999999997, + "mean_mask_iou": 0.7945995701731496, + "n_matched": 5 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 854, - "fp": 190, - "fn": 175, - "precision": 0.8180076628352491, - "recall": 0.8299319727891157, - "f1": 0.8239266763145201, - "mean_mask_iou": 0.8981575595964695, - "n_matched": 854 + "tp": 417, + "fp": 182, + "fn": 158, + "precision": 0.6961602671118531, + "recall": 0.7252173913043478, + "f1": 0.7103918228279388, + "mean_mask_iou": 0.8537618821009811, + "n_matched": 417 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-recipeA-2026-09-29/weights.pt", "environment": { @@ -83,7 +84,7 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:38", + "measured_at": "2026-10-25T09:46:22", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-alc-v1-noflip-mask1-2026-09-29/gold_report.json", "f1_delta": 0.0221, diff --git a/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json b/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json index bfd2e2c9..9e813ef8 100644 --- a/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json +++ b/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 309, + "tp": 151, "fp": 16, - "fn": 8, - "precision": 0.9507692307692308, - "recall": 0.9747634069400631, - "f1": 0.9626168224299065, - "mean_mask_iou": 0.9298444164418739, - "n_matched": 309 + "fn": 7, + "precision": 0.9041916167664671, + "recall": 0.9556962025316456, + "f1": 0.9292307692307693, + "mean_mask_iou": 0.8937953477312267, + "n_matched": 151 }, "pin": { - "tp": 215, - "fp": 22, + "tp": 75, + "fp": 21, "fn": 9, - "precision": 0.9071729957805907, - "recall": 0.9598214285714286, - "f1": 0.9327548806941431, - "mean_mask_iou": 0.9406678664910599, - "n_matched": 215 + "precision": 0.78125, + "recall": 0.8928571428571429, + "f1": 0.8333333333333334, + "mean_mask_iou": 0.9064077941912371, + "n_matched": 75 }, "crystal": { - "tp": 99, - "fp": 84, + "tp": 85, + "fp": 82, "fn": 50, - "precision": 0.5409836065573771, - "recall": 0.6644295302013423, - "f1": 0.5963855421686747, - "mean_mask_iou": 0.8062619700615773, - "n_matched": 99 + "precision": 0.5089820359281437, + "recall": 0.6296296296296297, + "f1": 0.5629139072847682, + "mean_mask_iou": 0.7832414691670929, + "n_matched": 85 }, "loop_face": { - "tp": 271, - "fp": 52, - "fn": 24, - "precision": 0.8390092879256966, - "recall": 0.9186440677966101, - "f1": 0.8770226537216829, - "mean_mask_iou": 0.908800452666073, - "n_matched": 271 + "tp": 133, + "fp": 50, + "fn": 22, + "precision": 0.726775956284153, + "recall": 0.8580645161290322, + "f1": 0.7869822485207101, + "mean_mask_iou": 0.8565095066104034, + "n_matched": 133 }, "ice": { - "tp": 5, + "tp": 4, "fp": 19, "fn": 38, - "precision": 0.20833333333333334, - "recall": 0.11627906976744186, - "f1": 0.14925373134328357, - "mean_mask_iou": 0.821677572899137, - "n_matched": 5 + "precision": 0.17391304347826086, + "recall": 0.09523809523809523, + "f1": 0.12307692307692307, + "mean_mask_iou": 0.8337434918036797, + "n_matched": 4 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 899, - "fp": 193, - "fn": 130, - "precision": 0.8232600732600732, - "recall": 0.8736637512147716, - "f1": 0.8477133427628477, - "mean_mask_iou": 0.9118784889312731, - "n_matched": 899 + "tp": 448, + "fp": 188, + "fn": 127, + "precision": 0.7044025157232704, + "recall": 0.7791304347826087, + "f1": 0.7398843930635838, + "mean_mask_iou": 0.8633257707530342, + "n_matched": 448 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/weights.pt", "environment": { @@ -83,7 +84,7 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:46", + "measured_at": "2026-10-25T09:46:31", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", "f1_delta": 0.015, diff --git a/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/gold_report.json b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/gold_report.json index 3cde804e..146bffc9 100644 --- a/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/gold_report.json +++ b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 307, - "fp": 29, - "fn": 10, - "precision": 0.9136904761904762, - "recall": 0.9684542586750788, - "f1": 0.9402756508422665, - "mean_mask_iou": 0.9144044278112335, - "n_matched": 307 + "tp": 151, + "fp": 26, + "fn": 7, + "precision": 0.8531073446327684, + "recall": 0.9556962025316456, + "f1": 0.9014925373134328, + "mean_mask_iou": 0.8794716171670773, + "n_matched": 151 }, "pin": { - "tp": 212, - "fp": 22, - "fn": 12, - "precision": 0.905982905982906, - "recall": 0.9464285714285714, - "f1": 0.9257641921397379, - "mean_mask_iou": 0.9372053245642273, - "n_matched": 212 + "tp": 73, + "fp": 21, + "fn": 11, + "precision": 0.776595744680851, + "recall": 0.8690476190476191, + "f1": 0.8202247191011236, + "mean_mask_iou": 0.9129233997527235, + "n_matched": 73 }, "crystal": { - "tp": 86, - "fp": 64, - "fn": 63, - "precision": 0.5733333333333334, - "recall": 0.5771812080536913, - "f1": 0.5752508361204013, - "mean_mask_iou": 0.7866494646342707, - "n_matched": 86 + "tp": 75, + "fp": 63, + "fn": 60, + "precision": 0.5434782608695652, + "recall": 0.5555555555555556, + "f1": 0.5494505494505495, + "mean_mask_iou": 0.7781053837940977, + "n_matched": 75 }, "loop_face": { - "tp": 267, - "fp": 67, - "fn": 28, - "precision": 0.7994011976047904, - "recall": 0.9050847457627119, - "f1": 0.8489666136724962, - "mean_mask_iou": 0.8960405961764998, - "n_matched": 267 + "tp": 133, + "fp": 63, + "fn": 22, + "precision": 0.6785714285714286, + "recall": 0.8580645161290322, + "f1": 0.7578347578347578, + "mean_mask_iou": 0.8476228354203764, + "n_matched": 133 }, "ice": { - "tp": 5, + "tp": 4, "fp": 15, "fn": 38, - "precision": 0.25, - "recall": 0.11627906976744186, - "f1": 0.15873015873015872, - "mean_mask_iou": 0.796892647988566, - "n_matched": 5 + "precision": 0.21052631578947367, + "recall": 0.09523809523809523, + "f1": 0.13114754098360656, + "mean_mask_iou": 0.8107709823995006, + "n_matched": 4 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 877, - "fp": 197, - "fn": 152, - "precision": 0.8165735567970205, - "recall": 0.8522837706511176, - "f1": 0.8340466000951023, - "mean_mask_iou": 0.9011275308133186, - "n_matched": 877 + "tp": 436, + "fp": 188, + "fn": 139, + "precision": 0.6987179487179487, + "recall": 0.7582608695652174, + "f1": 0.7272727272727274, + "mean_mask_iou": 0.857290016512025, + "n_matched": 436 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/weights.pt", "environment": { @@ -83,7 +84,7 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:39:55", + "measured_at": "2026-10-25T09:46:38", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", "f1_delta": -0.0057, diff --git a/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/gold_report.json b/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/gold_report.json index 9c7cb709..705474a5 100644 --- a/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/gold_report.json +++ b/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 311, - "fp": 26, - "fn": 6, - "precision": 0.9228486646884273, - "recall": 0.9810725552050473, - "f1": 0.9510703363914373, - "mean_mask_iou": 0.9233204539476648, - "n_matched": 311 + "tp": 153, + "fp": 23, + "fn": 5, + "precision": 0.8693181818181818, + "recall": 0.9683544303797469, + "f1": 0.9161676646706587, + "mean_mask_iou": 0.8955158506777854, + "n_matched": 153 }, "pin": { - "tp": 217, - "fp": 21, - "fn": 7, - "precision": 0.9117647058823529, - "recall": 0.96875, - "f1": 0.9393939393939394, - "mean_mask_iou": 0.9350234271216731, - "n_matched": 217 + "tp": 78, + "fp": 19, + "fn": 6, + "precision": 0.8041237113402062, + "recall": 0.9285714285714286, + "f1": 0.861878453038674, + "mean_mask_iou": 0.9067608977866488, + "n_matched": 78 }, "crystal": { - "tp": 92, - "fp": 73, - "fn": 57, - "precision": 0.5575757575757576, - "recall": 0.6174496644295302, - "f1": 0.5859872611464969, - "mean_mask_iou": 0.7836372984261296, - "n_matched": 92 + "tp": 83, + "fp": 71, + "fn": 52, + "precision": 0.538961038961039, + "recall": 0.6148148148148148, + "f1": 0.5743944636678201, + "mean_mask_iou": 0.7817240537621242, + "n_matched": 83 }, "loop_face": { - "tp": 272, - "fp": 53, - "fn": 23, - "precision": 0.8369230769230769, - "recall": 0.9220338983050848, - "f1": 0.8774193548387096, - "mean_mask_iou": 0.90096496604208, - "n_matched": 272 + "tp": 134, + "fp": 51, + "fn": 21, + "precision": 0.7243243243243244, + "recall": 0.864516129032258, + "f1": 0.7882352941176471, + "mean_mask_iou": 0.8558725800145162, + "n_matched": 134 }, "ice": { - "tp": 3, + "tp": 2, "fp": 9, "fn": 40, - "precision": 0.25, - "recall": 0.06976744186046512, - "f1": 0.10909090909090909, - "mean_mask_iou": 0.784312008919469, - "n_matched": 3 + "precision": 0.18181818181818182, + "recall": 0.047619047619047616, + "f1": 0.07547169811320754, + "mean_mask_iou": 0.8048262223344274, + "n_matched": 2 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 895, - "fp": 182, - "fn": 134, - "precision": 0.8310120705663882, - "recall": 0.86977648202138, - "f1": 0.8499525166191833, - "mean_mask_iou": 0.9045394224676367, - "n_matched": 895 + "tp": 450, + "fp": 173, + "fn": 125, + "precision": 0.7223113964686998, + "recall": 0.782608695652174, + "f1": 0.7512520868113521, + "mean_mask_iou": 0.8642687773554002, + "n_matched": 450 }, "dataset": { "gold_images": 335, "pred_images": 335, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "environment": { "host": "mx-spark-01", @@ -84,32 +85,32 @@ }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0022, - "mask_iou_delta": -0.0099, - "mask_score": 0.7867, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0073, + "f1_delta": 0.0114, + "mask_iou_delta": 0.0037, + "mask_score": 0.6764, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": 0.0009, "class_f1_delta": { - "loop_all": -0.0115, - "pin": 0.0066 + "loop_all": -0.0131, + "pin": 0.0285 }, - "pass_point_rule": false, + "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.0024, - "lo": -0.0143, - "hi": 0.0204, - "win": 0.595 + "delta": 0.0114, + "lo": -0.0119, + "hi": 0.0351, + "win": 0.816 }, "mask_score": { - "delta": 0.0009, - "lo": -0.0127, - "hi": 0.0145, - "win": 0.553 + "delta": 0.0037, + "lo": -0.0143, + "hi": 0.0224, + "win": 0.662 } }, "pass": false diff --git a/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/metadata.json b/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/metadata.json index 246492df..7f7552ee 100644 --- a/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/metadata.json +++ b/models/registry/yolo26n-seg-v5-n-1024px-2026-10-25/metadata.json @@ -27,43 +27,43 @@ "pt" ], "metrics": { - "tp": 895, - "fp": 182, - "fn": 134, - "precision": 0.8310120705663882, - "recall": 0.86977648202138, - "f1": 0.8499525166191833, - "mean_mask_iou": 0.9045394224676367, - "n_matched": 895 + "tp": 450, + "fp": 173, + "fn": 125, + "precision": 0.7223113964686998, + "recall": 0.782608695652174, + "f1": 0.7512520868113521, + "mean_mask_iou": 0.8642687773554002, + "n_matched": 450 }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0022, - "mask_iou_delta": -0.0099, - "mask_score": 0.7867, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0073, + "f1_delta": 0.0114, + "mask_iou_delta": 0.0037, + "mask_score": 0.6764, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": 0.0009, "class_f1_delta": { - "loop_all": -0.0115, - "pin": 0.0066 + "loop_all": -0.0131, + "pin": 0.0285 }, - "pass_point_rule": false, + "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.0024, - "lo": -0.0143, - "hi": 0.0204, - "win": 0.595 + "delta": 0.0114, + "lo": -0.0119, + "hi": 0.0351, + "win": 0.816 }, "mask_score": { - "delta": 0.0009, - "lo": -0.0127, - "hi": 0.0145, - "win": 0.553 + "delta": 0.0037, + "lo": -0.0143, + "hi": 0.0224, + "win": 0.662 } }, "pass": false diff --git a/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-23/gold_report.json b/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-23/gold_report.json index 0123cdeb..5af39afd 100644 --- a/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-23/gold_report.json +++ b/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-23/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 309, + "tp": 151, "fp": 25, - "fn": 8, - "precision": 0.9251497005988024, - "recall": 0.9747634069400631, - "f1": 0.9493087557603687, - "mean_mask_iou": 0.9252735800942133, - "n_matched": 309 + "fn": 7, + "precision": 0.8579545454545454, + "recall": 0.9556962025316456, + "f1": 0.9041916167664671, + "mean_mask_iou": 0.8900843775137935, + "n_matched": 151 }, "pin": { - "tp": 214, + "tp": 76, "fp": 15, - "fn": 10, - "precision": 0.9344978165938864, - "recall": 0.9553571428571429, - "f1": 0.944812362030905, - "mean_mask_iou": 0.9373156284625324, - "n_matched": 214 + "fn": 8, + "precision": 0.8351648351648352, + "recall": 0.9047619047619048, + "f1": 0.8685714285714285, + "mean_mask_iou": 0.9028628651190943, + "n_matched": 76 }, "crystal": { - "tp": 96, - "fp": 67, - "fn": 53, - "precision": 0.588957055214724, - "recall": 0.6442953020134228, - "f1": 0.6153846153846153, - "mean_mask_iou": 0.7870228886885559, - "n_matched": 96 + "tp": 85, + "fp": 66, + "fn": 50, + "precision": 0.5629139072847682, + "recall": 0.6296296296296297, + "f1": 0.5944055944055944, + "mean_mask_iou": 0.7815064307616706, + "n_matched": 85 }, "loop_face": { - "tp": 269, - "fp": 53, - "fn": 26, - "precision": 0.8354037267080745, - "recall": 0.911864406779661, - "f1": 0.8719611021069691, - "mean_mask_iou": 0.9008181510928498, - "n_matched": 269 + "tp": 135, + "fp": 50, + "fn": 20, + "precision": 0.7297297297297297, + "recall": 0.8709677419354839, + "f1": 0.7941176470588235, + "mean_mask_iou": 0.8489963361151837, + "n_matched": 135 }, "ice": { - "tp": 3, + "tp": 2, "fp": 10, "fn": 40, - "precision": 0.23076923076923078, - "recall": 0.06976744186046512, - "f1": 0.10714285714285714, - "mean_mask_iou": 0.8444813717997576, - "n_matched": 3 + "precision": 0.16666666666666666, + "recall": 0.047619047619047616, + "f1": 0.07407407407407407, + "mean_mask_iou": 0.902436343413922, + "n_matched": 2 }, "needle": { "tp": 0, @@ -62,26 +62,29 @@ } }, "overall": { - "tp": 891, - "fp": 170, - "fn": 138, - "precision": 0.8397737983034873, - "recall": 0.8658892128279884, - "f1": 0.8526315789473684, - "mean_mask_iou": 0.9056148202172515, - "n_matched": 891 + "tp": 449, + "fp": 166, + "fn": 126, + "precision": 0.7300813008130081, + "recall": 0.7808695652173913, + "f1": 0.7546218487394959, + "mean_mask_iou": 0.8593936379304089, + "n_matched": 449 }, "dataset": { "gold_images": 335, "pred_images": 335, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, + "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-23/weights.pt", "environment": { "host": "mx-spark-01", "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, + "measured_at": "2026-10-25T09:46:56", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0049, @@ -113,5 +116,6 @@ } }, "pass": false - } + }, + "gate_measured_on": 335 } diff --git a/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/gold_report.json b/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/gold_report.json index 16a779c8..32512f54 100644 --- a/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/gold_report.json +++ b/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 309, + "tp": 151, "fp": 25, - "fn": 8, - "precision": 0.9251497005988024, - "recall": 0.9747634069400631, - "f1": 0.9493087557603687, - "mean_mask_iou": 0.9252735800942133, - "n_matched": 309 + "fn": 7, + "precision": 0.8579545454545454, + "recall": 0.9556962025316456, + "f1": 0.9041916167664671, + "mean_mask_iou": 0.8900843775137935, + "n_matched": 151 }, "pin": { - "tp": 214, + "tp": 76, "fp": 15, - "fn": 10, - "precision": 0.9344978165938864, - "recall": 0.9553571428571429, - "f1": 0.944812362030905, - "mean_mask_iou": 0.9373156284625324, - "n_matched": 214 + "fn": 8, + "precision": 0.8351648351648352, + "recall": 0.9047619047619048, + "f1": 0.8685714285714285, + "mean_mask_iou": 0.9028628651190943, + "n_matched": 76 }, "crystal": { - "tp": 96, - "fp": 67, - "fn": 53, - "precision": 0.588957055214724, - "recall": 0.6442953020134228, - "f1": 0.6153846153846153, - "mean_mask_iou": 0.7870228886885559, - "n_matched": 96 + "tp": 85, + "fp": 66, + "fn": 50, + "precision": 0.5629139072847682, + "recall": 0.6296296296296297, + "f1": 0.5944055944055944, + "mean_mask_iou": 0.7815064307616706, + "n_matched": 85 }, "loop_face": { - "tp": 269, - "fp": 53, - "fn": 26, - "precision": 0.8354037267080745, - "recall": 0.911864406779661, - "f1": 0.8719611021069691, - "mean_mask_iou": 0.9008181510928498, - "n_matched": 269 + "tp": 135, + "fp": 50, + "fn": 20, + "precision": 0.7297297297297297, + "recall": 0.8709677419354839, + "f1": 0.7941176470588235, + "mean_mask_iou": 0.8489963361151837, + "n_matched": 135 }, "ice": { - "tp": 3, + "tp": 2, "fp": 10, "fn": 40, - "precision": 0.23076923076923078, - "recall": 0.06976744186046512, - "f1": 0.10714285714285714, - "mean_mask_iou": 0.8444813717997576, - "n_matched": 3 + "precision": 0.16666666666666666, + "recall": 0.047619047619047616, + "f1": 0.07407407407407407, + "mean_mask_iou": 0.902436343413922, + "n_matched": 2 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 891, - "fp": 170, - "fn": 138, - "precision": 0.8397737983034873, - "recall": 0.8658892128279884, - "f1": 0.8526315789473684, - "mean_mask_iou": 0.9056148202172515, - "n_matched": 891 + "tp": 449, + "fp": 166, + "fn": 126, + "precision": 0.7300813008130081, + "recall": 0.7808695652173913, + "f1": 0.7546218487394959, + "mean_mask_iou": 0.8593936379304089, + "n_matched": 449 }, "dataset": { "gold_images": 335, "pred_images": 335, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "environment": { "host": "mx-spark-01", @@ -84,32 +85,32 @@ }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0049, - "mask_iou_delta": -0.0125, - "mask_score": 0.7842, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0063, + "f1_delta": 0.0147, + "mask_iou_delta": -0.0016, + "mask_score": 0.6711, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": -0.0039, "class_f1_delta": { - "loop_all": -0.0133, - "pin": 0.0121 + "loop_all": -0.025, + "pin": 0.0352 }, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.0017, - "lo": -0.0137, - "hi": 0.0179, - "win": 0.592 + "delta": 0.0147, + "lo": -0.0078, + "hi": 0.0402, + "win": 0.906 }, "mask_score": { - "delta": -0.0056, - "lo": -0.0174, - "hi": 0.0056, - "win": 0.174 + "delta": -0.0016, + "lo": -0.0182, + "hi": 0.0149, + "win": 0.446 } }, "pass": false diff --git a/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/metadata.json b/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/metadata.json index ad1b3ee1..7e4a9ad0 100644 --- a/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/metadata.json +++ b/models/registry/yolo26n-seg-v5-noflip-mask1-2026-10-25/metadata.json @@ -27,43 +27,43 @@ "pt" ], "metrics": { - "tp": 891, - "fp": 170, - "fn": 138, - "precision": 0.8397737983034873, - "recall": 0.8658892128279884, - "f1": 0.8526315789473684, - "mean_mask_iou": 0.9056148202172515, - "n_matched": 891 + "tp": 449, + "fp": 166, + "fn": 126, + "precision": 0.7300813008130081, + "recall": 0.7808695652173913, + "f1": 0.7546218487394959, + "mean_mask_iou": 0.8593936379304089, + "n_matched": 449 }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0049, - "mask_iou_delta": -0.0125, - "mask_score": 0.7842, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0063, + "f1_delta": 0.0147, + "mask_iou_delta": -0.0016, + "mask_score": 0.6711, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": -0.0039, "class_f1_delta": { - "loop_all": -0.0133, - "pin": 0.0121 + "loop_all": -0.025, + "pin": 0.0352 }, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.0017, - "lo": -0.0137, - "hi": 0.0179, - "win": 0.592 + "delta": 0.0147, + "lo": -0.0078, + "hi": 0.0402, + "win": 0.906 }, "mask_score": { - "delta": -0.0056, - "lo": -0.0174, - "hi": 0.0056, - "win": 0.174 + "delta": -0.0016, + "lo": -0.0182, + "hi": 0.0149, + "win": 0.446 } }, "pass": false diff --git a/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json b/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json index 4e8951f3..fc128480 100644 --- a/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json +++ b/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/gold_report.json @@ -1,54 +1,54 @@ { "per_class": { "loop_all": { - "tp": 308, - "fp": 26, - "fn": 9, - "precision": 0.9221556886227545, - "recall": 0.9716088328075709, - "f1": 0.9462365591397849, - "mean_mask_iou": 0.9210329853480719, - "n_matched": 308 + "tp": 151, + "fp": 25, + "fn": 7, + "precision": 0.8579545454545454, + "recall": 0.9556962025316456, + "f1": 0.9041916167664671, + "mean_mask_iou": 0.8884674186684715, + "n_matched": 151 }, "pin": { - "tp": 214, + "tp": 74, "fp": 16, "fn": 10, - "precision": 0.9304347826086956, - "recall": 0.9553571428571429, - "f1": 0.9427312775330396, - "mean_mask_iou": 0.9357500978870736, - "n_matched": 214 + "precision": 0.8222222222222222, + "recall": 0.8809523809523809, + "f1": 0.8505747126436781, + "mean_mask_iou": 0.9094866087767759, + "n_matched": 74 }, "crystal": { - "tp": 76, - "fp": 63, - "fn": 73, - "precision": 0.5467625899280576, - "recall": 0.5100671140939598, - "f1": 0.5277777777777778, - "mean_mask_iou": 0.779695033962373, - "n_matched": 76 + "tp": 69, + "fp": 62, + "fn": 66, + "precision": 0.5267175572519084, + "recall": 0.5111111111111111, + "f1": 0.518796992481203, + "mean_mask_iou": 0.777642425424736, + "n_matched": 69 }, "loop_face": { - "tp": 265, - "fp": 51, - "fn": 30, - "precision": 0.8386075949367089, - "recall": 0.8983050847457628, - "f1": 0.867430441898527, - "mean_mask_iou": 0.9022314012766025, - "n_matched": 265 + "tp": 130, + "fp": 47, + "fn": 25, + "precision": 0.7344632768361582, + "recall": 0.8387096774193549, + "f1": 0.7831325301204819, + "mean_mask_iou": 0.8552905127066354, + "n_matched": 130 }, "ice": { - "tp": 5, + "tp": 4, "fp": 3, "fn": 38, - "precision": 0.625, - "recall": 0.11627906976744186, - "f1": 0.19607843137254904, - "mean_mask_iou": 0.7441614535204797, - "n_matched": 5 + "precision": 0.5714285714285714, + "recall": 0.09523809523809523, + "f1": 0.16326530612244897, + "mean_mask_iou": 0.737655233049668, + "n_matched": 4 }, "needle": { "tp": 0, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 868, - "fp": 160, - "fn": 161, - "precision": 0.8443579766536965, - "recall": 0.8435374149659864, - "f1": 0.8439474963539134, - "mean_mask_iou": 0.9055272253710626, - "n_matched": 868 + "tp": 428, + "fp": 154, + "fn": 147, + "precision": 0.7353951890034365, + "recall": 0.7443478260869565, + "f1": 0.7398444252376836, + "mean_mask_iou": 0.8627483743149267, + "n_matched": 428 }, "dataset": { "gold_images": 335, "pred_images": 336, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v3-s-640px-2026-10-01/weights.pt", "environment": { @@ -83,7 +84,7 @@ "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, - "measured_at": "2026-10-22T11:40:04", + "measured_at": "2026-10-25T09:47:13", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", "f1_delta": 0.0238, diff --git a/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-23/gold_report.json b/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-23/gold_report.json index d37ad0de..9750d118 100644 --- a/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-23/gold_report.json +++ b/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-23/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 308, + "tp": 151, "fp": 19, - "fn": 9, - "precision": 0.9418960244648318, - "recall": 0.9716088328075709, - "f1": 0.9565217391304348, - "mean_mask_iou": 0.9229619481348076, - "n_matched": 308 + "fn": 7, + "precision": 0.888235294117647, + "recall": 0.9556962025316456, + "f1": 0.9207317073170731, + "mean_mask_iou": 0.8883753001974017, + "n_matched": 151 }, "pin": { - "tp": 214, - "fp": 23, - "fn": 10, - "precision": 0.9029535864978903, - "recall": 0.9553571428571429, - "f1": 0.9284164859002169, - "mean_mask_iou": 0.9392434589975192, - "n_matched": 214 + "tp": 76, + "fp": 21, + "fn": 8, + "precision": 0.7835051546391752, + "recall": 0.9047619047619048, + "f1": 0.839779005524862, + "mean_mask_iou": 0.9117903085113713, + "n_matched": 76 }, "crystal": { - "tp": 93, - "fp": 61, - "fn": 56, - "precision": 0.6038961038961039, - "recall": 0.6241610738255033, - "f1": 0.6138613861386139, - "mean_mask_iou": 0.7860551169622239, - "n_matched": 93 + "tp": 84, + "fp": 60, + "fn": 51, + "precision": 0.5833333333333334, + "recall": 0.6222222222222222, + "f1": 0.6021505376344085, + "mean_mask_iou": 0.7879133701727913, + "n_matched": 84 }, "loop_face": { - "tp": 274, - "fp": 52, - "fn": 21, - "precision": 0.8404907975460123, - "recall": 0.9288135593220339, - "f1": 0.8824476650563607, - "mean_mask_iou": 0.9017649910336784, - "n_matched": 274 + "tp": 140, + "fp": 50, + "fn": 15, + "precision": 0.7368421052631579, + "recall": 0.9032258064516129, + "f1": 0.8115942028985507, + "mean_mask_iou": 0.8506909275773613, + "n_matched": 140 }, "ice": { "tp": 5, "fp": 18, - "fn": 38, + "fn": 37, "precision": 0.21739130434782608, - "recall": 0.11627906976744186, - "f1": 0.15151515151515152, + "recall": 0.11904761904761904, + "f1": 0.15384615384615383, "mean_mask_iou": 0.8077960211591213, "n_matched": 5 }, @@ -62,26 +62,29 @@ } }, "overall": { - "tp": 894, - "fp": 173, - "fn": 135, - "precision": 0.837863167760075, - "recall": 0.8688046647230321, - "f1": 0.8530534351145038, - "mean_mask_iou": 0.9054766149636467, - "n_matched": 894 + "tp": 456, + "fp": 168, + "fn": 119, + "precision": 0.7307692307692307, + "recall": 0.7930434782608695, + "f1": 0.7606338615512926, + "mean_mask_iou": 0.8613183483285363, + "n_matched": 456 }, "dataset": { "gold_images": 335, "pred_images": 335, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, + "weights": "/home/jungfrau/AareLC_train/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-23/weights.pt", "environment": { "host": "mx-spark-01", "ultralytics": "8.4.160", "torch": "2.14.0+cu130" }, + "measured_at": "2026-10-25T09:47:22", "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0053, @@ -113,5 +116,6 @@ } }, "pass": false - } + }, + "gate_measured_on": 335 } diff --git a/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json b/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json index bcabf9db..768d198a 100644 --- a/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json +++ b/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/gold_report.json @@ -1,52 +1,52 @@ { "per_class": { "loop_all": { - "tp": 308, + "tp": 151, "fp": 19, - "fn": 9, - "precision": 0.9418960244648318, - "recall": 0.9716088328075709, - "f1": 0.9565217391304348, - "mean_mask_iou": 0.9229619481348076, - "n_matched": 308 + "fn": 7, + "precision": 0.888235294117647, + "recall": 0.9556962025316456, + "f1": 0.9207317073170731, + "mean_mask_iou": 0.8883753001974017, + "n_matched": 151 }, "pin": { - "tp": 214, - "fp": 23, - "fn": 10, - "precision": 0.9029535864978903, - "recall": 0.9553571428571429, - "f1": 0.9284164859002169, - "mean_mask_iou": 0.9392434589975192, - "n_matched": 214 + "tp": 76, + "fp": 21, + "fn": 8, + "precision": 0.7835051546391752, + "recall": 0.9047619047619048, + "f1": 0.839779005524862, + "mean_mask_iou": 0.9117903085113713, + "n_matched": 76 }, "crystal": { - "tp": 93, - "fp": 61, - "fn": 56, - "precision": 0.6038961038961039, - "recall": 0.6241610738255033, - "f1": 0.6138613861386139, - "mean_mask_iou": 0.7860551169622239, - "n_matched": 93 + "tp": 84, + "fp": 60, + "fn": 51, + "precision": 0.5833333333333334, + "recall": 0.6222222222222222, + "f1": 0.6021505376344085, + "mean_mask_iou": 0.7879133701727913, + "n_matched": 84 }, "loop_face": { - "tp": 274, - "fp": 52, - "fn": 21, - "precision": 0.8404907975460123, - "recall": 0.9288135593220339, - "f1": 0.8824476650563607, - "mean_mask_iou": 0.9017649910336784, - "n_matched": 274 + "tp": 140, + "fp": 50, + "fn": 15, + "precision": 0.7368421052631579, + "recall": 0.9032258064516129, + "f1": 0.8115942028985507, + "mean_mask_iou": 0.8506909275773613, + "n_matched": 140 }, "ice": { "tp": 5, "fp": 18, - "fn": 38, + "fn": 37, "precision": 0.21739130434782608, - "recall": 0.11627906976744186, - "f1": 0.15151515151515152, + "recall": 0.11904761904761904, + "f1": 0.15384615384615383, "mean_mask_iou": 0.8077960211591213, "n_matched": 5 }, @@ -62,20 +62,21 @@ } }, "overall": { - "tp": 894, - "fp": 173, - "fn": 135, - "precision": 0.837863167760075, - "recall": 0.8688046647230321, - "f1": 0.8530534351145038, - "mean_mask_iou": 0.9054766149636467, - "n_matched": 894 + "tp": 456, + "fp": 168, + "fn": 119, + "precision": 0.7307692307692307, + "recall": 0.7930434782608695, + "f1": 0.7606338615512926, + "mean_mask_iou": 0.8613183483285363, + "n_matched": 456 }, "dataset": { "gold_images": 335, "pred_images": 335, "missing_predictions": 0, - "iou_threshold": 0.5 + "iou_threshold": 0.5, + "ignored_objects": 454 }, "environment": { "host": "mx-spark-01", @@ -84,34 +85,34 @@ }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0053, - "mask_iou_delta": -0.01, - "mask_score": 0.7867, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0064, + "f1_delta": 0.0207, + "mask_iou_delta": 0.0104, + "mask_score": 0.6831, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": -0.002, "class_f1_delta": { - "loop_all": -0.0061, - "pin": -0.0043 + "loop_all": -0.0085, + "pin": 0.0064 }, - "pass_point_rule": false, + "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.006, - "lo": -0.0112, - "hi": 0.0239, - "win": 0.771 + "delta": 0.0207, + "lo": -0.0028, + "hi": 0.0438, + "win": 0.961 }, "mask_score": { - "delta": -0.0004, - "lo": -0.0133, - "hi": 0.0122, - "win": 0.494 + "delta": 0.0104, + "lo": -0.0053, + "hi": 0.027, + "win": 0.9 } }, - "pass": false + "pass": true } } diff --git a/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/metadata.json b/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/metadata.json index 583db8ba..77743673 100644 --- a/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/metadata.json +++ b/models/registry/yolo26s-seg-v5-s-noflip-mask1-2026-10-25/metadata.json @@ -27,45 +27,45 @@ "pt" ], "metrics": { - "tp": 894, - "fp": 173, - "fn": 135, - "precision": 0.837863167760075, - "recall": 0.8688046647230321, - "f1": 0.8530534351145038, - "mean_mask_iou": 0.9054766149636467, - "n_matched": 894 + "tp": 456, + "fp": 168, + "fn": 119, + "precision": 0.7307692307692307, + "recall": 0.7930434782608695, + "f1": 0.7606338615512926, + "mean_mask_iou": 0.8613183483285363, + "n_matched": 456 }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0053, - "mask_iou_delta": -0.01, - "mask_score": 0.7867, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0064, + "f1_delta": 0.0207, + "mask_iou_delta": 0.0104, + "mask_score": 0.6831, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": -0.002, "class_f1_delta": { - "loop_all": -0.0061, - "pin": -0.0043 + "loop_all": -0.0085, + "pin": 0.0064 }, - "pass_point_rule": false, + "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.006, - "lo": -0.0112, - "hi": 0.0239, - "win": 0.771 + "delta": 0.0207, + "lo": -0.0028, + "hi": 0.0438, + "win": 0.961 }, "mask_score": { - "delta": -0.0004, - "lo": -0.0133, - "hi": 0.0122, - "win": 0.494 + "delta": 0.0104, + "lo": -0.0053, + "hi": 0.027, + "win": 0.9 } }, - "pass": false + "pass": true } } diff --git a/runs/2026-10-22_v5-noflip-mask1/metrics.json b/runs/2026-10-22_v5-noflip-mask1/metrics.json index 7e828844..2ec25c3e 100644 --- a/runs/2026-10-22_v5-noflip-mask1/metrics.json +++ b/runs/2026-10-22_v5-noflip-mask1/metrics.json @@ -1,42 +1,42 @@ { "overall": { - "tp": 891, - "fp": 170, - "fn": 138, - "precision": 0.8397737983034873, - "recall": 0.8658892128279884, - "f1": 0.8526315789473684, - "mean_mask_iou": 0.9056148202172515, - "n_matched": 891 + "tp": 449, + "fp": 166, + "fn": 126, + "precision": 0.7300813008130081, + "recall": 0.7808695652173913, + "f1": 0.7546218487394959, + "mean_mask_iou": 0.8593936379304089, + "n_matched": 449 }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0049, - "mask_iou_delta": -0.0125, - "mask_score": 0.7842, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0063, + "f1_delta": 0.0147, + "mask_iou_delta": -0.0016, + "mask_score": 0.6711, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": -0.0039, "class_f1_delta": { - "loop_all": -0.0133, - "pin": 0.0121 + "loop_all": -0.025, + "pin": 0.0352 }, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.0017, - "lo": -0.0137, - "hi": 0.0179, - "win": 0.592 + "delta": 0.0147, + "lo": -0.0078, + "hi": 0.0402, + "win": 0.906 }, "mask_score": { - "delta": -0.0056, - "lo": -0.0174, - "hi": 0.0056, - "win": 0.174 + "delta": -0.0016, + "lo": -0.0182, + "hi": 0.0149, + "win": 0.446 } }, "pass": false @@ -53,5 +53,5 @@ "mAP50-95(M)": 0.60896 }, "version": "yolo26n-seg-v5-noflip-mask1-2026-10-25", - "measured_at": "2026-10-25T02:47:47" + "measured_at": "2026-10-25T09:47:49" } diff --git a/runs/2026-10-22_v5-noflip-mask1/run.json b/runs/2026-10-22_v5-noflip-mask1/run.json index 3020e62d..77c1da42 100644 --- a/runs/2026-10-22_v5-noflip-mask1/run.json +++ b/runs/2026-10-22_v5-noflip-mask1/run.json @@ -24,11 +24,11 @@ }, "version": "yolo26n-seg-v5-noflip-mask1-2026-10-25", "metrics": { - "f1": 0.8526315789473684, - "mean_mask_iou": 0.9056148202172515, + "f1": 0.7546218487394959, + "mean_mask_iou": 0.8593936379304089, "gate_pass": false, "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "measured_at": "2026-10-25T02:47:47" + "measured_at": "2026-10-25T09:47:49" }, "history": [ { @@ -72,8 +72,26 @@ "at": "2026-10-25T02:47:47", "by": "jungfrau@mx-spark-01", "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json\", \"f1_delta\": 0.0049, \"mask_iou_delta\": -0.0125, \"mask_score\": 0.7842, \"mask_score_baseline\": 0.7967, \"matched_only_iou_delta\": -0.0063, \"class_f1_delta\": {\"loop_all\": -0.0133, \"pin\": 0.0121}, \"pass_point_rule\": false, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 285, \"mounts\": 250, \"draws\": 2000, \"f1\": {\"delta\": 0.0017, \"lo\": -0.0137, \"hi\": 0.0179, \"win\": 0.592}, \"mask_score\": {\"delta\": -0.0056, \"lo\": -0.0174, \"hi\": 0.0056, \"win\": 0.174}}, \"pass\": false}" + }, + { + "status": "training", + "at": "2026-10-25T09:47:41", + "by": "jungfrau@mx-spark-01", + "note": "train_run.py" + }, + { + "status": "measured", + "at": "2026-10-25T09:47:49", + "by": "jungfrau@mx-spark-01", + "note": "" + }, + { + "status": "gate_failed", + "at": "2026-10-25T09:47:49", + "by": "jungfrau@mx-spark-01", + "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json\", \"f1_delta\": 0.0147, \"mask_iou_delta\": -0.0016, \"mask_score\": 0.6711, \"mask_score_baseline\": 0.6726, \"matched_only_iou_delta\": -0.0039, \"class_f1_delta\": {\"loop_all\": -0.025, \"pin\": 0.0352}, \"pass_point_rule\": false, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 335, \"mounts\": 300, \"draws\": 2000, \"f1\": {\"delta\": 0.0147, \"lo\": -0.0078, \"hi\": 0.0402, \"win\": 0.906}, \"mask_score\": {\"delta\": -0.0016, \"lo\": -0.0182, \"hi\": 0.0149, \"win\": 0.446}}, \"pass\": false}" } ], "host": "mx-spark-01", - "started": "2026-10-25T02:47:39" + "started": "2026-10-25T09:47:41" } diff --git a/runs/2026-10-23_v5-n-1024px/metrics.json b/runs/2026-10-23_v5-n-1024px/metrics.json index 14b52e36..733679ec 100644 --- a/runs/2026-10-23_v5-n-1024px/metrics.json +++ b/runs/2026-10-23_v5-n-1024px/metrics.json @@ -1,42 +1,42 @@ { "overall": { - "tp": 895, - "fp": 182, - "fn": 134, - "precision": 0.8310120705663882, - "recall": 0.86977648202138, - "f1": 0.8499525166191833, - "mean_mask_iou": 0.9045394224676367, - "n_matched": 895 + "tp": 450, + "fp": 173, + "fn": 125, + "precision": 0.7223113964686998, + "recall": 0.782608695652174, + "f1": 0.7512520868113521, + "mean_mask_iou": 0.8642687773554002, + "n_matched": 450 }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0022, - "mask_iou_delta": -0.0099, - "mask_score": 0.7867, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0073, + "f1_delta": 0.0114, + "mask_iou_delta": 0.0037, + "mask_score": 0.6764, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": 0.0009, "class_f1_delta": { - "loop_all": -0.0115, - "pin": 0.0066 + "loop_all": -0.0131, + "pin": 0.0285 }, - "pass_point_rule": false, + "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.0024, - "lo": -0.0143, - "hi": 0.0204, - "win": 0.595 + "delta": 0.0114, + "lo": -0.0119, + "hi": 0.0351, + "win": 0.816 }, "mask_score": { - "delta": 0.0009, - "lo": -0.0127, - "hi": 0.0145, - "win": 0.553 + "delta": 0.0037, + "lo": -0.0143, + "hi": 0.0224, + "win": 0.662 } }, "pass": false @@ -53,5 +53,5 @@ "mAP50-95(M)": 0.62865 }, "version": "yolo26n-seg-v5-n-1024px-2026-10-25", - "measured_at": "2026-10-25T02:48:09" + "measured_at": "2026-10-25T09:48:08" } diff --git a/runs/2026-10-23_v5-n-1024px/run.json b/runs/2026-10-23_v5-n-1024px/run.json index 7665c3b1..0ec30132 100644 --- a/runs/2026-10-23_v5-n-1024px/run.json +++ b/runs/2026-10-23_v5-n-1024px/run.json @@ -24,11 +24,11 @@ }, "version": "yolo26n-seg-v5-n-1024px-2026-10-25", "metrics": { - "f1": 0.8499525166191833, - "mean_mask_iou": 0.9045394224676367, + "f1": 0.7512520868113521, + "mean_mask_iou": 0.8642687773554002, "gate_pass": false, "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "measured_at": "2026-10-25T02:48:09" + "measured_at": "2026-10-25T09:48:08" }, "history": [ { @@ -72,11 +72,29 @@ "at": "2026-10-25T02:48:09", "by": "jungfrau@mx-spark-01", "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json\", \"f1_delta\": 0.0022, \"mask_iou_delta\": -0.0099, \"mask_score\": 0.7867, \"mask_score_baseline\": 0.7967, \"matched_only_iou_delta\": -0.0073, \"class_f1_delta\": {\"loop_all\": -0.0115, \"pin\": 0.0066}, \"pass_point_rule\": false, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 285, \"mounts\": 250, \"draws\": 2000, \"f1\": {\"delta\": 0.0024, \"lo\": -0.0143, \"hi\": 0.0204, \"win\": 0.595}, \"mask_score\": {\"delta\": 0.0009, \"lo\": -0.0127, \"hi\": 0.0145, \"win\": 0.553}}, \"pass\": false}" + }, + { + "status": "training", + "at": "2026-10-25T09:47:59", + "by": "jungfrau@mx-spark-01", + "note": "train_run.py" + }, + { + "status": "measured", + "at": "2026-10-25T09:48:08", + "by": "jungfrau@mx-spark-01", + "note": "" + }, + { + "status": "gate_failed", + "at": "2026-10-25T09:48:08", + "by": "jungfrau@mx-spark-01", + "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json\", \"f1_delta\": 0.0114, \"mask_iou_delta\": 0.0037, \"mask_score\": 0.6764, \"mask_score_baseline\": 0.6726, \"matched_only_iou_delta\": 0.0009, \"class_f1_delta\": {\"loop_all\": -0.0131, \"pin\": 0.0285}, \"pass_point_rule\": true, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 335, \"mounts\": 300, \"draws\": 2000, \"f1\": {\"delta\": 0.0114, \"lo\": -0.0119, \"hi\": 0.0351, \"win\": 0.816}, \"mask_score\": {\"delta\": 0.0037, \"lo\": -0.0143, \"hi\": 0.0224, \"win\": 0.662}}, \"pass\": false}" } ], "train_args": { "imgsz": 1024 }, "host": "mx-spark-01", - "started": "2026-10-25T02:47:59" + "started": "2026-10-25T09:47:59" } diff --git a/runs/2026-10-23_v5-s-noflip-mask1/metrics.json b/runs/2026-10-23_v5-s-noflip-mask1/metrics.json index 1d63a919..0aea488e 100644 --- a/runs/2026-10-23_v5-s-noflip-mask1/metrics.json +++ b/runs/2026-10-23_v5-s-noflip-mask1/metrics.json @@ -1,45 +1,45 @@ { "overall": { - "tp": 894, - "fp": 173, - "fn": 135, - "precision": 0.837863167760075, - "recall": 0.8688046647230321, - "f1": 0.8530534351145038, - "mean_mask_iou": 0.9054766149636467, - "n_matched": 894 + "tp": 456, + "fp": 168, + "fn": 119, + "precision": 0.7307692307692307, + "recall": 0.7930434782608695, + "f1": 0.7606338615512926, + "mean_mask_iou": 0.8613183483285363, + "n_matched": 456 }, "gate": { "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "f1_delta": 0.0053, - "mask_iou_delta": -0.01, - "mask_score": 0.7867, - "mask_score_baseline": 0.7967, - "matched_only_iou_delta": -0.0064, + "f1_delta": 0.0207, + "mask_iou_delta": 0.0104, + "mask_score": 0.6831, + "mask_score_baseline": 0.6726, + "matched_only_iou_delta": -0.002, "class_f1_delta": { - "loop_all": -0.0061, - "pin": -0.0043 + "loop_all": -0.0085, + "pin": 0.0064 }, - "pass_point_rule": false, + "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": { - "frames": 285, - "mounts": 250, + "frames": 335, + "mounts": 300, "draws": 2000, "f1": { - "delta": 0.006, - "lo": -0.0112, - "hi": 0.0239, - "win": 0.771 + "delta": 0.0207, + "lo": -0.0028, + "hi": 0.0438, + "win": 0.961 }, "mask_score": { - "delta": -0.0004, - "lo": -0.0133, - "hi": 0.0122, - "win": 0.494 + "delta": 0.0104, + "lo": -0.0053, + "hi": 0.027, + "win": 0.9 } }, - "pass": false + "pass": true }, "training": { "epochs_run": 235, @@ -53,5 +53,5 @@ "mAP50-95(M)": 0.64104 }, "version": "yolo26s-seg-v5-s-noflip-mask1-2026-10-25", - "measured_at": "2026-10-25T02:47:58" + "measured_at": "2026-10-25T09:47:58" } diff --git a/runs/2026-10-23_v5-s-noflip-mask1/run.json b/runs/2026-10-23_v5-s-noflip-mask1/run.json index 5f84ab4b..03e684df 100644 --- a/runs/2026-10-23_v5-s-noflip-mask1/run.json +++ b/runs/2026-10-23_v5-s-noflip-mask1/run.json @@ -2,7 +2,7 @@ "id": "2026-10-23_v5-s-noflip-mask1", "dataset": "dataset/2026-10-22_v5", "base_weights": "models/base/yolo26s-seg.pt", - "status": "gate_failed", + "status": "gate_passed", "created": "2026-10-23T03:53:49", "created_by": "jungfrau@mx-spark-01", "hyperparams": { @@ -24,11 +24,11 @@ }, "version": "yolo26s-seg-v5-s-noflip-mask1-2026-10-25", "metrics": { - "f1": 0.8530534351145038, - "mean_mask_iou": 0.9054766149636467, - "gate_pass": false, + "f1": 0.7606338615512926, + "mean_mask_iou": 0.8613183483285363, + "gate_pass": true, "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", - "measured_at": "2026-10-25T02:47:58" + "measured_at": "2026-10-25T09:47:58" }, "history": [ { @@ -72,8 +72,26 @@ "at": "2026-10-25T02:47:58", "by": "jungfrau@mx-spark-01", "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json\", \"f1_delta\": 0.0053, \"mask_iou_delta\": -0.01, \"mask_score\": 0.7867, \"mask_score_baseline\": 0.7967, \"matched_only_iou_delta\": -0.0064, \"class_f1_delta\": {\"loop_all\": -0.0061, \"pin\": -0.0043}, \"pass_point_rule\": false, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 285, \"mounts\": 250, \"draws\": 2000, \"f1\": {\"delta\": 0.006, \"lo\": -0.0112, \"hi\": 0.0239, \"win\": 0.771}, \"mask_score\": {\"delta\": -0.0004, \"lo\": -0.0133, \"hi\": 0.0122, \"win\": 0.494}}, \"pass\": false}" + }, + { + "status": "training", + "at": "2026-10-25T09:47:49", + "by": "jungfrau@mx-spark-01", + "note": "train_run.py" + }, + { + "status": "measured", + "at": "2026-10-25T09:47:58", + "by": "jungfrau@mx-spark-01", + "note": "" + }, + { + "status": "gate_passed", + "at": "2026-10-25T09:47:58", + "by": "jungfrau@mx-spark-01", + "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json\", \"f1_delta\": 0.0207, \"mask_iou_delta\": 0.0104, \"mask_score\": 0.6831, \"mask_score_baseline\": 0.6726, \"matched_only_iou_delta\": -0.002, \"class_f1_delta\": {\"loop_all\": -0.0085, \"pin\": 0.0064}, \"pass_point_rule\": true, \"rule\": \"paired bootstrap\", \"bootstrap\": {\"frames\": 335, \"mounts\": 300, \"draws\": 2000, \"f1\": {\"delta\": 0.0207, \"lo\": -0.0028, \"hi\": 0.0438, \"win\": 0.961}, \"mask_score\": {\"delta\": 0.0104, \"lo\": -0.0053, \"hi\": 0.027, \"win\": 0.9}}, \"pass\": true}" } ], "host": "mx-spark-01", - "started": "2026-10-25T02:47:48" + "started": "2026-10-25T09:47:49" } diff --git a/runs/README.md b/runs/README.md index 7272dd7a..ac014b40 100644 --- a/runs/README.md +++ b/runs/README.md @@ -20,10 +20,10 @@ Generated by `python tools/ledger.py render`; do not edit by hand. | 2026-09-30_v3-s-640px | gate_passed | dataset/2026-09-29_v3 | models/base/yolo26s-seg.pt | yolo26s-seg-v3-s-640px-2026-10-01 | 0.861 | 0.886 | yes | 2026-10-02T13:29 | | 2026-10-01_v4-noflip-mask1 | promoted | dataset/2026-10-01_v4 | models/base/yolo26n-seg.pt | yolo26n-seg-v4-noflip-mask1-2026-10-02 | 0.852 | 0.891 | yes | 2026-10-02T13:25 | | 2026-10-01_v4-recipeA | gate_failed | dataset/2026-10-01_v4 | models/base/yolo26n-seg.pt | yolo26n-seg-v4-recipeA-2026-10-02 | 0.832 | 0.884 | no | 2026-10-02T04:12 | -| 2026-10-22_v5-noflip-mask1 | gate_failed | dataset/2026-10-22_v5 | models/base/yolo26n-seg.pt | yolo26n-seg-v5-noflip-mask1-2026-10-25 | 0.853 | 0.906 | no | 2026-10-25T02:47 | +| 2026-10-22_v5-noflip-mask1 | gate_failed | dataset/2026-10-22_v5 | models/base/yolo26n-seg.pt | yolo26n-seg-v5-noflip-mask1-2026-10-25 | 0.755 | 0.859 | no | 2026-10-25T09:47 | | 2026-10-23_v5-m-noflip-mask1 | aborted | dataset/2026-10-22_v5 | models/base/yolo26m-seg.pt | - | - | - | - | 2026-10-23T18:53 | -| 2026-10-23_v5-n-1024px | gate_failed | dataset/2026-10-22_v5 | models/base/yolo26n-seg.pt | yolo26n-seg-v5-n-1024px-2026-10-25 | 0.850 | 0.905 | no | 2026-10-25T02:48 | -| 2026-10-23_v5-s-noflip-mask1 | gate_failed | dataset/2026-10-22_v5 | models/base/yolo26s-seg.pt | yolo26s-seg-v5-s-noflip-mask1-2026-10-25 | 0.853 | 0.905 | no | 2026-10-25T02:47 | +| 2026-10-23_v5-n-1024px | gate_failed | dataset/2026-10-22_v5 | models/base/yolo26n-seg.pt | yolo26n-seg-v5-n-1024px-2026-10-25 | 0.751 | 0.864 | no | 2026-10-25T09:48 | +| 2026-10-23_v5-s-noflip-mask1 | gate_passed | dataset/2026-10-22_v5 | models/base/yolo26s-seg.pt | yolo26s-seg-v5-s-noflip-mask1-2026-10-25 | 0.761 | 0.861 | yes | 2026-10-25T09:47 | States: exported → queued → training → measured → gate_passed → gate_failed → promoted → deployed (or aborted). @@ -157,6 +157,9 @@ States: exported → queued → training → measured → gate_passed → gate_f - 2026-10-25T02:47:39 · training · jungfrau@mx-spark-01 — train_run.py - 2026-10-25T02:47:47 · measured · jungfrau@mx-spark-01 - 2026-10-25T02:47:47 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0049, "mask_iou_delta": -0.0125, "mask_score": 0.7842, "mask_score_baseline": 0.7967, "matched_only_iou_delta": -0.0063, "class_f1_delta": {"loop_all": -0.0133, "pin": 0.0121}, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": {"frames": 285, "mounts": 250, "draws": 2000, "f1": {"delta": 0.0017, "lo": -0.0137, "hi": 0.0179, "win": 0.592}, "mask_score": {"delta": -0.0056, "lo": -0.0174, "hi": 0.0056, "win": 0.174}}, "pass": false} +- 2026-10-25T09:47:41 · training · jungfrau@mx-spark-01 — train_run.py +- 2026-10-25T09:47:49 · measured · jungfrau@mx-spark-01 +- 2026-10-25T09:47:49 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0147, "mask_iou_delta": -0.0016, "mask_score": 0.6711, "mask_score_baseline": 0.6726, "matched_only_iou_delta": -0.0039, "class_f1_delta": {"loop_all": -0.025, "pin": 0.0352}, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": {"frames": 335, "mounts": 300, "draws": 2000, "f1": {"delta": 0.0147, "lo": -0.0078, "hi": 0.0402, "win": 0.906}, "mask_score": {"delta": -0.0016, "lo": -0.0182, "hi": 0.0149, "win": 0.446}}, "pass": false} ## 2026-10-23_v5-m-noflip-mask1 @@ -173,6 +176,9 @@ States: exported → queued → training → measured → gate_passed → gate_f - 2026-10-25T02:47:59 · training · jungfrau@mx-spark-01 — train_run.py - 2026-10-25T02:48:09 · measured · jungfrau@mx-spark-01 - 2026-10-25T02:48:09 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0022, "mask_iou_delta": -0.0099, "mask_score": 0.7867, "mask_score_baseline": 0.7967, "matched_only_iou_delta": -0.0073, "class_f1_delta": {"loop_all": -0.0115, "pin": 0.0066}, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": {"frames": 285, "mounts": 250, "draws": 2000, "f1": {"delta": 0.0024, "lo": -0.0143, "hi": 0.0204, "win": 0.595}, "mask_score": {"delta": 0.0009, "lo": -0.0127, "hi": 0.0145, "win": 0.553}}, "pass": false} +- 2026-10-25T09:47:59 · training · jungfrau@mx-spark-01 — train_run.py +- 2026-10-25T09:48:08 · measured · jungfrau@mx-spark-01 +- 2026-10-25T09:48:08 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0114, "mask_iou_delta": 0.0037, "mask_score": 0.6764, "mask_score_baseline": 0.6726, "matched_only_iou_delta": 0.0009, "class_f1_delta": {"loop_all": -0.0131, "pin": 0.0285}, "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": {"frames": 335, "mounts": 300, "draws": 2000, "f1": {"delta": 0.0114, "lo": -0.0119, "hi": 0.0351, "win": 0.816}, "mask_score": {"delta": 0.0037, "lo": -0.0143, "hi": 0.0224, "win": 0.662}}, "pass": false} ## 2026-10-23_v5-s-noflip-mask1 @@ -183,3 +189,6 @@ States: exported → queued → training → measured → gate_passed → gate_f - 2026-10-25T02:47:48 · training · jungfrau@mx-spark-01 — train_run.py - 2026-10-25T02:47:58 · measured · jungfrau@mx-spark-01 - 2026-10-25T02:47:58 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0053, "mask_iou_delta": -0.01, "mask_score": 0.7867, "mask_score_baseline": 0.7967, "matched_only_iou_delta": -0.0064, "class_f1_delta": {"loop_all": -0.0061, "pin": -0.0043}, "pass_point_rule": false, "rule": "paired bootstrap", "bootstrap": {"frames": 285, "mounts": 250, "draws": 2000, "f1": {"delta": 0.006, "lo": -0.0112, "hi": 0.0239, "win": 0.771}, "mask_score": {"delta": -0.0004, "lo": -0.0133, "hi": 0.0122, "win": 0.494}}, "pass": false} +- 2026-10-25T09:47:49 · training · jungfrau@mx-spark-01 — train_run.py +- 2026-10-25T09:47:58 · measured · jungfrau@mx-spark-01 +- 2026-10-25T09:47:58 · gate_passed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v4-noflip-mask1-2026-10-02/gold_report.json", "f1_delta": 0.0207, "mask_iou_delta": 0.0104, "mask_score": 0.6831, "mask_score_baseline": 0.6726, "matched_only_iou_delta": -0.002, "class_f1_delta": {"loop_all": -0.0085, "pin": 0.0064}, "pass_point_rule": true, "rule": "paired bootstrap", "bootstrap": {"frames": 335, "mounts": 300, "draws": 2000, "f1": {"delta": 0.0207, "lo": -0.0028, "hi": 0.0438, "win": 0.961}, "mask_score": {"delta": 0.0104, "lo": -0.0053, "hi": 0.027, "win": 0.9}}, "pass": true} diff --git a/runs/clean_gold_comparison.json b/runs/clean_gold_comparison.json index 73318c83..095ff723 100644 --- a/runs/clean_gold_comparison.json +++ b/runs/clean_gold_comparison.json @@ -4,132 +4,132 @@ "beamline yolo26n-seg-overlap-false-2026-04-12": { "per_class": { "loop_all": { - "tp": 154, - "fp": 20, - "fn": 14, - "precision": 0.8850574712643678, - "recall": 0.9166666666666666, - "f1": 0.9005847953216374, - "mean_mask_iou": 0.9231380783734185, - "n_matched": 154 + "tp": 67, + "fp": 32, + "fn": 38, + "precision": 0.6767676767676768, + "recall": 0.638095238095238, + "f1": 0.6568627450980391, + "mean_mask_iou": 0.8315179496370663, + "n_matched": 67 }, "pin": { - "tp": 97, - "fp": 23, - "fn": 13, - "precision": 0.8083333333333333, - "recall": 0.8818181818181818, - "f1": 0.8434782608695653, - "mean_mask_iou": 0.927907791248477, - "n_matched": 97 + "tp": 31, + "fp": 34, + "fn": 23, + "precision": 0.47692307692307695, + "recall": 0.5740740740740741, + "f1": 0.5210084033613446, + "mean_mask_iou": 0.8756978107555334, + "n_matched": 31 }, "crystal": { - "tp": 32, - "fp": 57, - "fn": 75, - "precision": 0.3595505617977528, - "recall": 0.29906542056074764, - "f1": 0.32653061224489793, - "mean_mask_iou": 0.7251954787416872, - "n_matched": 32 + "tp": 37, + "fp": 86, + "fn": 72, + "precision": 0.3008130081300813, + "recall": 0.3394495412844037, + "f1": 0.31896551724137934, + "mean_mask_iou": 0.725484168785211, + "n_matched": 37 }, "loop_face": { - "tp": 135, - "fp": 51, - "fn": 31, - "precision": 0.7258064516129032, - "recall": 0.8132530120481928, - "f1": 0.7670454545454545, - "mean_mask_iou": 0.9273452333862002, - "n_matched": 135 + "tp": 52, + "fp": 56, + "fn": 51, + "precision": 0.48148148148148145, + "recall": 0.5048543689320388, + "f1": 0.4928909952606635, + "mean_mask_iou": 0.8609516195382945, + "n_matched": 52 }, "ice": { "tp": 1, - "fp": 6, - "fn": 4, - "precision": 0.14285714285714285, - "recall": 0.2, - "f1": 0.16666666666666666, + "fp": 14, + "fn": 11, + "precision": 0.06666666666666667, + "recall": 0.08333333333333333, + "f1": 0.07407407407407407, "mean_mask_iou": 0.8931750741839762, "n_matched": 1 } }, "overall": { - "tp": 419, - "fp": 157, - "fn": 137, - "precision": 0.7274305555555556, - "recall": 0.7535971223021583, - "f1": 0.7402826855123674, - "mean_mask_iou": 0.9104089659228258, - "n_matched": 419 + "tp": 188, + "fp": 222, + "fn": 195, + "precision": 0.4585365853658537, + "recall": 0.4908616187989556, + "f1": 0.4741488020176545, + "mean_mask_iou": 0.8264037675230486, + "n_matched": 188 }, "dataset": { - "gold_images": 175 + "gold_images": 281 } }, "2026-09-28_alc-v1": { "per_class": { "loop_all": { - "tp": 244, - "fp": 26, - "fn": 20, - "precision": 0.9037037037037037, - "recall": 0.9242424242424242, - "f1": 0.9138576779026217, - "mean_mask_iou": 0.9103160618585375, - "n_matched": 244 + "tp": 91, + "fp": 25, + "fn": 14, + "precision": 0.7844827586206896, + "recall": 0.8666666666666667, + "f1": 0.823529411764706, + "mean_mask_iou": 0.8525078316651249, + "n_matched": 91 }, "pin": { - "tp": 181, - "fp": 27, - "fn": 13, - "precision": 0.8701923076923077, - "recall": 0.9329896907216495, - "f1": 0.900497512437811, - "mean_mask_iou": 0.9234929164091538, - "n_matched": 181 + "tp": 43, + "fp": 24, + "fn": 11, + "precision": 0.6417910447761194, + "recall": 0.7962962962962963, + "f1": 0.7107438016528925, + "mean_mask_iou": 0.8772924892562222, + "n_matched": 43 }, "crystal": { - "tp": 47, + "tp": 43, "fp": 49, - "fn": 76, - "precision": 0.4895833333333333, - "recall": 0.3821138211382114, - "f1": 0.4292237442922375, - "mean_mask_iou": 0.712798095999229, - "n_matched": 47 + "fn": 66, + "precision": 0.4673913043478261, + "recall": 0.3944954128440367, + "f1": 0.427860696517413, + "mean_mask_iou": 0.71412771496749, + "n_matched": 43 }, "loop_face": { - "tp": 195, - "fp": 52, - "fn": 48, - "precision": 0.7894736842105263, - "recall": 0.8024691358024691, - "f1": 0.7959183673469388, - "mean_mask_iou": 0.9028219908231531, - "n_matched": 195 + "tp": 69, + "fp": 48, + "fn": 34, + "precision": 0.5897435897435898, + "recall": 0.6699029126213593, + "f1": 0.6272727272727273, + "mean_mask_iou": 0.8337839647964048, + "n_matched": 69 }, "ice": { "tp": 1, "fp": 4, - "fn": 12, + "fn": 11, "precision": 0.2, - "recall": 0.07692307692307693, - "f1": 0.1111111111111111, + "recall": 0.08333333333333333, + "f1": 0.11764705882352941, "mean_mask_iou": 0.8808139534883721, "n_matched": 1 } }, "overall": { - "tp": 668, - "fp": 158, - "fn": 169, - "precision": 0.8087167070217918, - "recall": 0.7980884109916367, - "f1": 0.8033674082982563, - "mean_mask_iou": 0.8977574096399805, - "n_matched": 668 + "tp": 247, + "fp": 150, + "fn": 136, + "precision": 0.6221662468513854, + "recall": 0.6449086161879896, + "f1": 0.6333333333333333, + "mean_mask_iou": 0.8276161497473133, + "n_matched": 247 }, "dataset": { "gold_images": 281 @@ -138,49 +138,49 @@ "2026-09-28_alc-v1-800px": { "per_class": { "loop_all": { - "tp": 248, - "fp": 41, - "fn": 16, - "precision": 0.8581314878892734, - "recall": 0.9393939393939394, - "f1": 0.8969258589511755, - "mean_mask_iou": 0.9112071454475272, - "n_matched": 248 + "tp": 94, + "fp": 36, + "fn": 11, + "precision": 0.7230769230769231, + "recall": 0.8952380952380953, + "f1": 0.7999999999999999, + "mean_mask_iou": 0.8653836890296168, + "n_matched": 94 }, "pin": { - "tp": 176, - "fp": 20, - "fn": 18, - "precision": 0.8979591836734694, - "recall": 0.9072164948453608, - "f1": 0.9025641025641026, - "mean_mask_iou": 0.9260759853198219, - "n_matched": 176 + "tp": 41, + "fp": 16, + "fn": 13, + "precision": 0.7192982456140351, + "recall": 0.7592592592592593, + "f1": 0.7387387387387387, + "mean_mask_iou": 0.888831838195449, + "n_matched": 41 }, "crystal": { - "tp": 51, - "fp": 66, - "fn": 72, - "precision": 0.4358974358974359, - "recall": 0.4146341463414634, - "f1": 0.42500000000000004, - "mean_mask_iou": 0.7258538188619535, - "n_matched": 51 + "tp": 47, + "fp": 65, + "fn": 62, + "precision": 0.41964285714285715, + "recall": 0.43119266055045874, + "f1": 0.42533936651583715, + "mean_mask_iou": 0.7275480857657721, + "n_matched": 47 }, "loop_face": { - "tp": 187, - "fp": 48, - "fn": 56, - "precision": 0.7957446808510639, - "recall": 0.7695473251028807, - "f1": 0.7824267782426779, - "mean_mask_iou": 0.9109665444783769, - "n_matched": 187 + "tp": 61, + "fp": 41, + "fn": 42, + "precision": 0.5980392156862745, + "recall": 0.5922330097087378, + "f1": 0.5951219512195122, + "mean_mask_iou": 0.8488937120925294, + "n_matched": 61 }, "ice": { "tp": 0, "fp": 3, - "fn": 13, + "fn": 12, "precision": 0.0, "recall": 0.0, "f1": 0.0, @@ -189,14 +189,14 @@ } }, "overall": { - "tp": 662, - "fp": 178, - "fn": 175, - "precision": 0.7880952380952381, - "recall": 0.7909199522102748, - "f1": 0.789505068574836, - "mean_mask_iou": 0.9008127402820111, - "n_matched": 662 + "tp": 243, + "fp": 161, + "fn": 140, + "precision": 0.6014851485148515, + "recall": 0.6344647519582245, + "f1": 0.6175349428208387, + "mean_mask_iou": 0.8385409407548681, + "n_matched": 243 }, "dataset": { "gold_images": 281 @@ -205,65 +205,65 @@ "2026-09-28_alc-v1-humanonly": { "per_class": { "loop_all": { - "tp": 244, - "fp": 26, - "fn": 20, - "precision": 0.9037037037037037, - "recall": 0.9242424242424242, - "f1": 0.9138576779026217, - "mean_mask_iou": 0.9131214122937471, - "n_matched": 244 + "tp": 92, + "fp": 24, + "fn": 13, + "precision": 0.7931034482758621, + "recall": 0.8761904761904762, + "f1": 0.832579185520362, + "mean_mask_iou": 0.8506506295663614, + "n_matched": 92 }, "pin": { - "tp": 182, - "fp": 16, - "fn": 12, - "precision": 0.9191919191919192, - "recall": 0.9381443298969072, - "f1": 0.9285714285714285, - "mean_mask_iou": 0.9152615958746741, - "n_matched": 182 + "tp": 43, + "fp": 14, + "fn": 11, + "precision": 0.7543859649122807, + "recall": 0.7962962962962963, + "f1": 0.7747747747747747, + "mean_mask_iou": 0.8766013473049766, + "n_matched": 43 }, "crystal": { - "tp": 56, - "fp": 65, - "fn": 67, - "precision": 0.4628099173553719, - "recall": 0.45528455284552843, - "f1": 0.4590163934426229, - "mean_mask_iou": 0.7145956909706587, - "n_matched": 56 + "tp": 51, + "fp": 64, + "fn": 58, + "precision": 0.4434782608695652, + "recall": 0.46788990825688076, + "f1": 0.45535714285714285, + "mean_mask_iou": 0.722388012987453, + "n_matched": 51 }, "loop_face": { - "tp": 193, - "fp": 44, - "fn": 50, - "precision": 0.8143459915611815, - "recall": 0.7942386831275721, - "f1": 0.8041666666666667, - "mean_mask_iou": 0.9040561363343581, - "n_matched": 193 + "tp": 66, + "fp": 40, + "fn": 37, + "precision": 0.6226415094339622, + "recall": 0.6407766990291263, + "f1": 0.631578947368421, + "mean_mask_iou": 0.83667011218176, + "n_matched": 66 }, "ice": { "tp": 1, "fp": 4, - "fn": 12, + "fn": 11, "precision": 0.2, - "recall": 0.07692307692307693, - "f1": 0.1111111111111111, + "recall": 0.08333333333333333, + "f1": 0.11764705882352941, "mean_mask_iou": 0.8895522388059701, "n_matched": 1 } }, "overall": { - "tp": 676, - "fp": 155, - "fn": 161, - "precision": 0.8134777376654633, - "recall": 0.8076463560334528, - "f1": 0.8105515587529976, - "mean_mask_iou": 0.8946286690747911, - "n_matched": 676 + "tp": 253, + "fp": 146, + "fn": 130, + "precision": 0.6340852130325815, + "recall": 0.660574412532637, + "f1": 0.6470588235294118, + "mean_mask_iou": 0.8257125856102038, + "n_matched": 253 }, "dataset": { "gold_images": 281 @@ -272,65 +272,65 @@ "2026-09-28_alc-v1-mask1": { "per_class": { "loop_all": { - "tp": 250, - "fp": 44, - "fn": 14, - "precision": 0.8503401360544217, - "recall": 0.946969696969697, - "f1": 0.8960573476702508, - "mean_mask_iou": 0.9099596381748364, - "n_matched": 250 + "tp": 94, + "fp": 41, + "fn": 11, + "precision": 0.6962962962962963, + "recall": 0.8952380952380953, + "f1": 0.7833333333333333, + "mean_mask_iou": 0.8538186412222039, + "n_matched": 94 }, "pin": { - "tp": 175, - "fp": 17, - "fn": 19, - "precision": 0.9114583333333334, - "recall": 0.9020618556701031, - "f1": 0.9067357512953368, - "mean_mask_iou": 0.934956000034779, - "n_matched": 175 - }, - "crystal": { "tp": 39, - "fp": 36, - "fn": 84, - "precision": 0.52, - "recall": 0.3170731707317073, - "f1": 0.3939393939393939, - "mean_mask_iou": 0.7341688197877742, + "fp": 16, + "fn": 15, + "precision": 0.7090909090909091, + "recall": 0.7222222222222222, + "f1": 0.7155963302752293, + "mean_mask_iou": 0.8926246352242595, "n_matched": 39 }, + "crystal": { + "tp": 33, + "fp": 36, + "fn": 76, + "precision": 0.4782608695652174, + "recall": 0.30275229357798167, + "f1": 0.3707865168539326, + "mean_mask_iou": 0.7284542042641542, + "n_matched": 33 + }, "loop_face": { - "tp": 206, - "fp": 45, - "fn": 37, - "precision": 0.8207171314741036, - "recall": 0.8477366255144033, - "f1": 0.8340080971659919, - "mean_mask_iou": 0.9047398580415201, - "n_matched": 206 + "tp": 72, + "fp": 41, + "fn": 31, + "precision": 0.6371681415929203, + "recall": 0.6990291262135923, + "f1": 0.6666666666666666, + "mean_mask_iou": 0.8378448507687087, + "n_matched": 72 }, "ice": { "tp": 1, "fp": 3, - "fn": 12, + "fn": 11, "precision": 0.25, - "recall": 0.07692307692307693, - "f1": 0.11764705882352941, + "recall": 0.08333333333333333, + "f1": 0.125, "mean_mask_iou": 0.8958333333333334, "n_matched": 1 } }, "overall": { - "tp": 671, - "fp": 145, - "fn": 166, - "precision": 0.8223039215686274, - "recall": 0.8016726403823178, - "f1": 0.8118572292800968, - "mean_mask_iou": 0.9046379100020938, - "n_matched": 671 + "tp": 239, + "fp": 137, + "fn": 144, + "precision": 0.6356382978723404, + "recall": 0.6240208877284595, + "f1": 0.6297760210803689, + "mean_mask_iou": 0.8382048718746058, + "n_matched": 239 }, "dataset": { "gold_images": 281 @@ -339,65 +339,65 @@ "2026-09-28_alc-v1-noflip": { "per_class": { "loop_all": { - "tp": 248, - "fp": 34, - "fn": 16, - "precision": 0.8794326241134752, - "recall": 0.9393939393939394, - "f1": 0.9084249084249085, - "mean_mask_iou": 0.908630646462612, - "n_matched": 248 + "tp": 94, + "fp": 32, + "fn": 11, + "precision": 0.746031746031746, + "recall": 0.8952380952380953, + "f1": 0.8138528138528139, + "mean_mask_iou": 0.8489222109312143, + "n_matched": 94 }, "pin": { - "tp": 179, - "fp": 21, - "fn": 15, - "precision": 0.895, - "recall": 0.9226804123711341, - "f1": 0.9086294416243655, - "mean_mask_iou": 0.9226412784500149, - "n_matched": 179 - }, - "crystal": { "tp": 42, - "fp": 48, - "fn": 81, - "precision": 0.4666666666666667, - "recall": 0.34146341463414637, - "f1": 0.3943661971830986, - "mean_mask_iou": 0.7269361818133384, + "fp": 18, + "fn": 12, + "precision": 0.7, + "recall": 0.7777777777777778, + "f1": 0.7368421052631577, + "mean_mask_iou": 0.873456473256782, "n_matched": 42 }, + "crystal": { + "tp": 38, + "fp": 47, + "fn": 71, + "precision": 0.4470588235294118, + "recall": 0.3486238532110092, + "f1": 0.3917525773195876, + "mean_mask_iou": 0.7335619346498713, + "n_matched": 38 + }, "loop_face": { - "tp": 207, - "fp": 57, - "fn": 36, - "precision": 0.7840909090909091, - "recall": 0.8518518518518519, - "f1": 0.8165680473372782, - "mean_mask_iou": 0.9055127719252077, - "n_matched": 207 + "tp": 73, + "fp": 51, + "fn": 30, + "precision": 0.5887096774193549, + "recall": 0.7087378640776699, + "f1": 0.643171806167401, + "mean_mask_iou": 0.8359051782458707, + "n_matched": 73 }, "ice": { "tp": 1, "fp": 1, - "fn": 12, + "fn": 11, "precision": 0.5, - "recall": 0.07692307692307693, - "f1": 0.13333333333333336, + "recall": 0.08333333333333333, + "f1": 0.14285714285714285, "mean_mask_iou": 0.9156626506024096, "n_matched": 1 } }, "overall": { - "tp": 677, - "fp": 161, - "fn": 160, - "precision": 0.8078758949880668, - "recall": 0.8088410991636799, - "f1": 0.808358208955224, - "mean_mask_iou": 0.9001201111381992, - "n_matched": 677 + "tp": 248, + "fp": 149, + "fn": 135, + "precision": 0.6246851385390428, + "recall": 0.6475195822454308, + "f1": 0.6358974358974359, + "mean_mask_iou": 0.8318385237240532, + "n_matched": 248 }, "dataset": { "gold_images": 281 @@ -406,132 +406,132 @@ "2026-09-29_alc-v1-noflip-mask1": { "per_class": { "loop_all": { - "tp": 220, - "fp": 31, - "fn": 18, - "precision": 0.8764940239043825, - "recall": 0.9243697478991597, - "f1": 0.899795501022495, - "mean_mask_iou": 0.9228669094549258, - "n_matched": 220 + "tp": 93, + "fp": 34, + "fn": 12, + "precision": 0.7322834645669292, + "recall": 0.8857142857142857, + "f1": 0.8017241379310345, + "mean_mask_iou": 0.8570132627732648, + "n_matched": 93 }, "pin": { - "tp": 167, - "fp": 19, + "tp": 42, + "fp": 18, "fn": 12, - "precision": 0.8978494623655914, - "recall": 0.9329608938547486, - "f1": 0.915068493150685, - "mean_mask_iou": 0.9365134811689726, - "n_matched": 167 + "precision": 0.7, + "recall": 0.7777777777777778, + "f1": 0.7368421052631577, + "mean_mask_iou": 0.8820426184468859, + "n_matched": 42 }, "crystal": { - "tp": 47, - "fp": 59, - "fn": 57, - "precision": 0.44339622641509435, - "recall": 0.4519230769230769, - "f1": 0.44761904761904764, - "mean_mask_iou": 0.7290479444134937, - "n_matched": 47 + "tp": 49, + "fp": 73, + "fn": 60, + "precision": 0.4016393442622951, + "recall": 0.44954128440366975, + "f1": 0.4242424242424242, + "mean_mask_iou": 0.732320841878607, + "n_matched": 49 }, "loop_face": { - "tp": 185, - "fp": 52, - "fn": 32, - "precision": 0.7805907172995781, - "recall": 0.8525345622119815, - "f1": 0.8149779735682819, - "mean_mask_iou": 0.9177584074810119, - "n_matched": 185 + "tp": 73, + "fp": 50, + "fn": 30, + "precision": 0.5934959349593496, + "recall": 0.7087378640776699, + "f1": 0.6460176991150443, + "mean_mask_iou": 0.8425311660576752, + "n_matched": 73 }, "ice": { "tp": 1, - "fp": 4, - "fn": 12, - "precision": 0.2, - "recall": 0.07692307692307693, + "fp": 5, + "fn": 11, + "precision": 0.16666666666666666, + "recall": 0.08333333333333333, "f1": 0.1111111111111111, "mean_mask_iou": 0.901840490797546, "n_matched": 1 } }, "overall": { - "tp": 620, - "fp": 165, - "fn": 131, - "precision": 0.7898089171974523, - "recall": 0.8255659121171771, - "f1": 0.8072916666666666, - "mean_mask_iou": 0.9102917269314864, - "n_matched": 620 + "tp": 258, + "fp": 180, + "fn": 125, + "precision": 0.589041095890411, + "recall": 0.6736292428198434, + "f1": 0.6285018270401949, + "mean_mask_iou": 0.8334820165803967, + "n_matched": 258 }, "dataset": { - "gold_images": 255 + "gold_images": 281 } }, "2026-09-29_v2-recipeA": { "per_class": { "loop_all": { - "tp": 251, - "fp": 36, - "fn": 13, - "precision": 0.8745644599303136, - "recall": 0.9507575757575758, - "f1": 0.911070780399274, - "mean_mask_iou": 0.9041942119995942, - "n_matched": 251 + "tp": 96, + "fp": 29, + "fn": 9, + "precision": 0.768, + "recall": 0.9142857142857143, + "f1": 0.8347826086956521, + "mean_mask_iou": 0.8451202197174282, + "n_matched": 96 }, "pin": { - "tp": 183, - "fp": 26, + "tp": 43, + "fp": 22, "fn": 11, - "precision": 0.8755980861244019, - "recall": 0.9432989690721649, - "f1": 0.9081885856079405, - "mean_mask_iou": 0.9246470710148307, - "n_matched": 183 + "precision": 0.6615384615384615, + "recall": 0.7962962962962963, + "f1": 0.7226890756302522, + "mean_mask_iou": 0.8753832047697062, + "n_matched": 43 }, "crystal": { - "tp": 41, - "fp": 43, - "fn": 82, - "precision": 0.4880952380952381, - "recall": 0.3333333333333333, - "f1": 0.3961352657004831, - "mean_mask_iou": 0.7375250800516058, - "n_matched": 41 + "tp": 36, + "fp": 42, + "fn": 73, + "precision": 0.46153846153846156, + "recall": 0.3302752293577982, + "f1": 0.3850267379679144, + "mean_mask_iou": 0.7339861583474627, + "n_matched": 36 }, "loop_face": { - "tp": 203, - "fp": 67, - "fn": 40, - "precision": 0.7518518518518519, - "recall": 0.8353909465020576, - "f1": 0.7914230019493178, - "mean_mask_iou": 0.9065075251146673, - "n_matched": 203 + "tp": 71, + "fp": 62, + "fn": 32, + "precision": 0.5338345864661654, + "recall": 0.6893203883495146, + "f1": 0.6016949152542374, + "mean_mask_iou": 0.8387546082866301, + "n_matched": 71 }, "ice": { "tp": 1, "fp": 8, - "fn": 12, + "fn": 11, "precision": 0.1111111111111111, - "recall": 0.07692307692307693, - "f1": 0.09090909090909093, + "recall": 0.08333333333333333, + "f1": 0.09523809523809525, "mean_mask_iou": 0.8793103448275862, "n_matched": 1 } }, "overall": { - "tp": 679, - "fp": 180, - "fn": 158, - "precision": 0.7904540162980209, - "recall": 0.8112305854241338, - "f1": 0.8007075471698113, - "mean_mask_iou": 0.9002975367199315, - "n_matched": 679 + "tp": 247, + "fp": 163, + "fn": 136, + "precision": 0.6024390243902439, + "recall": 0.6449086161879896, + "f1": 0.6229508196721311, + "mean_mask_iou": 0.8324996280633903, + "n_matched": 247 }, "dataset": { "gold_images": 281 @@ -540,132 +540,132 @@ "2026-09-29_v3-noflip-mask1": { "per_class": { "loop_all": { - "tp": 177, - "fp": 24, - "fn": 7, - "precision": 0.8805970149253731, - "recall": 0.9619565217391305, - "f1": 0.9194805194805195, - "mean_mask_iou": 0.9093068166305329, - "n_matched": 177 + "tp": 97, + "fp": 26, + "fn": 8, + "precision": 0.7886178861788617, + "recall": 0.9238095238095239, + "f1": 0.8508771929824561, + "mean_mask_iou": 0.8739499288798377, + "n_matched": 97 }, "pin": { - "tp": 133, - "fp": 8, - "fn": 8, - "precision": 0.9432624113475178, - "recall": 0.9432624113475178, - "f1": 0.9432624113475178, - "mean_mask_iou": 0.9273714724580228, - "n_matched": 133 + "tp": 45, + "fp": 12, + "fn": 9, + "precision": 0.7894736842105263, + "recall": 0.8333333333333334, + "f1": 0.8108108108108109, + "mean_mask_iou": 0.8908809531176523, + "n_matched": 45 }, "crystal": { - "tp": 38, - "fp": 28, - "fn": 42, - "precision": 0.5757575757575758, - "recall": 0.475, - "f1": 0.5205479452054794, - "mean_mask_iou": 0.7674767907087415, - "n_matched": 38 + "tp": 50, + "fp": 45, + "fn": 59, + "precision": 0.5263157894736842, + "recall": 0.45871559633027525, + "f1": 0.49019607843137253, + "mean_mask_iou": 0.7306022616583209, + "n_matched": 50 }, "loop_face": { - "tp": 157, - "fp": 30, - "fn": 12, - "precision": 0.839572192513369, - "recall": 0.9289940828402367, - "f1": 0.8820224719101124, - "mean_mask_iou": 0.8893289116505536, - "n_matched": 157 + "tp": 83, + "fp": 45, + "fn": 20, + "precision": 0.6484375, + "recall": 0.8058252427184466, + "f1": 0.7186147186147185, + "mean_mask_iou": 0.8402809889109282, + "n_matched": 83 }, "ice": { "tp": 1, - "fp": 3, - "fn": 9, - "precision": 0.25, - "recall": 0.1, - "f1": 0.14285714285714288, + "fp": 7, + "fn": 11, + "precision": 0.125, + "recall": 0.08333333333333333, + "f1": 0.1, "mean_mask_iou": 0.8753799392097265, "n_matched": 1 } }, "overall": { - "tp": 506, - "fp": 93, - "fn": 78, - "precision": 0.8447412353923205, - "recall": 0.8664383561643836, - "f1": 0.8554522400676247, - "mean_mask_iou": 0.8971380424818188, - "n_matched": 506 + "tp": 276, + "fp": 135, + "fn": 107, + "precision": 0.6715328467153284, + "recall": 0.720626631853786, + "f1": 0.6952141057934508, + "mean_mask_iou": 0.8406217430919257, + "n_matched": 276 }, "dataset": { - "gold_images": 198 + "gold_images": 281 } }, "2026-09-29_v3-recipeA": { "per_class": { "loop_all": { - "tp": 253, - "fp": 21, - "fn": 11, - "precision": 0.9233576642335767, - "recall": 0.9583333333333334, - "f1": 0.9405204460966543, - "mean_mask_iou": 0.9137478771325965, - "n_matched": 253 + "tp": 97, + "fp": 19, + "fn": 8, + "precision": 0.8362068965517241, + "recall": 0.9238095238095239, + "f1": 0.8778280542986425, + "mean_mask_iou": 0.863895070873135, + "n_matched": 97 }, "pin": { - "tp": 184, - "fp": 26, + "tp": 44, + "fp": 23, "fn": 10, - "precision": 0.8761904761904762, - "recall": 0.9484536082474226, - "f1": 0.9108910891089108, - "mean_mask_iou": 0.9250730136130679, - "n_matched": 184 + "precision": 0.6567164179104478, + "recall": 0.8148148148148148, + "f1": 0.7272727272727273, + "mean_mask_iou": 0.8721195914160824, + "n_matched": 44 }, "crystal": { - "tp": 51, + "tp": 45, "fp": 46, - "fn": 72, - "precision": 0.5257731958762887, - "recall": 0.4146341463414634, - "f1": 0.46363636363636357, - "mean_mask_iou": 0.7446013406334167, - "n_matched": 51 + "fn": 64, + "precision": 0.4945054945054945, + "recall": 0.41284403669724773, + "f1": 0.45000000000000007, + "mean_mask_iou": 0.7518478825914627, + "n_matched": 45 }, "loop_face": { - "tp": 215, - "fp": 50, - "fn": 28, - "precision": 0.8113207547169812, - "recall": 0.8847736625514403, - "f1": 0.8464566929133858, - "mean_mask_iou": 0.9074207092375226, - "n_matched": 215 + "tp": 81, + "fp": 47, + "fn": 22, + "precision": 0.6328125, + "recall": 0.7864077669902912, + "f1": 0.7012987012987012, + "mean_mask_iou": 0.8426347768220572, + "n_matched": 81 }, "ice": { - "tp": 2, + "tp": 1, "fp": 4, "fn": 11, - "precision": 0.3333333333333333, - "recall": 0.15384615384615385, - "f1": 0.21052631578947367, - "mean_mask_iou": 0.8381010429364757, - "n_matched": 2 + "precision": 0.2, + "recall": 0.08333333333333333, + "f1": 0.11764705882352941, + "mean_mask_iou": 0.8724637681159421, + "n_matched": 1 } }, "overall": { - "tp": 705, - "fp": 147, - "fn": 132, - "precision": 0.8274647887323944, - "recall": 0.8422939068100358, - "f1": 0.8348134991119005, - "mean_mask_iou": 0.9023233622178666, - "n_matched": 705 + "tp": 268, + "fp": 139, + "fn": 115, + "precision": 0.6584766584766585, + "recall": 0.6997389033942559, + "f1": 0.6784810126582278, + "mean_mask_iou": 0.8400377585982087, + "n_matched": 268 }, "dataset": { "gold_images": 281 @@ -674,54 +674,54 @@ "2026-09-30_v3-s-640px": { "per_class": { "loop_all": { - "tp": 255, - "fp": 23, - "fn": 9, - "precision": 0.9172661870503597, - "recall": 0.9659090909090909, - "f1": 0.940959409594096, - "mean_mask_iou": 0.9243454041600878, - "n_matched": 255 + "tp": 98, + "fp": 22, + "fn": 7, + "precision": 0.8166666666666667, + "recall": 0.9333333333333333, + "f1": 0.8711111111111112, + "mean_mask_iou": 0.879474477475054, + "n_matched": 98 }, "pin": { - "tp": 185, + "tp": 45, "fp": 13, "fn": 9, - "precision": 0.9343434343434344, - "recall": 0.9536082474226805, - "f1": 0.9438775510204083, - "mean_mask_iou": 0.9339651180078029, - "n_matched": 185 + "precision": 0.7758620689655172, + "recall": 0.8333333333333334, + "f1": 0.8035714285714286, + "mean_mask_iou": 0.8852229985131382, + "n_matched": 45 }, "crystal": { - "tp": 56, - "fp": 53, - "fn": 67, - "precision": 0.5137614678899083, - "recall": 0.45528455284552843, - "f1": 0.48275862068965514, - "mean_mask_iou": 0.7690303030738762, - "n_matched": 56 + "tp": 49, + "fp": 52, + "fn": 60, + "precision": 0.48514851485148514, + "recall": 0.44954128440366975, + "f1": 0.4666666666666667, + "mean_mask_iou": 0.7646163621490515, + "n_matched": 49 }, "loop_face": { - "tp": 218, - "fp": 46, - "fn": 25, - "precision": 0.8257575757575758, - "recall": 0.897119341563786, - "f1": 0.8599605522682446, - "mean_mask_iou": 0.9076414034966676, - "n_matched": 218 + "tp": 83, + "fp": 42, + "fn": 20, + "precision": 0.664, + "recall": 0.8058252427184466, + "f1": 0.7280701754385964, + "mean_mask_iou": 0.8429189310341726, + "n_matched": 83 }, "ice": { - "tp": 2, + "tp": 1, "fp": 1, "fn": 11, - "precision": 0.6666666666666666, - "recall": 0.15384615384615385, - "f1": 0.25, - "mean_mask_iou": 0.8091053257565746, - "n_matched": 2 + "precision": 0.5, + "recall": 0.08333333333333333, + "f1": 0.14285714285714285, + "mean_mask_iou": 0.8480243161094225, + "n_matched": 1 }, "needle": { "tp": 0, @@ -735,14 +735,14 @@ } }, "overall": { - "tp": 716, - "fp": 137, - "fn": 121, - "precision": 0.839390386869871, - "recall": 0.8554360812425329, - "f1": 0.8473372781065089, - "mean_mask_iou": 0.9092756403326656, - "n_matched": 716 + "tp": 276, + "fp": 131, + "fn": 107, + "precision": 0.6781326781326781, + "recall": 0.720626631853786, + "f1": 0.6987341772151898, + "mean_mask_iou": 0.8489131560249852, + "n_matched": 276 }, "dataset": { "gold_images": 281 @@ -751,132 +751,132 @@ "2026-10-01_v4-noflip-mask1": { "per_class": { "loop_all": { - "tp": 211, - "fp": 11, + "tp": 98, + "fp": 16, "fn": 7, - "precision": 0.9504504504504504, - "recall": 0.9678899082568807, - "f1": 0.9590909090909091, - "mean_mask_iou": 0.9206661897480345, - "n_matched": 211 + "precision": 0.8596491228070176, + "recall": 0.9333333333333333, + "f1": 0.8949771689497716, + "mean_mask_iou": 0.8840375398499658, + "n_matched": 98 }, "pin": { - "tp": 160, - "fp": 18, + "tp": 46, + "fp": 19, "fn": 8, - "precision": 0.898876404494382, - "recall": 0.9523809523809523, - "f1": 0.9248554913294796, - "mean_mask_iou": 0.933556637400468, - "n_matched": 160 + "precision": 0.7076923076923077, + "recall": 0.8518518518518519, + "f1": 0.7731092436974791, + "mean_mask_iou": 0.8829991994931374, + "n_matched": 46 }, "crystal": { - "tp": 49, - "fp": 41, - "fn": 33, - "precision": 0.5444444444444444, - "recall": 0.5975609756097561, - "f1": 0.569767441860465, - "mean_mask_iou": 0.7753470612653858, - "n_matched": 49 + "tp": 66, + "fp": 69, + "fn": 43, + "precision": 0.4888888888888889, + "recall": 0.6055045871559633, + "f1": 0.5409836065573771, + "mean_mask_iou": 0.774775940933327, + "n_matched": 66 }, "loop_face": { - "tp": 172, + "tp": 84, "fp": 45, - "fn": 21, - "precision": 0.7926267281105991, - "recall": 0.8911917098445595, - "f1": 0.8390243902439024, - "mean_mask_iou": 0.8967733433768024, - "n_matched": 172 + "fn": 19, + "precision": 0.6511627906976745, + "recall": 0.8155339805825242, + "f1": 0.7241379310344829, + "mean_mask_iou": 0.8445439682444835, + "n_matched": 84 }, "ice": { - "tp": 2, + "tp": 1, "fp": 6, "fn": 11, - "precision": 0.25, - "recall": 0.15384615384615385, - "f1": 0.1904761904761905, - "mean_mask_iou": 0.8368580060422961, - "n_matched": 2 + "precision": 0.14285714285714285, + "recall": 0.08333333333333333, + "f1": 0.10526315789473685, + "mean_mask_iou": 0.9003021148036254, + "n_matched": 1 } }, "overall": { - "tp": 594, - "fp": 121, - "fn": 80, - "precision": 0.8307692307692308, - "recall": 0.8813056379821959, - "f1": 0.8552915766738661, - "mean_mask_iou": 0.9049501095889037, - "n_matched": 594 + "tp": 295, + "fp": 155, + "fn": 88, + "precision": 0.6555555555555556, + "recall": 0.7702349869451697, + "f1": 0.70828331332533, + "mean_mask_iou": 0.8482401682404099, + "n_matched": 295 }, "dataset": { - "gold_images": 231 + "gold_images": 281 } }, "2026-10-01_v4-recipeA": { "per_class": { "loop_all": { - "tp": 254, - "fp": 28, - "fn": 10, - "precision": 0.900709219858156, - "recall": 0.9621212121212122, - "f1": 0.9304029304029305, - "mean_mask_iou": 0.9174162777612329, - "n_matched": 254 + "tp": 98, + "fp": 25, + "fn": 7, + "precision": 0.7967479674796748, + "recall": 0.9333333333333333, + "f1": 0.8596491228070176, + "mean_mask_iou": 0.8683856061789086, + "n_matched": 98 }, "pin": { - "tp": 183, - "fp": 19, - "fn": 11, - "precision": 0.905940594059406, - "recall": 0.9432989690721649, - "f1": 0.9242424242424242, - "mean_mask_iou": 0.9366127769478735, - "n_matched": 183 + "tp": 44, + "fp": 18, + "fn": 10, + "precision": 0.7096774193548387, + "recall": 0.8148148148148148, + "f1": 0.7586206896551724, + "mean_mask_iou": 0.894454944449853, + "n_matched": 44 }, "crystal": { - "tp": 70, - "fp": 50, - "fn": 53, - "precision": 0.5833333333333334, - "recall": 0.5691056910569106, - "f1": 0.5761316872427984, - "mean_mask_iou": 0.7813824544064065, - "n_matched": 70 + "tp": 59, + "fp": 49, + "fn": 50, + "precision": 0.5462962962962963, + "recall": 0.5412844036697247, + "f1": 0.543778801843318, + "mean_mask_iou": 0.769539349736585, + "n_matched": 59 }, "loop_face": { - "tp": 218, - "fp": 60, - "fn": 25, - "precision": 0.7841726618705036, - "recall": 0.897119341563786, - "f1": 0.8368522072936659, - "mean_mask_iou": 0.9021531117701876, - "n_matched": 218 + "tp": 84, + "fp": 56, + "fn": 19, + "precision": 0.6, + "recall": 0.8155339805825242, + "f1": 0.691358024691358, + "mean_mask_iou": 0.8352425749724459, + "n_matched": 84 }, "ice": { - "tp": 2, + "tp": 1, "fp": 7, "fn": 11, - "precision": 0.2222222222222222, - "recall": 0.15384615384615385, - "f1": 0.18181818181818185, - "mean_mask_iou": 0.8132183908045978, - "n_matched": 2 + "precision": 0.125, + "recall": 0.08333333333333333, + "f1": 0.1, + "mean_mask_iou": 0.8850574712643678, + "n_matched": 1 } }, "overall": { - "tp": 727, - "fp": 164, - "fn": 110, - "precision": 0.8159371492704826, - "recall": 0.8685782556750299, - "f1": 0.8414351851851851, - "mean_mask_iou": 0.904286739599412, - "n_matched": 727 + "tp": 286, + "fp": 155, + "fn": 97, + "precision": 0.6485260770975056, + "recall": 0.7467362924281984, + "f1": 0.6941747572815534, + "mean_mask_iou": 0.8423288893871854, + "n_matched": 286 }, "dataset": { "gold_images": 281 @@ -885,65 +885,65 @@ "2026-10-22_v5-noflip-mask1": { "per_class": { "loop_all": { - "tp": 257, + "tp": 99, "fp": 23, - "fn": 7, - "precision": 0.9178571428571428, - "recall": 0.9734848484848485, - "f1": 0.9448529411764706, - "mean_mask_iou": 0.9289030179153058, - "n_matched": 257 + "fn": 6, + "precision": 0.8114754098360656, + "recall": 0.9428571428571428, + "f1": 0.8722466960352424, + "mean_mask_iou": 0.8810230339364085, + "n_matched": 99 }, "pin": { - "tp": 184, + "tp": 46, "fp": 12, - "fn": 10, - "precision": 0.9387755102040817, - "recall": 0.9484536082474226, - "f1": 0.9435897435897437, - "mean_mask_iou": 0.9373288617009605, - "n_matched": 184 + "fn": 8, + "precision": 0.7931034482758621, + "recall": 0.8518518518518519, + "f1": 0.8214285714285715, + "mean_mask_iou": 0.8804466045879558, + "n_matched": 46 }, "crystal": { - "tp": 76, - "fp": 56, - "fn": 47, - "precision": 0.5757575757575758, - "recall": 0.6178861788617886, - "f1": 0.596078431372549, - "mean_mask_iou": 0.7788673765514786, - "n_matched": 76 + "tp": 65, + "fp": 55, + "fn": 44, + "precision": 0.5416666666666666, + "recall": 0.5963302752293578, + "f1": 0.5676855895196505, + "mean_mask_iou": 0.7702733833623545, + "n_matched": 65 }, "loop_face": { - "tp": 219, - "fp": 46, - "fn": 24, - "precision": 0.8264150943396227, - "recall": 0.9012345679012346, - "f1": 0.8622047244094488, - "mean_mask_iou": 0.9081406106897211, - "n_matched": 219 + "tp": 85, + "fp": 43, + "fn": 18, + "precision": 0.6640625, + "recall": 0.8252427184466019, + "f1": 0.7359307359307359, + "mean_mask_iou": 0.8373790173249661, + "n_matched": 85 }, "ice": { - "tp": 2, + "tp": 1, "fp": 6, "fn": 11, - "precision": 0.25, - "recall": 0.15384615384615385, - "f1": 0.1904761904761905, - "mean_mask_iou": 0.8135394456289978, - "n_matched": 2 + "precision": 0.14285714285714285, + "recall": 0.08333333333333333, + "f1": 0.10526315789473685, + "mean_mask_iou": 0.8985074626865671, + "n_matched": 1 } }, "overall": { - "tp": 738, - "fp": 143, - "fn": 99, - "precision": 0.8376844494892168, - "recall": 0.8817204301075269, - "f1": 0.859138533178114, - "mean_mask_iou": 0.9090791048881155, - "n_matched": 738 + "tp": 296, + "fp": 139, + "fn": 87, + "precision": 0.6804597701149425, + "recall": 0.7728459530026109, + "f1": 0.7237163814180929, + "mean_mask_iou": 0.844139587920987, + "n_matched": 296 }, "dataset": { "gold_images": 281 @@ -952,65 +952,65 @@ "2026-10-23_v5-n-1024px": { "per_class": { "loop_all": { - "tp": 258, - "fp": 24, - "fn": 6, - "precision": 0.9148936170212766, - "recall": 0.9772727272727273, - "f1": 0.945054945054945, - "mean_mask_iou": 0.9247128534972713, - "n_matched": 258 + "tp": 100, + "fp": 21, + "fn": 5, + "precision": 0.8264462809917356, + "recall": 0.9523809523809523, + "f1": 0.8849557522123893, + "mean_mask_iou": 0.8843718017827347, + "n_matched": 100 }, "pin": { - "tp": 188, - "fp": 16, - "fn": 6, - "precision": 0.9215686274509803, - "recall": 0.9690721649484536, - "f1": 0.9447236180904522, - "mean_mask_iou": 0.9326752593183979, - "n_matched": 188 + "tp": 49, + "fp": 14, + "fn": 5, + "precision": 0.7777777777777778, + "recall": 0.9074074074074074, + "f1": 0.8376068376068377, + "mean_mask_iou": 0.8810247978329447, + "n_matched": 49 }, "crystal": { - "tp": 73, - "fp": 57, - "fn": 50, - "precision": 0.5615384615384615, - "recall": 0.5934959349593496, - "f1": 0.5770750988142292, - "mean_mask_iou": 0.7731075577646546, - "n_matched": 73 + "tp": 64, + "fp": 55, + "fn": 45, + "precision": 0.5378151260504201, + "recall": 0.5871559633027523, + "f1": 0.5614035087719299, + "mean_mask_iou": 0.7691455738105024, + "n_matched": 64 }, "loop_face": { - "tp": 223, - "fp": 47, - "fn": 20, - "precision": 0.825925925925926, - "recall": 0.9176954732510288, - "f1": 0.8693957115009747, - "mean_mask_iou": 0.9057214453909335, - "n_matched": 223 + "tp": 85, + "fp": 45, + "fn": 18, + "precision": 0.6538461538461539, + "recall": 0.8252427184466019, + "f1": 0.7296137339055794, + "mean_mask_iou": 0.8423569091844416, + "n_matched": 85 }, "ice": { - "tp": 1, + "tp": 0, "fp": 3, "fn": 12, - "precision": 0.25, - "recall": 0.07692307692307693, - "f1": 0.11764705882352941, - "mean_mask_iou": 0.7432835820895523, - "n_matched": 1 + "precision": 0.0, + "recall": 0.0, + "f1": 0.0, + "mean_mask_iou": 0.0, + "n_matched": 0 } }, "overall": { - "tp": 743, - "fp": 147, - "fn": 94, - "precision": 0.8348314606741573, - "recall": 0.8876941457586619, - "f1": 0.8604516502605674, - "mean_mask_iou": 0.9058881326719271, - "n_matched": 743 + "tp": 298, + "fp": 138, + "fn": 85, + "precision": 0.6834862385321101, + "recall": 0.7780678851174935, + "f1": 0.7277167277167278, + "mean_mask_iou": 0.8470907693846897, + "n_matched": 298 }, "dataset": { "gold_images": 281 @@ -1019,65 +1019,199 @@ "2026-10-23_v5-s-noflip-mask1": { "per_class": { "loop_all": { - "tp": 256, + "tp": 99, "fp": 17, - "fn": 8, - "precision": 0.9377289377289377, - "recall": 0.9696969696969697, - "f1": 0.9534450651769087, - "mean_mask_iou": 0.9261675016114349, - "n_matched": 256 + "fn": 6, + "precision": 0.853448275862069, + "recall": 0.9428571428571428, + "f1": 0.8959276018099547, + "mean_mask_iou": 0.8784976840082256, + "n_matched": 99 }, "pin": { - "tp": 185, - "fp": 20, - "fn": 9, - "precision": 0.9024390243902439, - "recall": 0.9536082474226805, - "f1": 0.9273182957393484, - "mean_mask_iou": 0.9377241214892925, - "n_matched": 185 + "tp": 47, + "fp": 18, + "fn": 7, + "precision": 0.7230769230769231, + "recall": 0.8703703703703703, + "f1": 0.7899159663865546, + "mean_mask_iou": 0.8888707595088146, + "n_matched": 47 }, "crystal": { - "tp": 74, - "fp": 48, - "fn": 49, - "precision": 0.6065573770491803, - "recall": 0.6016260162601627, - "f1": 0.6040816326530614, - "mean_mask_iou": 0.774550546325995, - "n_matched": 74 + "tp": 65, + "fp": 47, + "fn": 44, + "precision": 0.5803571428571429, + "recall": 0.5963302752293578, + "f1": 0.588235294117647, + "mean_mask_iou": 0.775359040694635, + "n_matched": 65 }, "loop_face": { - "tp": 225, - "fp": 47, - "fn": 18, - "precision": 0.8272058823529411, - "recall": 0.9259259259259259, - "f1": 0.8737864077669902, - "mean_mask_iou": 0.9077410417748937, - "n_matched": 225 + "tp": 91, + "fp": 45, + "fn": 12, + "precision": 0.6691176470588235, + "recall": 0.883495145631068, + "f1": 0.7615062761506276, + "mean_mask_iou": 0.8379654584280626, + "n_matched": 91 }, "ice": { "tp": 1, "fp": 10, - "fn": 12, + "fn": 11, "precision": 0.09090909090909091, - "recall": 0.07692307692307693, - "f1": 0.08333333333333334, + "recall": 0.08333333333333333, + "f1": 0.08695652173913043, "mean_mask_iou": 0.8635014836795252, "n_matched": 1 } }, "overall": { - "tp": 741, - "fp": 142, - "fn": 96, - "precision": 0.8391845979614949, - "recall": 0.8853046594982079, - "f1": 0.8616279069767442, - "mean_mask_iou": 0.9082318747627538, - "n_matched": 741 + "tp": 303, + "fp": 137, + "fn": 80, + "precision": 0.6886363636363636, + "recall": 0.7911227154046997, + "f1": 0.7363304981773997, + "mean_mask_iou": 0.8457587203284264, + "n_matched": 303 + }, + "dataset": { + "gold_images": 281 + } + }, + "yolo26n-seg-v5-noflip-mask1-2026-10-23": { + "per_class": { + "loop_all": { + "tp": 99, + "fp": 23, + "fn": 6, + "precision": 0.8114754098360656, + "recall": 0.9428571428571428, + "f1": 0.8722466960352424, + "mean_mask_iou": 0.8810230339364085, + "n_matched": 99 + }, + "pin": { + "tp": 46, + "fp": 12, + "fn": 8, + "precision": 0.7931034482758621, + "recall": 0.8518518518518519, + "f1": 0.8214285714285715, + "mean_mask_iou": 0.8804466045879558, + "n_matched": 46 + }, + "crystal": { + "tp": 65, + "fp": 55, + "fn": 44, + "precision": 0.5416666666666666, + "recall": 0.5963302752293578, + "f1": 0.5676855895196505, + "mean_mask_iou": 0.7702733833623545, + "n_matched": 65 + }, + "loop_face": { + "tp": 85, + "fp": 43, + "fn": 18, + "precision": 0.6640625, + "recall": 0.8252427184466019, + "f1": 0.7359307359307359, + "mean_mask_iou": 0.8373790173249661, + "n_matched": 85 + }, + "ice": { + "tp": 1, + "fp": 6, + "fn": 11, + "precision": 0.14285714285714285, + "recall": 0.08333333333333333, + "f1": 0.10526315789473685, + "mean_mask_iou": 0.8985074626865671, + "n_matched": 1 + } + }, + "overall": { + "tp": 296, + "fp": 139, + "fn": 87, + "precision": 0.6804597701149425, + "recall": 0.7728459530026109, + "f1": 0.7237163814180929, + "mean_mask_iou": 0.844139587920987, + "n_matched": 296 + }, + "dataset": { + "gold_images": 281 + } + }, + "yolo26s-seg-v5-s-noflip-mask1-2026-10-23": { + "per_class": { + "loop_all": { + "tp": 99, + "fp": 17, + "fn": 6, + "precision": 0.853448275862069, + "recall": 0.9428571428571428, + "f1": 0.8959276018099547, + "mean_mask_iou": 0.8784976840082256, + "n_matched": 99 + }, + "pin": { + "tp": 47, + "fp": 18, + "fn": 7, + "precision": 0.7230769230769231, + "recall": 0.8703703703703703, + "f1": 0.7899159663865546, + "mean_mask_iou": 0.8888707595088146, + "n_matched": 47 + }, + "crystal": { + "tp": 65, + "fp": 47, + "fn": 44, + "precision": 0.5803571428571429, + "recall": 0.5963302752293578, + "f1": 0.588235294117647, + "mean_mask_iou": 0.775359040694635, + "n_matched": 65 + }, + "loop_face": { + "tp": 91, + "fp": 45, + "fn": 12, + "precision": 0.6691176470588235, + "recall": 0.883495145631068, + "f1": 0.7615062761506276, + "mean_mask_iou": 0.8379654584280626, + "n_matched": 91 + }, + "ice": { + "tp": 1, + "fp": 10, + "fn": 11, + "precision": 0.09090909090909091, + "recall": 0.08333333333333333, + "f1": 0.08695652173913043, + "mean_mask_iou": 0.8635014836795252, + "n_matched": 1 + } + }, + "overall": { + "tp": 303, + "fp": 137, + "fn": 80, + "precision": 0.6886363636363636, + "recall": 0.7911227154046997, + "f1": 0.7363304981773997, + "mean_mask_iou": 0.8457587203284264, + "n_matched": 303 }, "dataset": { "gold_images": 281 @@ -1090,91 +1224,91 @@ "beamline yolo26n-seg-overlap-false-2026-04-12": { "per_class": { "loop_all": { - "tp": 39, - "fp": 6, - "fn": 3, - "precision": 0.8666666666666667, - "recall": 0.9285714285714286, - "f1": 0.896551724137931, - "mean_mask_iou": 0.8702343526462095, - "n_matched": 39 + "tp": 58, + "fp": 20, + "fn": 34, + "precision": 0.7435897435897436, + "recall": 0.6304347826086957, + "f1": 0.6823529411764706, + "mean_mask_iou": 0.819627885818135, + "n_matched": 58 }, "pin": { - "tp": 27, - "fp": 6, - "fn": 4, - "precision": 0.8181818181818182, - "recall": 0.8709677419354839, - "f1": 0.84375, - "mean_mask_iou": 0.9177314634958049, - "n_matched": 27 + "tp": 28, + "fp": 19, + "fn": 19, + "precision": 0.5957446808510638, + "recall": 0.5957446808510638, + "f1": 0.5957446808510638, + "mean_mask_iou": 0.8824938544110352, + "n_matched": 28 }, "crystal": { - "tp": 7, - "fp": 10, - "fn": 16, - "precision": 0.4117647058823529, - "recall": 0.30434782608695654, - "f1": 0.35, - "mean_mask_iou": 0.7982145782317175, - "n_matched": 7 + "tp": 15, + "fp": 39, + "fn": 24, + "precision": 0.2777777777777778, + "recall": 0.38461538461538464, + "f1": 0.3225806451612903, + "mean_mask_iou": 0.7672677057932032, + "n_matched": 15 }, "loop_face": { - "tp": 30, - "fp": 13, - "fn": 12, - "precision": 0.6976744186046512, - "recall": 0.7142857142857143, - "f1": 0.7058823529411765, - "mean_mask_iou": 0.8730445743227884, - "n_matched": 30 + "tp": 40, + "fp": 30, + "fn": 40, + "precision": 0.5714285714285714, + "recall": 0.5, + "f1": 0.5333333333333333, + "mean_mask_iou": 0.8462796921751832, + "n_matched": 40 }, "ice": { "tp": 1, - "fp": 0, - "fn": 1, - "precision": 1.0, - "recall": 0.5, - "f1": 0.6666666666666666, + "fp": 8, + "fn": 8, + "precision": 0.1111111111111111, + "recall": 0.1111111111111111, + "f1": 0.1111111111111111, "mean_mask_iou": 0.8931750741839762, "n_matched": 1 } }, "overall": { - "tp": 104, - "fp": 35, - "fn": 36, - "precision": 0.7482014388489209, - "recall": 0.7428571428571429, - "f1": 0.7455197132616488, - "mean_mask_iou": 0.8787490732603704, - "n_matched": 104 + "tp": 142, + "fp": 116, + "fn": 125, + "precision": 0.5503875968992248, + "recall": 0.5318352059925093, + "f1": 0.5409523809523809, + "mean_mask_iou": 0.834518476401762, + "n_matched": 142 }, "dataset": { - "gold_images": 42 + "gold_images": 148 } }, "2026-09-28_alc-v1": { "per_class": { "loop_all": { - "tp": 127, - "fp": 15, + "tp": 81, + "fp": 14, "fn": 11, - "precision": 0.8943661971830986, - "recall": 0.9202898550724637, - "f1": 0.9071428571428571, - "mean_mask_iou": 0.879073874657812, - "n_matched": 127 + "precision": 0.8526315789473684, + "recall": 0.8804347826086957, + "f1": 0.8663101604278075, + "mean_mask_iou": 0.8499728718678281, + "n_matched": 81 }, "pin": { - "tp": 106, + "tp": 39, "fp": 15, - "fn": 9, - "precision": 0.8760330578512396, - "recall": 0.9217391304347826, - "f1": 0.8983050847457628, - "mean_mask_iou": 0.911713591223346, - "n_matched": 106 + "fn": 8, + "precision": 0.7222222222222222, + "recall": 0.8297872340425532, + "f1": 0.7722772277227723, + "mean_mask_iou": 0.8784304712458564, + "n_matched": 39 }, "crystal": { "tp": 20, @@ -1187,35 +1321,35 @@ "n_matched": 20 }, "loop_face": { - "tp": 92, + "tp": 57, "fp": 24, - "fn": 27, - "precision": 0.7931034482758621, - "recall": 0.773109243697479, - "f1": 0.7829787234042553, - "mean_mask_iou": 0.8624123069643458, - "n_matched": 92 + "fn": 23, + "precision": 0.7037037037037037, + "recall": 0.7125, + "f1": 0.7080745341614907, + "mean_mask_iou": 0.8186131021085434, + "n_matched": 57 }, "ice": { "tp": 1, "fp": 3, - "fn": 9, + "fn": 8, "precision": 0.25, - "recall": 0.1, - "f1": 0.14285714285714288, + "recall": 0.1111111111111111, + "f1": 0.15384615384615383, "mean_mask_iou": 0.8808139534883721, "n_matched": 1 } }, "overall": { - "tp": 346, - "fp": 74, - "fn": 75, - "precision": 0.8238095238095238, - "recall": 0.8218527315914489, - "f1": 0.8228299643281807, - "mean_mask_iou": 0.8771436567142733, - "n_matched": 346 + "tp": 198, + "fp": 73, + "fn": 69, + "precision": 0.7306273062730627, + "recall": 0.7415730337078652, + "f1": 0.7360594795539034, + "mean_mask_iou": 0.8365317578347039, + "n_matched": 198 }, "dataset": { "gold_images": 148 @@ -1224,24 +1358,24 @@ "2026-09-28_alc-v1-800px": { "per_class": { "loop_all": { - "tp": 128, - "fp": 23, - "fn": 10, - "precision": 0.847682119205298, - "recall": 0.927536231884058, - "f1": 0.8858131487889273, - "mean_mask_iou": 0.8858181440397714, - "n_matched": 128 + "tp": 83, + "fp": 21, + "fn": 9, + "precision": 0.7980769230769231, + "recall": 0.9021739130434783, + "f1": 0.8469387755102041, + "mean_mask_iou": 0.8644999688316582, + "n_matched": 83 }, "pin": { - "tp": 102, - "fp": 15, - "fn": 13, - "precision": 0.8717948717948718, - "recall": 0.8869565217391304, - "f1": 0.8793103448275862, - "mean_mask_iou": 0.9167838838192318, - "n_matched": 102 + "tp": 37, + "fp": 13, + "fn": 10, + "precision": 0.74, + "recall": 0.7872340425531915, + "f1": 0.7628865979381443, + "mean_mask_iou": 0.8904355832439773, + "n_matched": 37 }, "crystal": { "tp": 19, @@ -1254,19 +1388,19 @@ "n_matched": 19 }, "loop_face": { - "tp": 85, - "fp": 22, - "fn": 34, - "precision": 0.794392523364486, - "recall": 0.7142857142857143, - "f1": 0.752212389380531, - "mean_mask_iou": 0.8747567104383009, - "n_matched": 85 + "tp": 49, + "fp": 21, + "fn": 31, + "precision": 0.7, + "recall": 0.6125, + "f1": 0.6533333333333333, + "mean_mask_iou": 0.8332276031174903, + "n_matched": 49 }, "ice": { "tp": 0, "fp": 1, - "fn": 10, + "fn": 9, "precision": 0.0, "recall": 0.0, "f1": 0.0, @@ -1275,14 +1409,14 @@ } }, "overall": { - "tp": 334, - "fp": 85, - "fn": 87, - "precision": 0.7971360381861575, - "recall": 0.7933491686460807, - "f1": 0.7952380952380953, - "mean_mask_iou": 0.8871307858187713, - "n_matched": 334 + "tp": 188, + "fp": 80, + "fn": 79, + "precision": 0.7014925373134329, + "recall": 0.704119850187266, + "f1": 0.7028037383177571, + "mean_mask_iou": 0.8541406916775182, + "n_matched": 188 }, "dataset": { "gold_images": 148 @@ -1291,24 +1425,24 @@ "2026-09-28_alc-v1-humanonly": { "per_class": { "loop_all": { - "tp": 127, - "fp": 13, - "fn": 11, - "precision": 0.9071428571428571, - "recall": 0.9202898550724637, - "f1": 0.9136690647482014, - "mean_mask_iou": 0.8769648850012993, - "n_matched": 127 + "tp": 82, + "fp": 12, + "fn": 10, + "precision": 0.8723404255319149, + "recall": 0.8913043478260869, + "f1": 0.8817204301075269, + "mean_mask_iou": 0.8481091035883077, + "n_matched": 82 }, "pin": { - "tp": 105, + "tp": 38, "fp": 8, - "fn": 10, - "precision": 0.9292035398230089, - "recall": 0.9130434782608695, - "f1": 0.9210526315789473, - "mean_mask_iou": 0.9027875011388721, - "n_matched": 105 + "fn": 9, + "precision": 0.8260869565217391, + "recall": 0.8085106382978723, + "f1": 0.8172043010752688, + "mean_mask_iou": 0.8779326731730979, + "n_matched": 38 }, "crystal": { "tp": 22, @@ -1321,35 +1455,35 @@ "n_matched": 22 }, "loop_face": { - "tp": 91, - "fp": 26, - "fn": 28, - "precision": 0.7777777777777778, - "recall": 0.7647058823529411, - "f1": 0.7711864406779662, - "mean_mask_iou": 0.8661929680600775, - "n_matched": 91 + "tp": 55, + "fp": 24, + "fn": 25, + "precision": 0.6962025316455697, + "recall": 0.6875, + "f1": 0.6918238993710691, + "mean_mask_iou": 0.8242191375929399, + "n_matched": 55 }, "ice": { "tp": 1, "fp": 1, - "fn": 9, + "fn": 8, "precision": 0.5, - "recall": 0.1, - "f1": 0.16666666666666669, + "recall": 0.1111111111111111, + "f1": 0.1818181818181818, "mean_mask_iou": 0.8895522388059701, "n_matched": 1 } }, "overall": { - "tp": 346, - "fp": 73, - "fn": 75, - "precision": 0.8257756563245824, - "recall": 0.8218527315914489, - "f1": 0.8238095238095238, - "mean_mask_iou": 0.8725862687081279, - "n_matched": 346 + "tp": 198, + "fp": 70, + "fn": 69, + "precision": 0.7388059701492538, + "recall": 0.7415730337078652, + "f1": 0.7401869158878505, + "mean_mask_iou": 0.8341540480163102, + "n_matched": 198 }, "dataset": { "gold_images": 148 @@ -1358,24 +1492,24 @@ "2026-09-28_alc-v1-mask1": { "per_class": { "loop_all": { - "tp": 130, + "tp": 84, "fp": 28, "fn": 8, - "precision": 0.8227848101265823, - "recall": 0.9420289855072463, - "f1": 0.8783783783783783, - "mean_mask_iou": 0.8801622431361449, - "n_matched": 130 + "precision": 0.75, + "recall": 0.9130434782608695, + "f1": 0.8235294117647057, + "mean_mask_iou": 0.8526792176111354, + "n_matched": 84 }, "pin": { - "tp": 101, + "tp": 35, "fp": 8, - "fn": 14, - "precision": 0.926605504587156, - "recall": 0.8782608695652174, - "f1": 0.9017857142857143, - "mean_mask_iou": 0.9258068907781938, - "n_matched": 101 + "fn": 12, + "precision": 0.813953488372093, + "recall": 0.7446808510638298, + "f1": 0.7777777777777778, + "mean_mask_iou": 0.8969516849877124, + "n_matched": 35 }, "crystal": { "tp": 16, @@ -1388,35 +1522,35 @@ "n_matched": 16 }, "loop_face": { - "tp": 98, - "fp": 23, - "fn": 21, - "precision": 0.8099173553719008, - "recall": 0.8235294117647058, - "f1": 0.8166666666666667, - "mean_mask_iou": 0.8657391257878596, - "n_matched": 98 + "tp": 60, + "fp": 21, + "fn": 20, + "precision": 0.7407407407407407, + "recall": 0.75, + "f1": 0.7453416149068324, + "mean_mask_iou": 0.8233537817549802, + "n_matched": 60 }, "ice": { "tp": 1, "fp": 0, - "fn": 9, + "fn": 8, "precision": 1.0, - "recall": 0.1, - "f1": 0.18181818181818182, + "recall": 0.1111111111111111, + "f1": 0.19999999999999998, "mean_mask_iou": 0.8958333333333334, "n_matched": 1 } }, "overall": { - "tp": 346, - "fp": 75, - "fn": 75, - "precision": 0.8218527315914489, - "recall": 0.8218527315914489, - "f1": 0.8218527315914489, - "mean_mask_iou": 0.8855687213231889, - "n_matched": 346 + "tp": 196, + "fp": 73, + "fn": 71, + "precision": 0.7286245353159851, + "recall": 0.7340823970037453, + "f1": 0.7313432835820894, + "mean_mask_iou": 0.8472262542526565, + "n_matched": 196 }, "dataset": { "gold_images": 148 @@ -1425,24 +1559,24 @@ "2026-09-28_alc-v1-noflip": { "per_class": { "loop_all": { - "tp": 130, - "fp": 16, + "tp": 84, + "fp": 15, "fn": 8, - "precision": 0.8904109589041096, - "recall": 0.9420289855072463, - "f1": 0.9154929577464788, - "mean_mask_iou": 0.8747652861415791, - "n_matched": 130 + "precision": 0.8484848484848485, + "recall": 0.9130434782608695, + "f1": 0.8795811518324607, + "mean_mask_iou": 0.8461441573258723, + "n_matched": 84 }, "pin": { - "tp": 104, - "fp": 10, - "fn": 11, - "precision": 0.9122807017543859, - "recall": 0.9043478260869565, - "f1": 0.9082969432314411, - "mean_mask_iou": 0.9132115497264225, - "n_matched": 104 + "tp": 37, + "fp": 9, + "fn": 10, + "precision": 0.8043478260869565, + "recall": 0.7872340425531915, + "f1": 0.795698924731183, + "mean_mask_iou": 0.8775115973244322, + "n_matched": 37 }, "crystal": { "tp": 20, @@ -1455,35 +1589,35 @@ "n_matched": 20 }, "loop_face": { - "tp": 99, - "fp": 30, - "fn": 20, - "precision": 0.7674418604651163, - "recall": 0.8319327731092437, - "f1": 0.7983870967741935, - "mean_mask_iou": 0.863027473652705, - "n_matched": 99 + "tp": 61, + "fp": 28, + "fn": 19, + "precision": 0.6853932584269663, + "recall": 0.7625, + "f1": 0.7218934911242604, + "mean_mask_iou": 0.8210088491188919, + "n_matched": 61 }, "ice": { "tp": 1, "fp": 0, - "fn": 9, + "fn": 8, "precision": 1.0, - "recall": 0.1, - "f1": 0.18181818181818182, + "recall": 0.1111111111111111, + "f1": 0.19999999999999998, "mean_mask_iou": 0.9156626506024096, "n_matched": 1 } }, "overall": { - "tp": 354, - "fp": 73, - "fn": 67, - "precision": 0.8290398126463701, - "recall": 0.8408551068883611, - "f1": 0.8349056603773585, - "mean_mask_iou": 0.8745662499855825, - "n_matched": 354 + "tp": 203, + "fp": 69, + "fn": 64, + "precision": 0.7463235294117647, + "recall": 0.7602996254681648, + "f1": 0.7532467532467532, + "mean_mask_iou": 0.8329498637731789, + "n_matched": 203 }, "dataset": { "gold_images": 148 @@ -1492,91 +1626,91 @@ "2026-09-29_alc-v1-noflip-mask1": { "per_class": { "loop_all": { - "tp": 103, - "fp": 16, + "tp": 83, + "fp": 20, "fn": 9, - "precision": 0.865546218487395, - "recall": 0.9196428571428571, - "f1": 0.8917748917748918, - "mean_mask_iou": 0.8846556221069606, - "n_matched": 103 + "precision": 0.8058252427184466, + "recall": 0.9021739130434783, + "f1": 0.8512820512820513, + "mean_mask_iou": 0.8534895677923248, + "n_matched": 83 }, "pin": { - "tp": 90, + "tp": 37, "fp": 8, "fn": 10, - "precision": 0.9183673469387755, - "recall": 0.9, - "f1": 0.9090909090909091, - "mean_mask_iou": 0.921308374114809, - "n_matched": 90 + "precision": 0.8222222222222222, + "recall": 0.7872340425531915, + "f1": 0.8043478260869565, + "mean_mask_iou": 0.8874372647201296, + "n_matched": 37 }, "crystal": { - "tp": 14, - "fp": 17, - "fn": 6, - "precision": 0.45161290322580644, - "recall": 0.7, - "f1": 0.5490196078431372, - "mean_mask_iou": 0.7458727660656601, - "n_matched": 14 + "tp": 21, + "fp": 31, + "fn": 18, + "precision": 0.40384615384615385, + "recall": 0.5384615384615384, + "f1": 0.46153846153846156, + "mean_mask_iou": 0.7718891071431425, + "n_matched": 21 }, "loop_face": { - "tp": 76, - "fp": 24, - "fn": 17, - "precision": 0.76, - "recall": 0.8172043010752689, - "f1": 0.7875647668393783, - "mean_mask_iou": 0.8743457514556575, - "n_matched": 76 + "tp": 60, + "fp": 28, + "fn": 20, + "precision": 0.6818181818181818, + "recall": 0.75, + "f1": 0.7142857142857143, + "mean_mask_iou": 0.8295419449936053, + "n_matched": 60 }, "ice": { "tp": 1, - "fp": 0, - "fn": 9, - "precision": 1.0, - "recall": 0.1, - "f1": 0.18181818181818182, + "fp": 1, + "fn": 8, + "precision": 0.5, + "recall": 0.1111111111111111, + "f1": 0.1818181818181818, "mean_mask_iou": 0.901840490797546, "n_matched": 1 } }, "overall": { - "tp": 284, - "fp": 65, - "fn": 51, - "precision": 0.8137535816618912, - "recall": 0.8477611940298507, - "f1": 0.8304093567251463, - "mean_mask_iou": 0.8867310530763962, - "n_matched": 284 + "tp": 202, + "fp": 88, + "fn": 65, + "precision": 0.696551724137931, + "recall": 0.7565543071161048, + "f1": 0.7253141831238779, + "mean_mask_iou": 0.8443506998110276, + "n_matched": 202 }, "dataset": { - "gold_images": 122 + "gold_images": 148 } }, "2026-09-29_v2-recipeA": { "per_class": { "loop_all": { - "tp": 133, - "fp": 19, + "tp": 87, + "fp": 16, "fn": 5, - "precision": 0.875, - "recall": 0.9637681159420289, - "f1": 0.9172413793103448, - "mean_mask_iou": 0.8693701162219387, - "n_matched": 133 + "precision": 0.8446601941747572, + "recall": 0.9456521739130435, + "f1": 0.8923076923076922, + "mean_mask_iou": 0.8416325465301895, + "n_matched": 87 }, "pin": { - "tp": 106, - "fp": 14, + "tp": 38, + "fp": 13, "fn": 9, - "precision": 0.8833333333333333, - "recall": 0.9217391304347826, - "f1": 0.902127659574468, - "mean_mask_iou": 0.9113411662077295, - "n_matched": 106 + "precision": 0.7450980392156863, + "recall": 0.8085106382978723, + "f1": 0.7755102040816325, + "mean_mask_iou": 0.8815330873650353, + "n_matched": 38 }, "crystal": { "tp": 18, @@ -1589,35 +1723,35 @@ "n_matched": 18 }, "loop_face": { - "tp": 98, - "fp": 37, - "fn": 21, - "precision": 0.725925925925926, - "recall": 0.8235294117647058, - "f1": 0.7716535433070866, - "mean_mask_iou": 0.8657497577677451, - "n_matched": 98 + "tp": 60, + "fp": 34, + "fn": 20, + "precision": 0.6382978723404256, + "recall": 0.75, + "f1": 0.6896551724137931, + "mean_mask_iou": 0.823707382910823, + "n_matched": 60 }, "ice": { "tp": 1, "fp": 6, - "fn": 9, + "fn": 8, "precision": 0.14285714285714285, - "recall": 0.1, - "f1": 0.11764705882352941, + "recall": 0.1111111111111111, + "f1": 0.125, "mean_mask_iou": 0.8793103448275862, "n_matched": 1 } }, "overall": { - "tp": 356, - "fp": 95, - "fn": 65, - "precision": 0.7893569844789357, - "recall": 0.8456057007125891, - "f1": 0.8165137614678899, - "mean_mask_iou": 0.8764328718732706, - "n_matched": 356 + "tp": 204, + "fp": 88, + "fn": 63, + "precision": 0.6986301369863014, + "recall": 0.7640449438202247, + "f1": 0.7298747763864043, + "mean_mask_iou": 0.8386322004546822, + "n_matched": 204 }, "dataset": { "gold_images": 148 @@ -1626,24 +1760,24 @@ "2026-09-29_v3-noflip-mask1": { "per_class": { "loop_all": { - "tp": 133, - "fp": 15, + "tp": 87, + "fp": 14, "fn": 5, - "precision": 0.8986486486486487, - "recall": 0.9637681159420289, - "f1": 0.9300699300699301, - "mean_mask_iou": 0.8923769651601676, - "n_matched": 133 + "precision": 0.8613861386138614, + "recall": 0.9456521739130435, + "f1": 0.9015544041450778, + "mean_mask_iou": 0.872090102772944, + "n_matched": 87 }, "pin": { - "tp": 107, + "tp": 39, "fp": 7, "fn": 8, - "precision": 0.9385964912280702, - "recall": 0.9304347826086956, - "f1": 0.9344978165938864, - "mean_mask_iou": 0.9214832811588755, - "n_matched": 107 + "precision": 0.8478260869565217, + "recall": 0.8297872340425532, + "f1": 0.8387096774193549, + "mean_mask_iou": 0.894610697381512, + "n_matched": 39 }, "crystal": { "tp": 23, @@ -1656,35 +1790,35 @@ "n_matched": 23 }, "loop_face": { - "tp": 109, - "fp": 30, - "fn": 10, - "precision": 0.7841726618705036, - "recall": 0.9159663865546218, - "f1": 0.8449612403100776, - "mean_mask_iou": 0.8617599090241548, - "n_matched": 109 + "tp": 71, + "fp": 28, + "fn": 9, + "precision": 0.7171717171717171, + "recall": 0.8875, + "f1": 0.7932960893854748, + "mean_mask_iou": 0.8256259061274975, + "n_matched": 71 }, "ice": { "tp": 1, "fp": 3, - "fn": 9, + "fn": 8, "precision": 0.25, - "recall": 0.1, - "f1": 0.14285714285714288, + "recall": 0.1111111111111111, + "f1": 0.15384615384615383, "mean_mask_iou": 0.8753799392097265, "n_matched": 1 } }, "overall": { - "tp": 373, - "fp": 69, - "fn": 48, - "precision": 0.8438914027149321, - "recall": 0.8859857482185273, - "f1": 0.8644264194669757, - "mean_mask_iou": 0.8849520348249512, - "n_matched": 373 + "tp": 221, + "fp": 66, + "fn": 46, + "precision": 0.7700348432055749, + "recall": 0.8277153558052435, + "f1": 0.7978339350180506, + "mean_mask_iou": 0.8518168639364216, + "n_matched": 221 }, "dataset": { "gold_images": 148 @@ -1693,24 +1827,24 @@ "2026-09-29_v3-recipeA": { "per_class": { "loop_all": { - "tp": 133, + "tp": 87, "fp": 8, "fn": 5, - "precision": 0.9432624113475178, - "recall": 0.9637681159420289, - "f1": 0.9534050179211468, - "mean_mask_iou": 0.8861380853247571, - "n_matched": 133 + "precision": 0.9157894736842105, + "recall": 0.9456521739130435, + "f1": 0.9304812834224598, + "mean_mask_iou": 0.8638258937880646, + "n_matched": 87 }, "pin": { - "tp": 107, - "fp": 15, + "tp": 39, + "fp": 14, "fn": 8, - "precision": 0.8770491803278688, - "recall": 0.9304347826086956, - "f1": 0.9029535864978903, - "mean_mask_iou": 0.9097291509318675, - "n_matched": 107 + "precision": 0.7358490566037735, + "recall": 0.8297872340425532, + "f1": 0.78, + "mean_mask_iou": 0.8776970251056005, + "n_matched": 39 }, "crystal": { "tp": 19, @@ -1723,35 +1857,35 @@ "n_matched": 19 }, "loop_face": { - "tp": 106, - "fp": 28, - "fn": 13, - "precision": 0.7910447761194029, - "recall": 0.8907563025210085, - "f1": 0.8379446640316206, - "mean_mask_iou": 0.8627639192686348, - "n_matched": 106 + "tp": 68, + "fp": 27, + "fn": 12, + "precision": 0.7157894736842105, + "recall": 0.85, + "f1": 0.7771428571428571, + "mean_mask_iou": 0.827892936654284, + "n_matched": 68 }, "ice": { - "tp": 2, + "tp": 1, "fp": 3, "fn": 8, - "precision": 0.4, - "recall": 0.2, - "f1": 0.26666666666666666, - "mean_mask_iou": 0.8381010429364757, - "n_matched": 2 + "precision": 0.25, + "recall": 0.1111111111111111, + "f1": 0.15384615384615383, + "mean_mask_iou": 0.8724637681159421, + "n_matched": 1 } }, "overall": { - "tp": 367, - "fp": 69, - "fn": 54, - "precision": 0.841743119266055, - "recall": 0.8717339667458432, - "f1": 0.8564760793465578, - "mean_mask_iou": 0.8817157396292649, - "n_matched": 367 + "tp": 214, + "fp": 67, + "fn": 53, + "precision": 0.7615658362989324, + "recall": 0.8014981273408239, + "f1": 0.781021897810219, + "mean_mask_iou": 0.8496043673690487, + "n_matched": 214 }, "dataset": { "gold_images": 148 @@ -1760,24 +1894,24 @@ "2026-09-30_v3-s-640px": { "per_class": { "loop_all": { - "tp": 133, + "tp": 87, "fp": 10, "fn": 5, - "precision": 0.9300699300699301, - "recall": 0.9637681159420289, - "f1": 0.9466192170818506, - "mean_mask_iou": 0.8961588532278442, - "n_matched": 133 + "precision": 0.8969072164948454, + "recall": 0.9456521739130435, + "f1": 0.9206349206349207, + "mean_mask_iou": 0.8769149733331438, + "n_matched": 87 }, "pin": { - "tp": 107, + "tp": 39, "fp": 6, "fn": 8, - "precision": 0.9469026548672567, - "recall": 0.9304347826086956, - "f1": 0.9385964912280702, - "mean_mask_iou": 0.9193266715384598, - "n_matched": 107 + "precision": 0.8666666666666667, + "recall": 0.8297872340425532, + "f1": 0.8478260869565217, + "mean_mask_iou": 0.8867164860389218, + "n_matched": 39 }, "crystal": { "tp": 21, @@ -1790,35 +1924,35 @@ "n_matched": 21 }, "loop_face": { - "tp": 109, - "fp": 24, - "fn": 10, - "precision": 0.8195488721804511, - "recall": 0.9159663865546218, - "f1": 0.8650793650793651, - "mean_mask_iou": 0.86328843706195, - "n_matched": 109 + "tp": 71, + "fp": 23, + "fn": 9, + "precision": 0.7553191489361702, + "recall": 0.8875, + "f1": 0.8160919540229885, + "mean_mask_iou": 0.8291475304406545, + "n_matched": 71 }, "ice": { - "tp": 2, + "tp": 1, "fp": 1, "fn": 8, - "precision": 0.6666666666666666, - "recall": 0.2, - "f1": 0.30769230769230765, - "mean_mask_iou": 0.8091053257565746, - "n_matched": 2 + "precision": 0.5, + "recall": 0.1111111111111111, + "f1": 0.1818181818181818, + "mean_mask_iou": 0.8480243161094225, + "n_matched": 1 } }, "overall": { - "tp": 372, - "fp": 55, - "fn": 49, - "precision": 0.8711943793911007, - "recall": 0.8836104513064132, - "f1": 0.8773584905660377, - "mean_mask_iou": 0.8858402246111045, - "n_matched": 372 + "tp": 219, + "fp": 54, + "fn": 48, + "precision": 0.8021978021978022, + "recall": 0.8202247191011236, + "f1": 0.8111111111111112, + "mean_mask_iou": 0.8531957833015719, + "n_matched": 219 }, "dataset": { "gold_images": 148 @@ -1827,24 +1961,24 @@ "2026-10-01_v4-noflip-mask1": { "per_class": { "loop_all": { - "tp": 132, + "tp": 86, "fp": 8, "fn": 6, - "precision": 0.9428571428571428, - "recall": 0.9565217391304348, - "f1": 0.9496402877697843, - "mean_mask_iou": 0.9022595285562413, - "n_matched": 132 + "precision": 0.9148936170212766, + "recall": 0.9347826086956522, + "f1": 0.924731182795699, + "mean_mask_iou": 0.8832753278267423, + "n_matched": 86 }, "pin": { - "tp": 108, - "fp": 10, + "tp": 40, + "fp": 9, "fn": 7, - "precision": 0.9152542372881356, - "recall": 0.9391304347826087, - "f1": 0.9270386266094419, - "mean_mask_iou": 0.9209411922959307, - "n_matched": 108 + "precision": 0.8163265306122449, + "recall": 0.851063829787234, + "f1": 0.8333333333333334, + "mean_mask_iou": 0.8829127766413013, + "n_matched": 40 }, "crystal": { "tp": 23, @@ -1857,35 +1991,35 @@ "n_matched": 23 }, "loop_face": { - "tp": 110, - "fp": 22, + "tp": 71, + "fp": 21, "fn": 9, - "precision": 0.8333333333333334, - "recall": 0.9243697478991597, - "f1": 0.8764940239043826, - "mean_mask_iou": 0.8656231620760897, - "n_matched": 110 + "precision": 0.7717391304347826, + "recall": 0.8875, + "f1": 0.8255813953488372, + "mean_mask_iou": 0.8319862028801424, + "n_matched": 71 }, "ice": { - "tp": 2, + "tp": 1, "fp": 5, "fn": 8, - "precision": 0.2857142857142857, - "recall": 0.2, - "f1": 0.23529411764705882, - "mean_mask_iou": 0.8368580060422961, - "n_matched": 2 + "precision": 0.16666666666666666, + "recall": 0.1111111111111111, + "f1": 0.13333333333333333, + "mean_mask_iou": 0.9003021148036254, + "n_matched": 1 } }, "overall": { - "tp": 375, - "fp": 64, + "tp": 221, + "fp": 62, "fn": 46, - "precision": 0.8542141230068337, - "recall": 0.8907363420427553, - "f1": 0.872093023255814, - "mean_mask_iou": 0.8904323620917622, - "n_matched": 375 + "precision": 0.7809187279151943, + "recall": 0.8277153558052435, + "f1": 0.8036363636363636, + "mean_mask_iou": 0.8584139239122974, + "n_matched": 221 }, "dataset": { "gold_images": 148 @@ -1894,24 +2028,24 @@ "2026-10-01_v4-recipeA": { "per_class": { "loop_all": { - "tp": 133, + "tp": 87, "fp": 14, "fn": 5, - "precision": 0.9047619047619048, - "recall": 0.9637681159420289, - "f1": 0.9333333333333333, - "mean_mask_iou": 0.8894909442799022, - "n_matched": 133 + "precision": 0.8613861386138614, + "recall": 0.9456521739130435, + "f1": 0.9015544041450778, + "mean_mask_iou": 0.8678159971781848, + "n_matched": 87 }, "pin": { - "tp": 106, + "tp": 39, "fp": 10, - "fn": 9, - "precision": 0.9137931034482759, - "recall": 0.9217391304347826, - "f1": 0.9177489177489179, - "mean_mask_iou": 0.9234748404223824, - "n_matched": 106 + "fn": 8, + "precision": 0.7959183673469388, + "recall": 0.8297872340425532, + "f1": 0.8125, + "mean_mask_iou": 0.8960140088878913, + "n_matched": 39 }, "crystal": { "tp": 19, @@ -1924,35 +2058,35 @@ "n_matched": 19 }, "loop_face": { - "tp": 107, + "tp": 69, "fp": 29, - "fn": 12, - "precision": 0.7867647058823529, - "recall": 0.8991596638655462, - "f1": 0.8392156862745098, - "mean_mask_iou": 0.8566817211746404, - "n_matched": 107 + "fn": 11, + "precision": 0.7040816326530612, + "recall": 0.8625, + "f1": 0.7752808988764046, + "mean_mask_iou": 0.8253312582350022, + "n_matched": 69 }, "ice": { - "tp": 2, + "tp": 1, "fp": 7, "fn": 8, - "precision": 0.2222222222222222, - "recall": 0.2, - "f1": 0.2105263157894737, - "mean_mask_iou": 0.8132183908045978, - "n_matched": 2 + "precision": 0.125, + "recall": 0.1111111111111111, + "f1": 0.11764705882352941, + "mean_mask_iou": 0.8850574712643678, + "n_matched": 1 } }, "overall": { - "tp": 367, + "tp": 215, "fp": 81, - "fn": 54, - "precision": 0.8191964285714286, - "recall": 0.8717339667458432, - "f1": 0.8446490218642118, - "mean_mask_iou": 0.883607947968951, - "n_matched": 367 + "fn": 52, + "precision": 0.7263513513513513, + "recall": 0.8052434456928839, + "f1": 0.763765541740675, + "mean_mask_iou": 0.8515328356926481, + "n_matched": 215 }, "dataset": { "gold_images": 148 @@ -1961,24 +2095,24 @@ "2026-10-22_v5-noflip-mask1": { "per_class": { "loop_all": { - "tp": 134, + "tp": 88, "fp": 10, "fn": 4, - "precision": 0.9305555555555556, - "recall": 0.9710144927536232, - "f1": 0.9503546099290779, - "mean_mask_iou": 0.8982694113423838, - "n_matched": 134 + "precision": 0.8979591836734694, + "recall": 0.9565217391304348, + "f1": 0.9263157894736843, + "mean_mask_iou": 0.8775883729569949, + "n_matched": 88 }, "pin": { - "tp": 106, + "tp": 39, "fp": 7, - "fn": 9, - "precision": 0.9380530973451328, - "recall": 0.9217391304347826, - "f1": 0.9298245614035088, - "mean_mask_iou": 0.9233067898962269, - "n_matched": 106 + "fn": 8, + "precision": 0.8478260869565217, + "recall": 0.8297872340425532, + "f1": 0.8387096774193549, + "mean_mask_iou": 0.8905877309638975, + "n_matched": 39 }, "crystal": { "tp": 22, @@ -1991,35 +2125,35 @@ "n_matched": 22 }, "loop_face": { - "tp": 107, - "fp": 26, - "fn": 12, - "precision": 0.8045112781954887, - "recall": 0.8991596638655462, - "f1": 0.8492063492063493, - "mean_mask_iou": 0.8618765293164179, - "n_matched": 107 + "tp": 69, + "fp": 24, + "fn": 11, + "precision": 0.7419354838709677, + "recall": 0.8625, + "f1": 0.7976878612716763, + "mean_mask_iou": 0.8220439265624961, + "n_matched": 69 }, "ice": { - "tp": 2, + "tp": 1, "fp": 5, "fn": 8, - "precision": 0.2857142857142857, - "recall": 0.2, - "f1": 0.23529411764705882, - "mean_mask_iou": 0.8135394456289978, - "n_matched": 2 + "precision": 0.16666666666666666, + "recall": 0.1111111111111111, + "f1": 0.13333333333333333, + "mean_mask_iou": 0.8985074626865671, + "n_matched": 1 } }, "overall": { - "tp": 371, - "fp": 71, - "fn": 50, - "precision": 0.8393665158371041, - "recall": 0.8812351543942993, - "f1": 0.8597914252607185, - "mean_mask_iou": 0.8887413014416213, - "n_matched": 371 + "tp": 219, + "fp": 69, + "fn": 48, + "precision": 0.7604166666666666, + "recall": 0.8202247191011236, + "f1": 0.7891891891891892, + "mean_mask_iou": 0.8548711012838078, + "n_matched": 219 }, "dataset": { "gold_images": 148 @@ -2028,24 +2162,24 @@ "2026-10-23_v5-n-1024px": { "per_class": { "loop_all": { - "tp": 134, - "fp": 11, - "fn": 4, - "precision": 0.9241379310344827, - "recall": 0.9710144927536232, - "f1": 0.9469964664310954, - "mean_mask_iou": 0.8995006950239258, - "n_matched": 134 + "tp": 89, + "fp": 10, + "fn": 3, + "precision": 0.898989898989899, + "recall": 0.967391304347826, + "f1": 0.9319371727748692, + "mean_mask_iou": 0.8815048799355819, + "n_matched": 89 }, "pin": { - "tp": 109, + "tp": 42, "fp": 9, - "fn": 6, - "precision": 0.923728813559322, - "recall": 0.9478260869565217, - "f1": 0.9356223175965666, - "mean_mask_iou": 0.9211630632017279, - "n_matched": 109 + "fn": 5, + "precision": 0.8235294117647058, + "recall": 0.8936170212765957, + "f1": 0.8571428571428571, + "mean_mask_iou": 0.8926924951824537, + "n_matched": 42 }, "crystal": { "tp": 23, @@ -2058,35 +2192,35 @@ "n_matched": 23 }, "loop_face": { - "tp": 108, - "fp": 25, + "tp": 69, + "fp": 24, "fn": 11, - "precision": 0.8120300751879699, - "recall": 0.907563025210084, - "f1": 0.857142857142857, - "mean_mask_iou": 0.8630683559987203, - "n_matched": 108 + "precision": 0.7419354838709677, + "recall": 0.8625, + "f1": 0.7976878612716763, + "mean_mask_iou": 0.8304512768596254, + "n_matched": 69 }, "ice": { - "tp": 1, + "tp": 0, "fp": 2, "fn": 9, - "precision": 0.3333333333333333, - "recall": 0.1, - "f1": 0.15384615384615383, - "mean_mask_iou": 0.7432835820895523, - "n_matched": 1 + "precision": 0.0, + "recall": 0.0, + "f1": 0.0, + "mean_mask_iou": 0.0, + "n_matched": 0 } }, "overall": { - "tp": 375, - "fp": 65, - "fn": 46, - "precision": 0.8522727272727273, - "recall": 0.8907363420427553, - "f1": 0.8710801393728224, - "mean_mask_iou": 0.888920995050133, - "n_matched": 375 + "tp": 223, + "fp": 63, + "fn": 44, + "precision": 0.7797202797202797, + "recall": 0.8352059925093633, + "f1": 0.8065099457504521, + "mean_mask_iou": 0.8596367592237583, + "n_matched": 223 }, "dataset": { "gold_images": 148 @@ -2095,24 +2229,24 @@ "2026-10-23_v5-s-noflip-mask1": { "per_class": { "loop_all": { - "tp": 134, + "tp": 89, "fp": 7, - "fn": 4, - "precision": 0.950354609929078, - "recall": 0.9710144927536232, - "f1": 0.9605734767025089, - "mean_mask_iou": 0.8966730070357405, - "n_matched": 134 + "fn": 3, + "precision": 0.9270833333333334, + "recall": 0.967391304347826, + "f1": 0.9468085106382979, + "mean_mask_iou": 0.8767158456805172, + "n_matched": 89 }, "pin": { - "tp": 107, + "tp": 40, "fp": 9, - "fn": 8, - "precision": 0.9224137931034483, - "recall": 0.9304347826086956, - "f1": 0.9264069264069263, - "mean_mask_iou": 0.9278713479920829, - "n_matched": 107 + "fn": 7, + "precision": 0.8163265306122449, + "recall": 0.851063829787234, + "f1": 0.8333333333333334, + "mean_mask_iou": 0.9022457662605039, + "n_matched": 40 }, "crystal": { "tp": 24, @@ -2125,35 +2259,169 @@ "n_matched": 24 }, "loop_face": { - "tp": 111, - "fp": 21, - "fn": 8, - "precision": 0.8409090909090909, - "recall": 0.9327731092436975, - "f1": 0.8844621513944223, - "mean_mask_iou": 0.862330934817965, - "n_matched": 111 + "tp": 73, + "fp": 20, + "fn": 7, + "precision": 0.7849462365591398, + "recall": 0.9125, + "f1": 0.8439306358381503, + "mean_mask_iou": 0.8246587023706556, + "n_matched": 73 }, "ice": { "tp": 1, "fp": 8, - "fn": 9, + "fn": 8, "precision": 0.1111111111111111, - "recall": 0.1, - "f1": 0.10526315789473685, + "recall": 0.1111111111111111, + "f1": 0.1111111111111111, "mean_mask_iou": 0.8635014836795252, "n_matched": 1 } }, "overall": { - "tp": 377, - "fp": 63, - "fn": 44, - "precision": 0.8568181818181818, - "recall": 0.8954869358669834, - "f1": 0.875725900116144, - "mean_mask_iou": 0.8890125834951366, - "n_matched": 377 + "tp": 227, + "fp": 62, + "fn": 40, + "precision": 0.7854671280276817, + "recall": 0.850187265917603, + "f1": 0.8165467625899281, + "mean_mask_iou": 0.8560362080351288, + "n_matched": 227 + }, + "dataset": { + "gold_images": 148 + } + }, + "yolo26n-seg-v5-noflip-mask1-2026-10-23": { + "per_class": { + "loop_all": { + "tp": 88, + "fp": 10, + "fn": 4, + "precision": 0.8979591836734694, + "recall": 0.9565217391304348, + "f1": 0.9263157894736843, + "mean_mask_iou": 0.8775883729569949, + "n_matched": 88 + }, + "pin": { + "tp": 39, + "fp": 7, + "fn": 8, + "precision": 0.8478260869565217, + "recall": 0.8297872340425532, + "f1": 0.8387096774193549, + "mean_mask_iou": 0.8905877309638975, + "n_matched": 39 + }, + "crystal": { + "tp": 22, + "fp": 23, + "fn": 17, + "precision": 0.4888888888888889, + "recall": 0.5641025641025641, + "f1": 0.5238095238095238, + "mean_mask_iou": 0.8016606571748839, + "n_matched": 22 + }, + "loop_face": { + "tp": 69, + "fp": 24, + "fn": 11, + "precision": 0.7419354838709677, + "recall": 0.8625, + "f1": 0.7976878612716763, + "mean_mask_iou": 0.8220439265624961, + "n_matched": 69 + }, + "ice": { + "tp": 1, + "fp": 5, + "fn": 8, + "precision": 0.16666666666666666, + "recall": 0.1111111111111111, + "f1": 0.13333333333333333, + "mean_mask_iou": 0.8985074626865671, + "n_matched": 1 + } + }, + "overall": { + "tp": 219, + "fp": 69, + "fn": 48, + "precision": 0.7604166666666666, + "recall": 0.8202247191011236, + "f1": 0.7891891891891892, + "mean_mask_iou": 0.8548711012838078, + "n_matched": 219 + }, + "dataset": { + "gold_images": 148 + } + }, + "yolo26s-seg-v5-s-noflip-mask1-2026-10-23": { + "per_class": { + "loop_all": { + "tp": 89, + "fp": 7, + "fn": 3, + "precision": 0.9270833333333334, + "recall": 0.967391304347826, + "f1": 0.9468085106382979, + "mean_mask_iou": 0.8767158456805172, + "n_matched": 89 + }, + "pin": { + "tp": 40, + "fp": 9, + "fn": 7, + "precision": 0.8163265306122449, + "recall": 0.851063829787234, + "f1": 0.8333333333333334, + "mean_mask_iou": 0.9022457662605039, + "n_matched": 40 + }, + "crystal": { + "tp": 24, + "fp": 18, + "fn": 15, + "precision": 0.5714285714285714, + "recall": 0.6153846153846154, + "f1": 0.5925925925925927, + "mean_mask_iou": 0.7974621479687757, + "n_matched": 24 + }, + "loop_face": { + "tp": 73, + "fp": 20, + "fn": 7, + "precision": 0.7849462365591398, + "recall": 0.9125, + "f1": 0.8439306358381503, + "mean_mask_iou": 0.8246587023706556, + "n_matched": 73 + }, + "ice": { + "tp": 1, + "fp": 8, + "fn": 8, + "precision": 0.1111111111111111, + "recall": 0.1111111111111111, + "f1": 0.1111111111111111, + "mean_mask_iou": 0.8635014836795252, + "n_matched": 1 + } + }, + "overall": { + "tp": 227, + "fp": 62, + "fn": 40, + "precision": 0.7854671280276817, + "recall": 0.850187265917603, + "f1": 0.8165467625899281, + "mean_mask_iou": 0.8560362080351288, + "n_matched": 227 }, "dataset": { "gold_images": 148 @@ -2163,496 +2431,562 @@ "active": "yolo26n-seg-v4-noflip-mask1-2026-10-02", "bootstrap_vs_active": { "beamline yolo26n-seg-overlap-false-2026-04-12": { - "frames": 125, - "mounts": 116, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.1124, - "lo": -0.1478, - "hi": -0.0759, + "delta": -0.2341, + "lo": -0.2855, + "hi": -0.1851, "win": 0.0 }, "mask_score": { - "delta": -0.1155, - "lo": -0.147, - "hi": -0.0866, + "delta": -0.2477, + "lo": -0.2994, + "hi": -0.1998, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.232, - "lo": -0.3568, - "hi": -0.1125, + "delta": -0.222, + "lo": -0.3092, + "hi": -0.1364, "win": 0.0 }, "mask_score": { - "delta": -0.206, - "lo": -0.3082, - "hi": -0.1081, + "delta": -0.2229, + "lo": -0.3044, + "hi": -0.1469, "win": 0.0 } } } }, "2026-09-28_alc-v1": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0556, - "lo": -0.0822, - "hi": -0.0314, + "delta": -0.0749, + "lo": -0.116, + "hi": -0.0367, "win": 0.0 }, "mask_score": { - "delta": -0.0845, - "lo": -0.1094, - "hi": -0.0621, + "delta": -0.1196, + "lo": -0.157, + "hi": -0.0864, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.1542, - "lo": -0.2682, - "hi": -0.0369, - "win": 0.004 + "delta": -0.1131, + "lo": -0.2105, + "hi": -0.0176, + "win": 0.009 }, "mask_score": { - "delta": -0.1767, - "lo": -0.2687, - "hi": -0.0848, - "win": 0.001 + "delta": -0.1874, + "lo": -0.2639, + "hi": -0.1143, + "win": 0.0 } } } }, "2026-09-28_alc-v1-800px": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0654, - "lo": -0.0895, - "hi": -0.0428, + "delta": -0.0907, + "lo": -0.1309, + "hi": -0.0525, "win": 0.0 }, "mask_score": { - "delta": -0.0889, - "lo": -0.1112, - "hi": -0.0675, + "delta": -0.1213, + "lo": -0.1581, + "hi": -0.0867, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.1158, - "lo": -0.2154, - "hi": -0.0144, - "win": 0.013 + "delta": -0.1156, + "lo": -0.2096, + "hi": -0.031, + "win": 0.004 }, "mask_score": { - "delta": -0.1299, - "lo": -0.2095, - "hi": -0.0432, - "win": 0.001 + "delta": -0.1554, + "lo": -0.2324, + "hi": -0.0849, + "win": 0.0 } } } }, "2026-09-28_alc-v1-humanonly": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0434, - "lo": -0.0671, - "hi": -0.022, - "win": 0.0 + "delta": -0.0612, + "lo": -0.1034, + "hi": -0.0207, + "win": 0.001 }, "mask_score": { - "delta": -0.0788, - "lo": -0.1024, - "hi": -0.0566, + "delta": -0.1079, + "lo": -0.1496, + "hi": -0.0719, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.1055, - "lo": -0.2073, - "hi": -0.0024, - "win": 0.022 + "delta": -0.0856, + "lo": -0.1753, + "hi": 0.005, + "win": 0.03 }, "mask_score": { - "delta": -0.1218, - "lo": -0.2044, - "hi": -0.0383, - "win": 0.002 + "delta": -0.1311, + "lo": -0.2069, + "hi": -0.0566, + "win": 0.001 } } } }, "2026-09-28_alc-v1-mask1": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0487, - "lo": -0.0706, - "hi": -0.0276, + "delta": -0.0785, + "lo": -0.1147, + "hi": -0.0434, "win": 0.0 }, "mask_score": { - "delta": -0.075, - "lo": -0.0954, - "hi": -0.0558, + "delta": -0.1303, + "lo": -0.1638, + "hi": -0.0985, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.2021, - "lo": -0.3142, - "hi": -0.0883, - "win": 0.001 + "delta": -0.1702, + "lo": -0.2653, + "hi": -0.0778, + "win": 0.0 }, "mask_score": { - "delta": -0.2372, - "lo": -0.3295, - "hi": -0.1481, + "delta": -0.2486, + "lo": -0.3269, + "hi": -0.1734, "win": 0.0 } } } }, "2026-09-28_alc-v1-noflip": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0417, - "lo": -0.0638, - "hi": -0.0201, - "win": 0.001 + "delta": -0.0724, + "lo": -0.1132, + "hi": -0.0353, + "win": 0.0 }, "mask_score": { - "delta": -0.0685, - "lo": -0.0896, - "hi": -0.0498, + "delta": -0.1147, + "lo": -0.1517, + "hi": -0.0821, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.1268, - "lo": -0.2231, - "hi": -0.0227, - "win": 0.006 + "delta": -0.1492, + "lo": -0.2421, + "hi": -0.0602, + "win": 0.0 }, "mask_score": { - "delta": -0.1713, - "lo": -0.2544, - "hi": -0.0859, + "delta": -0.2134, + "lo": -0.2899, + "hi": -0.1408, "win": 0.0 } } } }, "2026-09-29_alc-v1-noflip-mask1": { - "frames": 205, - "mounts": 175, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0496, - "lo": -0.0731, - "hi": -0.0276, + "delta": -0.0798, + "lo": -0.1168, + "hi": -0.0456, "win": 0.0 }, "mask_score": { - "delta": -0.0557, - "lo": -0.0776, - "hi": -0.0354, + "delta": -0.0919, + "lo": -0.1285, + "hi": -0.0617, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.1075, - "lo": -0.2091, - "hi": -0.0078, - "win": 0.018 + "delta": -0.1167, + "lo": -0.1998, + "hi": -0.0426, + "win": 0.0 }, "mask_score": { - "delta": -0.1243, - "lo": -0.2198, - "hi": -0.0265, - "win": 0.007 + "delta": -0.1399, + "lo": -0.2112, + "hi": -0.0713, + "win": 0.0 } } } }, "2026-09-29_v2-recipeA": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0559, - "lo": -0.0806, - "hi": -0.033, - "win": 0.0 + "delta": -0.0853, + "lo": -0.1253, + "hi": -0.0459, + "win": 0.001 }, "mask_score": { - "delta": -0.0687, - "lo": -0.0921, - "hi": -0.0489, + "delta": -0.1165, + "lo": -0.1534, + "hi": -0.0835, "win": 0.0 }, "per_class": { "crystal": { "f1": { - "delta": -0.1531, - "lo": -0.2622, - "hi": -0.0444, - "win": 0.003 + "delta": -0.156, + "lo": -0.2529, + "hi": -0.0657, + "win": 0.001 }, "mask_score": { - "delta": -0.1983, - "lo": -0.2899, - "hi": -0.1077, + "delta": -0.2267, + "lo": -0.3072, + "hi": -0.1522, "win": 0.0 } } } }, "2026-09-29_v3-noflip-mask1": { - "frames": 148, - "mounts": 121, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0077, - "lo": -0.0295, - "hi": 0.0134, - "win": 0.249 + "delta": -0.0131, + "lo": -0.0461, + "hi": 0.0173, + "win": 0.195 }, "mask_score": { - "delta": -0.0091, - "lo": -0.0243, - "hi": 0.0062, - "win": 0.103 - }, - "per_class": { - "crystal": { - "f1": { - "delta": 0.0374, - "lo": -0.0708, - "hi": 0.1422, - "win": 0.74 - }, - "mask_score": { - "delta": -0.0119, - "lo": -0.094, - "hi": 0.0709, - "win": 0.372 - } - } - } - }, - "2026-09-29_v3-recipeA": { - "frames": 231, - "mounts": 199, - "draws": 2000, - "f1": { - "delta": -0.0187, - "lo": -0.0387, - "hi": 0.0022, - "win": 0.039 - }, - "mask_score": { - "delta": -0.038, - "lo": -0.0534, - "hi": -0.0229, - "win": 0.0 - }, - "per_class": { - "crystal": { - "f1": { - "delta": -0.1, - "lo": -0.1933, - "hi": 0.0008, - "win": 0.025 - }, - "mask_score": { - "delta": -0.1479, - "lo": -0.228, - "hi": -0.0702, - "win": 0.0 - } - } - } - }, - "2026-09-30_v3-s-640px": { - "frames": 231, - "mounts": 199, - "draws": 2000, - "f1": { - "delta": -0.0013, - "lo": -0.0209, - "hi": 0.0174, - "win": 0.457 - }, - "mask_score": { - "delta": -0.0208, - "lo": -0.035, - "hi": -0.0084, - "win": 0.0 - }, - "per_class": { - "crystal": { - "f1": { - "delta": -0.0826, - "lo": -0.1837, - "hi": 0.0103, - "win": 0.044 - }, - "mask_score": { - "delta": -0.106, - "lo": -0.1851, - "hi": -0.0332, - "win": 0.003 - } - } - } - }, - "2026-10-01_v4-recipeA": { - "frames": 231, - "mounts": 199, - "draws": 2000, - "f1": { - "delta": -0.0206, - "lo": -0.0373, - "hi": -0.0036, - "win": 0.006 - }, - "mask_score": { - "delta": -0.0264, - "lo": -0.0398, - "hi": -0.0139, + "delta": -0.0476, + "lo": -0.0726, + "hi": -0.0239, "win": 0.0 }, "per_class": { "crystal": { "f1": { "delta": -0.0508, - "lo": -0.1195, - "hi": 0.0216, - "win": 0.077 + "lo": -0.1262, + "hi": 0.0194, + "win": 0.076 }, "mask_score": { - "delta": -0.0792, - "lo": -0.1367, - "hi": -0.0252, - "win": 0.001 + "delta": -0.134, + "lo": -0.1984, + "hi": -0.0709, + "win": 0.0 + } + } + } + }, + "2026-09-29_v3-recipeA": { + "frames": 281, + "mounts": 249, + "draws": 2000, + "f1": { + "delta": -0.0298, + "lo": -0.0664, + "hi": 0.0052, + "win": 0.042 + }, + "mask_score": { + "delta": -0.0655, + "lo": -0.0936, + "hi": -0.0402, + "win": 0.0 + }, + "per_class": { + "crystal": { + "f1": { + "delta": -0.091, + "lo": -0.1795, + "hi": -0.0059, + "win": 0.018 + }, + "mask_score": { + "delta": -0.1587, + "lo": -0.2306, + "hi": -0.0932, + "win": 0.0 + } + } + } + }, + "2026-09-30_v3-s-640px": { + "frames": 281, + "mounts": 249, + "draws": 2000, + "f1": { + "delta": -0.0095, + "lo": -0.0438, + "hi": 0.0242, + "win": 0.285 + }, + "mask_score": { + "delta": -0.0416, + "lo": -0.0669, + "hi": -0.0166, + "win": 0.0 + }, + "per_class": { + "crystal": { + "f1": { + "delta": -0.0743, + "lo": -0.1674, + "hi": 0.0142, + "win": 0.056 + }, + "mask_score": { + "delta": -0.1254, + "lo": -0.1951, + "hi": -0.0566, + "win": 0.0 + } + } + } + }, + "2026-10-01_v4-recipeA": { + "frames": 281, + "mounts": 249, + "draws": 2000, + "f1": { + "delta": -0.0141, + "lo": -0.0408, + "hi": 0.0138, + "win": 0.174 + }, + "mask_score": { + "delta": -0.0243, + "lo": -0.0438, + "hi": -0.0036, + "win": 0.011 + }, + "per_class": { + "crystal": { + "f1": { + "delta": 0.0028, + "lo": -0.0674, + "hi": 0.0692, + "win": 0.547 + }, + "mask_score": { + "delta": -0.0526, + "lo": -0.1051, + "hi": -0.003, + "win": 0.019 } } } }, "2026-10-22_v5-noflip-mask1": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": -0.0015, - "lo": -0.0204, - "hi": 0.0164, - "win": 0.432 + "delta": 0.0154, + "lo": -0.0153, + "hi": 0.0461, + "win": 0.828 }, "mask_score": { - "delta": -0.0064, - "lo": -0.0196, - "hi": 0.0073, - "win": 0.172 + "delta": -0.001, + "lo": -0.0242, + "hi": 0.0219, + "win": 0.458 }, "per_class": { "crystal": { "f1": { - "delta": -0.0051, - "lo": -0.0894, - "hi": 0.0808, - "win": 0.454 + "delta": 0.0267, + "lo": -0.0499, + "hi": 0.0978, + "win": 0.749 }, "mask_score": { - "delta": -0.0141, - "lo": -0.0785, - "hi": 0.0487, - "win": 0.346 + "delta": -0.0098, + "lo": -0.069, + "hi": 0.0453, + "win": 0.357 } } } }, "2026-10-23_v5-n-1024px": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": 0.0051, - "lo": -0.015, - "hi": 0.0261, - "win": 0.692 + "delta": 0.0194, + "lo": -0.0138, + "hi": 0.0513, + "win": 0.876 }, "mask_score": { - "delta": 0.0013, - "lo": -0.0148, - "hi": 0.0175, - "win": 0.551 + "delta": 0.0057, + "lo": -0.0192, + "hi": 0.0302, + "win": 0.674 }, "per_class": { "crystal": { "f1": { - "delta": 0.0101, - "lo": -0.0839, - "hi": 0.11, - "win": 0.59 + "delta": 0.0204, + "lo": -0.0586, + "hi": 0.094, + "win": 0.707 }, "mask_score": { - "delta": -0.0055, - "lo": -0.0809, - "hi": 0.0699, - "win": 0.454 + "delta": -0.0175, + "lo": -0.0761, + "hi": 0.0418, + "win": 0.297 } } } }, "2026-10-23_v5-s-noflip-mask1": { - "frames": 231, - "mounts": 199, + "frames": 281, + "mounts": 249, "draws": 2000, "f1": { - "delta": 0.0064, - "lo": -0.014, - "hi": 0.0266, - "win": 0.742 + "delta": 0.028, + "lo": -0.005, + "hi": 0.0586, + "win": 0.961 }, "mask_score": { - "delta": -0.0005, - "lo": -0.016, - "hi": 0.0155, - "win": 0.473 + "delta": 0.0158, + "lo": -0.008, + "hi": 0.0397, + "win": 0.91 }, "per_class": { "crystal": { "f1": { - "delta": 0.0378, - "lo": -0.0573, - "hi": 0.1337, - "win": 0.794 + "delta": 0.0473, + "lo": -0.0311, + "hi": 0.1245, + "win": 0.889 }, "mask_score": { - "delta": -0.0112, - "lo": -0.0829, - "hi": 0.0664, - "win": 0.383 + "delta": -0.0068, + "lo": -0.0681, + "hi": 0.0534, + "win": 0.406 + } + } + } + }, + "yolo26n-seg-v5-noflip-mask1-2026-10-23": { + "frames": 281, + "mounts": 249, + "draws": 2000, + "f1": { + "delta": 0.0154, + "lo": -0.0153, + "hi": 0.0461, + "win": 0.828 + }, + "mask_score": { + "delta": -0.001, + "lo": -0.0242, + "hi": 0.0219, + "win": 0.458 + }, + "per_class": { + "crystal": { + "f1": { + "delta": 0.0267, + "lo": -0.0499, + "hi": 0.0978, + "win": 0.749 + }, + "mask_score": { + "delta": -0.0098, + "lo": -0.069, + "hi": 0.0453, + "win": 0.357 + } + } + } + }, + "yolo26s-seg-v5-s-noflip-mask1-2026-10-23": { + "frames": 281, + "mounts": 249, + "draws": 2000, + "f1": { + "delta": 0.028, + "lo": -0.005, + "hi": 0.0586, + "win": 0.961 + }, + "mask_score": { + "delta": 0.0158, + "lo": -0.008, + "hi": 0.0397, + "win": 0.91 + }, + "per_class": { + "crystal": { + "f1": { + "delta": 0.0473, + "lo": -0.0311, + "hi": 0.1245, + "win": 0.889 + }, + "mask_score": { + "delta": -0.0068, + "lo": -0.0681, + "hi": 0.0534, + "win": 0.406 } } } @@ -2662,91 +2996,91 @@ "beamline yolo26n-seg-overlap-false-2026-04-12": { "per_class": { "loop_all": { - "tp": 39, - "fp": 6, - "fn": 3, - "precision": 0.8666666666666667, - "recall": 0.9285714285714286, - "f1": 0.896551724137931, - "mean_mask_iou": 0.8702343526462095, - "n_matched": 39 + "tp": 58, + "fp": 20, + "fn": 34, + "precision": 0.7435897435897436, + "recall": 0.6304347826086957, + "f1": 0.6823529411764706, + "mean_mask_iou": 0.819627885818135, + "n_matched": 58 }, "pin": { - "tp": 27, - "fp": 6, - "fn": 4, - "precision": 0.8181818181818182, - "recall": 0.8709677419354839, - "f1": 0.84375, - "mean_mask_iou": 0.9177314634958049, - "n_matched": 27 + "tp": 28, + "fp": 19, + "fn": 15, + "precision": 0.5957446808510638, + "recall": 0.6511627906976745, + "f1": 0.6222222222222222, + "mean_mask_iou": 0.8824938544110352, + "n_matched": 28 }, "crystal": { - "tp": 7, - "fp": 10, - "fn": 16, - "precision": 0.4117647058823529, - "recall": 0.30434782608695654, - "f1": 0.35, - "mean_mask_iou": 0.7982145782317175, - "n_matched": 7 + "tp": 15, + "fp": 39, + "fn": 24, + "precision": 0.2777777777777778, + "recall": 0.38461538461538464, + "f1": 0.3225806451612903, + "mean_mask_iou": 0.7672677057932032, + "n_matched": 15 }, "loop_face": { - "tp": 30, - "fp": 13, - "fn": 12, - "precision": 0.6976744186046512, - "recall": 0.7142857142857143, - "f1": 0.7058823529411765, - "mean_mask_iou": 0.8730445743227884, - "n_matched": 30 + "tp": 40, + "fp": 28, + "fn": 40, + "precision": 0.5882352941176471, + "recall": 0.5, + "f1": 0.5405405405405405, + "mean_mask_iou": 0.8462796921751832, + "n_matched": 40 }, "ice": { "tp": 1, - "fp": 0, - "fn": 1, - "precision": 1.0, - "recall": 0.5, - "f1": 0.6666666666666666, + "fp": 8, + "fn": 8, + "precision": 0.1111111111111111, + "recall": 0.1111111111111111, + "f1": 0.1111111111111111, "mean_mask_iou": 0.8931750741839762, "n_matched": 1 } }, "overall": { - "tp": 104, - "fp": 35, - "fn": 36, - "precision": 0.7482014388489209, - "recall": 0.7428571428571429, - "f1": 0.7455197132616488, - "mean_mask_iou": 0.8787490732603704, - "n_matched": 104 + "tp": 142, + "fp": 114, + "fn": 121, + "precision": 0.5546875, + "recall": 0.5399239543726235, + "f1": 0.5472061657032755, + "mean_mask_iou": 0.834518476401762, + "n_matched": 142 }, "dataset": { - "gold_images": 42 + "gold_images": 142 } }, "2026-09-28_alc-v1": { "per_class": { "loop_all": { - "tp": 125, - "fp": 15, + "tp": 81, + "fp": 14, "fn": 11, - "precision": 0.8928571428571429, - "recall": 0.9191176470588235, - "f1": 0.9057971014492753, - "mean_mask_iou": 0.8781347342453765, - "n_matched": 125 + "precision": 0.8526315789473684, + "recall": 0.8804347826086957, + "f1": 0.8663101604278075, + "mean_mask_iou": 0.8499728718678281, + "n_matched": 81 }, "pin": { - "tp": 104, + "tp": 38, "fp": 14, - "fn": 6, - "precision": 0.8813559322033898, - "recall": 0.9454545454545454, - "f1": 0.9122807017543859, - "mean_mask_iou": 0.9143283082991309, - "n_matched": 104 + "fn": 5, + "precision": 0.7307692307692307, + "recall": 0.8837209302325582, + "f1": 0.8, + "mean_mask_iou": 0.8842533796435362, + "n_matched": 38 }, "crystal": { "tp": 20, @@ -2759,35 +3093,35 @@ "n_matched": 20 }, "loop_face": { - "tp": 91, + "tp": 57, "fp": 23, - "fn": 27, - "precision": 0.7982456140350878, - "recall": 0.7711864406779662, - "f1": 0.7844827586206897, - "mean_mask_iou": 0.8626003117946868, - "n_matched": 91 + "fn": 23, + "precision": 0.7125, + "recall": 0.7125, + "f1": 0.7125, + "mean_mask_iou": 0.8186131021085434, + "n_matched": 57 }, "ice": { "tp": 1, "fp": 3, - "fn": 9, + "fn": 8, "precision": 0.25, - "recall": 0.1, - "f1": 0.14285714285714288, + "recall": 0.1111111111111111, + "f1": 0.15384615384615383, "mean_mask_iou": 0.8808139534883721, "n_matched": 1 } }, "overall": { - "tp": 341, - "fp": 72, - "fn": 72, - "precision": 0.8256658595641646, - "recall": 0.8256658595641646, - "f1": 0.8256658595641646, - "mean_mask_iou": 0.8774761420771262, - "n_matched": 341 + "tp": 197, + "fp": 71, + "fn": 66, + "precision": 0.7350746268656716, + "recall": 0.7490494296577946, + "f1": 0.7419962335216571, + "mean_mask_iou": 0.8374422746149104, + "n_matched": 197 }, "dataset": { "gold_images": 142 @@ -2796,24 +3130,24 @@ "2026-09-28_alc-v1-800px": { "per_class": { "loop_all": { - "tp": 126, - "fp": 23, - "fn": 10, - "precision": 0.8456375838926175, - "recall": 0.9264705882352942, - "f1": 0.8842105263157894, - "mean_mask_iou": 0.8847292506040662, - "n_matched": 126 + "tp": 83, + "fp": 21, + "fn": 9, + "precision": 0.7980769230769231, + "recall": 0.9021739130434783, + "f1": 0.8469387755102041, + "mean_mask_iou": 0.8644999688316582, + "n_matched": 83 }, "pin": { - "tp": 101, - "fp": 14, - "fn": 9, - "precision": 0.8782608695652174, - "recall": 0.9181818181818182, - "f1": 0.8977777777777778, - "mean_mask_iou": 0.9165917222887455, - "n_matched": 101 + "tp": 37, + "fp": 12, + "fn": 6, + "precision": 0.7551020408163265, + "recall": 0.8604651162790697, + "f1": 0.8043478260869564, + "mean_mask_iou": 0.8904355832439773, + "n_matched": 37 }, "crystal": { "tp": 19, @@ -2826,19 +3160,19 @@ "n_matched": 19 }, "loop_face": { - "tp": 84, - "fp": 21, - "fn": 34, - "precision": 0.8, - "recall": 0.711864406779661, - "f1": 0.7533632286995515, - "mean_mask_iou": 0.8747709186769616, - "n_matched": 84 + "tp": 49, + "fp": 20, + "fn": 31, + "precision": 0.7101449275362319, + "recall": 0.6125, + "f1": 0.6577181208053692, + "mean_mask_iou": 0.8332276031174903, + "n_matched": 49 }, "ice": { "tp": 0, "fp": 1, - "fn": 10, + "fn": 9, "precision": 0.0, "recall": 0.0, "f1": 0.0, @@ -2847,14 +3181,14 @@ } }, "overall": { - "tp": 330, - "fp": 83, - "fn": 83, - "precision": 0.7990314769975787, - "recall": 0.7990314769975787, - "f1": 0.7990314769975787, - "mean_mask_iou": 0.886615424805158, - "n_matched": 330 + "tp": 188, + "fp": 78, + "fn": 75, + "precision": 0.706766917293233, + "recall": 0.714828897338403, + "f1": 0.7107750472589792, + "mean_mask_iou": 0.8541406916775182, + "n_matched": 188 }, "dataset": { "gold_images": 142 @@ -2863,24 +3197,24 @@ "2026-09-28_alc-v1-humanonly": { "per_class": { "loop_all": { - "tp": 125, - "fp": 13, - "fn": 11, - "precision": 0.9057971014492754, - "recall": 0.9191176470588235, - "f1": 0.9124087591240877, - "mean_mask_iou": 0.8755308108958078, - "n_matched": 125 + "tp": 82, + "fp": 12, + "fn": 10, + "precision": 0.8723404255319149, + "recall": 0.8913043478260869, + "f1": 0.8817204301075269, + "mean_mask_iou": 0.8481091035883077, + "n_matched": 82 }, "pin": { - "tp": 103, + "tp": 37, "fp": 8, - "fn": 7, - "precision": 0.9279279279279279, - "recall": 0.9363636363636364, - "f1": 0.9321266968325792, - "mean_mask_iou": 0.9059419588690014, - "n_matched": 103 + "fn": 6, + "precision": 0.8222222222222222, + "recall": 0.8604651162790697, + "f1": 0.8409090909090908, + "mean_mask_iou": 0.8868441291384113, + "n_matched": 37 }, "crystal": { "tp": 22, @@ -2893,35 +3227,35 @@ "n_matched": 22 }, "loop_face": { - "tp": 90, - "fp": 26, - "fn": 28, - "precision": 0.7758620689655172, - "recall": 0.7627118644067796, - "f1": 0.7692307692307694, - "mean_mask_iou": 0.8666775494256195, - "n_matched": 90 + "tp": 55, + "fp": 24, + "fn": 25, + "precision": 0.6962025316455697, + "recall": 0.6875, + "f1": 0.6918238993710691, + "mean_mask_iou": 0.8242191375929399, + "n_matched": 55 }, "ice": { "tp": 1, "fp": 1, - "fn": 9, + "fn": 8, "precision": 0.5, - "recall": 0.1, - "f1": 0.16666666666666669, + "recall": 0.1111111111111111, + "f1": 0.1818181818181818, "mean_mask_iou": 0.8895522388059701, "n_matched": 1 } }, "overall": { - "tp": 341, - "fp": 73, - "fn": 72, - "precision": 0.8236714975845411, - "recall": 0.8256658595641646, - "f1": 0.8246674727932285, - "mean_mask_iou": 0.8729572241600809, - "n_matched": 341 + "tp": 197, + "fp": 70, + "fn": 66, + "precision": 0.7378277153558053, + "recall": 0.7490494296577946, + "f1": 0.7433962264150943, + "mean_mask_iou": 0.8356055467247355, + "n_matched": 197 }, "dataset": { "gold_images": 142 @@ -2930,24 +3264,24 @@ "2026-09-28_alc-v1-mask1": { "per_class": { "loop_all": { - "tp": 128, + "tp": 84, "fp": 28, "fn": 8, - "precision": 0.8205128205128205, - "recall": 0.9411764705882353, - "f1": 0.8767123287671232, - "mean_mask_iou": 0.8789676656381765, - "n_matched": 128 + "precision": 0.75, + "recall": 0.9130434782608695, + "f1": 0.8235294117647057, + "mean_mask_iou": 0.8526792176111354, + "n_matched": 84 }, "pin": { - "tp": 100, + "tp": 35, "fp": 8, - "fn": 10, - "precision": 0.9259259259259259, - "recall": 0.9090909090909091, - "f1": 0.9174311926605504, - "mean_mask_iou": 0.9259583352468097, - "n_matched": 100 + "fn": 8, + "precision": 0.813953488372093, + "recall": 0.813953488372093, + "f1": 0.8139534883720931, + "mean_mask_iou": 0.8969516849877124, + "n_matched": 35 }, "crystal": { "tp": 16, @@ -2960,35 +3294,35 @@ "n_matched": 16 }, "loop_face": { - "tp": 97, - "fp": 23, - "fn": 21, - "precision": 0.8083333333333333, - "recall": 0.8220338983050848, - "f1": 0.8151260504201682, - "mean_mask_iou": 0.865323440424223, - "n_matched": 97 + "tp": 60, + "fp": 21, + "fn": 20, + "precision": 0.7407407407407407, + "recall": 0.75, + "f1": 0.7453416149068324, + "mean_mask_iou": 0.8233537817549802, + "n_matched": 60 }, "ice": { "tp": 1, "fp": 0, - "fn": 9, + "fn": 8, "precision": 1.0, - "recall": 0.1, - "f1": 0.18181818181818182, + "recall": 0.1111111111111111, + "f1": 0.19999999999999998, "mean_mask_iou": 0.8958333333333334, "n_matched": 1 } }, "overall": { - "tp": 342, - "fp": 74, - "fn": 71, - "precision": 0.8221153846153846, - "recall": 0.8280871670702179, - "f1": 0.8250904704463209, - "mean_mask_iou": 0.8850199535726135, - "n_matched": 342 + "tp": 196, + "fp": 72, + "fn": 67, + "precision": 0.7313432835820896, + "recall": 0.7452471482889734, + "f1": 0.7382297551789078, + "mean_mask_iou": 0.8472262542526565, + "n_matched": 196 }, "dataset": { "gold_images": 142 @@ -2997,24 +3331,24 @@ "2026-09-28_alc-v1-noflip": { "per_class": { "loop_all": { - "tp": 128, - "fp": 16, + "tp": 84, + "fp": 15, "fn": 8, - "precision": 0.8888888888888888, - "recall": 0.9411764705882353, - "f1": 0.9142857142857143, - "mean_mask_iou": 0.8734922094082838, - "n_matched": 128 + "precision": 0.8484848484848485, + "recall": 0.9130434782608695, + "f1": 0.8795811518324607, + "mean_mask_iou": 0.8461441573258723, + "n_matched": 84 }, "pin": { - "tp": 102, - "fp": 9, - "fn": 8, - "precision": 0.918918918918919, - "recall": 0.9272727272727272, - "f1": 0.9230769230769231, - "mean_mask_iou": 0.9139957824299675, - "n_matched": 102 + "tp": 36, + "fp": 8, + "fn": 7, + "precision": 0.8181818181818182, + "recall": 0.8372093023255814, + "f1": 0.8275862068965518, + "mean_mask_iou": 0.8784849372937551, + "n_matched": 36 }, "crystal": { "tp": 20, @@ -3027,35 +3361,35 @@ "n_matched": 20 }, "loop_face": { - "tp": 98, - "fp": 30, - "fn": 20, - "precision": 0.765625, - "recall": 0.8305084745762712, - "f1": 0.7967479674796748, - "mean_mask_iou": 0.8636169054461538, - "n_matched": 98 + "tp": 61, + "fp": 28, + "fn": 19, + "precision": 0.6853932584269663, + "recall": 0.7625, + "f1": 0.7218934911242604, + "mean_mask_iou": 0.8210088491188919, + "n_matched": 61 }, "ice": { "tp": 1, "fp": 0, - "fn": 9, + "fn": 8, "precision": 1.0, - "recall": 0.1, - "f1": 0.18181818181818182, + "recall": 0.1111111111111111, + "f1": 0.19999999999999998, "mean_mask_iou": 0.9156626506024096, "n_matched": 1 } }, "overall": { - "tp": 349, - "fp": 72, - "fn": 64, - "precision": 0.828978622327791, - "recall": 0.8450363196125908, - "f1": 0.8369304556354916, - "mean_mask_iou": 0.8743045088228227, - "n_matched": 349 + "tp": 202, + "fp": 68, + "fn": 61, + "precision": 0.7481481481481481, + "recall": 0.7680608365019012, + "f1": 0.7579737335834896, + "mean_mask_iou": 0.8329027276610224, + "n_matched": 202 }, "dataset": { "gold_images": 142 @@ -3064,91 +3398,91 @@ "2026-09-29_alc-v1-noflip-mask1": { "per_class": { "loop_all": { - "tp": 101, - "fp": 16, + "tp": 83, + "fp": 20, "fn": 9, - "precision": 0.8632478632478633, - "recall": 0.9181818181818182, - "f1": 0.8898678414096917, - "mean_mask_iou": 0.8831470191463137, - "n_matched": 101 + "precision": 0.8058252427184466, + "recall": 0.9021739130434783, + "f1": 0.8512820512820513, + "mean_mask_iou": 0.8534895677923248, + "n_matched": 83 }, "pin": { - "tp": 89, + "tp": 37, "fp": 8, "fn": 6, - "precision": 0.9175257731958762, - "recall": 0.9368421052631579, - "f1": 0.9270833333333333, - "mean_mask_iou": 0.9217822771133841, - "n_matched": 89 + "precision": 0.8222222222222222, + "recall": 0.8604651162790697, + "f1": 0.8409090909090908, + "mean_mask_iou": 0.8874372647201296, + "n_matched": 37 }, "crystal": { - "tp": 14, - "fp": 16, - "fn": 6, - "precision": 0.4666666666666667, - "recall": 0.7, - "f1": 0.56, - "mean_mask_iou": 0.7458727660656601, - "n_matched": 14 + "tp": 21, + "fp": 30, + "fn": 18, + "precision": 0.4117647058823529, + "recall": 0.5384615384615384, + "f1": 0.4666666666666667, + "mean_mask_iou": 0.7718891071431425, + "n_matched": 21 }, "loop_face": { - "tp": 75, - "fp": 24, - "fn": 17, - "precision": 0.7575757575757576, - "recall": 0.8152173913043478, - "f1": 0.7853403141361256, - "mean_mask_iou": 0.8745804738346167, - "n_matched": 75 + "tp": 60, + "fp": 28, + "fn": 20, + "precision": 0.6818181818181818, + "recall": 0.75, + "f1": 0.7142857142857143, + "mean_mask_iou": 0.8295419449936053, + "n_matched": 60 }, "ice": { "tp": 1, - "fp": 0, - "fn": 9, - "precision": 1.0, - "recall": 0.1, - "f1": 0.18181818181818182, + "fp": 1, + "fn": 8, + "precision": 0.5, + "recall": 0.1111111111111111, + "f1": 0.1818181818181818, "mean_mask_iou": 0.901840490797546, "n_matched": 1 } }, "overall": { - "tp": 280, - "fp": 64, - "fn": 47, - "precision": 0.813953488372093, - "recall": 0.8562691131498471, - "f1": 0.8345752608047691, - "mean_mask_iou": 0.8863359512506499, - "n_matched": 280 + "tp": 202, + "fp": 87, + "fn": 61, + "precision": 0.698961937716263, + "recall": 0.7680608365019012, + "f1": 0.7318840579710144, + "mean_mask_iou": 0.8443506998110276, + "n_matched": 202 }, "dataset": { - "gold_images": 116 + "gold_images": 142 } }, "2026-09-29_v2-recipeA": { "per_class": { "loop_all": { - "tp": 131, - "fp": 19, + "tp": 87, + "fp": 16, "fn": 5, - "precision": 0.8733333333333333, - "recall": 0.9632352941176471, - "f1": 0.9160839160839161, - "mean_mask_iou": 0.8680912009339654, - "n_matched": 131 + "precision": 0.8446601941747572, + "recall": 0.9456521739130435, + "f1": 0.8923076923076922, + "mean_mask_iou": 0.8416325465301895, + "n_matched": 87 }, "pin": { - "tp": 104, - "fp": 14, + "tp": 37, + "fp": 13, "fn": 6, - "precision": 0.8813559322033898, - "recall": 0.9454545454545454, - "f1": 0.9122807017543859, - "mean_mask_iou": 0.910875046039068, - "n_matched": 104 + "precision": 0.74, + "recall": 0.8604651162790697, + "f1": 0.7956989247311828, + "mean_mask_iou": 0.8805330403245692, + "n_matched": 37 }, "crystal": { "tp": 18, @@ -3161,35 +3495,35 @@ "n_matched": 18 }, "loop_face": { - "tp": 97, - "fp": 35, - "fn": 21, - "precision": 0.7348484848484849, - "recall": 0.8220338983050848, - "f1": 0.7759999999999999, - "mean_mask_iou": 0.8664811450147819, - "n_matched": 97 + "tp": 60, + "fp": 33, + "fn": 20, + "precision": 0.6451612903225806, + "recall": 0.75, + "f1": 0.6936416184971099, + "mean_mask_iou": 0.823707382910823, + "n_matched": 60 }, "ice": { "tp": 1, "fp": 6, - "fn": 9, + "fn": 8, "precision": 0.14285714285714285, - "recall": 0.1, - "f1": 0.11764705882352941, + "recall": 0.1111111111111111, + "f1": 0.125, "mean_mask_iou": 0.8793103448275862, "n_matched": 1 } }, "overall": { - "tp": 351, - "fp": 93, - "fn": 62, - "precision": 0.7905405405405406, - "recall": 0.8498789346246973, - "f1": 0.8191365227537923, - "mean_mask_iou": 0.8758913396779332, - "n_matched": 351 + "tp": 203, + "fp": 87, + "fn": 60, + "precision": 0.7, + "recall": 0.7718631178707225, + "f1": 0.7341772151898734, + "mean_mask_iou": 0.8382385914526743, + "n_matched": 203 }, "dataset": { "gold_images": 142 @@ -3198,24 +3532,24 @@ "2026-09-29_v3-noflip-mask1": { "per_class": { "loop_all": { - "tp": 131, - "fp": 15, + "tp": 87, + "fp": 14, "fn": 5, - "precision": 0.8972602739726028, - "recall": 0.9632352941176471, - "f1": 0.9290780141843973, - "mean_mask_iou": 0.8912488996465564, - "n_matched": 131 + "precision": 0.8613861386138614, + "recall": 0.9456521739130435, + "f1": 0.9015544041450778, + "mean_mask_iou": 0.872090102772944, + "n_matched": 87 }, "pin": { - "tp": 105, + "tp": 38, "fp": 7, "fn": 5, - "precision": 0.9375, - "recall": 0.9545454545454546, - "f1": 0.9459459459459459, - "mean_mask_iou": 0.9220074817631791, - "n_matched": 105 + "precision": 0.8444444444444444, + "recall": 0.8837209302325582, + "f1": 0.8636363636363636, + "mean_mask_iou": 0.8944198059149494, + "n_matched": 38 }, "crystal": { "tp": 23, @@ -3228,35 +3562,35 @@ "n_matched": 23 }, "loop_face": { - "tp": 108, - "fp": 30, - "fn": 10, - "precision": 0.782608695652174, - "recall": 0.9152542372881356, - "f1": 0.8437499999999999, - "mean_mask_iou": 0.8619378578441553, - "n_matched": 108 + "tp": 71, + "fp": 28, + "fn": 9, + "precision": 0.7171717171717171, + "recall": 0.8875, + "f1": 0.7932960893854748, + "mean_mask_iou": 0.8256259061274975, + "n_matched": 71 }, "ice": { "tp": 1, "fp": 3, - "fn": 9, + "fn": 8, "precision": 0.25, - "recall": 0.1, - "f1": 0.14285714285714288, + "recall": 0.1111111111111111, + "f1": 0.15384615384615383, "mean_mask_iou": 0.8753799392097265, "n_matched": 1 } }, "overall": { - "tp": 368, - "fp": 69, - "fn": 45, - "precision": 0.8421052631578947, - "recall": 0.8910411622276029, - "f1": 0.8658823529411764, - "mean_mask_iou": 0.8845763900591668, - "n_matched": 368 + "tp": 220, + "fp": 66, + "fn": 43, + "precision": 0.7692307692307693, + "recall": 0.8365019011406845, + "f1": 0.8014571948998179, + "mean_mask_iou": 0.8515893743492651, + "n_matched": 220 }, "dataset": { "gold_images": 142 @@ -3265,24 +3599,24 @@ "2026-09-29_v3-recipeA": { "per_class": { "loop_all": { - "tp": 131, + "tp": 87, "fp": 8, "fn": 5, - "precision": 0.9424460431654677, - "recall": 0.9632352941176471, - "f1": 0.9527272727272728, - "mean_mask_iou": 0.8849044089947197, - "n_matched": 131 + "precision": 0.9157894736842105, + "recall": 0.9456521739130435, + "f1": 0.9304812834224598, + "mean_mask_iou": 0.8638258937880646, + "n_matched": 87 }, "pin": { - "tp": 105, - "fp": 15, + "tp": 38, + "fp": 14, "fn": 5, - "precision": 0.875, - "recall": 0.9545454545454546, - "f1": 0.9130434782608695, - "mean_mask_iou": 0.9113250081908684, - "n_matched": 105 + "precision": 0.7307692307692307, + "recall": 0.8837209302325582, + "f1": 0.8, + "mean_mask_iou": 0.8804832507958056, + "n_matched": 38 }, "crystal": { "tp": 19, @@ -3295,35 +3629,35 @@ "n_matched": 19 }, "loop_face": { - "tp": 105, - "fp": 26, - "fn": 13, - "precision": 0.8015267175572519, - "recall": 0.8898305084745762, - "f1": 0.8433734939759036, - "mean_mask_iou": 0.8629302054768759, - "n_matched": 105 + "tp": 68, + "fp": 25, + "fn": 12, + "precision": 0.7311827956989247, + "recall": 0.85, + "f1": 0.7861271676300579, + "mean_mask_iou": 0.827892936654284, + "n_matched": 68 }, "ice": { - "tp": 2, + "tp": 1, "fp": 3, "fn": 8, - "precision": 0.4, - "recall": 0.2, - "f1": 0.26666666666666666, - "mean_mask_iou": 0.8381010429364757, - "n_matched": 2 + "precision": 0.25, + "recall": 0.1111111111111111, + "f1": 0.15384615384615383, + "mean_mask_iou": 0.8724637681159421, + "n_matched": 1 } }, "overall": { - "tp": 362, - "fp": 67, - "fn": 51, - "precision": 0.8438228438228438, - "recall": 0.8765133171912833, - "f1": 0.8598574821852732, - "mean_mask_iou": 0.8816535677264747, - "n_matched": 362 + "tp": 213, + "fp": 65, + "fn": 50, + "precision": 0.7661870503597122, + "recall": 0.8098859315589354, + "f1": 0.7874306839186691, + "mean_mask_iou": 0.8499695500849699, + "n_matched": 213 }, "dataset": { "gold_images": 142 @@ -3332,24 +3666,24 @@ "2026-09-30_v3-s-640px": { "per_class": { "loop_all": { - "tp": 131, + "tp": 87, "fp": 10, "fn": 5, - "precision": 0.9290780141843972, - "recall": 0.9632352941176471, - "f1": 0.9458483754512635, - "mean_mask_iou": 0.895037675081173, - "n_matched": 131 + "precision": 0.8969072164948454, + "recall": 0.9456521739130435, + "f1": 0.9206349206349207, + "mean_mask_iou": 0.8769149733331438, + "n_matched": 87 }, "pin": { - "tp": 105, + "tp": 38, "fp": 6, "fn": 5, - "precision": 0.9459459459459459, - "recall": 0.9545454545454546, - "f1": 0.9502262443438914, - "mean_mask_iou": 0.9195818510438747, - "n_matched": 105 + "precision": 0.8636363636363636, + "recall": 0.8837209302325582, + "f1": 0.8735632183908046, + "mean_mask_iou": 0.8861474064271677, + "n_matched": 38 }, "crystal": { "tp": 21, @@ -3362,35 +3696,35 @@ "n_matched": 21 }, "loop_face": { - "tp": 108, - "fp": 24, - "fn": 10, - "precision": 0.8181818181818182, - "recall": 0.9152542372881356, - "f1": 0.8640000000000001, - "mean_mask_iou": 0.8636077341845044, - "n_matched": 108 + "tp": 71, + "fp": 23, + "fn": 9, + "precision": 0.7553191489361702, + "recall": 0.8875, + "f1": 0.8160919540229885, + "mean_mask_iou": 0.8291475304406545, + "n_matched": 71 }, "ice": { - "tp": 2, + "tp": 1, "fp": 1, "fn": 8, - "precision": 0.6666666666666666, - "recall": 0.2, - "f1": 0.30769230769230765, - "mean_mask_iou": 0.8091053257565746, - "n_matched": 2 + "precision": 0.5, + "recall": 0.1111111111111111, + "f1": 0.1818181818181818, + "mean_mask_iou": 0.8480243161094225, + "n_matched": 1 } }, "overall": { - "tp": 367, - "fp": 55, - "fn": 46, - "precision": 0.8696682464454977, - "recall": 0.8886198547215496, - "f1": 0.8790419161676647, - "mean_mask_iou": 0.8854297211684653, - "n_matched": 367 + "tp": 218, + "fp": 54, + "fn": 45, + "precision": 0.8014705882352942, + "recall": 0.8288973384030418, + "f1": 0.8149532710280374, + "mean_mask_iou": 0.8529428212465991, + "n_matched": 218 }, "dataset": { "gold_images": 142 @@ -3399,24 +3733,24 @@ "2026-10-01_v4-noflip-mask1": { "per_class": { "loop_all": { - "tp": 130, + "tp": 86, "fp": 8, "fn": 6, - "precision": 0.9420289855072463, - "recall": 0.9558823529411765, - "f1": 0.9489051094890512, - "mean_mask_iou": 0.9013518472724571, - "n_matched": 130 + "precision": 0.9148936170212766, + "recall": 0.9347826086956522, + "f1": 0.924731182795699, + "mean_mask_iou": 0.8832753278267423, + "n_matched": 86 }, "pin": { - "tp": 106, - "fp": 10, + "tp": 39, + "fp": 9, "fn": 4, - "precision": 0.9137931034482759, - "recall": 0.9636363636363636, - "f1": 0.9380530973451328, - "mean_mask_iou": 0.9213393777076267, - "n_matched": 106 + "precision": 0.8125, + "recall": 0.9069767441860465, + "f1": 0.8571428571428572, + "mean_mask_iou": 0.8831458940026848, + "n_matched": 39 }, "crystal": { "tp": 23, @@ -3429,35 +3763,35 @@ "n_matched": 23 }, "loop_face": { - "tp": 109, - "fp": 22, + "tp": 71, + "fp": 21, "fn": 9, - "precision": 0.8320610687022901, - "recall": 0.923728813559322, - "f1": 0.8755020080321285, - "mean_mask_iou": 0.8663105518711126, - "n_matched": 109 + "precision": 0.7717391304347826, + "recall": 0.8875, + "f1": 0.8255813953488372, + "mean_mask_iou": 0.8319862028801424, + "n_matched": 71 }, "ice": { - "tp": 2, + "tp": 1, "fp": 5, "fn": 8, - "precision": 0.2857142857142857, - "recall": 0.2, - "f1": 0.23529411764705882, - "mean_mask_iou": 0.8368580060422961, - "n_matched": 2 + "precision": 0.16666666666666666, + "recall": 0.1111111111111111, + "f1": 0.13333333333333333, + "mean_mask_iou": 0.9003021148036254, + "n_matched": 1 } }, "overall": { - "tp": 370, - "fp": 64, + "tp": 220, + "fp": 62, "fn": 43, - "precision": 0.8525345622119815, - "recall": 0.8958837772397095, - "f1": 0.8736717827626919, - "mean_mask_iou": 0.8902682317703667, - "n_matched": 370 + "precision": 0.7801418439716312, + "recall": 0.8365019011406845, + "f1": 0.8073394495412844, + "mean_mask_iou": 0.8583438908412291, + "n_matched": 220 }, "dataset": { "gold_images": 142 @@ -3466,24 +3800,24 @@ "2026-10-01_v4-recipeA": { "per_class": { "loop_all": { - "tp": 131, + "tp": 87, "fp": 14, "fn": 5, - "precision": 0.903448275862069, - "recall": 0.9632352941176471, - "f1": 0.9323843416370108, - "mean_mask_iou": 0.8884889654774195, - "n_matched": 131 + "precision": 0.8613861386138614, + "recall": 0.9456521739130435, + "f1": 0.9015544041450778, + "mean_mask_iou": 0.8678159971781848, + "n_matched": 87 }, "pin": { - "tp": 104, + "tp": 38, "fp": 10, - "fn": 6, - "precision": 0.9122807017543859, - "recall": 0.9454545454545454, - "f1": 0.9285714285714285, - "mean_mask_iou": 0.9246441262584385, - "n_matched": 104 + "fn": 5, + "precision": 0.7916666666666666, + "recall": 0.8837209302325582, + "f1": 0.8351648351648352, + "mean_mask_iou": 0.8980979097624061, + "n_matched": 38 }, "crystal": { "tp": 19, @@ -3496,35 +3830,35 @@ "n_matched": 19 }, "loop_face": { - "tp": 106, + "tp": 69, "fp": 29, - "fn": 12, - "precision": 0.7851851851851852, - "recall": 0.8983050847457628, - "f1": 0.8379446640316205, - "mean_mask_iou": 0.8573425639145379, - "n_matched": 106 + "fn": 11, + "precision": 0.7040816326530612, + "recall": 0.8625, + "f1": 0.7752808988764046, + "mean_mask_iou": 0.8253312582350022, + "n_matched": 69 }, "ice": { - "tp": 2, + "tp": 1, "fp": 7, "fn": 8, - "precision": 0.2222222222222222, - "recall": 0.2, - "f1": 0.2105263157894737, - "mean_mask_iou": 0.8132183908045978, - "n_matched": 2 + "precision": 0.125, + "recall": 0.1111111111111111, + "f1": 0.11764705882352941, + "mean_mask_iou": 0.8850574712643678, + "n_matched": 1 } }, "overall": { - "tp": 362, + "tp": 214, "fp": 81, - "fn": 51, - "precision": 0.8171557562076749, - "recall": 0.8765133171912833, - "f1": 0.8457943925233644, - "mean_mask_iou": 0.8835964073156894, - "n_matched": 362 + "fn": 49, + "precision": 0.7254237288135593, + "recall": 0.8136882129277566, + "f1": 0.7670250896057347, + "mean_mask_iou": 0.8516950182161824, + "n_matched": 214 }, "dataset": { "gold_images": 142 @@ -3533,24 +3867,24 @@ "2026-10-22_v5-noflip-mask1": { "per_class": { "loop_all": { - "tp": 132, + "tp": 88, "fp": 10, "fn": 4, - "precision": 0.9295774647887324, - "recall": 0.9705882352941176, - "f1": 0.9496402877697842, - "mean_mask_iou": 0.8972836658405989, - "n_matched": 132 + "precision": 0.8979591836734694, + "recall": 0.9565217391304348, + "f1": 0.9263157894736843, + "mean_mask_iou": 0.8775883729569949, + "n_matched": 88 }, "pin": { - "tp": 103, + "tp": 37, "fp": 7, - "fn": 7, - "precision": 0.9363636363636364, - "recall": 0.9363636363636364, - "f1": 0.9363636363636364, - "mean_mask_iou": 0.9262646869129953, - "n_matched": 103 + "fn": 6, + "precision": 0.8409090909090909, + "recall": 0.8604651162790697, + "f1": 0.8505747126436781, + "mean_mask_iou": 0.8972281327979925, + "n_matched": 37 }, "crystal": { "tp": 22, @@ -3563,35 +3897,35 @@ "n_matched": 22 }, "loop_face": { - "tp": 106, - "fp": 24, - "fn": 12, - "precision": 0.8153846153846154, - "recall": 0.8983050847457628, - "f1": 0.8548387096774194, - "mean_mask_iou": 0.8625092777552028, - "n_matched": 106 + "tp": 69, + "fp": 22, + "fn": 11, + "precision": 0.7582417582417582, + "recall": 0.8625, + "f1": 0.8070175438596491, + "mean_mask_iou": 0.8220439265624961, + "n_matched": 69 }, "ice": { - "tp": 2, + "tp": 1, "fp": 5, "fn": 8, - "precision": 0.2857142857142857, - "recall": 0.2, - "f1": 0.23529411764705882, - "mean_mask_iou": 0.8135394456289978, - "n_matched": 2 + "precision": 0.16666666666666666, + "recall": 0.1111111111111111, + "f1": 0.13333333333333333, + "mean_mask_iou": 0.8985074626865671, + "n_matched": 1 } }, "overall": { - "tp": 365, - "fp": 69, - "fn": 48, - "precision": 0.8410138248847926, - "recall": 0.8837772397094431, - "f1": 0.8618654073199528, - "mean_mask_iou": 0.8891405573538479, - "n_matched": 365 + "tp": 217, + "fp": 67, + "fn": 46, + "precision": 0.7640845070422535, + "recall": 0.8250950570342205, + "f1": 0.7934186471663619, + "mean_mask_iou": 0.8556741501709108, + "n_matched": 217 }, "dataset": { "gold_images": 142 @@ -3600,24 +3934,24 @@ "2026-10-23_v5-n-1024px": { "per_class": { "loop_all": { - "tp": 132, - "fp": 11, - "fn": 4, - "precision": 0.9230769230769231, - "recall": 0.9705882352941176, - "f1": 0.946236559139785, - "mean_mask_iou": 0.898502813531825, - "n_matched": 132 + "tp": 89, + "fp": 10, + "fn": 3, + "precision": 0.898989898989899, + "recall": 0.967391304347826, + "f1": 0.9319371727748692, + "mean_mask_iou": 0.8815048799355819, + "n_matched": 89 }, "pin": { - "tp": 104, + "tp": 38, "fp": 9, - "fn": 6, - "precision": 0.9203539823008849, - "recall": 0.9454545454545454, - "f1": 0.9327354260089686, - "mean_mask_iou": 0.9241773501217274, - "n_matched": 104 + "fn": 5, + "precision": 0.8085106382978723, + "recall": 0.8837209302325582, + "f1": 0.8444444444444444, + "mean_mask_iou": 0.8987586935965205, + "n_matched": 38 }, "crystal": { "tp": 23, @@ -3630,35 +3964,35 @@ "n_matched": 23 }, "loop_face": { - "tp": 107, - "fp": 25, + "tp": 69, + "fp": 24, "fn": 11, - "precision": 0.8106060606060606, - "recall": 0.9067796610169492, - "f1": 0.856, - "mean_mask_iou": 0.8639848826902973, - "n_matched": 107 + "precision": 0.7419354838709677, + "recall": 0.8625, + "f1": 0.7976878612716763, + "mean_mask_iou": 0.8304512768596254, + "n_matched": 69 }, "ice": { - "tp": 1, + "tp": 0, "fp": 2, "fn": 9, - "precision": 0.3333333333333333, - "recall": 0.1, - "f1": 0.15384615384615383, - "mean_mask_iou": 0.7432835820895523, - "n_matched": 1 + "precision": 0.0, + "recall": 0.0, + "f1": 0.0, + "mean_mask_iou": 0.0, + "n_matched": 0 } }, "overall": { - "tp": 367, - "fp": 65, - "fn": 46, - "precision": 0.8495370370370371, - "recall": 0.8886198547215496, - "f1": 0.8686390532544379, - "mean_mask_iou": 0.889257007957673, - "n_matched": 367 + "tp": 219, + "fp": 63, + "fn": 44, + "precision": 0.776595744680851, + "recall": 0.8326996197718631, + "f1": 0.8036697247706422, + "mean_mask_iou": 0.86008558386257, + "n_matched": 219 }, "dataset": { "gold_images": 142 @@ -3667,24 +4001,24 @@ "2026-10-23_v5-s-noflip-mask1": { "per_class": { "loop_all": { - "tp": 132, + "tp": 89, "fp": 7, - "fn": 4, - "precision": 0.9496402877697842, - "recall": 0.9705882352941176, - "f1": 0.96, - "mean_mask_iou": 0.8955794026834605, - "n_matched": 132 + "fn": 3, + "precision": 0.9270833333333334, + "recall": 0.967391304347826, + "f1": 0.9468085106382979, + "mean_mask_iou": 0.8767158456805172, + "n_matched": 89 }, "pin": { - "tp": 104, + "tp": 38, "fp": 9, - "fn": 6, - "precision": 0.9203539823008849, - "recall": 0.9454545454545454, - "f1": 0.9327354260089686, - "mean_mask_iou": 0.9290212044788666, - "n_matched": 104 + "fn": 5, + "precision": 0.8085106382978723, + "recall": 0.8837209302325582, + "f1": 0.8444444444444444, + "mean_mask_iou": 0.9049713023605079, + "n_matched": 38 }, "crystal": { "tp": 24, @@ -3697,35 +4031,169 @@ "n_matched": 24 }, "loop_face": { - "tp": 110, - "fp": 21, - "fn": 8, - "precision": 0.8396946564885496, - "recall": 0.9322033898305084, - "f1": 0.8835341365461846, - "mean_mask_iou": 0.8623562109363304, - "n_matched": 110 + "tp": 73, + "fp": 20, + "fn": 7, + "precision": 0.7849462365591398, + "recall": 0.9125, + "f1": 0.8439306358381503, + "mean_mask_iou": 0.8246587023706556, + "n_matched": 73 }, "ice": { "tp": 1, "fp": 8, - "fn": 9, + "fn": 8, "precision": 0.1111111111111111, - "recall": 0.1, - "f1": 0.10526315789473685, + "recall": 0.1111111111111111, + "f1": 0.1111111111111111, "mean_mask_iou": 0.8635014836795252, "n_matched": 1 } }, "overall": { - "tp": 371, - "fp": 63, - "fn": 42, - "precision": 0.8548387096774194, - "recall": 0.8983050847457628, - "f1": 0.8760330578512397, - "mean_mask_iou": 0.8886697106683168, - "n_matched": 371 + "tp": 225, + "fp": 62, + "fn": 38, + "precision": 0.7839721254355401, + "recall": 0.8555133079847909, + "f1": 0.8181818181818182, + "mean_mask_iou": 0.8560857691700151, + "n_matched": 225 + }, + "dataset": { + "gold_images": 142 + } + }, + "yolo26n-seg-v5-noflip-mask1-2026-10-23": { + "per_class": { + "loop_all": { + "tp": 88, + "fp": 10, + "fn": 4, + "precision": 0.8979591836734694, + "recall": 0.9565217391304348, + "f1": 0.9263157894736843, + "mean_mask_iou": 0.8775883729569949, + "n_matched": 88 + }, + "pin": { + "tp": 37, + "fp": 7, + "fn": 6, + "precision": 0.8409090909090909, + "recall": 0.8604651162790697, + "f1": 0.8505747126436781, + "mean_mask_iou": 0.8972281327979925, + "n_matched": 37 + }, + "crystal": { + "tp": 22, + "fp": 23, + "fn": 17, + "precision": 0.4888888888888889, + "recall": 0.5641025641025641, + "f1": 0.5238095238095238, + "mean_mask_iou": 0.8016606571748839, + "n_matched": 22 + }, + "loop_face": { + "tp": 69, + "fp": 22, + "fn": 11, + "precision": 0.7582417582417582, + "recall": 0.8625, + "f1": 0.8070175438596491, + "mean_mask_iou": 0.8220439265624961, + "n_matched": 69 + }, + "ice": { + "tp": 1, + "fp": 5, + "fn": 8, + "precision": 0.16666666666666666, + "recall": 0.1111111111111111, + "f1": 0.13333333333333333, + "mean_mask_iou": 0.8985074626865671, + "n_matched": 1 + } + }, + "overall": { + "tp": 217, + "fp": 67, + "fn": 46, + "precision": 0.7640845070422535, + "recall": 0.8250950570342205, + "f1": 0.7934186471663619, + "mean_mask_iou": 0.8556741501709108, + "n_matched": 217 + }, + "dataset": { + "gold_images": 142 + } + }, + "yolo26s-seg-v5-s-noflip-mask1-2026-10-23": { + "per_class": { + "loop_all": { + "tp": 89, + "fp": 7, + "fn": 3, + "precision": 0.9270833333333334, + "recall": 0.967391304347826, + "f1": 0.9468085106382979, + "mean_mask_iou": 0.8767158456805172, + "n_matched": 89 + }, + "pin": { + "tp": 38, + "fp": 9, + "fn": 5, + "precision": 0.8085106382978723, + "recall": 0.8837209302325582, + "f1": 0.8444444444444444, + "mean_mask_iou": 0.9049713023605079, + "n_matched": 38 + }, + "crystal": { + "tp": 24, + "fp": 18, + "fn": 15, + "precision": 0.5714285714285714, + "recall": 0.6153846153846154, + "f1": 0.5925925925925927, + "mean_mask_iou": 0.7974621479687757, + "n_matched": 24 + }, + "loop_face": { + "tp": 73, + "fp": 20, + "fn": 7, + "precision": 0.7849462365591398, + "recall": 0.9125, + "f1": 0.8439306358381503, + "mean_mask_iou": 0.8246587023706556, + "n_matched": 73 + }, + "ice": { + "tp": 1, + "fp": 8, + "fn": 8, + "precision": 0.1111111111111111, + "recall": 0.1111111111111111, + "f1": 0.1111111111111111, + "mean_mask_iou": 0.8635014836795252, + "n_matched": 1 + } + }, + "overall": { + "tp": 225, + "fp": 62, + "fn": 38, + "precision": 0.7839721254355401, + "recall": 0.8555133079847909, + "f1": 0.8181818181818182, + "mean_mask_iou": 0.8560857691700151, + "n_matched": 225 }, "dataset": { "gold_images": 142 diff --git a/src/eval/evaluate.py b/src/eval/evaluate.py index 1ba8cd08..463d700d 100644 --- a/src/eval/evaluate.py +++ b/src/eval/evaluate.py @@ -14,7 +14,7 @@ from pathlib import Path from typing import Dict, List from src.eval.metrics import aggregate, evaluate_image, full_report -from src.eval.yolo_labels import load_class_names, read_label_file +from src.eval.yolo_labels import load_class_names, read_kept_outlines, read_label_file def _stems(label_dir: Path) -> Dict[str, Path]: @@ -26,17 +26,22 @@ def evaluate_dirs(pred_dir, gold_dir, iou_thr: float = 0.5, pred_dir, gold_dir = Path(pred_dir), Path(gold_dir) gold_files = _stems(gold_dir) pred_files = _stems(pred_dir) + # outlines a model proposed and the reviewer kept are not judged (see evaluate_image) + kept = read_kept_outlines(gold_dir.parent) # Gold defines the evaluation set; a missing prediction counts as all-FN. per_image = [] missing_pred = 0 + ignored = 0 for stem, gpath in sorted(gold_files.items()): gold = read_label_file(gpath) ppath = pred_files.get(stem) pred = read_label_file(ppath) if ppath else [] if ppath is None: missing_pred += 1 - per_image.append(evaluate_image(gold, pred, iou_thr)) + ign = kept.get(stem, ()) + ignored += len(ign) + per_image.append(evaluate_image(gold, pred, iou_thr, ignore=ign)) report = full_report(aggregate(per_image), names) report["dataset"] = { @@ -44,6 +49,7 @@ def evaluate_dirs(pred_dir, gold_dir, iou_thr: float = 0.5, "pred_images": len(pred_files), "missing_predictions": missing_pred, "iou_threshold": iou_thr, + "ignored_objects": ignored, } return report diff --git a/src/eval/metrics.py b/src/eval/metrics.py index 16f60543..d09cc394 100644 --- a/src/eval/metrics.py +++ b/src/eval/metrics.py @@ -64,8 +64,9 @@ class ClassCount: def _match_class(gold: List[PolygonInstance], pred: List[PolygonInstance], - iou_thr: float) -> ClassCount: - """Greedy bbox-IoU matching within a single class.""" + iou_thr: float, ignored: Sequence[PolygonInstance] = ()) -> ClassCount: + """Greedy bbox-IoU matching within a single class. A prediction left unmatched that overlaps + an ``ignored`` object (bbox IoU >= iou_thr) is neither a hit nor a false alarm.""" cc = ClassCount() gold_boxes = [g.bbox() for g in gold] pred_boxes = [p.bbox() for p in pred] @@ -89,18 +90,29 @@ def _match_class(gold: List[PolygonInstance], pred: List[PolygonInstance], cc.fn = len(gold) - len(used_g) cc.fp = len(pred) - len(used_p) + for pi, pb in enumerate(pred_boxes): + if pi not in used_p and any(bbox_iou(pb, g.bbox()) >= iou_thr for g in ignored): + cc.fp -= 1 return cc def evaluate_image(gold: List[PolygonInstance], pred: List[PolygonInstance], - iou_thr: float = 0.5) -> Dict[int, ClassCount]: - """Per-class counts for one image.""" + iou_thr: float = 0.5, ignore: Sequence[int] = ()) -> Dict[int, ClassCount]: + """Per-class counts for one image. + + ``ignore`` names gold objects by index that are not judged: outlines a model proposed and + the reviewer kept unchanged (tools/gold_kept.py), which are that model's own masks and + would score a perfect overlap against it. They leave the gold, and an unmatched prediction + of their class that overlaps one of them leaves the count too.""" + skip = {int(i) for i in ignore} + judged = [g for i, g in enumerate(gold) if i not in skip] + ignored = [g for i, g in enumerate(gold) if i in skip] by_class: Dict[int, ClassCount] = {} - classes = {i.class_id for i in gold} | {i.class_id for i in pred} + classes = {i.class_id for i in judged} | {i.class_id for i in pred} for c in classes: - g = [i for i in gold if i.class_id == c] + g = [i for i in judged if i.class_id == c] p = [i for i in pred if i.class_id == c] - by_class[c] = _match_class(g, p, iou_thr) + by_class[c] = _match_class(g, p, iou_thr, [i for i in ignored if i.class_id == c]) return by_class diff --git a/src/eval/yolo_labels.py b/src/eval/yolo_labels.py index 884b5e89..04ea2377 100644 --- a/src/eval/yolo_labels.py +++ b/src/eval/yolo_labels.py @@ -10,9 +10,10 @@ offers helpers to convert to/from absolute pixels. """ from __future__ import annotations +import json from dataclasses import dataclass from pathlib import Path -from typing import List, Optional, Tuple +from typing import Dict, List, Optional, Tuple Point = Tuple[float, float] @@ -121,3 +122,16 @@ def load_class_names(dataset_yaml) -> List[str]: except ValueError: continue return [names_map[k] for k in sorted(names_map)] if names_map else [] + + +def read_kept_outlines(gold_root) -> Dict[str, List[int]]: + """``/kept_machine.json`` (tools/gold_kept.py): frame stem -> indices of the gold + objects that are a model's proposal kept unchanged by the reviewer. Such an outline is the + model's own mask and is not judged (an ignore region in the evaluation). Empty when the file + is missing.""" + p = Path(gold_root) / "kept_machine.json" + if not p.exists(): + return {} + data = json.loads(p.read_text(encoding="utf-8")) + return {str(k): [int(i) for i in v] for k, v in (data.get("frames") or {}).items()} + diff --git a/tests/test_metrics_ignore.py b/tests/test_metrics_ignore.py new file mode 100644 index 00000000..c8331294 --- /dev/null +++ b/tests/test_metrics_ignore.py @@ -0,0 +1,32 @@ +"""A gold outline the reviewer kept from the model's proposal is not judged: neither a hit nor a miss, +and a prediction on it is not a false alarm.""" +from src.eval.metrics import evaluate_image +from src.eval.yolo_labels import PolygonInstance + + +def sq(x, y, s=0.1, c=0): + return PolygonInstance(c, [(x, y), (x + s, y), (x + s, y + s), (x, y + s)]) + + +def test_ignored_gold_object_is_neither_hit_nor_miss(): + gold = [sq(0.1, 0.1), sq(0.5, 0.5)] + pred = [sq(0.1, 0.1), sq(0.5, 0.5)] + plain = evaluate_image(gold, pred)[0] + assert (plain.tp, plain.fp, plain.fn) == (2, 0, 0) + ign = evaluate_image(gold, pred, ignore=[1])[0] + assert (ign.tp, ign.fp, ign.fn) == (1, 0, 0), "the prediction on the ignored outline is not a false alarm" + assert len(ign.mask_ious) == 1, "its overlap does not enter the mask score" + + +def test_missing_prediction_on_an_ignored_object_is_not_a_miss(): + gold = [sq(0.1, 0.1), sq(0.5, 0.5)] + cc = evaluate_image(gold, [sq(0.1, 0.1)], ignore=[1])[0] + assert (cc.tp, cc.fp, cc.fn) == (1, 0, 0) + + +def test_a_real_false_alarm_still_counts_and_other_classes_are_untouched(): + gold = [sq(0.1, 0.1), sq(0.5, 0.5, c=1)] + pred = [sq(0.1, 0.1), sq(0.8, 0.8), sq(0.5, 0.5, c=1)] + out = evaluate_image(gold, pred, ignore=[0]) + assert (out[0].tp, out[0].fp, out[0].fn) == (0, 1, 0), "the far prediction is a false alarm, the one on the ignored outline is not" + assert (out[1].tp, out[1].fp, out[1].fn) == (1, 0, 0) diff --git a/tools/compare_unseen.py b/tools/compare_unseen.py index d5ce3b1c..302db809 100644 --- a/tools/compare_unseen.py +++ b/tools/compare_unseen.py @@ -10,9 +10,10 @@ Two sets of frames: stays comparable; * **all unseen** frames: the core plus every gold frame added since that no dataset has used. -A frame a model pre-labelled (``data/gold/prelabel.json``) is unseen by every other model but not -by that one: where the reviewer kept a proposed outline, the gold holds the model's own mask. It is -left out of that model's measure, and a pair is compared on the frames neither of them touched. +Where the reviewer kept a proposed outline, the gold holds the pre-labelling model's own mask, +which overlaps itself perfectly. With ``data/gold/kept_machine.json`` (tools/gold_kept.py) such +outlines are ignored object by object for every model; without it, a frame a model pre-labelled +(``data/gold/prelabel.json``) leaves that model's measure altogether. It grows with the gold set and is the one to judge a candidate on. A model is listed when its predictions on the current gold set exist under @@ -111,7 +112,10 @@ def main(argv: Optional[List[str]] = None) -> int: frames: Dict[str, Dict[str, gate_stats.FrameCounts]] = {} label_of: Dict[str, str] = {} - prelabel = gate_stats.load_prelabel(gold.parent) + # with kept_machine.json the evaluation ignores a model's own outlines object by object; + # without it, a frame the model pre-labelled leaves its measure altogether (the older rule) + object_level = gate_stats.kept_outlines_known(gold.parent) + prelabel = {} if object_level else gate_stats.load_prelabel(gold.parent) own: Dict[str, int] = {} for d in sorted((root / "runs").glob("_measure_*/gold_predictions")): ver = d.parent.name[len("_measure_"):] @@ -131,7 +135,10 @@ def main(argv: Optional[List[str]] = None) -> int: usable_reps = {k: report({s: f for s, f in frames[k].items() if s in core and s not in bad_light}) for k in order} print(f"clean gold frames: {len(unseen)}" + (f" (core {len(core_now)})" if len(unseen) != len(core_now) else "")) - if any(own.values()): + if object_level: + kept = sum(len(v) for v in __import__("src.eval.yolo_labels", fromlist=["x"]).read_kept_outlines(gold.parent).values()) + print(f"{kept} gold outlines are a model's proposal kept unchanged by the reviewer: not judged for any model (data/gold/kept_machine.json)") + elif any(own.values()): print("frames a model pre-labelled itself, left out of its own measure: " + ", ".join(f"{k} {n}" for k, n in own.items() if n)) elif not prelabel: diff --git a/tools/gate_stats.py b/tools/gate_stats.py index ae8b7586..1b3beed1 100644 --- a/tools/gate_stats.py +++ b/tools/gate_stats.py @@ -33,6 +33,12 @@ def load_groups(gold_root) -> Dict[str, Dict[str, str]]: return {"mount": dict(g.get("mount") or {}), "light": dict(g.get("light") or {}), "excluded": dict(g.get("excluded") or {})} +def kept_outlines_known(gold_root) -> bool: + """True when ``kept_machine.json`` exists: the evaluation then ignores a model's own outlines + object by object, and the frame-level exclusion of ``without_own_proposals`` is not needed.""" + return (Path(gold_root) / "kept_machine.json").exists() + + def load_prelabel(gold_root) -> Dict[str, str]: """``data/gold/prelabel.json`` (tools/gold_prelabel.py): frame -> version of the model that proposed its labels before a reviewer saw them. Empty when the file is missing.""" @@ -59,10 +65,11 @@ def per_frame(pred_dir, gold_dir, iou_thr: float = 0.5, stems: Optional[Iterable ``stems`` restricts the frames; a gold frame without a prediction file is left out (the caller pairs on the frames both models have).""" from src.eval.metrics import evaluate_image - from src.eval.yolo_labels import read_label_file + from src.eval.yolo_labels import read_kept_outlines, read_label_file pred_dir, gold_dir = Path(pred_dir), Path(gold_dir) wanted = set(stems) if stems is not None else None + kept = read_kept_outlines(gold_dir.parent) # a model's own outlines are not judged out: Dict[str, FrameCounts] = {} for g in sorted(gold_dir.glob("*.txt")): if wanted is not None and g.stem not in wanted: @@ -71,7 +78,7 @@ def per_frame(pred_dir, gold_dir, iou_thr: float = 0.5, stems: Optional[Iterable if not p.exists(): continue frame: FrameCounts = {} - for c, cc in evaluate_image(read_label_file(g), read_label_file(p), iou_thr).items(): + for c, cc in evaluate_image(read_label_file(g), read_label_file(p), iou_thr, ignore=kept.get(g.stem, ())).items(): frame[int(c)] = (float(cc.tp), float(cc.fp), float(cc.fn), float(sum(cc.mask_ious))) out[g.stem] = frame return out diff --git a/tools/gold_kept.py b/tools/gold_kept.py new file mode 100644 index 00000000..e1a8a096 --- /dev/null +++ b/tools/gold_kept.py @@ -0,0 +1,101 @@ +"""Which gold outlines are a model's proposal that the reviewer kept unchanged. + +Written to ``data/gold/kept_machine.json`` as ``{"frames": {stem: [gold object indices]}}``: a +gold object is kept-machine when a proposed object of the same class in the studio's batch +annotation overlaps it with mask IoU >= 0.98. Such an outline is the pre-labelling model's own +mask; the evaluation ignores it for every model (src/eval/metrics.evaluate_image), so a model +is never scored against itself and the gold set can grow with any reviewed frame. + + python tools/gold_kept.py [--studio ~/AareLC_studio/data/pipeline_prod] [--iou 0.98] +""" +from __future__ import annotations + +import argparse +import glob +import json +import re +from collections import Counter +from datetime import datetime +from pathlib import Path + +import cv2 +import numpy as np + +HERE = Path(__file__).resolve().parent +NAMES = ["loop_all", "pin", "crystal", "loop_face", "ice", "needle"] +GRID = 512 + + +def gold_objects(path: Path): + out = [] + for line in path.read_text(encoding="utf-8").split("\n"): + p = line.split() + if len(p) < 7: + continue + out.append((int(p[0]), np.array([float(v) for v in p[1:]], dtype=np.float64).reshape(-1, 2))) + return out + + +def raster(pts_norm) -> np.ndarray: + m = np.zeros((GRID, GRID), np.uint8) + cv2.fillPoly(m, [np.round(pts_norm * GRID).astype(np.int32).reshape(-1, 1, 2)], 1) + return m.astype(bool) + + +def iou(a, b) -> float: + u = int((a | b).sum()) + return int((a & b).sum()) / u if u else 0.0 + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + ap.add_argument("--root", default=str(HERE.parent)) + ap.add_argument("--studio", default=str(Path.home() / "AareLC_studio" / "data" / "pipeline_prod")) + ap.add_argument("--iou", type=float, default=0.98, help="mask IoU from which a gold outline counts as the proposal kept") + args = ap.parse_args() + root, studio = Path(args.root).expanduser(), Path(args.studio).expanduser() + labels = root / "data" / "gold" / "labels" + proposals = {} + for f in glob.glob(str(studio / "20*/annotations/tpi_*.json")): + proposals.setdefault(Path(f).stem, f) + frames, kept, total = {}, Counter(), Counter() + with_proposal = 0 + for g in sorted(labels.glob("*.txt")): + m = re.search(r"tpi_(\d+)", g.stem) + objs = gold_objects(g) + for c, _ in objs: + total[NAMES[c]] += 1 + f = proposals.get("tpi_" + m.group(1)) if m else None + if not f: + continue + with_proposal += 1 + a = json.loads(Path(f).read_text(encoding="utf-8")) + W, H = float(a.get("width") or 2040), float(a.get("height") or 2040) + props = [] + for o in a.get("objects") or []: + poly = (o.get("polygons") or [None])[0] + if poly and len(poly) >= 3: + props.append((o.get("class_id"), raster(np.array(poly, dtype=np.float64) / [W, H]))) + idx = [] + for i, (c, pts) in enumerate(objs): + rm = raster(pts) + if any(pc == c and iou(rm, pm) >= args.iou for pc, pm in props): + kept[NAMES[c]] += 1 + idx.append(i) + if idx: + frames[g.stem] = idx + out = {"built": datetime.now().isoformat(timespec="seconds"), "source": str(studio), "iou": args.iou, + "gold_frames": sum(1 for _ in labels.glob("*.txt")), "with_a_proposal": with_proposal, + "kept_by_class": dict(kept), "gold_by_class": dict(total), "frames": frames} + dest = root / "data" / "gold" / "kept_machine.json" + dest.write_text(json.dumps(out, indent=1, sort_keys=True) + "\n", encoding="utf-8") + n = sum(len(v) for v in frames.values()) + print(f"{n} of {sum(total.values())} gold outlines are a proposal kept unchanged, on {len(frames)} frames -> {dest}") + for c in NAMES: + if total[c]: + print(f" {c:10} {kept[c]:4} of {total[c]:4}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/train_run.py b/tools/train_run.py index acb8b7da..631301c8 100644 --- a/tools/train_run.py +++ b/tools/train_run.py @@ -237,8 +237,9 @@ def paired_with_baseline(run_dir: Path, baseline: Optional[Path]) -> Optional[Di gold = ROOT / "data" / "gold" / "labels" cand = gate_stats.per_frame(run_dir / "gold_predictions", gold) base = gate_stats.per_frame(base_pred, gold) - # neither model is judged on frames it pre-labelled: the gold there holds its own outlines - prelabel = gate_stats.load_prelabel(gold.parent) + # neither model is judged on its own outlines: object by object with kept_machine.json + # (per_frame does it), else by leaving out whole frames a model pre-labelled + prelabel = {} if gate_stats.kept_outlines_known(gold.parent) else gate_stats.load_prelabel(gold.parent) cand_version = (json.loads((run_dir / "run.json").read_text(encoding="utf-8")).get("version") if (run_dir / "run.json").exists() else None) base_version = Path(baseline).parent.name if base_version.startswith("_measure_"):