The problem with trackers, including ByteTrack, is they lose track when an object is not detected for a few frames (a common occurence), and then assign a new ID when the object is detected again. This makes tracking pointless. Reading previous posts I got the impression that you don’t really have a lot of experience with trackers, I hope I’m wrong. Can you suggest a tracker that works (possibly available in Python) and can be implemented in the pipeline?
Hello @Thor,
First of all, welcome to the Hailo Community!
About trackers, usually, you can configure the number of frame threshold for detection gaps. That’s the case with both ByteTrack and the tracker we have available in TAPPAS.
In this Python example, ByteTrack is used with the Supervision package, and you can set a higher lost_track_buffer to keep lost tracks for longer, as described here.
Hello @nina-vilela
I’m currently working with the hailo_apps_infra
repository for detection and tracking tasks. In my GStreamer pipeline, I’m using the TRACKER_PIPELINE
to integrate hailotracker
, set to track all object classes (class_id = -1
).
During inference, objects are correctly detected and assigned tracking IDs. However, I noticed that after a few seconds, the FPS drops significantly. Interestingly, this doesn’t happen when limiting tracking to a single class. Do you know why this performance drop occurs with multi-class tracking?
Additionally, in the PyTorch implementation of YOLOv8, the BoT-SORT tracker is used, which provides more stable tracking and fewer ID mismatches.
Is it possible to integrate BoT-SORT (or a custom external tracker) into the Hailo GStreamer environment, or are we limited to hailotracker
only?
Thanks in advance!
Hi @Pranav_N,
We don’t have a gstreamer element ready for other trackers, but you can, for example, use hailopython and add trackers implemented with Python into the pipeline.