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.
1 Like

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

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