[ros-users] A better face tracker using GFTT and TLD?

Patrick Goebel patrick at pirobot.org
Thu Jun 2 20:18:31 UTC 2011

I have put together a little ROS package for doing face tracking using
the idea described in the first paragraph below.  Note that I have not
yet added any feature learning as used in the TLD algorithm.  Interested
parties can check it out at:


A short demo video can be found at http://youtu.be/Yw_zkLaZNsQ.

You can also use this package for tracking arbitrary patches of a video
by setting the auto_face_tracking parameter to False and selecting the
desired region with the mouse.  This does not work as well as face
tracking since face tracking uses the Haar detector to re-acquire the
face if the number of tracked features falls below a prescribed minimum.

Let me know if you find any bugs or can think of improvements.



On 5/27/2011 2:52 PM, Patrick Goebel wrote:
> Hello ROS fans,
> I've been working on a ROS package to augment the OpenCV Haar face
> detector by using the initial detection window to extract Good Features
> To Track, then turning off the detector and tracking the features using
> CalcOpticalFlowPyrLK.  This seems to work surprisingly well and is much
> faster than simply reapplying the Haar detector on every frame.  I have
> few questions:
> * Has anyone already done this (in a ROS-friendly way) so I don't
> continue to reinvent the wheel?  I have looked at the face_detector
> package at http://www.ros.org/wiki/face_detector which appears to
> improve the initial face detection using depth information but does not
> appear to do feature extraction and tracking.
> * Has anyone been working on the TLD tracking algorithm (a.k.a
> "Predator") which would allow the tracked features to be learned better
> and better on each frame?  (See
> http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html).  Zdenek Kalal
> released the first version of his TLD algorithm as Matlab source but I'm
> wondering if someone has already made progress on a C++ or even a Python
> port.  (So far I haven't noticed any progress on the TLD forum itself...).
> * It seems the only part I need to add to what I've already done is the
> learning part which I understand uses random forests to build an
> evolving classifier from the features extracted from the patch being
> tracked.  So while I brush up on decision tree classifiers, do any
> existing ROS projects already use these so I could see some sample code?
> BTW, while I have framed this in terms of face detection, it actually
> works on any arbitrarily chosen textured patch of a video stream.
> Thanks!
> patrick
> http://www.pirobot.org
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users

More information about the ros-users mailing list