Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatic tracking algorithm

I'm trying to write a simple tracking routine to track some points on a movie.

Essentially I have a series of 100-frames-long movies, showing some bright spots on dark background. I have ~100-150 spots per frame, and they move over the course of the movie. I would like to track them, so I'm looking for some efficient (but possibly not overkilling to implement) routine to do that.

A few more infos:

  • the spots are a few (es. 5x5) pixels in size
  • the movement are not big. A spot generally does not move more than 5-10 pixels from its original position. The movements are generally smooth.
  • the "shape" of these spots is generally fixed, they don't grow or shrink BUT they become less bright as the movie progresses.
  • the spots don't move in a particular direction. They can move right and then left and then right again
  • the user will select a region around each spot and then this region will be tracked, so I do not need to automatically find the points.

As the videos are b/w, I though I should rely on brigthness. For instance I thought I could move around the region and calculate the correlation of the region's area in the previous frame with that in the various positions in the next frame. I understand that this is a quite naïve solution, but do you think it may work? Does anyone know specific algorithms that do this? It doesn't need to be superfast, as long as it is accurate I'm happy.

Thank you

nico

like image 627
nico Avatar asked May 27 '10 16:05

nico


2 Answers

Sounds like a job for Blob detection to me.

like image 164
genpfault Avatar answered Sep 28 '22 01:09

genpfault


Predator (TLD Algorithm) by Zdenek Kalal is also good for Automatic Tracking

See this:

http://www.youtube.com/watch?v=1GhNXHCQGsM

and

http://bit.ly/shahab-vision

like image 23
Muhammad Shahab Avatar answered Sep 28 '22 01:09

Muhammad Shahab