- Docker image :
nvcr.io/nvidia/deepstream:5.0-dp-20.04-samples
I have a pipeline with nvmultistreamtiler and nvosd, similar to the deepstream_test_3.py example, and I have the following probe on tiler src pad.
I want to modify the parameters of the objects being overlayed. For example, the detection rectangles should have a width of 1 instead of the default (??) that seems a bit too thick.
The problem is that my probe does not have any effect on the rectangles. Moreover, I suspect it gets access to dummy objects instead of the real ones, because it prints empty values (see code comments) instead of the labels (“Car”, “Person”, etc…)
def on_tiler_src_buffer_probe(self, pad, info):
gst_buffer = info.get_buffer()
if not gst_buffer:
self.log('ERROR: Cannot get GstBuffer')
return
batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
frame_list = batch_meta.frame_meta_list
if frame_list is not None:
display_meta = pyds.nvds_acquire_display_meta_from_pool(batch_meta)
for text in display_meta.text_params:
print(pyds.get_string(text.display_text)) # prints "None" 16 times per probe call
for rect in display_meta.rect_params:
rect.border_width = 1
print((rect.left, rect.top)) # prints "(0.0, 0.0)" 16 times per probe call
frame_meta = pyds.NvDsFrameMeta.cast(frame_list.data)
pyds.nvds_add_display_meta_to_frame(frame_meta, display_meta)
return Gst.PadProbeReturn.OK