Open laclouis5 opened 4 years ago
As predict() is always followed by update()
Is this correct though? Why is it expected that there will be as many updates as predicts? Then how do we handle missing measurements (when YOLO misses the object in one frame for instance)?
I'm confused about what data we use to update the kalman filter in such case. Wouldn't it make more sense to use the time_since_update for the predict step, namely taking this variable into account when applying the kf.F matrix (the one for the dynamic model). This would allow to call predict once for each frame independently of the YOLO's output and calling update only when we have real information to update
self.history is reset in
KalmanTracker().update()
func:https://github.com/abewley/sort/blob/54e63a7e432491619a48678bda6f05cc3bd12859/sort.py#L109
This removes history when a new measurement is available but save state when only doing prediction.
Also, here in
predict()
:https://github.com/abewley/sort/blob/54e63a7e432491619a48678bda6f05cc3bd12859/sort.py#L125
Property
history
is fed withx
predicted. But when the tracker is updated with a new measurement, the statex
is refined and should replace the oldx
predicted no?As
predict()
is always followed byupdate()
this should look like this: