An interest point (key point, salient point) detector is an algorithm that chooses points from an image based on some criterion. Typically, an interest point is a local maximum of some function, such as a “cornerness” metric.
A descriptor is a vector of values, which somehow describes the image patch around an interest point. It could be as simple as the raw pixel values, or it could be more complicated, such as a histogram of gradient orientations.
Together an interest point and its descriptor is usually called a local feature.
Local features are used for many computer vision tasks, such as image registration, 3D reconstruction, object detection, and object recognition.
Harris, Min Eigen, and FAST are interest point detectors, or more specifically, corner detectors.
SIFT includes both a detector and a descriptor.
The detector is based on the difference-of-Gaussians (DoG), which is an approximation of the Laplacian. The DoG detector detects centers of blob-like structures. The SIFT descriptor is a based on a histogram of gradient orientations.
SURF is meant to be a fast approximation of SIFT.
BRISK, like SIFT and SURF, includes a detector and a descriptor. The detector is a corner detector. The descriptor is a binary string representing the signs of the difference between certain pairs of pixels around the interest point.
第 2 个链接包括以下内容
What are the main features in an image? How can finding those features be useful to us?
Okay, Corners are good features? But how do we find them?
We will look into Shi-Tomasi corner detection
Harris corner detector is not good enough when scale of image changes. Lowe developed a breakthrough method to find scale-invariant features and it is called SIFT
SIFT is really good, but not fast enough, so people came up with a speeded-up version called SURF.
All the above feature detection methods are good in some way. But they are not fast enough to work in real-time applications like SLAM. There comes the FAST algorithm, which is really “FAST”.
SIFT uses a feature descriptor with 128 floating point numbers. Consider thousands of such features. It takes lots of memory and more time for matching. We can compress it to make it faster. But still we have to calculate it first. There comes BRIEF which gives the shortcut to find binary descriptors with less memory, faster matching, still higher recognition rate.
SIFT and SURF are good in what they do, but what if you have to pay a few dollars every year to use them in your applications? Yeah, they are patented!!! To solve that problem, OpenCV devs came up with a new “FREE” alternative to SIFT & SURF, and that is ORB.
We know a great deal about feature detectors and descriptors. It is time to learn how to match different descriptors. OpenCV provides two techniques, Brute-Force matcher and FLANN based matcher.
Now we know about feature matching. Let’s mix it up with calib3d module to find objects in a complex image.