opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
2015-11-05 17:08
1051 查看
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
参考:
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
主要的特征检测方法有以下几种,在一般的图像处理库中(如opencv, VLFeat, Boofcv等)都会实现。
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,受SIFT启发,比SIFT快,健壮
ORB,ORB: an efficient alternative to SIFT or SURF,2011,基于FAST,比SIFT快两个数量级,可作为SIFT的替代
BRISK,BRISK: Binary Robust Invariant Scalable Keypoints
STAR,Censure: Center surround extremas for realtime feature detection and matching,引用次数不高
MSER,Robust Wide Baseline Stereo from Maximally Stable Extremal Regions,2002,斑点检测
GFTT,Good Features to Track,1994,Determines strong corners on an image
HARRIS,Harris and M. Stephens (1988). “A combined corner and edge detector”,也是一种角点检测方法
KAZE(eccv2012)
FREAK()
deepmatching http://lear.inrialpes.fr/src/deepmatching/
这里主要关注SIFT,SURF,FAST,ORB的对比。
可以看到FAST提取了大量的特征点,在计算时间上,比SIFT SURF快两个数量级,ORB在FAST基础上得来的,特征点的质量比较高!
下面通过通过两张图片来看这几个算法匹配的效果,1639-1311-697表示图片1,2分别提取了1639,1311个keypoints,其中匹配的有697个。
接下来是eiffel-1.jpg,eiffel-13.jpg 俩图片通过不同算法进行匹配的结果示意图。
SIFT
SURF
ORB
FAST
需要注意的地方:
* 链接的时候加上
* SIFT,SURF是nonfree的,使用的时候需要方法
* FAST只是检测角点,要结合其他extractor如ORB,SIFT.
参考:
1.opencv feature2d
2.Feature Detection and Description
参考:
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
主要的特征检测方法有以下几种,在一般的图像处理库中(如opencv, VLFeat, Boofcv等)都会实现。
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,受SIFT启发,比SIFT快,健壮
ORB,ORB: an efficient alternative to SIFT or SURF,2011,基于FAST,比SIFT快两个数量级,可作为SIFT的替代
BRISK,BRISK: Binary Robust Invariant Scalable Keypoints
STAR,Censure: Center surround extremas for realtime feature detection and matching,引用次数不高
MSER,Robust Wide Baseline Stereo from Maximally Stable Extremal Regions,2002,斑点检测
GFTT,Good Features to Track,1994,Determines strong corners on an image
HARRIS,Harris and M. Stephens (1988). “A combined corner and edge detector”,也是一种角点检测方法
KAZE(eccv2012)
FREAK()
deepmatching http://lear.inrialpes.fr/src/deepmatching/
这里主要关注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 | 663 |
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 |
21 | 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 |
下面通过通过两张图片来看这几个算法匹配的效果,1639-1311-697表示图片1,2分别提取了1639,1311个keypoints,其中匹配的有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 |
SIFT
SURF
ORB
FAST
需要注意的地方:
* 链接的时候加上
pkg-config opencv --cflags --libs可以加入所有opencv的库
* SIFT,SURF是nonfree的,使用的时候需要方法
initModule_nonfree(),需要头文件opencv2/nonfree/nonfree.hpp
* FAST只是检测角点,要结合其他extractor如ORB,SIFT.
参考:
1.opencv feature2d
2.Feature Detection and Description
相关文章推荐
- Nginx+uWSGI+Django方法部署Django应用2
- Nginx Cache中$request_filename
- nginx 重写 rewrite 基础及实例
- Nginx+uWSGI+Django方法部署Django应用1
- 什么是POP3、SMTP和IMAP?
- 设置tomcat 开机启动
- 每天学一点linux(四)
- Linux常用命令
- Photoshop蚁人电影海报设计全过程详解
- Linux基本命令
- linux 驱动 insmod和probe函数
- hadoop家族介绍
- 10个很棒的学习Android 开发的网站(转)
- 解决nginx负载均衡的session共享问题
- Tomcat内存优化4.1续 ——使用MAT分析内存泄露
- Linux Linker 的顺序
- StyleCop
- 常用的opengl函数(三)
- Linux find命令简明
- 电商网站接入快递查询