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?
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
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.