Visual object tracking is a difficult problem, but in recent years, particle filterbased object trackers have proven to be very effective. Conceptually, a particle filterbased 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 singleobject tracker that uses a color histogrambased observation model and a secondorder 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 
Download
 Linux: track.tar.gz
Dependencies
References
 Object Tracking with Particle Filtering [an old course project presentation that describes this particle filter implementation]
 ColorBased 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 MultiObject Tracking. R. Hess and A. Fern. CVPR, 2009.