How to update a tracker without any detection

5 views (last 30 days)
Hi,
I am using trackerTOMHT to track multi targets. Sometimes there are detections and sometime there is no detection. The code on matlab looks like this:
tracker = trackerTOMHT('FilterInitializationFcn',@initcvkf, ...
'ConfirmationThreshold',20, ...
'DeletionThreshold',-7, ...
'MaxNumHypotheses',10);
detections = {objectDetection(1,[10;0],'SensorIndex',1, ...
'ObjectClassID',5,'ObjectAttributes',{struct('ID',1)}); ...
objectDetection(1,[0;10],'SensorIndex',1, ...
'ObjectClassID',2,'ObjectAttributes',{struct('ID',2)})};
time = 2;
[confirmed_tracks,~,~,~] = tracker(detections,time);
However, when there is no detections, how can I update the get tracker and get the confirmed_tracks? For example, at time=3, there is no detections, how can I get the confirmed_tracks at that time?
Thank you.

Answers (1)

Elad Kivelevitch
Elad Kivelevitch on 20 Sep 2022
Hi,
Thanks for the question.
A nonempty cell array of detections is only needed in the first call to the tracker in order to allow the tracker to validate inputs and set itself up.
After that, you can pass an empty cell array to the tracker in following steps. You can see the following pattern in many of our examples:
if isLocked(tracker) || ~isempty(detections)
[confirmedTracks,tentativeTracks,allTracks,info] = tracker(detections,time);
end
This will allow you to pass an empty cell array of detections after the tracker has been set up and locked.
Thank you.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!