How to access NvDsBatchMeta inside custom LL tracker

Hi,

I’m developing a custom tracker as an exercise.

According to the documentation here:

Gst-nvtracker should have accss to the metdadata information.

At the same time, looking at the information passed to ll-tracker in a single frame:

NvMOTStatus NvMOT_Process(NvMOTContextHandle contextHandle,
    NvMOTProcessParams *pParams,
    NvMOTTrackedObjBatch *pTrackedObjectsBatch
);

I don’t see a way to access that metadata. Is it possible? I’d like to add custom meta in the deepstream-app’s primary detector step and access it in the tracker’s ll library.

Is something like this possible?

If it’s currently not, where does the Gst-nvtracker populate the parameters sent to ll-tracker, so I could extend and modify it? I couldn’t locate it in the provided sources.

Optionally, the

_NvMOTObjToTrack

has a

void* pPreservedData - Used for the client to keep track of any data associated with the object.

Who is client in this context and where can I fill it with the information I need in my ll-tracker?

Thank you for the pointers!

you can see config group for tracker about the parameters, besides, you can tune the parameters for dcf tracker through tracker_config.yml and iou_config.txt for iou tracker.

[tracker]
enable=1
tracker-width=640
tracker-height=368
#ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_iou.so
#ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_nvdcf.so
ll-lib-file=/opt/nvidia/deepstream/deepstream-4.0/lib/libnvds_mot_klt.so
#ll-config-file required for DCF/IOU only
#ll-config-file=tracker_config.yml
#ll-config-file=iou_config.txt
gpu-id=0
#enable-batch-process applicable to DCF only
enable-batch-process=1

Hi,

This is not my question :) As I mentioned, I’m developing my own low-level tracker - it’s working and done.

What I need help with, is how to get access to Metadata inside custom low-level tracker.

Thank you!

Hi,

Any update here?

Thank you!

Hello Customer,

The metadata itself which is passed along the DeepStream pipeline is not directly accessible from the low-level tracker. The tracker plug-in passes NvMOTProcessParams *pParams as an input argument to the ll tracker, which is composed inside the tracker plug-in with some relevant data from the metata. Those relevant data includes only the source frames and bbox information from PGIE. So, unfortunately, the direct access to the metadata is not supported at this time.

The notion of client when you talk about void* pPreservedData refers to the client of the tracker plug-in, which is the low-level tracker. Right now, void* pPreservedData stores the mapping between the PGIE bboxes and the tracker bboxes.

1 Like