Improve handling of half model regions

This commit is contained in:
Nicolas Mowen 2026-03-24 10:33:47 -06:00
parent 32451b8c45
commit 048d9170c6

View File

@ -271,18 +271,17 @@ def get_min_region_size(model_config: ModelConfig) -> int:
"""Get the min region size.""" """Get the min region size."""
largest_dimension = max(model_config.height, model_config.width) largest_dimension = max(model_config.height, model_config.width)
if largest_dimension > 320: # return largest dimension for smaller models, but make sure the dimension is normalized
# We originally tested allowing any model to have a region down to half of the model size if largest_dimension < 320:
# but this led to many false positives. In this case we specifically target larger models if largest_dimension % 4 == 0:
# which can benefit from a smaller region in some cases to detect smaller objects. return largest_dimension
half = int(largest_dimension / 2)
if half % 4 == 0: return int((largest_dimension + 3) / 4) * 4
return half
return int((half + 3) / 4) * 4 # Any model that is 320 or larger should have a minimum region size of 320
# this allows larger models to use smaller regions to detect smaller objects
return largest_dimension # in the case that the motion area is smaller so that it can be upscaled.
return 320
def create_tensor_input(frame, model_config: ModelConfig, region): def create_tensor_input(frame, model_config: ModelConfig, region):