Hailotracker offsets detections by 1 frame

Dear Hailo-Community,
I recently implemented a GStreamer pipeline that runs a hailonet and then tracks the bounding boxes using the hailotracker. While the setup works well overall, I noticed that the hailotracker introduces a consistent one-frame delay in the detections. This isn’t particularly noticeable when running the pipeline at high frame rates (>20 FPS), but at lower FPS combined with significant motion, the delay becomes quite apparent.
Upon inspecting the hailotracker code in the TAPPAS repository, I identified two issues:

  1. This is a known limitation common in many trackers—the initial appearance of an object doesn’t receive a tracking ID. However, hailotracker suppresses detections without tracking IDs, which might not be ideal in scenarios where detection is more important than tracking. Fortunately, this was easy to address: the JDETracker supports a report_unconfirmed parameter, which just needed to be exposed as a plugin property.
    You can find the fix in this commit of my tappas fork a84bf83f6fd72bb6ae23513d7765e94240448c66

  2. This issue occurs because when a track is activated (i.e., on the second appearance of the object), the tracker outputs the bounding box from the first frame rather than the current one. As a result, visualizations (e.g., via hailooverlay) are always one frame behind.
    You can find the fix in this commit of my tappas fork 0c5fa6c661b3e25be4102e47179baceac952c73d

@hailo if you’d like me to open a PR just give me a ping.