Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
Jetson Orin • DeepStream Version
6.3 • JetPack Version (valid for Jetson only)
5.1.2 • TensorRT Version • NVIDIA GPU Driver Version (valid for GPU only) • Issue Type( questions, new requirements, bugs)
Questions about development • How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing) • Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
I need to use a custom tracker in an existing Deepstream pipeline. I’ve been reading the docs, and it looks like the easiest/preferred path is to write it as a low-level tracker library, meeting the NvDsTracker API. This tracker will not be using any video, only using the detections from the gpie. I admit that I’m still a bit fuzzy about “caps” and other things that the docs say will be queried. Since the tracker won’t be doing anything with the video, do I need to worry about the video-related information? What other things can I safely essentially “ignore”? I did notice that the video frames will still be passed in, and I think I’ll need to associate the frame number (if present) as part of the tracker return data.
I’ve started looking at the sample code, but my fuzziness of the pipeline API stuff is making it difficult to know where to start, and frankly how much I can not worry about since I’m not doing anything with the video.
My main question is: what “shortcuts” can I take to add a low-level tracker that doesn’t process video?
The IOU tracker looks like it would be a useful template for how to implement a minimal subset of the API. I don’t see the source code for it in deepstream-6.3. Is that source code (or similarly minimal tracker) available?
Do you know of any sample code that implements a trivial (perhaps even meaningless) but correct implementation of a tracker which doesn’t require video, strictly for the purpose of an API example? I found a post in the forums (link is at bottom of this response), but it still sets pQuery->numTransforms = 1 and sets pQuery->colorFormats[0], implying that it is intending to use the video.
I’m hoping the correct sample code would answer some questions (there will certainly be more) that I have:
(1) if I set numTransforms=0 do I need to even set a value in pQuery->colorFormats?
(2) Does setting numTransforms=0 imply that the pipeline won’t spend cycles transforming the image nor confirming that the image is an acceptable format?
(2b) rewording (2) - if numTransforms is not 0, then does the pipeline spend cycles transforming the image and/or confirming that the image is an acceptable format? In other words, does setting numTransforms=0 save time and/or memory?
You should set numTransforms=0 if your customer tracker needn’t video. Please upgrade to latest DeepStream 7.1 release. You can check the nvtracker plugin code here: /opt/nvidia/deepstream/deepstream-7.1/sources/gst-plugins/gst-nvtracker/
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