Improve 640x640 model detection of small objects (#20190)

* Allow larger models to have smaller regions

* remove unnecessary hailo resize

* Update benchmark

* Fix table

* Update nvidia specs
This commit is contained in:
Nicolas Mowen
2025-09-23 15:49:54 -05:00
committed by GitHub
parent 2f99a17e64
commit 7e2f5a3017
3 changed files with 26 additions and 16 deletions
+14 -1
View File
@@ -269,7 +269,20 @@ def is_object_filtered(obj, objects_to_track, object_filters):
def get_min_region_size(model_config: ModelConfig) -> int:
"""Get the min region size."""
return max(model_config.height, model_config.width)
largest_dimension = max(model_config.height, model_config.width)
if largest_dimension > 320:
# We originally tested allowing any model to have a region down to half of the model size
# but this led to many false positives. In this case we specifically target larger models
# which can benefit from a smaller region in some cases to detect smaller objects.
half = int(largest_dimension / 2)
if half % 4 == 0:
return half
return int((half + 3) / 4) * 4
return largest_dimension
def create_tensor_input(frame, model_config: ModelConfig, region):