Tracker Initialization Failure

DeepStream Version - 7.0
Docker Image - nvcr.io/nvidia/deepstream:7.0-gc-triton-devel
GPU - RTX A6000
NVIDIA GPU Driver - 535.183.01

Upon trying to implement Multi-object Tracker using the following code inside main() -

tracker = Gst.ElementFactory.make("nvtracker", "object-tracker")
if not tracker:
    sys.stderr.write(" Unable to create tracker \n")
"""
some other code
"""
pipeline.add(tracker)
"""
some other code
"""
pgie.link(tracker)
"""
some other code
"""
tracker_source_pad = tracker.get_static_pad("src")
if not tracker_source_pad:
    sys.stderr.write(" Unable to get tracker src pad \n")
else:
    if not disable_probe:
        tracker_source_pad.add_probe(Gst.PadProbeType.BUFFER, tracker_probe)

along with the following probing function -

def tracker_probe(pad, info):
    gst_buffer = info.get_buffer()
    if not gst_buffer:
        print("Unable to get GstBuffer")
        return Gst.PadProbeReturn.OK

    batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
    l_frame = batch_meta.frame_meta_list

    while l_frame:
        frame_meta = pyds.NvDsFrameMeta.cast(l_frame.data)
        l_obj = frame_meta.obj_meta_list

        while l_obj:
            obj_meta = pyds.NvDsObjectMeta.cast(l_obj.data)
            print('----------------------------------------------\n')
            print(f"Object ID: {obj_meta.object_id}, Class ID: {obj_meta.class_id}, Confidence: {obj_meta.confidence}")
            print('----------------------------------------------\n')

            l_obj = l_obj.next

        l_frame = l_frame.next

    return Gst.PadProbeReturn.OK

I’m getting the following error -

0:00:02.618304991 3572838 0x55f42ea86c80 DEBUG nvtracker gstnvtracker.cpp:211:gst_nv_tracker_start:<object-tracker> gstnvtracker: numStreams set as 0...

0:00:02.618342151 3572838 0x55f42ea86c80 DEBUG nvtracker gstnvtracker.cpp:222:gst_nv_tracker_start:<object-tracker> gstnvtracker: batchSize set as 1...

gstnvtracker: Loading low-level lib at (null)
gstnvtracker: Failed to load NvMOT_Init
gstnvtracker: Failed to initilaize low level lib.

0:00:02.618387216 3572838 0x55f42ea86c80 ERROR nvtracker gstnvtracker.cpp:261:gst_nv_tracker_start: gstnvtracker: Failed to initialize trackerIface

What could be the issue here?
Following is the tracker config section from my configuration file -

[tracker]
tracker-width=1920
tracker-height=1080
gpu-id=0
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_accuracy.yml
enable-batch-process=1
enable-past-frame=1
display-tracking-id=1
tracking-id-reset-mode=3

I have verified that the files libnvds_nvmultiobjecttracker.so and config_tracker_NvDCF_accuracy.yml are available and have sufficient read permissions on the server.

Update - I was able to solve this issue after explicitly setting tracker properties in the code

tracker.set_property("tracker-width", 1920)
tracker.set_property("tracker-height", 1080)
tracker.set_property("gpu-id", 0)
tracker.set_property("ll-lib-file", "libnvds_nvmultiobjecttracker.so")
tracker.set_property("ll-config-file", "config_tracker_NvDCF_accuracy.yml")
tracker.set_property("compute-hw", 1)
tracker.set_property("display-tracking-id", 1)

Now, the tracker is loading but I’m getting the following error during runtime -

gstnvtracker: Loading low-level lib at libnvds_nvmultiobjecttracker.so
~~ CLOG[src/modules/ReID/ReID.cpp, loadTRTEngine() @line 605]: Engine file does not exist
[NvMultiObjectTracker] Load engine failed. Create engine again.

!![ERROR] TAO model file does not exist
[NvMultiObjectTracker] De-initialized
An exception occurred. TAO model file does not exist
gstnvtracker: Failed to initialize tracker context!
gstnvtracker:: Failed to create batch context. Shutting down processing.

What could be causing this issue?

Please follow here to download ReID model: Gst-nvtracker — DeepStream documentation

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