Ask Your Question

How to track human face?

asked 2012-12-28 10:24:49 -0600

enienws gravatar image

updated 2012-12-28 11:20:19 -0600


I have been working on a project which tracks multiple faces in video sequences. My tracking algorithm may stop tracking for some cases (i.e. occlusion). So to give same ID to the lost face on next frames I want to match new detected face with a face which is lost in previous frames. For example a short-term memory like ~3 seconds is just enough for me.

To implement this feature I have been researching on feature descriptors and a score generated by matching these descriptors.

I am curious about whether this is a reasonable way for solving this problem? If not could you give some advices on this issue?

Best wishes.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-12-28 11:11:45 -0600

updated 2012-12-28 11:35:29 -0600

In some cases ,lf the haar detector finds more than one face in a next frame, you'd need to decide which detection is correct position. The algorithm that OpenCV uses for face tracking is called Camshift. Camshift uses color information. Camshift consists of 4 steps:

1-Create a color histogram to represent the face.

2-Compute the face probability for each pixel in frame by calcBackProject.

3-Move the location of the face in next frame.

4-Compute the face rotated rectangle.

Aslo you can use Camshift sample.

edit flag offensive delete link more


Actually I am using Camshift for tracking faces. Moreover I have implemented some features to solve camshift's occlusion problem and some problems related with camshift. So, program stops tracking for some cases. My face classification problem arises here.

enienws gravatar imageenienws ( 2012-12-28 12:13:10 -0600 )edit

In such cases,you can filter skin by adaptiveskindetector.cpp in opencv\samples\c folder.find skin regions then extend them &use LBP Face Detection in these regions.

Mostafa Sataki gravatar imageMostafa Sataki ( 2012-12-28 14:01:12 -0600 )edit

Yes I am using that methodologies too. There is no problem about finding a new face region. The problem is that, when program lost a face - due to occlusion or something else, and then that face detected again with a LBP face detection, I need to classify that face. For example let a face is identified by number id 1000. Due to some occlusions this face is lost by camshift tracker. Then this face is detected again LBP classifer. At that time, I need to classify face and need to give it id 1000 not 1001. I have been researching about feature descriptors and a score generated by matching these descriptors. The question is that whether this is a convenient way or not?

enienws gravatar imageenienws ( 2012-12-29 04:55:46 -0600 )edit

Question Tools


Asked: 2012-12-28 10:24:49 -0600

Seen: 1,708 times

Last updated: Dec 28 '12