I suspect there’s some bug in minTrackerConfidence, maxShadowTrackingAge or probationAge of the Nvdcf tracker.
We have a reproducible test case with Deepstream 5.0.1, where we run our app (based on the reference app architecture) from the same video in 2 modes, with nvdcf tracker enabled and no tracker.
Configuration was:
probationAge: 11
earlyTerminationAge
minTrackingConfidenceDuringInactive: 0.92
maxShadowTrackingAge: 10
Attaching 2 dumps of deepstream metadata written to CSV for one particular object.
When running without the tracker, the object was detected once by the primary detector in 1 frame (5864). No other detection was made, and no other objects were in this frames, 14 frames before, and some 100 frames after.
When running with the tracker, the same object was output in frame 5875 (11 frames later) and lingered until frame 6028.
Two potentially critical issues here:
why did the object get out of temporary mode after 11 frame, if there were no detections for 10 frames after it was first detected
why the object wasn’t terminated within maxShadowTrackingAge but was tracked for another 43 frames
The documentation explicitly states that minTrackingConfidenceDuringInactive is a float 0.0 to 1.0
with just one (false) detection, probationAge of 11 and nothing else around for several frames the object should never have been activated.
For another 43 frames, there was no detector box to match, so why the tracker didn’t switch into shadow mode and terminate the object. Is there any specific metadata we can use to debug this?
In addition, the tracker was running with Kalman Filter as state estimator:
# [State Estimator]
useTrackSmoothing: 1 # Use a state estimator
stateEstimatorType: 2 # The type of state estimator among { moving_avg:1, kalman_filter:2 }
# [State Estimator] [MovingAvgEstimator]
trackExponentialSmoothingLr_loc: 0.5 # Learning rate for new location
trackExponentialSmoothingLr_scale: 0.5 # Learning rate for new scale
trackExponentialSmoothingLr_velocity: 0.5 # Learning rate for new velocity
# [State Estimator] [Kalman Filter]
kfProcessNoiseVar4Loc: 0.78 # Process noise variance for location in Kalman filter
kfProcessNoiseVar4Scale: 0.61 # Process noise variance for scale in Kalman filter
kfProcessNoiseVar4Vel: 0.48000000000000004 # Process noise variance for velocity in Kalman filter
kfMeasurementNoiseVar4Trk: 4.37 # Measurement noise variance for tracker's detection in Kalman filter
kfMeasurementNoiseVar4Det: 0.29000000000000004 # Measurement noise variance for detector's detection in Kalman filter
Is it possible to capture a very small video can be used to repro the issue, you can only share the video include the frame 5800 to 6000 just like what you mentioned?
There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks
it’s difficult to debug where is wrong per the dumped info.
Could you help us the config/streams(maybe some public videos) how to repro the issue, so we look into more.