Friday, 1 April 2011

Predator Video Motion Tracking

I have seen various motion tracking softwares and there are some very decent ones out there. I am still digging a bit learn a bit more about the Predator Tracking-Learning-Detection (TLD) system from the creator, Zdenek Kalal's, publications but this one impresses me immensely for a couple of reasons. Firstly it is amazing just in raw functionality. It learns and tracks complex pixel windows as an object moves around the image field as well and find it as it leaves and re-enters the field of view. The close second is that it is open source. This is Mr. Kalal's Ph.D research and he has put it out there for everyone under GPL. Very excellent!

So what makes motion tracking, and specifically the Predator, so cool? Like the X-Box Kinect that I wrote about last week, the Predator tracks objects that are in the image field. The Kinect is cool because it can be hacked to do some spectacular image space modelling. The Predator does not measure objects in 3D space like the Kinect but it seems to be pretty robust at tracking them once you show the system what you are looking for. It also can adjust for chances in scale as an object moves in an out in the image field. Two areas that I am still digging through publications to determine is how it handles multiple objects that are identical in the same image field. In the sample video a vehicle is shown driving along in dense traffic and it is not losing it. How it would handle 3 black BMW 323s in the same image field is unknown at this point. Also, the area that is being tracked can deal with the object changing pixel size as it moves closer and further away from the camera. The system is reported to learn as it gets more data. I assume that it learns as the object gets closer and further to remap and recalculate the change in size of tracking window and pixel values. I am not sure how the system would handle it if a window was chosen and the object was moved out of the image field of view and then brought back in closer to the camera prior to training it to recognize the window as it changes in scale. Those are just two questions that I endeavour to figure out. Either way, the technology it very cool and has very interesting potential. If people start playing with this code like they have hacked the Kinect we should see some interesting applications. I have already been trying to find time to try some of my own Kinect hacks. Now I need to decide, if I find that elusive time, whether I want to play with the Kinect or the Predator first!