OpenTLD is an open-source visual tracking algorithm by Zdenek Kalal. He released it earlier this year as open-source, and there have been efforts to port the algorithm from the original MATLAB to a C/C++ only implementation.
I've been recently involved in that effort, and we have made a successful port of the code to C++. It's easy to compile and run in Linux (I'll be testing it on other platforms as well, OSX and Windows), and it implements a basic feature set that I hope we can expand. One priority is still to increase its performance, so it can be used in embedded systems and robotics.
Here's a quick view of the algorithm in action:
Here's Zdenek's original video:
The C++ port simply requires:
- OpenCV (2.3)
Now I've listed here some features I want to add:
- Obtaining an initial bounding box from a haar classifier
- saving learned models
Performance of the C++ port is approximately 40-50fps on my Macbook (Ubuntu 11.10 on Intel Core 2 Duo 2.16GHz with 1GB of RAM) for the motocross video, and around 15fps for the Macbook built-in webcam. However this implementation is single-CPU, it is possible that using GPU or multi-core implementation can be much faster. This is very much a work in progress, and certainly very exciting times ahead!
Right now I've been only testing the implementations in Linux, however I'll try to get it working on OSX as well. To test the code you can get it on GitHub either from mine or Alantrrs' repository: https://github.com/alantrrs/OpenTLD
My development fork of his repository (changes are regularly merged with Alan's repo): https://github.com/arthurv/OpenTLD
And of course, zdenek's original matlab implementation: https://github.com/zk00006/OpenTLD