What is the best solution for rotation invariant detector?

lizarisk picture lizarisk · Feb 14, 2013 · Viewed 9.4k times · Source

I'd like to create an object detector based on cascade classifier, the only problem is that LBP and Haar features are not rotation invariant. The first thing that comes to my mind is to rotate the training sample at different angles, but I doubt that the resulting classifier would have good quality, moreover, the object could have stretched proportions. There are many rotation invariant detectors, for example, iPhone recognizes faces in real time in any orientation, so I wonder how do they achieve this? I would prefer to use OpenCV for this.

Answer

nmarkus picture nmarkus · Feb 14, 2014

Check out the object detection framework available at https://github.com/nenadmarkus/pico.

The framework enables you to learn a custom object detector (for example, for finding frontal, upright faces) and then use it at runtime for rotation invariant detection.

This is achieved by scanning the image with a rotated version of the object detector at a number of different orientations. Note that this can be done without cascade retraining or image resampling, and it should work in real-time on modern machines (the provided face detection demo does).

The details are given in the paper available at http://arxiv.org/abs/1305.4537.