I am working with the SiamRPN++ model for object tracking and am looking to use it on a Jetson Orin NX. Specifically, I am interested in integrating the Siamese Tracker, a SOT (Single Object Tracker), into DeepStream for real-time performance. I plan to use the pysot library, which can be found on this GitHub repository, to implement the tracker.
I am considering two approaches:
Adding the Siamese Tracker as a custom plugin to DeepStream using Python.
Optimizing the speed of SiamRPN++ within the DeepStream pipeline or via other methods.
I want to know if it’s possible to integrate the Siamese Tracker (SOT) from pysot as a custom plugin in DeepStream for efficient object tracking. Specifically, I am interested in how to do this with Python and how to improve the tracking speed for real-time applications.
Is there a way to:
Implement the SiamRPN++ model from pysot efficiently on Jetson Orin NX using DeepStream?
Integrate the Siamese tracker (SOT) as a custom plugin to leverage GPU acceleration?
Optimize the speed of this tracker to run smoothly in real-time, especially at high frame rates?
Any tips on optimizing the DeepStream pipeline or other ways to speed up the tracker are highly appreciated.
We have this guide to implement a custom tracker:Gst-nvtracker — DeepStream documentation
But it is C++ API to implement a custom tracker in DeepStream.
Can you share why current nvtracker isn’t enough for your project?
The existing nvtracker module doesn’t fully meet my project’s requirements for these reasons:
Frame Processing Rate: I need high-speed processing focused on a single object, but nvtracker options are designed for multi-object tracking, adding unnecessary operations that slow down performance.
Single Object Tracking: My project requires dedicated, single-object tracking, which the current nvtracker algorithms don’t support effectively. While the IoU tracker has the necessary speed, it lacks the precision required.
A Siamese-based tracker, however, would address both speed and accuracy for single-object tracking, making it a more suitable choice for my needs.
Regarding a single object, it depend on the detector. If the detector only output one object, nvtracker will only tracking the detected one object.
Regarding performance and accuracy, please check this doc: Gst-nvtracker — DeepStream documentation
There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks