Maintain custom parameters for a tracked object across inference iterations

**• Hardware Platform (Jetson / GPU): Jetson, NVIDIA Xavier NX 8GB
**• DeepStream Version: DeepStream 6.2
• JetPack Version (valid for Jetson only): JetPack 5.1.1
• TensorRT Version: TensorRT 8.5.2
• Issue Type( questions, new requirements, bugs): question

My program determines some custom parameters for tracked objects.
I need to save them and maintain across inference iterations.

I tried to use obj_user_meta_list to save the parameters. For this I:

  • acquire an instance of NvDsUserMeta by calling user_meta = nvds_acquire_user_meta_from_pool(batch_meta)
  • initialize user meta
  • add the user meta to an object meta by calling nvds_add_user_meta_to_obj(obj_meta, user_meta)

It works OK but only until I get a new frame.
After getting a new frame obj_meta->obj_user_meta_list == NULL always returns true, so I cannot access the user_meta.

What should I do to access the previously saved user_meta after getting a new frame?

The meta is bound with the current frame. So if you want to get the previously saved user_meta, you can bind this to the new frame by yourself and get that.

Ok. And what is the best practice to do this (I mean bind user_meta from objects of the previous frame to objects of the next frame)?
Should I

  1. get metadata of the previous frame using nvds_get_nth_frame_meta()
  2. iterate through all objects at the previous frame
  3. find the same objects at the new frame
  4. copy user_meta from objects at the previous frame to the same objects at the new frame
    ???

It sounds ineffective. Is there a more optimal way?

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

You can create a list of the meta of all frames by yourself and copy the metas in it. When you need that, you can search and obtain it in the list.

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