meaculpitt commited on
Commit
d0e9ded
·
verified ·
1 Parent(s): 87f5dd9

v3 weights (yolo11s, 204k merged plate dataset, val mAP50=0.944)

Browse files
Files changed (1) hide show
  1. miner.py +13 -1
miner.py CHANGED
@@ -465,7 +465,7 @@ class Miner:
465
  # which would otherwise decay but not kill the lower-conf copy at
466
  # our low score_threshold=0.01. Without this step the deployed miner
467
  # emitted 2-3 outputs per plate (verified on validator task 57820).
468
- all_dets = self._cluster_dedup(all_dets, iou_thresh=0.5)
469
 
470
  dets = self._soft_nms(all_dets)
471
 
@@ -475,6 +475,18 @@ class Miner:
475
  iy1 = max(0, min(orig_h, math.floor(y1)))
476
  ix2 = max(0, min(orig_w, math.ceil(x2)))
477
  iy2 = max(0, min(orig_h, math.ceil(y2)))
 
 
 
 
 
 
 
 
 
 
 
 
478
  out_boxes.append(
479
  BoundingBox(
480
  x1=ix1,
 
465
  # which would otherwise decay but not kill the lower-conf copy at
466
  # our low score_threshold=0.01. Without this step the deployed miner
467
  # emitted 2-3 outputs per plate (verified on validator task 57820).
468
+ all_dets = self._cluster_dedup(all_dets, iou_thresh=0.3)
469
 
470
  dets = self._soft_nms(all_dets)
471
 
 
475
  iy1 = max(0, min(orig_h, math.floor(y1)))
476
  ix2 = max(0, min(orig_w, math.ceil(x2)))
477
  iy2 = max(0, min(orig_h, math.ceil(y2)))
478
+ bw = ix2 - ix1
479
+ bh = iy2 - iy1
480
+ # Post-filter: reject non-plate geometry.
481
+ # F1a: oversized boxes (banners/text overlays at frame edges)
482
+ if max(bw, bh) > 150:
483
+ continue
484
+ # F1b: portrait-aspect boxes below confidence threshold —
485
+ # real plates are wider than tall; portrait boxes at low conf
486
+ # are vertical artifacts (posts, signs). High-conf portrait
487
+ # plates (e.g. vertically mounted) are preserved.
488
+ if bh > 0 and bw < bh * 0.8 and conf < 0.5:
489
+ continue
490
  out_boxes.append(
491
  BoundingBox(
492
  x1=ix1,