Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best solution for rotation invariant detector?

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.

like image 835
lizarisk Avatar asked Feb 14 '13 07:02

lizarisk


People also ask

How do you achieve rotation invariance?

In physics, if a system behaves the same regardless of how it is oriented in space, then its Lagrangian is rotationally invariant. According to Noether's theorem, if the action (the integral over time of its Lagrangian) of a physical system is invariant under rotation, then angular momentum is conserved.

What point is invariant under rotation?

A rotation of a three-dimensional figure in space has a line of invariant points called the axis of rotation. Rotation, like translation and reflection, is called an isometric transformation since it does not change the shape of the figure being rotated.

What is rotational invariance in image processing?

Two determine if two images are rotated versions of each other, one can either exhaustively rotate them in order to find out if the two match up at some angle, or alternatively extract features from the images that can then be compared to make the same decision.

What properties are invariant under a rotation?

Under rotation lengths, areas, angles do not change but orientation does. Under reflection lengths, areas and angles do not change but orientation does. Under translation lengths, areas, angles and orientation do not change.


4 Answers

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.

like image 55
nmarkus Avatar answered Oct 20 '22 20:10

nmarkus


Fourier descriptors are rotation invariants (and translation as well as scaling invariants); the idea then would be to train whatever classifier your confortable with on the Fourier Descriptor result (PCA on Fourier descriptor, associated with a SVM seems to be a logical choice).

See Fourier Descriptors (Wolfram)

like image 3
CTZStef Avatar answered Oct 20 '22 21:10

CTZStef


for matching logos I think this is what you need: http://www.ijera.com/papers/Vol2_issue5/JW2517421747.pdf

like image 2
Abhishek Thakur Avatar answered Oct 20 '22 21:10

Abhishek Thakur


What about some simple solution....

Object Detection using SURF

like image 1
G453 Avatar answered Oct 20 '22 21:10

G453