• Hardware Platform : DGPU
• DeepStream Version : 6.2.0 **
• TensorRT Version : 8.5.2.2
• NVIDIA GPU Driver Version : 530.30.02
I am working with the DeepStream in python and have encountered inconsistency issues when using the NvTracker
. I hope someone can provide guidance or possible solutions.
Problem Description : When I run object detection alone, it produces consistent and correct outputs. However, when I include the NvTracker
, some object detections are missed in the frames and the values are inconsistent .
I need to get the object detection output with the trackID, instead I am getting tracker output.
I am using probe function in Nvdsosd to get the output:
def osd_sink_pad_buffer_probe(self,pad,info,u_data):
gst_buffer = info.get_buffer()
batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
l_frame = batch_meta.frame_meta_list
while l_frame is not None:
try:
frame_meta = pyds.NvDsFrameMeta.cast(l_frame.data)
except StopIteration:
break
frame_number=frame_meta.frame_num
l_obj=frame_meta.obj_meta_list
bboxes = []
while l_obj is not None:
try:
# Casting l_obj.data to pyds.NvDsObjectMeta
obj_meta=pyds.NvDsObjectMeta.cast(l_obj.data)
except StopIteration:
break
rect_params = obj_meta.rect_params
top = int(rect_params.top)
left = int(rect_params.left)
b_width = int(rect_params.width)
b_height = int(rect_params.height)
object_id = int(obj_meta.object_id)
object_class = 1 if obj_meta.obj_label.strip() == "Face" else 0
bboxes.append([left,top,left+b_width,top+b_height,object_id, object_class])
try:
l_obj=l_obj.next
except StopIteration:
break
self.bounding_boxes[frame_number] = bboxes
try:
l_frame=l_frame.next
except StopIteration:
break
return Gst.PadProbeReturn.OK
Here object detection output is replaced by the tracker outputs.
Can anyone help me to get the object detection bounding box with Tracker ID.