0

I am looking for a way to achieve head detection and tracking with reasonable performance on a "mid-level" android device, using OpenCV.

What i thought (using Haar-like algorithm):

Resize every video frame to be smaller, then convert it to grayscale.

First frame :

  1. Find face bound using some Haar cascade and save it
  2. Find eyes into face bound (using some other Haar template)
  3. Same for mouth

For next frames:

  1. Use the older bound of the face and expand it to find head (that have changed its position).
  2. Find face in expanded bound.
  3. Find eyes within face.
  4. Find mouth within face.

I am worried about performance of this cycle on a live streaming video. Is it a good schedule or have I to use some other algorithm?Haar-like one looks very heavy.

My application needs to store, for every frame, eyes and mouth coordinates. So I cannot pick up these values from crossing current frame that contains head position and first head bounding box that contains eyes and mouth initial position.

Tcz
  • 661
  • 5
  • 18
  • It may be helpful to provide the frame rate you want to operate at. – Boyko Perfanov Oct 08 '13 at 19:14
  • 10-15 fps would be an acceptable framerate. – Tcz Oct 08 '13 at 19:24
  • The typical implementation of a detector based on Viola-Jones framework does not resize the image, but the detector subwindow itself. – Ramiro Oct 16 '13 at 20:57
  • 1
    LBP-based detectors perform faster than Haar-like detectors. LBP stands for Local Binary Pattern. You might be interested to take a look on that. – Ramiro Oct 16 '13 at 21:00

0 Answers0