Hello everyone,
I am encountering some unusual behavior and I need your help to understand what is happening. I am working with NVIDIA DeepStream and have been using the nvof plugin to calculate optical flow on a series of videos.
The command I am using is as follows:
gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_qHD.mp4 ! decodebin ! nvvideoconvert gpu-id=0 ! video/x-raw,format=NV12 ! nvvideoconvert ! nvstreammux0.sink_0 nvstreammux gpu-id=0 name=nvstreammux0 batch-size=1 batched-push-timeout=1000000 width=400 height=300 ! nvof dump-of-meta=1 preset-level=2 gpu-id=0 ! nvvideoconvert ! fpsdisplaysink sync=false
This command should generate files with the optical flow in the format nvopticalflow0_400x300_BS-0-FR-XXXX.mv
. However, I am noticing that the optical flows generated are relatively similar, but clearly different, when executed on different GPUs.
I have attached an image depicting the flows for a specific frame (the 10th in the sequence) to illustrate the issue:
Furthermore, on some occasions, I have been able to reproduce this issue even on the same machine, simply by running the command twice. Although in this case, the issue is harder to reproduce than when running it on two different machines, certainly.
This leads me to believe that either a) the optical flow algorithm is not completely deterministic, or b) there is something in the pipeline, perhaps in the nvstreammux element, that makes the algorithm non-reproducible.
Does anyone have any idea what could be happening or has experienced something similar? Any help or direction would be greatly appreciated.
P.S. At least the number of output optical flow files () is the same in every execution, the contents of the respective corresponding files between executions are the ones that certainly differ.
Thank you in advance.
Deepstream version 6.1
GPUs RTX 3060 & RTX 2070