Computing Face Probability Densities

In the Camshift algorithm, the skin probability of each image pixel is based on color using a method called histogram backprojection. This method uses a heuristic, the Ratio Histogram, to estimate skin probability for each pixel, based only on a histogram from the starting region. With very little additional computation, however, it's feasible to use a more principled approach to computing skin probability.

The method I'd propose for computing each pixel's skin probability is based on Bayes Rule. The starting region gives us a fixed color-probability distribution (as the model histogram, M) for the face. As before, at each iteration of Mean Shift, an expanded search window gives us an image histogram, I. Provided the tracker doesn't run wildly amok, there's some additional information we can leverage, namely, the color histogram, B (for background), of the image region that surrounds the face region in the preceding frame. To extract B, a second, larger rectangle is placed outside the face region after it's been located in each frame, and the area between these two boundaries is histogrammed. The background histogram is updated once per frame, after Mean Shift gives the face location.

If we take the Model histogram as P(i|f), P(i) as the current probability for color i within the search region, and the face probability as its area within the search region, it's possible to compute a reasonable estimate for Bayesian probability as follows:


 

Home | Face Tracking