Hello,
I am using DS test app 2 (python), I want to change the colour of b-box on the basis of classifier id which I will get like if get person_with_mask then b-box should be green else red. what should i add in the code base. please find code below.
def osd_sink_pad_buffer_probe(pad,info,u_data):
frame_number=0
#Intiallizing object counter with 0.
obj_counter = {
PGIE_CLASS_ID_VEHICLE:0,
PGIE_CLASS_ID_PERSON:0,
PGIE_CLASS_ID_BICYCLE:0,
PGIE_CLASS_ID_ROADSIGN:0
}
num_rects=0
gst_buffer = info.get_buffer()
if not gst_buffer:
print("Unable to get GstBuffer ")
return
# Retrieve batch metadata from the gst_buffer
# Note that pyds.gst_buffer_get_nvds_batch_meta() expects the
# C address of gst_buffer as input, which is obtained with hash(gst_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:
# Note that l_frame.data needs a cast to pyds.NvDsFrameMeta
# The casting is done by pyds.glist_get_nvds_frame_meta()
# The casting also keeps ownership of the underlying memory
# in the C code, so the Python garbage collector will leave
# it alone.
frame_meta = pyds.glist_get_nvds_frame_meta(l_frame.data)
except StopIteration:
break
frame_number=frame_meta.frame_num
num_rects = frame_meta.num_obj_meta
l_obj=frame_meta.obj_meta_list
CURRENT_FRAME_TRACKER = {}
CURRENT_FRAME_TRACKER_LIST = {}
global IN_COUNT
global OUT_COUNT
while l_obj is not None:
try:
# Casting l_obj.data to pyds.NvDsObjectMeta
obj_meta=pyds.glist_get_nvds_object_meta(l_obj.data)
classifier_meta = pyds.glist_get_nvds_classifier_meta(l_obj.data)
x1 = obj_meta.rect_params.left
y1 = obj_meta.rect_params.top
x2 = x1 + obj_meta.rect_params.width
y2 = y1 + obj_meta.rect_params.height
Tracker_id = obj_meta.object_id
class_id = obj_meta.class_id
l_classifier= obj_meta.classifier_meta_list
# if class_id==XXX and l_classifier is not None:
if l_classifier is not None:
classifier_meta=pyds.glist_get_nvds_classifier_meta(l_classifier.data)
l_label=classifier_meta.label_info_list
label_info=pyds.glist_get_nvds_label_info(l_label.data)
classifier_class = label_info.result_class_id
num_classes = label_info.num_classes
label_id = label_info.label_id
result_prob = label_info.result_prob
print("======================================")
print("Num classes : ",num_classes)
print("classifier_class id : ",classifier_class)
print("label_id is : ",label_id)
print("result_prob : ",result_prob)
print("======================================")
please help me what should I after this for change the b-box colour
Thanks.