Closed Aayushktyagi closed 6 years ago
@Aayushktyagi , Kalman filter can predict the location of the bounding box even when detector fails to provide a bounding box. If you take a close look at predict_only function in tracker.py
def predict_only(self):
'''
Implment only the predict stage. This is used for unmatched detections and
unmatched tracks
'''
x = self.x_state
x = dot(self.F, x)
self.P = dot(self.F, self.P).dot(self.F.T) + self.Q
self.x_state = x.astype(int)
x= dot(self.F.x) predicts the next location, based on the state x, obtained from previous prediction and update cycles. Here we use a very simple constant velocity model (see self.F), so current_location + velocity * time = next_location.
One thing to note, if the detector keeps on failing to provide bounding boxes in a sequence of frames, the prediction alone will become less and less accurate. In other words, Kalman filter can only address a noisy or the absence of detection for a short duration of time.
Let me know if you need further clairfication.
Thank you so much for explanation.
I am curious to know that will kalman tracker work when no object is detected in the frame.I saw few ropo(https://github.com/abewley/sort) required detection in every frame otherwise it will leave track on object(car in this case). So will kalman predict function will give next location even when no detection is received from detector.
Thanks in advance.