scorevision: push artifact
Browse files
miner.py
CHANGED
|
@@ -3,13 +3,15 @@
|
|
| 3 |
Base weights: plate_v3 (YOLO26s fine-tuned on Roboflow-filtered + 10x live pseudo-GT,
|
| 4 |
resumed from plate_v2). fp16 end2end ONNX, static 1x3x1280x1280, ~19.4 MB.
|
| 5 |
|
| 6 |
-
Inference pipeline (tuned per bench_v2.py on
|
| 7 |
- Single full-image pass with soft-NMS + hflip TTA
|
| 8 |
-
-
|
| 9 |
-
- No tile fallback (v3's
|
| 10 |
|
| 11 |
Bench on 184-shard live pseudo-GT pool (/mnt/shadeform-data/plate_research/live_gt/):
|
| 12 |
-
gated=0.
|
|
|
|
|
|
|
| 13 |
Compared to:
|
| 14 |
plate_v2 best: gated=0.424
|
| 15 |
hermestech best: gated=0.422
|
|
@@ -114,12 +116,17 @@ class Miner:
|
|
| 114 |
self.input_height = self._safe_dim(self.input_shape[2], default=SIZE)
|
| 115 |
self.input_width = self._safe_dim(self.input_shape[3], default=SIZE)
|
| 116 |
|
| 117 |
-
# Tuned preset for plate_v3
|
| 118 |
-
#
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
self.use_tta = True
|
| 124 |
|
| 125 |
print(f"ONNX model loaded from: {model_path}")
|
|
|
|
| 3 |
Base weights: plate_v3 (YOLO26s fine-tuned on Roboflow-filtered + 10x live pseudo-GT,
|
| 4 |
resumed from plate_v2). fp16 end2end ONNX, static 1x3x1280x1280, ~19.4 MB.
|
| 5 |
|
| 6 |
+
Inference pipeline (tuned per bench_v2.py + live observation on first 5 shards):
|
| 7 |
- Single full-image pass with soft-NMS + hflip TTA
|
| 8 |
+
- Recall-biased preset: conf=0.22, iou=0.41, sigma=0.685, max_det=22
|
| 9 |
+
- No tile fallback (v3's recall is already high without tiles)
|
| 10 |
|
| 11 |
Bench on 184-shard live pseudo-GT pool (/mnt/shadeform-data/plate_research/live_gt/):
|
| 12 |
+
gated=0.440 mAP=0.978 (highest) fp/img=0.38 ms_p95=157
|
| 13 |
+
Switched from c30 after live shard be77593656fa: we scored 0.168 (mAP 0.500)
|
| 14 |
+
while competitors hit 0.318 (mAP 0.750) — missed borderline-conf plates.
|
| 15 |
Compared to:
|
| 16 |
plate_v2 best: gated=0.424
|
| 17 |
hermestech best: gated=0.422
|
|
|
|
| 116 |
self.input_height = self._safe_dim(self.input_shape[2], default=SIZE)
|
| 117 |
self.input_width = self._safe_dim(self.input_shape[3], default=SIZE)
|
| 118 |
|
| 119 |
+
# Tuned preset for plate_v3 — recall-biased variant.
|
| 120 |
+
# Bench softnms(c22,i.41,s.685) on 184-shard pool:
|
| 121 |
+
# gated=0.440 mAP=0.978 (highest) fp/img=0.38 ms_p95=157
|
| 122 |
+
# Switched from conf=0.30 after live data showed the tighter threshold
|
| 123 |
+
# missed borderline plates on shards where competitors scored 0.318.
|
| 124 |
+
# Trade: slightly higher fp/img on easy shards (capped by max_det), but
|
| 125 |
+
# recovers recall on hard shards where it matters most.
|
| 126 |
+
self.conf_thres = 0.22
|
| 127 |
+
self.iou_thres = 0.41
|
| 128 |
+
self.sigma = 0.685
|
| 129 |
+
self.max_det = 22
|
| 130 |
self.use_tta = True
|
| 131 |
|
| 132 |
print(f"ONNX model loaded from: {model_path}")
|