Rotated object detection by Viola jones Algorithm In my project I need to detect rotated and non-rotated faces in real time. I read original articles and try to use common implementation in matlab and openCV. And as I understood Haar features are not rotation invariant. What should I do for successes detection of rotated faces ? I have some ideas about it. Which is more 'real'?


Try to rotate original image with some angle step
Train own classifier on rotated examples
Use any modified Viola Jones Algorithm from research articles 
Use another algorithm (like SURF, KLT, Skin based face detection)
You are correct, Haar features, as well as LBP and HOG are not rotation invariant. I have experimented with vision.CascadeObjectDetector in MATLAB's Computer Vision System Toolbox, and found that the face detector model it comes with can tolerate about 15 degrees of in-plane rotation.

So if you want to handle in-plane rotation, the easiest thing is to rotate the image by 15 degree increments and run the detector each time.  If you are talking about out-of-plane rotation, then you would need multiple detectors, such as the frontal and profile detectors that come with MATLAB.

There is another possibility. If you need to detect the faces in video, then you can handle rotations and even partial occlusions by tracking them using KLT.  See this example.