How to improve the confidence of a secundary classification model

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) Ubuntu 1804
• DeepStream Version 5.0
• TensorRT Version 7.2.2.1+cuda10.2

I’m running a classification model as secondary model on deepstream. I already tested my model outside the deepstream with good results. However, the results of the classification model in deepstream are substantial poorly. The deepstream is returning the wrong label with 1.0 confidence in almost all cases. Does anyone have any idea what’s going on? Additionally, Is it possible I run the classification model on osd_sink_pad_buffer_probe after I get the detection result?

Thanks a lot!

My configuration for the classification model is:
[property]
gpu-id=0
net-scale-factor=1
network-type=1
uff-file=models/resnet18-32is32b.uff
model-engine-file=models/resnet18-32is32b.uff_b1_gpu0_fp32.engine
labelfile-path=models/resnet_labels.txt
uff-input-blob-name=data
infer-dims=3;32;32
output-blob-names=dense/Softmax
force-implicit-batch-dim=1
batch-size=1
network-mode=0
input-object-min-width=32
input-object-min-height=32
process-mode=2
model-color-format=0
gie-unique-id=2
operate-on-gie-id=1
operate-on-class-ids=3
is-classifier=1
classifier-async-mode=0
classifier-threshold=0.8

What’s your model’s output, do you need to customze the post processor?

bcao, I’m working with the traffic sign classification problem. The primary detector returns the bounding box of the traffic signs that I use as input for classification. Maybe the postprocessig can resolve my problem. There is a way to make postprocessing only for a specific class returned from the primary detector?

I think you can implement it in your customized postprocess parser code, any issues?

And also sgie can do infer based on the specific class from pgie, you can use operate-on-class-ids refer Gst-nvinfer — DeepStream 6.3 Release documentation