update from asus 106

This commit is contained in:
asus committed 2026-08-05 15:56:11 +07:00
1 parent 6637fb1302
commit 8285400254
28 files changed
+3215 -459

No files matched your search

+11 -4
View File
@@ -42,11 +42,18 @@ def _iou(box_a: List[float], box_b: List[float]) -> float:
def deduplicate(detections: List[Detection], iou_threshold: float = 0.8) -> List[Detection]:
"""Greedy NMS across all prompts: highest score wins an overlapping region."""
"""Greedy NMS per class: highest score wins within the SAME class."""
by_class: dict[int, List[Detection]] = {}
for det in detections:
by_class.setdefault(det.class_id, []).append(det)
kept: List[Detection] = []
for det in sorted(detections, key=lambda d: d.score, reverse=True):
if all(_iou(det.box, k.box) < iou_threshold for k in kept):
kept.append(det)
for cls_dets in by_class.values():
cls_kept: List[Detection] = []
for det in sorted(cls_dets, key=lambda d: d.score, reverse=True):
if all(_iou(det.box, k.box) < iou_threshold for k in cls_kept):
cls_kept.append(det)
kept.extend(cls_kept)
return kept