On June 23rd, we discussed “Explaining human multiple object tracking as resource-constrained approximate inference in a dynamic probabilistic model” by Edward Vul, Michael C Frank, George Alvarez, and Joshua B Tenenbaum.
This paper proposes a dynamic probabilistic model as an ideal observer for multiple object tracking. The ideal observer model uses a set of n Kalman filters to track n objects. Observations at each time step are composed of n pairs of position and velocity values. However, inference must be performed in order to associate each observation pair with the appropriate object identity (Kalman filter).
This week I followed up on the previous week’s meeting about state-space models with a tutorial on Kalman filtering / smoothing. We started with three Gaussian “fun facts” about linear transformations of Gaussian random variables and products of Gaussian densities. Then we derived the Kalman filtering equations, the EM algorithm, and discussed a simple implementation of Kalman smoothing using sparse matrices and the “backslash” operator in matlab.
Here’s how to do Kalman smoothing in one line of matlab:
Xmap = (Qinv + speye(nsamps) / varY) \ (Y / varY + Qinv * muX);
where the latent variable X has prior mean muX and inverse covariance Qinv, and Y | X is Gaussian with mean X and variance varY * I. Note Qinv is tri-diagonal and can be formed with a single call to “spdiags”.