Obj_meta.tracker_bbox diifrent from orignal pixel size

Please provide complete information as applicable to your setup.

• Hardware Platform: Jetson orin
• DeepStream Version 6.2
• JetPack Version 5.1
• TensorRT Version 5.1

Hi, I would be glad to have your advice. I work with yolov10 object detection I have some pipeline that detects the object then implements some tracker and sends in UDP the BBounding box. I recognize some offset of the BBOX from the real pixel resolution of 1280x720. Although I display the video and it looks ok, I think the offset is because nvstreammux changed the original resolution to 640x640 (the resolution that my Yolo trains on). So my question is how can I tackle this problem if I change nvstreammux to the original image size maybe I will get the correct bbox size but I will reduce the object detection performance.
I will be glad to make any suggestions to solve this.
Thank you:)

what do mean about " some offset of the BBOX from the real pixel resolution of 1280x720."? could you provide some screenshot and highlight the issue? Thanks! do you mean the bbox is not accurate? the original frame will scaling to model 's input resolution, then the nvinfer will give bboxes, the bboxes will be mapped to original frame.

Hi, thank you for replying. I get my BBOX coordinates from [Obj Meta.tracker bbox] as the title mentation. the coordinate that I get are in the 640x640 resolution because before nvinfer I use the nvstreammux plugin. so one option is to change nvstreammux to the orignal 1280x720 resolution but then I reduce the NN preformence. There is another option? I want get the BBOX information from the tracker.

The problem is similar to https://forums.developer.nvidia.com/t/obj-meta-tracker-bbox-info-org-bbox-coords-does-not-match-actual-coordinates-in-image/214400/4

/** Holds a structure containing bounding box coordinates of the object when

  • processed by tracker. */
    what do you need to use tracker_bbox_info.org_bbox_coords? as the comment shown, it is the coordinates in nvtracker. it is related to tracker-width and tracker-height in tracker configuration file. why not use rect_params of NvDsObjectMeta?

I may miss something, but I will try to explain in general my goal. I want to manage multiobject tracking and use trakckID to send specific BBOx that correspond to the relevant ID in the original image size.
I add some parts of my code. I need to change something I would be glad to your recommendation.

please refer to my last comment. nvtracker will use scale the resolution output from nvstrammux to generate new coordinates org_bbox_coords according to tracker-width and tracker-height. you can use rect_params of NvDsObjectMeta. please refer to pgie_pad_buffer_probe of deepstream-infer-tensor-meta-test for how to get rect_params.

Hi, I refer your comment and changed to rect_params NvDsObjectMeta, I changed back nvstreammux to 640x640 and still got the same offset that I mentioned in the beginning if I change nvstreammux to 1280x720 the coordinates are ok what am I missing?
Screenshot 2024-09-11 153557

you can refer to this faq to dump the pipeline graph. if you set nvstreammux to 640x640, the frame 's resolution will become 640x640. you can set enable-padding=1 to maintain aspect ratio by padding with black borders when scaling input frames.

Ok, I solved the problem by multiplying the scale factor I paid some quantization but it looks fine. exam: scale_x = original width / NN_size BBox_left * scale_x same concept for the axis.

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