Hi everyone
I’m currently using DeGirum Tools to run an object detection model on my local device.
The inference works perfectly when I attach an ObjectTracker with track_thresh=0.8.
However, when I increase the threshold to 0.9, all tracking IDs disappear — the bounding boxes still appear, but the tracker no longer assigns IDs or shows trails.
Here’s a simplified version of my code
from degirum_tools import (
ModelSpec, predict_stream, Display,
ObjectTracker, attach_analyzers, AnchorPoint
)
# Local model details (paths sanitized)
LOCAL_MODEL_NAME = "my_model"
LOCAL_ZOO_PATH = "file:///path/to/resource"
# Load model
model_spec = ModelSpec(
model_name=LOCAL_MODEL_NAME,
zoo_url=LOCAL_ZOO_PATH,
inference_host_address="@local",
model_properties={"device_type": ["HAILORT/HAILO8"]},
)
# Configure tracker
tracker = ObjectTracker(
class_list=['log'],
track_thresh=0.9, # Works at 0.8, fails at 0.9
track_buffer=120,
match_thresh=0.80,
trail_depth=10,
anchor_point=AnchorPoint.BOTTOM_CENTER,
)
try:
model = model_spec.load_model()
print("Load model complete.")
attach_analyzers(model, [tracker])
print("ObjectTracker attached successfully.")
VIDEO_SOURCE = "rtsp://<camera_url>" # sanitized
print(f"Start inference on RTSP Stream: {VIDEO_SOURCE}")
with Display("AI Camera — IP Stream", w=1020, h=640) as disp:
for result in predict_stream(model, VIDEO_SOURCE):
disp.show(result.image_overlay)
print("Stop Inference")
except Exception as e:
print(f"Load error: {e}")
I set track_thresh=0.9 because at lower values (like 0.8), the bounding boxes are less accurate and often cover part of the background. But once I go above 0.8, tracking IDs completely disappear.