[Original post: 6/29/2010. This is an article from my old blog that I think is interesting enough to restore.]
Motion tracking is a computer vision algorithm which tracks the movement of real-world objects seen in video. Note that this is different than motion sensing, which merely senses the presence of motion. Featured in the video below is my first motion tracking implementation, written in Java and using JMF (the Java Media Framework). It is capable of tracking a large quantity of simultaneously-moving objects in the view of a fixed camera.
Motion tracking is widely applicable. Probably the most common use is in surveillance. Other uses include interactive games, measuring speed, using motion for mouse input and drawing digital pictures, or perhaps even refereeing a non-computer game.
Watch the video for an explanation of how it works.
Implementing the algorithm in native code with C++ would probably improve performance speed. I chose to use Java because it would allow me to finish the project in a more reasonable amount of time, as I don't have as a lot of free time (as most of you can relate).