• Hardware Platform (Jetson / GPU) Jetson Nano
• DeepStream Version 5.0
• JetPack Version (valid for Jetson only) 4.4
• TensorRT Version 7.0
Hi, I have a gstreamer based pipeline which I run as
gst-launch-1.0 .... ! nvvideoconvert ! "video/x-raw(memory:NVMM), format=RGBA" ! nvmuxer.sink_0 nvstreammux name=nvmuxer batch-size=1 width=1280 height=720 ! nvinfer name=detector0 config-file-path=$DETECTOR_CONFIG unique-id=1 ! nvtracker name=tracker0 ll-lib-file=$TRACKER_LIB_PATH ! nvinfer name=classifier0 config-file-path=$CLASSIFIER_CONFIG unique-id=2 ! nvdsosd ! nvegltransform ! nveglglessink
The pipeline runs, and I am able to display the output and see the bounding boxes (The detector contains 2 classes). However, none of the bounding-boxes display the text metadata i.e. there is no primary classifier based label, no tracking id, and no secondary classifier based label shown. Incrementally checking with just the detector, and the detector + tracker results in the same behaviour. Visually, it is quite similar to the problem described here: No text labels of bboxes displayed with osd for deepstream-test5
However, I am not using multiple streams; I use a single video stream. Is there some issue with the current
nvdsosd plugin in DS 5.0? Because the same application worked fine with DS 4.0. I updated the custom detector config to a DS 5.0 like format while testing with DS 5.0.
Is this just me or is this a known issue? In any case, help, comments, or pointers to fix this will be appreciated.
Thank you for your reply. I found your post and comment helpful. However, I am not running any
deepstream-test* app. Just for a check, I just ran the
deepstream-test1 app and it showed the labels as well.
For me, the problem is that I don’t get the text labels with the gstreamer syntax pipeline I try to use with the
nvdsosd gstreamer plugin. Previously, it worked fine with DS 4.0 and displayed the labels as expected.
We don’t observe the issue in running:
gst-launch-1.0 uridecodebin uri=file:///home/nvidia/1080.mp4 ! mx.sink_0 nvstreammux width=1920 height=1080 batch-size=1 name=mx ! nvinfer config-file-path=/opt/nvidia/deepstream/deepstream-5.0/samples/configs/deepstream-app/config_infer_primary_nano.txt unique-id=7 ! nvvideoconvert ! nvdsosd ! nvvideoconvert ! nvv4l2h264enc ! h264parse ! qtmux ! filesink location=/home/nvidia/a.mp4
Could you share a pipeline for reproducing the issue?
Sorry for a bit of a late response, and thank you for the quick response. I checked the above command you shared and it works fine and displays the text labels. However, the problem still persists when I try to run a similar pipeline. I am trying to reproduce it in as simple a configuration as possible and will share it soon as I have something.
Have you clarified the cause and resolved the issue?
Any result can be shared?
Hi, thank you for checking. I was not able to reproduce the problem simply. So far, I am instead using a custom plugin to print the labels to terminal. I guess you can close this issue, and I can reference this in a new one if I am able to reproduce it. It could be due to one of the custom plugins (any of gstreamer or deepstream ones) that I am using.
I have the same issue, it only occurs when the video stream comes from RGBA. The plugin nvdsosd works perfectly when using NV12 as @DaneLLL observed, but the pipeline runed by @smaqbool uses RGBA:
gst-launch-1.0 .... ! nvvideoconvert ! "video/x-raw(memory:NVMM), format=RGBA" ! ...
My workaround is to convert the format to NV12 just before nvdsosd, then we need another nvvideoconvert that converts the format back from NV12 to RGBA, which is the only format available for nvdsosd:
gst-launch-1.0 .... ! nvvideoconvert ! "video/x-raw(memory:NVMM), format=RGBA" ! ... ! nvinfer ! ... ! nvvideoconvert ! 'video/x-raw(memory:NVMM),format=(string)NV12' ! nvvideoconvert ! nvdsosd ! ....
It seems odd to me since nvdsosd only supports RGBA, and the issue appears with RGBA formatted streams.