Deepstream dynamic update configuration

Hi

I am currently working on a project where I need to create an application that can receive new configuration messages on the fly and update the DeepStream pipeline accordingly. Specifically, I would like to handle scenarios where the pipeline starts when a new stream comes in, but there’s a need to reconfigure the stream dynamically, for example, by changing the Region of Interest (ROI) size. Additionally, I am interested in dynamically removing streams from the pipeline, stopping analytics for the removed streams.

I have considered using Gst-nvdsanalytics, but it seems limited in terms of modification for new use cases beyond the ones provided in the documentation. In addition, is it possible to change the confidence threshold of the models while it’s running for one stream in a multiple stream app?

Are there any sample applications or documentation available that could provide guidance or inspiration for implementing dynamic configuration updates and stream management within a DeepStream application? I would appreciate any advice or resources you could share.

Ubuntu 22
DS 6.4

Thank you in advance for your assistance!

Hi @ThomaSpyrou ,
Deepstream Forum should be able to assist you better.
Moving the case.
Thanks

If you want to change ROIs with new stream, that means you have to update the context for the corresponding pad inside nvdsanalytics. What kind of issue have you met with modifying the nvdsanalytics source code?

It’s not an issue but mainly lack of experience, my main questions is how possible is it and if there are any examples or documentation how to do it?

Apart from the ROI how is it possible to change the confidence threshold of a model e.g. detection for just one stream following the same approach?

The proper way is to set the pipeline to NULL state and you change the new source and set new configurations to any elements in the pipeline.

Do you mean you want to apply different cluster algorithms to different streams in the same batch? Currently it is not supported. You can implement by yourself by customize your own postprocessing with setting “output-tensor-meta=1” and “network-type=100” of gst-nvinfer. Then you can write your own postprocessing including cluster algorithm by yourself. Gst-nvinfer — DeepStream documentation 6.4 documentation

Thanks Fiona for the info I will take a better look on that.

No I don’t mean different algorithms, if I have the same classifier (nvinfer) running analytics for multiple streams can I change the confidence of the classifier for one stream and remain the same for the others.

Do you mean to change the “pre-cluster-threshold/post-cluster-threshold” parameters dynamically? Gst-nvinfer — DeepStream 6.1.1 Release documentation

Yes, I would like to change the

  • classifier-threshold
  • pre-cluster-threshold
  • post-cluster-threshold

for each stream dynamically/on the fly.

Is that possible?

It is possible. The gst-nvinfer is open source, you may change the code to do it.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.