`nvtracker` is setting `detector_bbox_info.org_bbox_coords` to `0'

• GPU
• DeepStream Version: 6.3
• TensorRT Version: 8.5
• NVIDIA GPU Driver Version: 535
• Issue Type: bug

I have implemented a custom TensorRT inference plugin and I’m manually creating the NvDsObjectMeta instance for every detection. I tried using nvds_obj_enc_process to save cropped detections to disk and everything worked fine until I added the tracker to the pipeline. Then, I got this error:

Error: Object dimensions cannot be non-positive. Object not encoded.

Upon inspecting the detector_bbox_info.org_bbox_coords field of the object meta I noticed that all values are 0. How can the tracker cause that?

Yes, you can check the code: /opt/nvidia/deepstream/deepstream-6.3/sources/gst-plugins/gst-nvtracker/nvtracker_proc.cpp

Why this behave cause trouble for your use case?

Because the object encode fails to encode some detections. Can I disable that behavior? And what is the point of modifying the detection coordinates?

Suppose it will encode based on obj_meta->rect_params. Why org_bbox_coords will effect the encode object?

I just checked and rect_params also has 0 values.

Can this topic helps? Tracker removes object meta

The user that created the topic happens to have the exact username as I do. It is not the same issue, I moved past that.

Are you fixed your issue? Can you share more about the fixes?

No, I did not fix the issue. For now we are simply not using the tracker when cropping detections from frames.

If the issue can’t reproduce with nvinfer, you need compare the output between nvinfer with your customised TensorRT inference plugin.