About Tracking Object between Detection

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) : Jetson
• DeepStream Version :6.0.0
• JetPack Version (valid for Jetson only) : 4.6
• TensorRT Version : 8.0
• Issue Type( questions, new requirements, bugs) : Question

I’m using Nvtracker to tracking object in my project. i set the Pgie_interval options to 5 and tracking algorithm like config_Nvtracker_NvDCF.yml example. But when i run my deepstream model, Tracking object also trackes object between interval range. Since i want to tracking object each frame by frame like OPENCV::KCF,MOOSE,CSRT algorithm does…

so how can i solve this problem??? Is there any config options to track object each frame by frame while maintaining pgie_interval options up to 5???

Do you mean the track id is the same within more than 5 batches?

What does this mean?

when using deepstream tracking algorithm with config interval to 5, the bounding box(tracking box) changes in every 5 frames. [tracking box and detecting box changes in same frame.]
but what i want to apply is object detection between each 5 frames and then between the object detection frames only tracking algorithm will tracking the objects so it will be more accurate and stable i think.

[ what i want to make]
[frame 0] --------- [frame 1, 2 , 3, 4] ----------- [frame 5]
detecting[Yolo]------ tracking[Nvdcf] ------------ detecting[Yolo]

[ current model ]
[frame 0] --------- [frame 1, 2 , 3, 4] ----------- [frame 5]
detecting[Yolo]------ ---------------------------- detecting[Yolo]
tracking[Nvdcf]-----------------------------------tracking[Nvdcf]

# Tracker config
[tracker]
tracker-width=640
tracker-height=384
gpu-id=0
ll-lib-file=/opt/nvidia/deepstream/deepstream/lib/libnvds_mot_klt.so
#ll-config-file=config_tracker_NvDCF_perf.yml
#enable-past-frame=1
enable-batch-process=1
# MY PGIE OPTION
[property]
gpu-id=0
net-scale-factor=0.0039215697906911373
# 0=RGB, 1=BGR, 2=GRAYSCALE
model-color-format=0
model-engine-file=/home/butlely/Desktop/sangin/deepstream/yolov5s.engine
labelfile-path=labels.txt
batch-size=1
# 0=FP32, 1=INT8, 2=FP16 mode
network-mode=2
num-detected-classes=80
interval=4
gie-unique-id=1
process-mode=1
network-type=0
## 0=Group Rectangles, 1=DBSCAN, 2=NMS, 3= DBSCAN+NMS Hybrid, 4 = None(No clustering)
cluster-mode=4
maintain-aspect-ratio=0
parse-bbox-func-name=NvDsInferParseCustomYoloV5
custom-lib-path=nvdsinfer_custom_impl_Yolo/libnvdsinfer_custom_impl_Yolo.so

Have you tried NvDCF tracker?

yes i tried NvDCF tracker and as i mentioned above the tracker updates BBox same with object detection model.

[ what i want to make]
[frame 0] --------- [frame 1, 2 , 3, 4] ----------- [frame 5]
detecting[Yolo]------ tracking[Nvdcf] ------------ detecting[Yolo]

[ current model ]
[frame 0] --------- [frame 1, 2 , 3, 4] ----------- [frame 5]
detecting[Yolo]------ ---------------------------- detecting[Yolo]
tracking[Nvdcf]-----------------------------------tracking[Nvdcf]

Hello GURUGURU,

What you want is actually the default behavior of NvMultiObjectTracker library (like NvDCF). Please check out our official documentation [HERE], where the PGIE interval of 2 is applied, and you can see the NvDCF tracker tracks the objects every frame.

Thanks for reply pshin,

i think NvTracker works well but in my work, the detecting objects are two many to track, so nveglsink dropped the image frames and it looks like blinking .I changed Nvtracker parameters and it works well thanks…

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