Project Contributers

  • Karan Jeswani
  • Ramkiran Balivada

Objective

Particle Filter is a Bayesian State Estimation technique, which uses particles (data points) to represent a posterior distribution, given the initial distribution and measurements through the process. Here the distribution is an object in a user defined region of interest, and we track it using the entire camera frame as the measurement.

Methodology

Particle filter procedure involves

  • Prediction: Using a linear time dependent model of motion (this can be based on prior knowledge), we instantiate N particles and allow them to move in random directions.
Repeat Update and Resampling for all video frames
  • Update: Given the measurement of the new frame, a bounding box around each particle is compared with the object, and a fitness score is assigned to each particle such that the particle with the highest fitness score would most closely represent the object, thus determining its approximate position in that frame.
  • Resampling: Now, using a roulette table based resampling technique, which is called Systematic Resampling, particles with low scores are eliminated with high probability and particles with high scores stay with high probability. (Resampling step takes more than 70% of the compute)

Novelty

  • We found a method to improve the parallel implementation of the resampling algorithm, by converting fitness scores into a cumulative distribution function, and exploiting its non-decreasing property.
  • We compared it with the existing method from the paper titles “Improved Parallel Resampling Methods for Particle Filtering”.

Conclusion

Parallelized the implementation of Particle Filter based object tracking system in C++ and OpenCV, and observed increased latency due to faster resampling.