Zone-based counting
Count detections inside polygonal zones—ideal for traffic, retail, and other analytics.
Last updated
Was this helpful?
Was this helpful?
from degirum_tools import (
ModelSpec,
Display,
ZoneCounter,
AnchorPoint,
remote_assets,
)
import degirum_tools
class_list = ["car", "motorbike", "truck"]
model_spec = ModelSpec(
model_name="yolov8n_coco--640x640_quant_axelera_metis_1",
zoo_url="degirum/axelera",
inference_host_address="@local",
model_properties={
"device_type": ["AXELERA/METIS"],
"overlay_color": [(255, 0, 0)],
"output_class_set": set(class_list),
},
)
model = model_spec.load_model()
video_source = remote_assets.traffic
polygon_zones = [
[[265, 260], [730, 260], [870, 450], [120, 450]],
[[400, 100], [610, 100], [690, 200], [320, 200]],
]
zone_counter = ZoneCounter(
count_polygons=polygon_zones,
class_list=class_list,
per_class_display=True,
triggering_position=AnchorPoint.CENTER,
)
degirum_tools.attach_analyzers(model, [zone_counter])
with Display("AI Camera") as output_display:
for inference_result in degirum_tools.predict_stream(model, video_source):
output_display.show(inference_result.image_overlay)
print("Zone counts:", inference_result.zone_counts)from degirum_tools import (
ModelSpec,
Display,
ZoneCounter,
AnchorPoint,
remote_assets,
)
import degirum_tools
class_list = ["car", "motorbike", "truck"]
model_spec = ModelSpec(
model_name="yolov8n_coco--640x640_quant_axelera_metis_1",
zoo_url="degirum/axelera",
inference_host_address="@local",
model_properties={
"device_type": ["AXELERA/METIS"],
"overlay_color": [(255, 0, 0)],
"output_class_set": set(class_list),
},
)
model = model_spec.load_model()
video_source = remote_assets.traffic # or your own video path
polygon_zones = [
[[265, 260], [730, 260], [870, 450], [120, 450]],
[[400, 100], [610, 100], [690, 200], [320, 200]],
]
zone_counter = ZoneCounter(
count_polygons=polygon_zones,
class_list=class_list,
per_class_display=True,
triggering_position=AnchorPoint.CENTER,
window_name="AI Camera",
)
degirum_tools.attach_analyzers(model, [zone_counter])
with Display("AI Camera") as output_display:
for inference_result in degirum_tools.predict_stream(model, video_source):
output_display.show(inference_result.image_overlay)