SIFT,SURF,ORB,FAST,BRISK 特征提取算法比较
原文:http://blog.csdn.net/vonzhoufz/article/details/46594369
图像处理的基础就是要进行特征点的提取,feature(interest points) detect 的方法也在不断的进步,边检测,角点检测,直线检测,圆检测,SIFT特征点检测,同时描述符也在发展,为了匹配的高效,逐渐从高维特征向量到二进制向量…下面做一个简单的罗列,并调用opencv API看看效果!
承接上一篇文章。
Feature Detection Methods List:
- Canny Edge Detect, A Computational Approach to Edge Detection, 1986. The Canny edge detector is an edge detection operator that uses a multi-stage algorithm to detect a wide range of edges in images.
- Harris, A combined corner and edge detector, 1988. considering the differential of the corner score with respect to direction directly.
- GFTT,Good Features to Track,1994, Determines strong corners on an image.
- Matas-2000, Robust Detection of Lines Using the Progressive Probabilistic Hough Transform. 霍夫变换检测直线.
- 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. 128-dim(512B).
- SURF, Speeded Up Robust Features,2006,受SIFT启发,比SIFT快,健壮. 64-dim(256B).
- FAST ,Machine Learning for High-speed Corner Detection, 2006,wiki. Very fast, not robust to high level noise.
- ORB, ORB: an efficient alternative to SIFT or SURF,2011,基于FAST和BRIEF,比SIFT快两个数量级,可作为SIFT的替代(a fusion of FAST keypoint detector and BRIEF descriptor). 32B binary descriptor.
- BRISK,BRISK: Binary Robust Invariant Scalable Keypoints, 2011 . 64B binary descriptor.
- STAR,Censure: Center surround extremas for realtime feature detection and matching,2008,引用次数不高.scale-invariant center-surround detector (CENSURE) that claims to outperform other detectors and is capable of real-time implementation.
- MSER,Robust Wide Baseline Stereo from Maximally Stable Extremal Regions, 2002, 斑点检测(blob detection).
特征点提取算法比较(image dataset(27 pictures)):
ImageNO | SIFT | SURF | ORB | FAST | STAR | BRISK |
---|---|---|---|---|---|---|
0 | 2414 | 4126 | 500 | 11978 | 715 | 1538 |
1 | 4295 | 8129 | 500 | 16763 | 1166 | 1861 |
2 | 3404 | 4784 | 500 | 16191 | 816 | 1445 |
3 | 1639 | 2802 | 500 | 7166 | 203 | 699 |
4 | 1510 | 1484 | 497 | 29562 | 2383 | 3421 |
5 | 10572 | 8309 | 500 | 720 | 0 | 65 |
6 | 191 | 187 | 295 | 16125 | 825 | 1782 |
7 | 3352 | 4706 | 500 | 567 | 15 | 43 |
8 | 165 | 403 | 374 | 26701 | 1558 | 2762 |
9 | 4899 | 7523 | 500 | 12780 | 473 | 1299 |
10 | 1979 | 4212 | 500 | 10676 | 864 | 1498 |
11 | 3599 | 3294 | 500 | 663 | 0 | 70 |
12 | 163 | 168 | 287 | 7923 | 661 | 953 |
13 | 1884 | 2413 | 500 | 11681 | 548 | 2683 |
14 | 2509 | 5055 | 500 | 18097 | 1671 | 2898 |
15 | 9177 | 4773 | 500 | 7224 | 842 | 888 |
16 | 3332 | 3217 | 500 | 20502 | 1381 | 2612 |
17 | 5446 | 6611 | 500 | 16553 | 683 | 1959 |
18 | 4592 | 6033 | 500 | 706 | 54 | 216 |
19 | 266 | 509 | 459 | 9613 | 356 | 583 |
20 | 2087 | 2786 | 500 | 7459 | 223 | 607 |
21 | 2582 | 3651 | 500 | 12147 | 720 | 1530 |
22 | 2509 | 4237 | 500 | 14890 | 507 | 1113 |
23 | 1236 | 4545 | 500 | 6473 | 410 | 718 |
24 | 1311 | 2606 | 500 | 4293 | 199 | 491 |
25 | 237 | 387 | 500 | 657 | 122 | 132 |
26 | 968 | 1418 | 488 | 6609 | 45 | 343 |
Time Cost | 21.52 | 17.4 | 0.97 | 0.25 | 2.34 | 2.14 |
上面是通过一些图片集测的单单是feature detect 的时间,接下来通过一对图片看看feature detect和compute feature descriptor总共花费的时间开销(秒):
Image pair | SIFT | SURF | ORB | FAST(SURF) |
---|---|---|---|---|
eiffel-1,13.jpg | 2.77 | 3.22 | 0.11 | 0.22 |
可以看到计算descriptor的开销还是很大的,这里仅仅两张图片,所以主要开始是计算描述符,提取是很快的。
下面通过通过两张图片来看这几个算法匹配的效果,1639-1311-697表示图片1,2分别提取了1639,1311个keypoints,其中匹配的有697个。
Image pair | SIFT | SURF | ORB | FAST(SURF) | BRISK |
---|---|---|---|---|---|
eiffel-1,13.jpg | 1639/1311/697 | 2802/2606/1243 | 500/500/251 | 1196/1105/586 | 607/491/287 |
Canny Edge Detection效果:
Find line segments by probabilistic Hough transform:
Harris Corner Detection:
SIFT match效果图:
SURF match效果图:
ORB match效果图:
BRISK match效果图:
参考:
Canny Edge Detector Example
Feature Detection-Canny, HoughLinesP
Harris corner detector Example
BRIEF (Binary Robust Independent Elementary Features)
ORB (Oriented FAST and Rotated BRIEF)