Using Secondary Inference on all objects of a particular class in a frame

Please provide complete information as applicable to your setup.

• Hardware Platform ( GPU)
• DeepStream Version5.0
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only) 440.64.00

I am trying to parse they meta data coming out of the deepstream_python_apps/apps/deepstream-test2 at master · NVIDIA-AI-IOT/deepstream_python_apps · GitHub example

I have removed the sgie2 and sgie3 elements and updated the sgie1 config file to the following
# 0=FP32 and 1=INT8 mode
input-object-min-width=0 #changed this
input-object-min-height=0 #changed this
classifier-threshold=0 #changed this

I want to be able to access secondory classifier inference on all objects in a frame
but for some reason
returns None value for most objects of a particular class ( for e.g if 6 objects of class 0 are in a frame it will return Not None value for only 1/2 max)

How do you suggest changing the config to be able to access this for all objects in a frame?

I didn’t get, can you explain more?

sorry for the incoherence
basically what I’m saying is in deepstream-test-app2(the one with sgie1,sgie2 and sgie3) (deepstream_python_apps/ at master · NVIDIA-AI-IOT/deepstream_python_apps · GitHub)

If I augment the pipeline by removing sgie2 and sgie3 (All I’m left with is sgie1) (for context sgie1 is a car color classifier operating on only the vehicle class)

What I’ve noticed is that sgie1 one does not do inference on all vehicles in a frame (say there are 10 vehicles in a frame, I can access and see classifier meta data of atmost 2)

I would like to be able to use sgie on all objects of a particular class ( class is vehicles in this instance) , but I’m unable to achieve this behaviour

I have tried modifying the min-input height, width and classifer threshold in the sgie config file and I’m getting the same issue

NOTE : To observe this yourself you can remove sgie2 and 3 from deepstream-test-app2 and observe the osd. What will happen is that not all vehicles will get the output of classifier attached to it.

If I would like sgie to operate on all objects (of a particular class ) in frame , what changes do you suggest I make?

Should I provide you with instructions to reproduce this?

Could you disable this config item and give a try?

Thanks that did the trick.

In the documentation the description for this config item is as follows

“Enables inference on detected objects and asynchronous metadata attachments. Works only when tracker-ids are attached. Pushes buffer downstream without waiting for inference results. Attaches metadata after the inference results are available to next Gst Buffer in its internal queue”

could I know what does this have to to do with sgie inferring on every object? and why was it not doing so before when it was disabled?

When you enable classifier-async-mode, the meta data will be attached asynchronously

1 Like