prominenceai / deepstream-services-library

A shared library of on-demand DeepStream Pipeline Services for Python and C/C++
MIT License
273 stars 64 forks source link

Tracking algorithm for all Triggers is incorrect/insufficient for how the Tracker libs actually work. #1186

Open rjhowell44 opened 4 months ago

rjhowell44 commented 4 months ago

The current Tracking algorithm(s) delete a tracked object once it is no longer found in frame, however, the Tracker libs are capable or reacquiring objects once reported by the inference engine again. The DSL tracking needs to be able to support the same.

rjhowell44 commented 4 months ago

Tracker config files specify two config properties relavant to this.

  maxShadowTrackingAge: 51    # Max length of shadow tracking. If the shadowTrackingAge exceeds this limit, the tracker will be terminated.
  earlyTerminationAge: 1    # If the shadowTrackingAge reaches this threshold while in TENTATIVE period, the target will be terminated prematurely.

NVIDIA Sample Configs:


There will be a new DSL symbolic constant defined as

/**
 * @brief The maximum number of consecutive frames a tracked object
 * can go undetected before it is purged and no longer tracked. 
*/
#define DSL_ODE_TRACKED_OBJECT_MISSING_FROM_FRAME_MAX               100
rjhowell44 commented 4 months ago

merged into the v0.30.alpha branch

rjhowell44 commented 3 months ago

Although the above change will improve the behavior, there is a fundamental difference in the way the Tracker and ODE Trigger work.

The DSL Tracking need to be changed to match the Tracker