Write and read data into pipeline

Please provide complete information as applicable to your setup.

• Jetson Orin NX
• DeepStream Version 6.3
• JetPack Version 5.1
I am working on a GStreamer pipeline that processes video frames for object detection. My input frames have a resolution of 1920x1200. To improve recognition accuracy, I need to add padding to these frames, enlarging them to a resolution of 2200x2000. However, the model I’m using with nvinfer is optimized for smaller input sizes, which introduces complications.

Here’s my intended pipeline strategy:

  1. Increase the frame size by adding padding to reach a resolution of 2200x2000.
  2. Use a tee element to create two branches.
  • Branch A: Scale down the resolution for compatibility with nvinfer.
  • Branch B: Maintain the padded frame for further processing. I
  1. Perform object detection on Branch A, then apply the detection coordinates of Branch A to crop the original, padded frame in Branch B (the coordinates will be scaled too).

My challenge is transferring the detection coordinates from Branch A to Branch B without causing frame desynchronization. Specifically, I need a reliable method to ensure that the coordinates extracted from the scaled-down frames in Branch A are applied to the corresponding, original frames in Branch B for cropping purposes.

Could you provide guidance on achieving this synchronization? Are there best practices or specific GStreamer elements/plugins that facilitate this kind of data transfer between branches specifically between nvidia gst plugins, ensuring that the correct metadata is applied to the appropriate frame?

Thanks for your help…

Could you try to add a nvvideoconvert between the 2 nvinfers?
—>nvinfer->nvvideoconvert(scale to 2200x2000)->nvinfer->…

How can I put nvvideoconvert between two seperate pipelines?

If you mean on the same pipeline, it goes first to lower resolution. If I scale it up again, do I not lose data? Or is it a real 2200 resolution again in a gst pipeline??

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

In fact, the actual scenario of our pipeline is as follows. The processing of images in nvinfer does not affect the images in the pipeline.

...nvstreammux(2200x2000)->pgie(2200x2000)->sgie(2200x2000)->...

The image processing in nvinfer is a in-place algorithm, it won’t affect the other nvinfers.

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