ORB (oriented Brief) feature extraction algorithm, its predecessor Brief, is a EPFL calonder on the ECCV2010 of a can be quickly calculated and expressed as a binary coding descriptor, the main idea is to randomly select a number of points near the feature point pair, The size of the grayscale values of these pairs is combined into a binary string, and the binary string is used as the feature descriptor of the feature point. Brief the biggest advantage is the speed, but its shortcomings are quite obvious, mainly in the following aspects:
- does not have rotational invariance;
- Does not have scale invariance;
- Poor performance against noise.
The Orb is trying to solve the above shortcomings of 1 and 3, that is, has a rotational invariance at the same time has a good ability to resist noise. In terms of computing speed, the orb algorithm is 100 times times of the SIFT algorithm and 10 times times that of the surf algorithm.
The Orb algorithm solves the problem of rotational invariance:
Fast is used as the feature point detection operator in Orb algorithm. In the SIFT algorithm, the gradient histogram sets the direction of the first peak to the main direction of the feature point; if the measure of the second peak reaches 80% of the peak, the direction of the second peak is also set as the primary direction, and the algorithm is relatively time-consuming. In the ORB scheme, the main direction of the feature point is calculated by the moment (moment). Once you have the main direction, you can extract the brief descriptors based on the main direction.
The orb algorithm solves the noise-sensitive problem in the following ways:
Since the Orb algorithm does not directly compare pixels to points, it chooses an area centered on the pixel as the entire comparison object, thus improving the ability to resist noise.
on the scale invariance problem:
The Orb does not solve the problem of scale invariance (because fast itself does not have scale invariance) and this kind of fast feature descriptors, which are usually applied in real-time video processing, can be traced by some heuristic strategies to solve the problem of scale invariance.
related papers Download:
Calonder M., Lepetit v., Strecha C., Fua P.: brief:binary robust Independent elementary Features. ECCV 2010
Orb:an efficient alternative to SIFT or SURF
As a brief improvement, the Orb was already implemented in the OPENCV 2.4.2 version. In OpenCV, The Orb class inherits from the Feature2d class, and there are two other classes: Orbfeaturedetector and Orbdescriptorextractor, which are equivalent to the Orb class.
a simple experiment:
Orb feature extraction and matching results (unfiltered feature points):
Orb feature extraction and matching results (filtered feature points):
The experimental code is written in reference to the example of "Getting Started with OpenCV 3 programming."
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
OpenCV2 Study Notes (22): Orb Feature Extraction