Is “Group Rectangles” mode of clustering still supposed to set confidence value to -0.1?

• 3060
• DeepStream Version 6.4
• Docker
• Question

In the FAQ :
• DeepStream Version 6.4

It says that :

If “Group Rectangles” mode of clustering is chosen then confidence value is set to -0.1 because the algorithm does not preserve confidence value. Also, for the objects being tracked by the tracker but not detected by the inference component, confidence value is set to -0.1.

I’m currently experiencing this problem and I’m trying to confirm that it’s actually coming from the tracker and not the pgie.

When I set the cluster-mode=0 : OpenCV groupRectangles() ; I get detections with a confidence different from -0.1 (using Python deepstream-test1 sample). When you read the FAQ, you expect to have -0.1 for all detections…

So I wanted to know if this was expected behaviour and if it had been fixed in the Deepstream 6.4 version?


After several additional tests, I have the impression that cluster-mode groupRectangle is deprecated in Deepstream 6.4 and that it is automatically replaced by NMS.

Is this correct?

After a few tests in which I deactivated and reactivated the tracker, I was able (I think) to deduce that the problem was with the tracker.

How can I avoid having a confidence of -0.1 when the pgie doesn’t detect the object but the tracker continues to predict this object?


To support cluster-mode groupRectangle, you need to install opencv by yourself and rebuilt the gst-nvinfer and nvinfer lib by enable “WITH_OPENCV:=1” in the Makefile.

The code is in /opt/nvidia/deepstream/deepstream-6.4/sources/gst-plugins/gst-nvinfer and /opt/nvidia/deepstream/deepstream-6.4/sources/libs/nvdsinfer

Thanks for your answer.

Can you please answer all questions?

Especially this one :
How can I avoid having a confidence of -0.1 when the pgie doesn’t detect the object but the tracker continues to predict this object?

You can’t avoid it since the bbox is not detected but is predicted. It is the true confidence.

Why did you need “Group Rectangles”? Why the other clustering not applicable for your case?

I’m just trying to understand.
I don’t really need to use “Group Rectangles”

When I’m having this warning message using Deepstream 6.4 :

WARN                 nvinfer gstnvinfer.cpp:679:gst_nvinfer_logger:<NativeEngine(people_nvidia_detector)-gie-people_nvidia_detector-718-399> NvDsInferContext[UID 8]: Warning from NvDsInferContextImpl::initialize() <nvdsinfer_context_impl.cpp:1243> [UID = 8]: Warning, OpenCV has been deprecated. Using NMS for clustering instead of cv::groupRectangles with topK = 20 and NMS Threshold = 0.5

Does that mean that it is automatically switching to NMS ? Or does that mean that I should use NMS ?


This line means you don’t enable “WITH_OPENCV:=1” in the Makefile while you want to use Group Rectangles, the plugin switch to NMS automatically.

1 Like

Thanks for this

Do you plan to differentiate the variable name in the future?
Example :


What do you mean?