Potential performance and FPS capabilities

i am trying to do real time tracking using the jetson xavier NX, i have a jetson nano and a jetson AGX as well, all developer kits.
i’ve tried the standard opencv trackers like kcf csrt goturn, and only csrt gives me the wanted tracking ability, the others fail too much.
My problem is that csrt is running on cpu, and on 20fps, and for my project 20fps just isn’t enough.
I’ve managed to find a tracker github file called pytracking, and only managed to get 3 out of the 6 available trackers to work. They are working on GPU as well, using torch.cuda but im getting even lower fps from them(<10), im not really sure how im getting half the fps when using GPU programming, my guess is that the trackers are programmed not very efficiently.
if anyone can point me to a good tracker to use on the jetson that can utilize the GPU and Tensor cores that the NX has well, and gives me warrant performance, i’d really appreciate it.
or if anyone has any idea of what i should be doing differently maybe, i am fairly new to vision programming and jetson machines in general and want to advance my knowledge and advance my project and future projects

Hi,

Do you want a vision-based tracker or a DNN-based tracker?

In your description, it seems that the tracker algorithm has a dependency on PyTorch.
You can try to install the frameworks first with this comment.

In our Deepstream SDK, there are also some available trackers that have been optimized for Jetson:
Please check the document below to see if it can meet your requirement.

https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvtracker.html

This plugin allows the DS pipeline to use a low-level tracker library to track the detected objects with persistent (possibly unique) IDs over time. It supports any low-level library that implements NvDsTracker API, including the the reference implementations provided by the NvMultiObjectTracker library: NvDCF, DeepSORT, and IOU trackers.

Thanks.

hello, i already downloaded pytorch from that source, it worked well, the problem was the tracker i used.

i am looking for a vision based tracker preferably, because i wont always want to track something that has been trained, and if the tracked object is too far the trained tracker might not recognise it or a few network trackers find all the objects while i want to be looking at one.
also i prefer a python one but if i see i need to move to Cpp i will.
i will go over what you’ve sent and see what i can do with it, thank you and if you have any other suggestions i’d appreciate anything

Hi Elad-SH,
With opencv tracker, you can choose to update the tracker every 10 frames, more or less, to gain FPS, you can give it a try but maybe it won’t work with your case if you need precise tracking.

I do need precise tracking. I went over the gst low level tracking library and found nvdcf, visual tracker with good performance and accuracy, I now need to look if I can use it for single object tracking and without the need for detecting, but rather give it a simple bbox selection. If someone knows if it is possible and how to do that, I’d greatly appreciate it.
I’ll make another post about help with nvDCF

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.