Poor performance of tracker in Hailo8 + iMX8

Hello community,
I working with the device, based on iMX8 and Hailo8. I run the pipeline like this:

filesrc location=resources/mp4/test_4_small.mp4 name=src_0 ! decodebin ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
videoscale qos=false n-threads=2 ! video/x-raw, pixel-aspect-ratio=1/1 ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! videoconvert n-threads=2 qos=false ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
hailonet hef-path=resources/hef/yolov5m_vehicles_no_ddr.hef ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
hailofilter function-name=yolov5_vehicles_only so-path=libs/post_processes/libyolo_post.so config-path=resources/hef/yolov5_vehicle_detection.json qos=false ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
hailotracker name=hailo_tracker keep-past-metadata=true kalman-dist-thr=.5 iou-thr=.6 keep-tracked-frames=2 keep-lost-frames=2 ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! \
hailooverlay qos=false ! \
queue leaky=no max-size-buffers=30 max-size-bytes=0 max-size-time=0 ! videoconvert n-threads=2 qos=false ! \
fakesink

I measure the time to runt hailonet and hailotracker and the last one takes about 100-200 ms per frame. It is too low performance.
Is there any solution to run the tracker with hardware acceleration?

Hey @aturok

Welcome to the Hailo Community!

The hailotracker stage in your GStreamer pipeline is causing latency issues because it runs on the CPU, not the Hailo-8 hardware. To improve performance:

  1. Optimize tracker parameters (kalman-dist-thr, iou-thr) to reduce computational complexity.
  2. Streamline the GStreamer pipeline by reducing queue elements or adjusting buffer settings.

Currently, hailotracker doesn’t use Hailo-8 acceleration.

1 Like