How to get a list of terminated tracks from nvtracker?

I looked through the documentation, here:

https://docs.nvidia.com/metropolis/deepstream/plugin-manual/index.html#page/DeepStream_Plugin_Manual%2Fdeepstream_plugin_details.02.02.html%23wwpID0E0GU0HA

And through the Meta documentation here:

https://docs.nvidia.com/metropolis/deepstream/plugin-manual/index.html#page/DeepStream_Plugin_Manual%2Fdeepstream_plugin_metadata.03.2.html%23wwconnect_header

And here:

https://docs.nvidia.com/metropolis/deepstream/dev-guide/DeepStream_Development_Guide/baggage/struct__NvDsFrameMeta.html

And nowhere do I see how to get a list of object_id’s the tracker has terminated. Did I miss anything, or is there indeed no way to get this information?

If this information isn’t provided, how do I go about formally requesting this feature?

Hi,

Sorry that we don’t have an API for getting terminated object ID information.
We will fill out a feature request for you.

Currently, you can try to get this information by comparing the object_id among frames.

Thanks.

Thanks for accepting the request.

I am considering adding a level of indirection, and “timing out” IDs that haven’t been seen for a while. Unfortunately, I need the indirection so I can assign them new IDs if the tracker decides to use an ID that I had locally terminated.

As you can see, that approach is not ideal. Also, it might introduce more frames of delay than the tracker, before terminating IDs.

Hi,

Your request is successfully passed to our internal Deepstream team.
They are going to review and prioritize.

We will keep you updated on the progress.
Thanks.

Hi,

Our internal team is reviewing this feature request.
May I know if you still need this feature now?

Thanks.

+1 Any extra info on the tracker will be helpful.

Hello customer,

What specific tracker are you planning to use?

Also, you mentioned that the need for this API is because you don’t want the already-used local IDs to not be assigned again. Could you describe a bit more on why you would need this API? Based on that we may be able to provide an easier solution. Adding a new feature may take a while, so just wanted to better understand your needs.

By the way, for the case of NvDCF tracker, there’s an configurable option where a unique ID is assigned to a new object, instead of incrementing from 0.

Hello & thank you for your attention!

I am very much still interested in having the tracker tell me when it has decided to stop tracking a given ID. I have a few reasons for wanting to know this.

  1. To limit the size of my in-memory table that translates from your IDs to our internal naming scheme.
  2. As a notification that I should write out the last observation of the object, to our database, which we don't want to update while the object is still viable.

Unfortunately, I can’t immediately tell you which tracker we’ll ultimately use. I’ve been focusing on other areas, since submitting this request, but I can probably get back to you on that, in a couple days.

My hope is that all trackers could implement this behavior, although I understand that you need to prioritize development & testing resources.

Thanks.

By the way, I just want to clarify that I don’t literally need a single, big list of all object_ids that have been terminated, over the entire life of the stream.

What I want is essentially a list of any tracks that have been terminated since the previous frame. In other words, I’m just looking for incremental updates that tell me when the tracker has decided to forget about each object, after it has disappeared.

Is this list current?

https://docs.nvidia.com/metropolis/deepstream/plugin-manual/index.html#page/DeepStream_Plugin_Manual%2Fdeepstream_plugin_details.02.02.html%23wwpID0E0JU0HA

Right now, it’s looking like we’ll use NvDCF.