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 :
- Find face bound using some Haar cascade and save it
- Find eyes into face bound (using some other Haar template)
- Same for mouth
For next frames:
- Use the older bound of the face and expand it to find head (that have changed its position).
- Find face in expanded bound.
- Find eyes within face.
- 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.