{
  "status": "VERIFIED_POOLED_OOF_COMPARISON",
  "purpose": "640 vs 960 controlled resolution tradeoff; not a new main baseline",
  "data_scope": {
    "split": "M2 frozen Train grouped out-of-fold",
    "sequences": 41,
    "frames": 6461,
    "sequence_leakage": false,
    "validation_used": false,
    "test_media_opened": 0,
    "train3_quarantined": true
  },
  "run_lineage": {
    "640": "EXP-M3-002-FORMAL-F0..F4-E50-S42",
    "960": [
      "EXP-M3-003-PILOT-F0-960-E50-S42",
      "EXP-M3-003-EXPANDED-F1-960-E50-S42",
      "EXP-M3-003-EXPANDED-F2-960-E50-S42",
      "EXP-M3-003-EXPANDED-F3-960-E50-S42-RESUME01",
      "EXP-M3-003-EXPANDED-F4-960-E50-S42"
    ],
    "960_fold3_failed_attempt_preserved": "EXP-M3-003-EXPANDED-F3-960-E50-S42"
  },
  "pooled_cocoeval_bbox": {
    "640": {
      "run_root": "F:\\SafeConstruct-MA_M3_runs\\EXP-M3-002\\FORMAL-640",
      "receipt_sha256": "3beed587bcf5182a76389f29d228c6952d2b4c290d084ca6764ab1c189a4c92b",
      "metrics_sha256": "d600ae149b9755274c39cebf7dcdd2262d8f3f07c61e60b35b19b1acc2dbc75f",
      "ap50_all_classes": 0.7622394716201466,
      "ap_small": 0.0166885533291504,
      "worker_ap50": 0.5275996941334685
    },
    "960": {
      "run_root": "F:\\SafeConstruct-MA_M3_runs\\EXP-M3-003\\ABLATION-960",
      "receipt_sha256": "385fc0612addb79815f88303199c08be8c44b2220ba33a2f38f8187024dc9dcb",
      "metrics_sha256": "fb838de2a9878c1b6388f86fd0a5a49e58d9000042438c6aaafad3871f8d2085",
      "ap50_all_classes": 0.7352836289308041,
      "ap_small": 0.01270627062706271,
      "worker_ap50": 0.6324781204644077
    }
  },
  "resolution_960_minus_640": {
    "ap50_all_classes": -0.0269558426893425,
    "ap_small": -0.00398228270208769,
    "worker_ap50": 0.104878426330939
  },
  "small_worker_recall_lt1pct_unweighted_mean": {
    "support_folds": 4,
    "640": 0.47344436434398,
    "960": 0.55065317776425,
    "delta": 0.07720881342027,
    "omitted_fold_reason": "Fold 1 has zero worker GT in both the <0.5% and 0.5-1% area bins at epoch 50; only four reportable folds are averaged, not presented as a pooled estimate."
  },
  "training_peak_reserved_mib_fold0": {
    "640": 2132.0,
    "960": 4360.0
  },
  "batch1_latency_probe": {
    "protocol": "200 images, 20 warmups; model forward and YOLOX postprocess; image decode/preprocess excluded",
    "640": {
      "mean_ms": 22.72575499897357,
      "p95_ms": 27.603659959277135,
      "model_only_fps": 44.00293851822155,
      "receipt_sha256": "9ae9781507134a49151a192c6d7867e21e5efb7404869e236ccf45612eeaeb3a"
    },
    "960": {
      "mean_ms": 21.486785499437246,
      "p95_ms": 24.34061504318379,
      "model_only_fps": 46.540232834091945,
      "receipt_sha256": "4fc60459aade0b018c661961c75e5c89017321943353edcfc65784e0fb621b74"
    },
    "interpretation_limit": "single host/protocol probe, not sustained camera end-to-end throughput; do not infer 960 is faster from this measurement"
  },
  "metric_definitions": {
    "ap50_all_classes": "Pooled COCOeval AP at IoU 0.50 across all nine classes.",
    "worker_ap50": "Pooled COCOeval AP at IoU 0.50 for worker only.",
    "ap_small": "Pooled COCOeval AP at IoU 0.50:0.95 for all classes in the COCO small-area bin; not the same metric as small-worker recall.",
    "small_worker_recall_lt1pct_unweighted_mean": "Unweighted mean of fold-level worker-GT recall for boxes with area <1% of the image, over four folds with nonzero support."
  },
  "interpretation": "960 improves worker AP50 and the unweighted small-worker recall mean across four support-positive folds, while pooled all-class AP50 and COCO AP-small decrease; Fold-4 small-worker recall remains 0.05. High resolution is not a universal upgrade and is not promoted to replace the 640 main baseline. No factory generalization claim is made."
}
