How to Improve Performance of Semantic Segmentation on Jetson

• Hardware Platform (Jetson / GPU) Jetson Orin AGX
• DeepStream Version 6.2
• JetPack Version (valid for Jetson only) 5.1.1
• TensorRT Version 8.5.2
• Issue Type( questions, new requirements, bugs) Questions

When monitoring system resources on the Orin I found that the following pipeline is only using 15-30% of the GPU with very low fps (around 2-4 fps).

It is using the same model and configuration found in the deepstream/sources/sample_apps/deepstream-segmentation-test/dstest_segmentation_config_semantic.txt file.

I am not sure what settings should be tweaked to improve fps. I am ok with reduced model accuracy. I tried changing the engine from fp32 to int8 with no improvement in performance. I have the power mode on MAXN as well.

Here is my pipeline:

gst-launch-1.0 v4l2src device=/dev/video0 ! nvvideoconvert ! 'video/x-raw(memory:NVMM), format=NV12' ! \
mx.sink_0 nvstreammux batch-size=1 live-source=1 batched-push-timeout=80000 width=1920 height=1080 \
nvbuf-memory-type=0 name=mx ! queue ! tee name=t ! nvvideoconvert ! comp.sink_1 \
t. ! nvinfer config-file-path=files/configs/semantic_segmentation/primary_gie_config.yml ! nvsegvisual width=1920 \
height=1080 ! nvvideoconvert src-crop=0:0:512:512 ! comp.sink_0 \
compositor name=comp sink_0::zorder=1 sink_0::alpha=0.5 sink_1::zorder=0 ! nvvideoconvert ! queue ! \
nvegltransform ! nveglglessink
  1. from the pipeline, the camera capstiler is not set, we don’t know the camera 's output fps. you can add a "-v " to check the camera 's output fps. the commands looks like
    gst-launch-1.0 -v v4l2src device=/dev/video0 ! nvvideoconvert…
  2. if the fps is low, please refer to FAQ to set a high fps.
  3. you can use nveglglessink sync=false, it means play as fast as possible.

Thank you, I added the capsfilter on the camera like your link suggested and the FPS is now stable at 30.