Kalman Filter based multiple-face tracker ROS package.

Primary LanguageC++


This is a ROS package that detects and tracks multiple faces based on Kalman Filter.


Object detection is always slow, especially on robots based on embedded platforms (for example Raspberry Pi). So I put the face detection task (which is slow) in a ROS action node, which runs at a low frequency. And I keeps tracking every detected faces using Kalman Filter. So that I can do something interesting at higher frequency given all the face bounding boxes, for example to estimate each face's pose.

The theory behind this is that: "if an observation is unavailable for some reason, the update may be skipped and multiple prediction steps performed" according to the Kalman Filter Wikipedia page .


  • ROS with opencv package
  • Dlib


catkin build
roslaunch multi_face_tracker usbcam_demo.launch



You can use it for free for any purposes at your own risk.