
Object Tracking, Homographies, and Face Detection
~The sections below detail several assignments I completed for the computer vision course I took as part of my Master's in Computer Science at Georgia Institute of Technology.~
Tracking Objects
This assignment focused on utilizing various forms of Kalman Filters and Particle Filters (implemented without using the cv2.KalmanFilter and cv2.matchTemplate functions). Several examples of each filter are shown and discussed.
Kalman Filters are typically used to track dynamical systems with uncertainty in their measurements by making use of linear quadratic estimation. Although the math for a Kalman filter may seem intimidating, in principle it is merely making use of matrix math with basic physics motion equations while adding steps to account for uncertainty. The Kalman filter is split up into a prediction step that multiplies the estimate by a state transition matrix followed by a measurement update step that considers the measurement and any noise associated with it.

The pictures below show a Kalman Filter being utilized to follow a pedestrian as the cross a sidewalk.




Unlike Kalman Filters, Particle Filters are much more versatile for solving high dimensional problems. Particle filters have three phases: Prediction, measurement, and resampling. The prediction phase involves taking a distribution of particles based on prior beliefs (initially random) and the measurement phase compares the sensor model (measurements) with each particle to estimate the likelihood that it matches your location. This likelihood is converted into importance weights for each particle. This is followed by a resampling step where particles are re-distributed around the most likely weights and updated based on a motion model. Resampling is important as it prevents particle depletion and ensures that your particle density better matches a probability density function.
The examples below show how particles are used to track a ball from an animation as well as Mitt Romney from a 2012 presidential debate.







