Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) Jetson AGX Orin
• DeepStream Version 6.4
• JetPack Version (valid for Jetson only) 6.0-b52
• TensorRT Version 8.6.2
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs) Bug/question
Hi,
I’m trying to get a DeepStream 6.3 pipeline that will perform Mask RCNN inference and then visualize the masks.
I have the following Python code which creates a DeepStream pipeline:
filesrc = create_gst_element_with_props("filesrc", "filesrc", "location", "test_images/original/train2.jpg")
filesrc_filter = create_gst_capsfilter("image/jpeg,width=640,height=480,framerate=30/1", "filesrc_caps")
nvjpegdec = create_gst_element_with_props("nvjpegdec", "nvjpegdec")
imagefreeze = create_gst_element_with_props("imagefreeze", "imagefreeze", "is-live", True, "num-buffers", -1)
videoconvert = create_gst_element("videoconvert", "videoconvert")
videoconvert_filter = create_gst_capsfilter("video/x-raw,format=RGBA,memory=NVMM", "nvmm_caps")
nvvideoconvert = create_gst_element_with_props("nvvideoconvert", "nvvideoconvert")
nvstreammux = create_gst_element_with_props("nvstreammux", "nvstreammux",
'width', 640, 'height', 480,
'batch-size', 1, 'batched-push-timeout', MUXER_BATCH_TIMEOUT_USEC)
nvinfer = create_gst_element_with_props("nvinfer", "nvinfer",
'config-file-path', DETECTOR_CONFIG_FILE)
nvdspostprocess = create_gst_element_with_props("nvdspostprocess", "nvdspostprocess",
"postprocesslib-config-file", "config_mrcnn.yml",
"postprocesslib-name", "libpostprocess_impl.so")
nvsegvisual = create_gst_element_with_props("nvsegvisual", "nvsegvisual", "width", 640, "height", 480)
nvtracker = create_gst_element_with_props("nvtracker", "nvtracker",
'll-lib-file', '/opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so',
'll-config-file', '/home/simon/deepstream_python_apps/apps/embedding_bot/tracking/config_tracker_NvDCF_perf.yml',
'tracker-width', 640, 'tracker-height', 480)
nvvideoconvert2 = create_gst_element("nvvideoconvert", "nvvideoconvert2")
nvdsosd = create_gst_element_with_props("nvdsosd", "nvdsosd", 'display-clock', 1, 'display-mask', True)
nv3dsink = create_gst_element_with_props("nv3dsink", "nv3dsink", 'sync', False)
pipeline = create_gst_pipeline("maskrcnn-image-display")
gst_link_many(filesrc, filesrc_filter, nvjpegdec, imagefreeze, videoconvert, videoconvert_filter,
nvvideoconvert)
gst_link_pads(nvvideoconvert, nvstreammux, "src", "sink_0")
gst_link_many(nvstreammux, nvinfer, nvdspostprocess, nvsegvisual, nvtracker, nvvideoconvert2, nvdsosd, nv3dsink)
The gst_ functions are simple utility functions for creating GST elements, capability filters and the like. Everything runs perfectly well with variations on this pipeline.
Here are the configuration files for nvinfer and nvdspostprocess:
nvinfer_config.txt (2.0 KB)
and
config_mrcnn.yml.txt (491 Bytes)
The problem comes with NvDsPostProcess:
Starting pipeline
gstnvtracker: Loading low-level lib at /opt/nvidia/deepstream/deepstream/lib/libnvds_nvmultiobjecttracker.so
[NvMultiObjectTracker] Initialized
Error in NvDsPostProcess::initResource() <post_processor_instance_segment.cpp:208> : Custom parsing function not present specified
[NvMultiObjectTracker] De-initialized
Error: gst-library-error-quark: Library config file ./config_mrcnn.yml parsing failed (5): /dvs/git/dirty/git-master_linux/deepstream/sdk/src/gst-plugins/gst-nvdspostprocess/gstnvdspostprocess.cpp(307): gst_nvdspostprocess_start (): /GstPipeline:maskrcnn-image-display/GstNvDsPostProcess:nvdspostprocess:
Postprocess lib config file ./config_mrcnn.yml parsing failed
It seems like libpostprocess_impl.so doesn’t contain the function NvDsPostProcessParseCustomMrcnnTLTV2 Is that what’s going on?
I followed the instructions here: Gst-nvdspostprocess in DeepStream — DeepStream documentation 6.4 documentation
Any help would be appreciated. Thanks,
Simon