feat: config-authoritative conf gates + cross-model IoU sack suppression
ci / smoke (push) Canceled after 0s
ci / smoke (push) Canceled after 0s
This commit is contained in:
1 parent
1e4dc4201c
commit
a12056a5ad
7 files changed
+80
-7
No files matched your search
@@ -84,6 +84,7 @@ def test_counting_knobs_match_production_defaults(repo_config_path):
|
||||
assert c.exit_overlap_threshold == 0.05
|
||||
assert c.camera_noise_deadband == 50
|
||||
assert c.duplicate_circle_radius == 30
|
||||
assert c.cross_class_iou == 0.4
|
||||
assert c.min_valid_area == 15000
|
||||
assert c.max_reid_transit_distance == 400
|
||||
assert c.circle_stay_timeout_sec == 10.0
|
||||
|
||||
@@ -96,3 +96,19 @@ def test_multiclass_geometry_sync_and_reset():
|
||||
assert c.loading_count == 1
|
||||
c.reset()
|
||||
assert (c.loading_count, c.box_loading_count, c.box_net_count) == (0, 0, 0)
|
||||
|
||||
def test_drop_sacks_overlapping_boxes():
|
||||
from src.counting import drop_sacks_overlapping_boxes
|
||||
box = _det(9, y1=100, cx=500.0, class_name="box")
|
||||
# identical footprint -> IoU 1.0 >= 0.4 -> sack dropped
|
||||
assert drop_sacks_overlapping_boxes([_det(1, y1=100, cx=500.0)], [box]) == []
|
||||
# partial overlap (cx 515) -> IoU ~0.45 -> dropped
|
||||
assert drop_sacks_overlapping_boxes([_det(2, y1=100, cx=515.0)], [box]) == []
|
||||
# no overlap -> kept
|
||||
kept = drop_sacks_overlapping_boxes([_det(3, y1=100, cx=700.0)], [box])
|
||||
assert len(kept) == 1 and kept[0].track_id == 3
|
||||
# no boxes / disabled -> kept
|
||||
assert len(drop_sacks_overlapping_boxes([_det(4, y1=100)], [], 0.4)) == 1
|
||||
assert len(drop_sacks_overlapping_boxes([_det(5, y1=100)], [box], 0.0)) == 1
|
||||
# box dets in sack list never dropped
|
||||
assert len(drop_sacks_overlapping_boxes([_det(6, y1=100, class_name="box")], [box])) == 1
|
||||
Reference in new issue
Block a user