This is a question about the Viola-Jones Algorithm (used for face detection) as described here
http://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework
and in the original paper
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.110.4868
My questions are:
One way to answer this is to look in opencv/apps/traincascade/haarfeatures.h
and opencv/apps/traincascade/haarfeatures.cpp
.
In CvHaarEvaluator::generateFeatures()
, the features are calculated for all possible rectangles that will fit in the given window size. So yes there are a lot.
The features are generated in all positions in the window where they will fit, and therefore as many times as possible.
Flipping or inverting a feature would only change its sign and would provide no addition information, so that is not done. Rotated features are not used because they could not be efficiently calculated using integral images. However, "tilted" (by 45 degrees) features can optionally be generated - see Lienhart and Maydt (2002) for details.
Also the OpenCv doco shows all the features, you will see that there are some that are not in the Viola Jones paper. The BASIC
option uses just the Viola Jones features.