Yaml-cpp: error at line 25, column 26: bad conversion

• Hardware Platform (GPU)
**• nvcr.io/nvidia/deepstream:6.1.1-devel **
**• NVIDIA GPU Driver Version 535.113.01 **

root@aiserver:~/FastDeploy/streamer/examples/ppyoloe/cpp/build# ./streamer_demo
app
nvurisrcbin_list
nvstreammux
nvinfer
nvtracker
nvmultistreamtiler
nvosdbin
nvvideoencfilesinkbin
[INFO] /root/FastDeploy/streamer/src/gstreamer/utils.cc(60)::CreatePipeline     Trying to launch pipeline: nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_0  nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_1  nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_2  nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_3  nvstreammux name=mux gpu-id=0 batch-size=1 width=1920 height=1080 batched-push-timeout=40000 ! nvinfer gpu-id=0 config-file-path=nvinfer_config.txt ! nvtracker gpu-id=0 tracker-width=640 tracker-height=640 ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so ll-config-file=/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml enable-batch-process=true ! nvmultistreamtiler gpu-id=0 rows=2 columns=2 ! nvosdbin gpu-id=0 ! nvvideoencfilesinkbin gpu-id=0 bitrate=4000 output-file=out.mp4
dsnvvideoencfilesinkbin0
gstnvtracker: Loading low-level lib at /opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
gstnvtracker: Batch processing is ON
gstnvtracker: Past frame output is OFF

!![ERROR] yaml-cpp: error at line 25, column 26: bad conversion
An exception occurred. yaml-cpp: error at line 25, column 26: bad conversion
gstnvtracker: Failed to initialize tracker context!
gstnvtracker:: Failed to create batch context. Shutting down processing.
Running...

Is there a way that we can use to reproduce this issue?

Can you share all of your configuration files ? I think there is an error in your yaml configuration file.

config_tracker_NvDCF_perf.zip (2.4 KB)
This configuration file is included in the image (nvcr.io/nvidia/deepstream:6.1.1-devel), location “/opt/nvidia/deepstream/deepstream-6.1/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml” , direct quote unmodified.

This is the project address (https://github.com/PaddlePaddle/FastDeploy/blob/develop/streamer/examples/ppyoloe/cpp).
An error is reported when running this demo in the mirror( nvcr.io/nvidia/deepstream:6.1.1-devel).

streamer_cfg.zip (579 Bytes)
This is the project configuration file.

As per the documentation, I couldn’t compile fastdeploy successfully.

But I tried running the same pipeline using gst-laungh-1.0.

I used the same ppyoloe.onnx and libfd_streamer.so as the project and I got the results as below.

All is ok, i can not reproduce your problem.

I used the same docker image(6.1.1)

gst-launch-1.0 nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_0  nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_1  nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_2  nvurisrcbin uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_ride_bike.mov gpu-id=0 ! mux.sink_3  nvstreammux name=mux gpu-id=0 batch-size=1 width=1920 height=1080 batched-push-timeout=40000 ! nvinfer gpu-id=0 config-file-path=nvinfer_config.txt ! nvtracker gpu-id=0 tracker-width=640 tracker-height=640 ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so ll-config-file=/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml enable-batch-process=true ! nvmultistreamtiler gpu-id=0 rows=2 columns=2 ! nvosdbin gpu-id=0 ! nvvideoencfilesinkbin gpu-id=0 bitrate=4000 output-file=out.mp4


Yes, this command can be run normally in my environment, but an error will be reported when running the generated application. It seems that this part of the code should be implemented in deepstream, but it has not been found. Where is the implementation code of this part?

This is a yaml parsing error,

it comes from libyaml-cpp and is not part of deepstream.

Normal dependencies are like this.

I think it may be caused by streamer_demo relying on different yaml-cpp versions.

You can check it with ldd streamer_demo.

The following is the result of compiling and running streamer_demo in the DS6.3 environment:

I still think that the yaml-cpp error occurs in the m_TrackerLibQuery method of this library (libnvds_nvmultiobjecttracker.so). I don’t know if it’s a BUG or a problem with the configuration file (/opt/nvidia/deepstream/deepstream-6.3/samples/configs/deepstream-app/config_tracker_NvDCF_perf.yml).

This part of the code in the DS6.1 version is not open source.

Fastdeploy uses ABI-incompatible yaml-cpp.

You can try to use the following patch in CMakeLists.txt. I have tried it and it is ok.

If you encounter problems with fastdeploy, please file an issue on github.

This only deals with issues with deepstreamsdk.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fdcfc59d..6e2bcb3b 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -433,11 +433,11 @@ endif()

 if(ENABLE_VISION)
   add_definitions(-DENABLE_VISION)
-  add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/yaml-cpp)
+  #add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/yaml-cpp)
   list(APPEND DEPEND_LIBS yaml-cpp)
   list(APPEND ALL_DEPLOY_SRCS ${DEPLOY_VISION_SRCS})
   list(APPEND ALL_DEPLOY_SRCS ${DEPLOY_PIPELINE_SRCS})
-  include_directories(${PROJECT_SOURCE_DIR}/third_party/yaml-cpp/include)
+  #include_directories(${PROJECT_SOURCE_DIR}/third_party/yaml-cpp/include)
   include(${PROJECT_SOURCE_DIR}/cmake/opencv.cmake)

   if(ENABLE_FLYCV)

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