Comparison of Sift,surf,orb,fast feature descriptor operators in OpenCV
Reference:
Http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_ Eweru9p9ghzd49wj1beob7vluqdbdrkeehao2q3b7rattxdruq-m9cr-w2yqaterdliu1t3whyoyqfi
http://www.cvchina.info/2011/07/04/whats-orb/
Http://www.bubuko.com/infodetail-909956.html
The main features of the detection methods are the following, in the general image processing library (such as OpenCV, Vlfeat, BOOFCV, etc.) will be implemented.
- FAST, machine learning for high-speed Corner Detection, 2006
- Sift,distinctive image Features from Scale-invariant keypoints,2004, invariant to Image translation, Scaling, and rotation, partially invariant to illumination changes and robust to local geometric distortion
- surf,speeded up robust features,2006, inspired by sift, faster than sift, robust
- Orb,orb:an efficient alternative to SIFT or surf,2011, based on fast, two orders of magnitude faster than SIFT, which can be used as an alternative to SIFT
- Brisk,brisk:binary Robust Invariant Scalable keypoints
- Star,censure:center surround Extremas for realtime feature detection and matching, not a high number of citations
- Mser,robust Wide Baseline Stereo from maximally Stable extremal regions,2002, spot detection
- Gftt,good Features to Track,1994,determines strong corners in an image
- Harris,harris and M. Stephens (1988). "A combined corner and edge detector" is also a corner detection method .
The main concern here is the contrast of Sift,surf,fast,orb.
Image NO |
SIFT |
SURF |
ORB |
FAST |
0 |
2414 |
4126 |
500 |
11978 |
1 |
4295 |
8129 |
500 |
16763 |
2 |
3404 |
4784 |
500 |
16191 |
3 |
1639 |
2802 |
500 |
7166 |
4 |
1510 |
1484 |
497 |
29562 |
5 |
10572 |
8309 |
500 |
720 |
6 |
191 |
187 |
295 |
16125 |
7 |
3352 |
4706 |
500 |
567 |
8 |
165 |
403 |
374 |
26701 |
9 |
4899 |
7523 |
500 |
12780 |
10 |
1979 |
4212 |
500 |
10676 |
11 |
3599 |
3294 |
500 |
36V |
12 |
163 |
168 |
287 |
7923 |
13 |
1884 |
2413 |
500 |
11681 |
14 |
2509 |
5055 |
500 |
18097 |
15 |
9177 |
4773 |
500 |
7224 |
16 |
3332 |
3217 |
500 |
20502 |
17 |
5446 |
6611 |
500 |
16553 |
18 |
4592 |
6033 |
500 |
706 |
19 |
266 |
509 |
459 |
9613 |
20 |
2087 |
2786 |
500 |
7459 |
21st |
2582 |
3651 |
500 |
12147 |
22 |
2509 |
4237 |
500 |
14890 |
23 |
1236 |
4545 |
500 |
6473 |
24 |
1311 |
2606 |
500 |
4293 |
25 |
237 |
387 |
500 |
657 |
26 |
968 |
1418 |
488 |
6609 |
Time Cost |
21.52 |
17.4 |
0.97 |
0.25 |
You can see that fast extracts a large number of feature points, in the calculation time, faster than sift surf two orders of magnitude, the orb on fast basis, the quality of the feature point is higher!
Below through two pictures to see these algorithms match the effect, 1639-1311-697 represents the picture 1, 2 respectively extracted 1639,1311 keypoints, which matched 697.
Image pair |
SIFT |
SURF |
ORB |
FAST (SURF) |
Eiffel-1.jpg,eiffel-13.jpg |
1639-1311-697 |
2802-2606-1243 |
500-500-251 |
1196-1105-586 |
The next step is to eiffel-1.jpg,eiffel-13.jpg the two images by matching the results with different algorithms.
Sift
SURF
Orb
FAST
Places to be aware of:
* When linking, add a pkg-config opencv --cflags --libs
library that can be added to all OPENCV
* Sift,surf is nonfree, need the method when use initModule_nonfree()
, need header file opencv2/nonfree/nonfree.hpp
* Fast only detects corner points, to be combined with other extractor such as orb,sift.
Reference:
1.OPENCV feature2d
2.Feature Detection and Description
Comparison of Sift,surf,orb,fast feature descriptor operators in OpenCV