tidy
tidy

Reputation: 5057

how to specify the threshold of weak classifier for adaboost method of face detector

I have read Rapid Object Detection using a Boosted Cascade of Simple Features. In part 3, it defines a weak classifier like this:

enter image description here

My question is: how to specify the threshold theta_j?

And for strong classfier, my question is like this: enter image description here

Upvotes: 3

Views: 2679

Answers (2)

Ramiro
Ramiro

Reputation: 708

The parameter theta_j is calculated for each feature by the weak learner. Viola and Jones' approach was better documented in their 2004 version of their paper, and, IMHO, is very similar to a ROC analysis. You must test each one of your weak classifiers against the training set looking for the theta_j that causes the smallest weighted error. We say "weighted" because we use the w_t,i values associated with each training sample to weight a misclassification.

For an intuitive answer about the strong classifier threshold, consider that all alpha_t = 1. This means that you should have at least half of weak classifiers output 1 for x for the strong classifier output 1 for x. Remember that the weak classifiers output 1 if they think that x is a face and 0 otherwise.

In Adaboost, alpha_t can be thought of as a measure of the weak qualifier quality, i.e. the fewer mistakes the weak classifier makes, the higher its alpha will be. Since some weak classifiers are better than others, it seems to be a good idea to weight their votes according to their quality. The right hand of the strong classifier inequality reflects that if the weights add up to at least 50% of all the weights, classify x as 1 (face).

Upvotes: 1

ojy
ojy

Reputation: 2482

You need to determine theta_j for each feature. This is the training step for the weak classifier. In general, finding the best theta_j depend on the model of your weak classifier. In this particular case, you need to check all values that this particular feature takes on your training data, and see which of those values would lead to the lowest misclassification rate. This will be your theta_j.

Upvotes: 0

Related Questions