Pose estimation with nvtracker

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) JETSON
• DeepStream Version 6.0
• JetPack Version (valid for Jetson only) 4.6
• TensorRT Version 8.0
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
• 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 am trying out PGIE as pose estimation, and I wanted to track the skeleton pose inferred with a unqie ID each.

Given that deepstream pose estimation app is a custom network-type, what/ how can I passed in the information into a nvtracker as if these skeleton poses x, y coordinates and width height are as if they are output from a objection detector for tracking to be done?

Are you referring to deepstream_tao_apps/deepstream_bodypose2d_app.cpp at master · NVIDIA-AI-IOT/deepstream_tao_apps (github.com)? If so, there is already bbox generated as normal detector. nvtracker tracks bbox. You may need to add object label by yourself.


I am trying to implement with reference to this with a tracker

nvtracker tracks bbox. So you need to generate bbox with object meta with PGIE. And then you can use nvtracker after it.

Hi, are u saying that using pose estimation as the PGIE, i can add a probe for the pgie src pad and attempt to encode the object meta struct with bbox information?

Yes. You can add bbox to object meta by yourself.

Hi, as per your advice, I updated the bbox information into object meta. Is it that I missed out some attributes to be used?
However at the osd pad src, when I am printing each object_id, I can see that the tracker is not updating with unique id for the bbox object of interest found.

All bbox that i passed in returns with object_id 0.

inside pgie_src_pad_buffer_probe, parse NVDSINFER_TENSOR_OUTPUT_META.

NvDsObjectMeta obj_meta = nvds_acquire_obj_meta_from_pool (bmeta);
obj_meta->unique_component_id = tensorID;
obj_meta->confidence = 1.0;
obj_meta->class_id = PGIE_CLASS_ID_PERSON;
NvOSD_RectParams & rect_params = obj_meta->rect_params;
Assign bounding box coordinates. /
rect_params.left = left;
rect_params.top = top;
rect_params.width = right - left;
rect_params.height = bottom - top;
Border of width 3. */
rect_params.border_width = 3;
rect_params.has_bg_color = 0;
rect_params.border_color = (NvOSD_ColorParams) {1, 0, 0, 1};
nvds_add_obj_meta_to_frame (frame_meta, obj_meta, NULL);