In digital video, motion tracking is the act of continually locating a desired object in video frames over a length of time. This has applications in surveillance, teleconferencing, and other areas where we wish to be able to lock onto an object track its movement, and possibly adjust the direction of the camera to keep an object in view. A variation of Particle Swarm Optimization (PSO) known as Sequential Particle Swarm Optimization (SPSO) is well suited to solving this problem.
SPSO is based on the original PSO introduced by Kennedy and Eberhart in 1995. The major difference is that in SPSO we extend the notion of memory from one optimization to the next. Specifically, for the first frame where we perform the optimization, our particles are seeded randomly about the image. For each additional frame, the particle’s initial position has the distribution (xi,yi) = N((pxi,pyi) + gt-1 – gt-2,∑), where N denotes a normal distribution, (pxi,pyi) denotes that particles best position in the previous frame, gt-1 and gt-2 denote the global best from previous two frames, and ∑ denotes a fixed diagonal covariance matrix. The seed velocity is chosen from a uniform distribution, and this distribution does not change between frames. Additionally, once we reseed the particles, we erase their memory of what was optimal in the previous frame. This method relies on the fact that motion is continuous, meaning that the object to be tracked hasn’t moved far between frames, by seeding the particles randomly about their previous best location.
The function that is to be optimized by SPSO in motion tracking is a measure of the difference between the region of the current frame of a given dimension centered at a particle and a reference region of the same dimension. Typically the measure of difference used is the mean squared error.