Visual object tracking is a difficult problem, but in recent years, particle filter-based object trackers have proven to be very effective. Conceptually, a particle filter-based tracker maintains a probability distribution over the state (location, scale, etc.) of the object being tracked. Particle filters represent this distribution as a set of weighted samples, or particles. Each particle represents a possible instantiation of the state of the object. In other words, each particle is a guess representing one possible location of the object being tracked. The set of particles contains more weight at locations where the object being tracked is more likely to be. This weighted distribution is propagated through time using a set of equations known as the Bayesian filtering equations, and we can determine the trajectory of the tracked object by taking the particle with the highest weight or the weighted mean of the particle set at each time step.
The particle filter tracker available here is a simple single-object tracker that uses a color histogram-based observation model and a second-order autoregressive dynamical model. It is implemented in C using OpenCV and the GSL. The image sequence below shows the tracker in action.
|A sequence of video frames in which a football player is successfully tracked with a particle filter|
- Linux: track.tar.gz
- Object Tracking with Particle Filtering [an old course project presentation that describes this particle filter implementation]
- Color-Based Probabilistic Tracking. P. Perez, C. Hue, J. Vermaak, and M. Gangnet. ECCV, 2002.
- Sequential Monte Carlo Methods in Practice. A. Doucet, N. de Freitas, and N. Gordon (eds.). Springer, 2001.
- Discriminatively Trained Particle Filters for Complex Multi-Object Tracking. R. Hess and A. Fern. CVPR, 2009.