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.