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 new file mode 100644 index 0000000..239644d --- /dev/null +++ b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/gold_report.json @@ -0,0 +1,93 @@ +{ + "per_class": { + "loop_all": { + "tp": 187, + "fp": 15, + "fn": 5, + "precision": 0.9257425742574258, + "recall": 0.9739583333333334, + "f1": 0.949238578680203, + "mean_mask_iou": 0.8920633772912828, + "n_matched": 187 + }, + "pin": { + "tp": 136, + "fp": 13, + "fn": 10, + "precision": 0.912751677852349, + "recall": 0.9315068493150684, + "f1": 0.9220338983050848, + "mean_mask_iou": 0.9275931815285058, + "n_matched": 136 + }, + "crystal": { + "tp": 36, + "fp": 35, + "fn": 30, + "precision": 0.5070422535211268, + "recall": 0.5454545454545454, + "f1": 0.5255474452554744, + "mean_mask_iou": 0.7908150819870128, + "n_matched": 36 + }, + "loop_face": { + "tp": 157, + "fp": 37, + "fn": 15, + "precision": 0.8092783505154639, + "recall": 0.9127906976744186, + "f1": 0.8579234972677595, + "mean_mask_iou": 0.8605816059403834, + "n_matched": 157 + }, + "ice": { + "tp": 5, + "fp": 15, + "fn": 35, + "precision": 0.25, + "recall": 0.125, + "f1": 0.16666666666666666, + "mean_mask_iou": 0.796892647988566, + "n_matched": 5 + }, + "needle": { + "tp": 0, + "fp": 0, + "fn": 1, + "precision": 0.0, + "recall": 0.0, + "f1": 0.0, + "mean_mask_iou": 0.0, + "n_matched": 0 + } + }, + "overall": { + "tp": 521, + "fp": 115, + "fn": 96, + "precision": 0.8191823899371069, + "recall": 0.8444084278768234, + "f1": 0.8316041500399042, + "mean_mask_iou": 0.8839417323713283, + "n_matched": 521 + }, + "dataset": { + "gold_images": 203, + "pred_images": 203, + "missing_predictions": 0, + "iou_threshold": 0.5 + }, + "gate": { + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": -0.0057, + "mask_iou_delta": -0.0083, + "mask_score": 0.7464, + "mask_score_baseline": 0.7547, + "matched_only_iou_delta": -0.0031, + "class_f1_delta": { + "loop_all": 0.0095, + "pin": -0.0036 + }, + "pass": false + } +} diff --git a/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/metadata.json b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/metadata.json new file mode 100644 index 0000000..ee52ec3 --- /dev/null +++ b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/metadata.json @@ -0,0 +1,52 @@ +{ + "model_id": "yolo26n-seg-v4-recipeA-2026-10-02", + "family": "yolo26n", + "task": "segmentation", + "training_date": "2026-10-02", + "run": "2026-10-01_v4-recipeA", + "dataset": "dataset/2026-10-01_v4", + "base_weights": "models/base/yolo26n-seg.pt", + "hyperparams": { + "epochs": 400, + "patience": 50, + "imgsz": 640, + "batch": 16, + "device": "0", + "overlap_mask": false, + "scale": 0.7, + "translate": 0.15, + "mosaic": 0.5, + "close_mosaic": 10, + "fliplr": 0.5, + "flipud": 0.3, + "shear": 5.0, + "perspective": 0.0, + "mask_ratio": 4 + }, + "export_formats": [ + "pt" + ], + "metrics": { + "tp": 521, + "fp": 115, + "fn": 96, + "precision": 0.8191823899371069, + "recall": 0.8444084278768234, + "f1": 0.8316041500399042, + "mean_mask_iou": 0.8839417323713283, + "n_matched": 521 + }, + "gate": { + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": -0.0057, + "mask_iou_delta": -0.0083, + "mask_score": 0.7464, + "mask_score_baseline": 0.7547, + "matched_only_iou_delta": -0.0031, + "class_f1_delta": { + "loop_all": 0.0095, + "pin": -0.0036 + }, + "pass": false + } +} diff --git a/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/weights.pt b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/weights.pt new file mode 100644 index 0000000..6a97774 --- /dev/null +++ b/models/registry/yolo26n-seg-v4-recipeA-2026-10-02/weights.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12be44d536905914f8ede7778f4ca8ba2438c56e9940169c8817ec9b947964e6 +size 6604829 diff --git a/runs/2026-10-01_v4-recipeA/metrics.json b/runs/2026-10-01_v4-recipeA/metrics.json new file mode 100644 index 0000000..a1c96ea --- /dev/null +++ b/runs/2026-10-01_v4-recipeA/metrics.json @@ -0,0 +1,38 @@ +{ + "overall": { + "tp": 521, + "fp": 115, + "fn": 96, + "precision": 0.8191823899371069, + "recall": 0.8444084278768234, + "f1": 0.8316041500399042, + "mean_mask_iou": 0.8839417323713283, + "n_matched": 521 + }, + "gate": { + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "f1_delta": -0.0057, + "mask_iou_delta": -0.0083, + "mask_score": 0.7464, + "mask_score_baseline": 0.7547, + "matched_only_iou_delta": -0.0031, + "class_f1_delta": { + "loop_all": 0.0095, + "pin": -0.0036 + }, + "pass": false + }, + "training": { + "epochs_run": 287, + "precision(B)": 0.72269, + "recall(B)": 0.65943, + "mAP50(B)": 0.66615, + "mAP50-95(B)": 0.52971, + "precision(M)": 0.71041, + "recall(M)": 0.65857, + "mAP50(M)": 0.66184, + "mAP50-95(M)": 0.50669 + }, + "version": "yolo26n-seg-v4-recipeA-2026-10-02", + "measured_at": "2026-10-02T04:12:20" +} diff --git a/runs/2026-10-01_v4-recipeA/run.json b/runs/2026-10-01_v4-recipeA/run.json index bdcd283..dcf7d25 100644 --- a/runs/2026-10-01_v4-recipeA/run.json +++ b/runs/2026-10-01_v4-recipeA/run.json @@ -2,18 +2,78 @@ "id": "2026-10-01_v4-recipeA", "dataset": "dataset/2026-10-01_v4", "base_weights": "models/base/yolo26n-seg.pt", - "status": "exported", + "status": "gate_failed", "created": "2026-10-01T23:52:09", "created_by": "jungfrau@mx-spark-01", - "hyperparams": {}, - "version": null, - "metrics": {}, + "hyperparams": { + "epochs": 400, + "patience": 50, + "imgsz": 640, + "batch": 16, + "device": "0", + "overlap_mask": false, + "scale": 0.7, + "translate": 0.15, + "mosaic": 0.5, + "close_mosaic": 10, + "fliplr": 0.5, + "flipud": 0.3, + "shear": 5.0, + "perspective": 0.0, + "mask_ratio": 4 + }, + "version": "yolo26n-seg-v4-recipeA-2026-10-02", + "metrics": { + "f1": 0.8316041500399042, + "mean_mask_iou": 0.8839417323713283, + "gate_pass": false, + "baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", + "measured_at": "2026-10-02T04:12:20" + }, "history": [ { "status": "exported", "at": "2026-10-01T23:52:09", "by": "jungfrau@mx-spark-01", "note": "settings A (fliplr 0.5, mask_ratio 4) on dataset v4: quick signal, gate only, Spark" + }, + { + "status": "training", + "at": "2026-10-01T23:59:18", + "by": "jungfrau@mx-spark-01", + "note": "train_run.py" + }, + { + "status": "measured", + "at": "2026-10-02T02:04:53", + "by": "jungfrau@mx-spark-01", + "note": "" + }, + { + "status": "gate_failed", + "at": "2026-10-02T02:04:53", + "by": "jungfrau@mx-spark-01", + "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json\", \"f1_delta\": -0.0057, \"mask_iou_delta\": -0.0083, \"mask_score\": 0.7464, \"mask_score_baseline\": 0.7547, \"matched_only_iou_delta\": -0.0031, \"class_f1_delta\": {\"loop_all\": 0.0095, \"pin\": -0.0036}, \"pass\": false}" + }, + { + "status": "training", + "at": "2026-10-02T02:05:55", + "by": "jungfrau@mx-spark-01", + "note": "train_run.py" + }, + { + "status": "measured", + "at": "2026-10-02T04:12:20", + "by": "jungfrau@mx-spark-01", + "note": "" + }, + { + "status": "gate_failed", + "at": "2026-10-02T04:12:20", + "by": "jungfrau@mx-spark-01", + "note": "{\"baseline\": \"/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json\", \"f1_delta\": -0.0057, \"mask_iou_delta\": -0.0083, \"mask_score\": 0.7464, \"mask_score_baseline\": 0.7547, \"matched_only_iou_delta\": -0.0031, \"class_f1_delta\": {\"loop_all\": 0.0095, \"pin\": -0.0036}, \"pass\": false}" } - ] + ], + "host": "mx-spark-01", + "started": "2026-10-02T02:05:55" } diff --git a/runs/README.md b/runs/README.md index 61c4de4..7608e16 100644 --- a/runs/README.md +++ b/runs/README.md @@ -18,6 +18,8 @@ Generated by `python tools/ledger.py render`; do not edit by hand. | 2026-09-30_v3-n-1024px | exported | dataset/2026-09-29_v3 | models/base/yolo26n-seg.pt | - | - | - | - | 2026-09-30T07:17 | | 2026-09-30_v3-s-1024px | exported | dataset/2026-09-29_v3 | models/base/yolo26s-seg.pt | - | - | - | - | 2026-09-30T07:17 | | 2026-09-30_v3-s-640px | exported | dataset/2026-09-29_v3 | models/base/yolo26s-seg.pt | - | - | - | - | 2026-09-30T07:17 | +| 2026-10-01_v4-noflip-mask1 | exported | dataset/2026-10-01_v4 | models/base/yolo26n-seg.pt | - | - | - | - | 2026-10-01T23:52 | +| 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 | States: exported → queued → training → measured → gate_passed → gate_failed → promoted → deployed (or aborted). @@ -117,3 +119,17 @@ States: exported → queued → training → measured → gate_passed → gate_f ## 2026-09-30_v3-s-640px - 2026-09-30T07:17:45 · exported · jungfrau@mx-spark-01 — cluster: capacity lever, small model at 640 px, default recipe + +## 2026-10-01_v4-noflip-mask1 + +- 2026-10-01T23:52:09 · exported · jungfrau@mx-spark-01 — promoted recipe (fliplr 0, mask_ratio 1) on dataset v4: candidate for the beamlines, Spark + +## 2026-10-01_v4-recipeA + +- 2026-10-01T23:52:09 · exported · jungfrau@mx-spark-01 — settings A (fliplr 0.5, mask_ratio 4) on dataset v4: quick signal, gate only, Spark +- 2026-10-01T23:59:18 · training · jungfrau@mx-spark-01 — train_run.py +- 2026-10-02T02:04:53 · measured · jungfrau@mx-spark-01 +- 2026-10-02T02:04:53 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", "f1_delta": -0.0057, "mask_iou_delta": -0.0083, "mask_score": 0.7464, "mask_score_baseline": 0.7547, "matched_only_iou_delta": -0.0031, "class_f1_delta": {"loop_all": 0.0095, "pin": -0.0036}, "pass": false} +- 2026-10-02T02:05:55 · training · jungfrau@mx-spark-01 — train_run.py +- 2026-10-02T04:12:20 · measured · jungfrau@mx-spark-01 +- 2026-10-02T04:12:20 · gate_failed · jungfrau@mx-spark-01 — {"baseline": "/home/jungfrau/AareLC_train/models/registry/yolo26n-seg-v3-noflip-mask1-2026-09-30/gold_report.json", "f1_delta": -0.0057, "mask_iou_delta": -0.0083, "mask_score": 0.7464, "mask_score_baseline": 0.7547, "matched_only_iou_delta": -0.0031, "class_f1_delta": {"loop_all": 0.0095, "pin": -0.0036}, "pass": false} diff --git a/runs/clean_gold_comparison.json b/runs/clean_gold_comparison.json index 239db79..b246f84 100644 --- a/runs/clean_gold_comparison.json +++ b/runs/clean_gold_comparison.json @@ -700,6 +700,76 @@ "missing_predictions": 0, "iou_threshold": 0.5 } + }, + "2026-10-01_v4-recipeA": { + "per_class": { + "loop_all": { + "tp": 134, + "fp": 14, + "fn": 5, + "precision": 0.9054054054054054, + "recall": 0.9640287769784173, + "f1": 0.9337979094076654, + "mean_mask_iou": 0.8889360206475692, + "n_matched": 134 + }, + "pin": { + "tp": 107, + "fp": 10, + "fn": 9, + "precision": 0.9145299145299145, + "recall": 0.9224137931034483, + "f1": 0.9184549356223175, + "mean_mask_iou": 0.9239745987076777, + "n_matched": 107 + }, + "crystal": { + "tp": 20, + "fp": 21, + "fn": 20, + "precision": 0.4878048780487805, + "recall": 0.5, + "f1": 0.49382716049382713, + "mean_mask_iou": 0.7757130400716813, + "n_matched": 20 + }, + "loop_face": { + "tp": 108, + "fp": 30, + "fn": 12, + "precision": 0.782608695652174, + "recall": 0.9, + "f1": 0.8372093023255814, + "mean_mask_iou": 0.856831956661255, + "n_matched": 108 + }, + "ice": { + "tp": 2, + "fp": 7, + "fn": 8, + "precision": 0.2222222222222222, + "recall": 0.2, + "f1": 0.2105263157894737, + "mean_mask_iou": 0.8132183908045978, + "n_matched": 2 + } + }, + "overall": { + "tp": 371, + "fp": 82, + "fn": 54, + "precision": 0.8189845474613686, + "recall": 0.8729411764705882, + "f1": 0.8451025056947608, + "mean_mask_iou": 0.8831839831023023, + "n_matched": 371 + }, + "dataset": { + "gold_images": 149, + "pred_images": 203, + "missing_predictions": 0, + "iou_threshold": 0.5 + } } } } \ No newline at end of file