[转]SIFT,SURF,ORB,FAST 特征提取算法比较
转载地址:https://blog.csdn.net/vonzhoufz/article/details/46461849
主要的特征检测方法有以下几种,在一般的图像处理库中(如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”,也是一种角点检测方法
这里主要关注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 |
可以看到FAST提取了大量的特征点,在计算时间上,比SIFT SURF快两个数量级,ORB在FAST基础上得来的,特征点的质量比较高!
下面通过通过两张图片来看这几个算法匹配的效果,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 |
接下来是eiffel-1.jpg,eiffel-13.jpg 俩图片通过不同算法进行匹配的结果示意图。
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
[转]SIFT,SURF,ORB,FAST 特征提取算法比较的更多相关文章
- opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较 参考: http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_ ...
- 第十三节、SURF特征提取算法
上一节我们已经介绍了SIFT算法,SIFT算法对旋转.尺度缩放.亮度变化等保持不变性,对视角变换.仿射变化.噪声也保持一定程度的稳定性,是一种非常优秀的局部特征描述算法.但是其实时性相对不高. SUR ...
- SIFT 特征提取算法总结
原文链接:http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html 主要步骤 1).尺度空间的生成: 2).检测尺度空间极 ...
- opencv3.0中contrib模块的添加+实现SIFT/SURF算法
平台:win10 x64 +VS 2015专业版 +opencv-3.x.+CMake+Anaconda3(python3.7.0) Issue说明:Opencv3.0版本已经发布了有一段时间,在这段 ...
- 特征提取算法(3)——SIFT特征提取算子
目录: 前言 1.高斯尺度空间GSS 2.高斯差分DOG 用DoG检测特征点 GSS尺度选择 3.图像金字塔建立 用前一个octave中的倒数第三幅图像生成下一octave中的第一幅图像 每层octa ...
- 【特征检测】BRISK特征提取算法
[特征检测]BRISK特征提取算法原创hujingshuang 发布于2015-07-24 22:59:21 阅读数 17840 收藏展开简介 BRISK算法是2011年ICCV上< ...
- OPENCV图像特征点检测与FAST检测算法
前面描述角点检测的时候说到,角点其实也是一种图像特征点,对于一张图像来说,特征点分为三种形式包括边缘,焦点和斑点,在OPENCV中,加上角点检测,总共提供了以下的图像特征点检测方法 FAST SURF ...
- 模式匹配之常见匹配算法---SIFT/SURF、haar特征、广义hough变换的特性对比分析
识别算法概述: SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点, ...
- linux/ubuntu下最简单好用的python opencv安装教程 ( 解决 imshow, SIFT, SURF, CSRT使用问题)
希望这篇文章能彻底帮你解决python opencv安装和使用中的常见问题. 懒人请直奔这一节, 一条命令安装 opencv 使用python-opencv常用的问题 在linux中使用python版 ...
随机推荐
- 非Windows系统 如何解压带中文密码和中文文件名的zip压缩文件
数据科学交流群,群号:189158789 ,欢迎各位对数据科学感兴趣的小伙伴的加入! 一.安装unar软件包: Linux(Debian系列): apt install unarLinux(RedHa ...
- Java——反射机制
反射概念: Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifier ...
- yuan先生博客地址
1 Web应用 https://www.cnblogs.com/yuanchenqi/articles/8869302.html2 http协议 https://www.cnblogs.com/yu ...
- EIGRP和OSPF__邻居发现
散知识点 1.当配置通配符时,它们的取值总是块尺寸减去1:/28的块尺寸为16,因此当我们添加网络声明时,使用了此子网号和一个在需配置的八位位组中添加值为15的通配符. 邻居发现 1.在EIGRP路由 ...
- Neeto-Vue:我为了记笔记,手写了一个为知笔记客户端
构建自托管的笔记系统 这两年各种笔记系统快速井喷,好像谁都能来掺一脚,app store随便搜索一个关键字就会有一大堆的结果,从老牌的印象笔记,Bear,MWeb,有道云笔记再到新星专注笔记之类,从买 ...
- SpringSecurity注解的使用
@Secured 判断用户具有某个角色,可以访问方法 开启注解功能 使用注解先要开启注解功能!可以在启动类上,也可以在配置类上添加 @EnableGlobalMethodSecurity(secure ...
- Educational Codeforces Round 94 (Rated for Div. 2)【ABCD】
比赛链接:https://codeforces.com/contest/1400 A. String Similarity 题意 给出一个长 $2n-1$ 的二进制串 $s$,构造一个长 $n$ 的字 ...
- P1268 树的重量(板子)
题目: 题目描述 树可以用来表示物种之间的进化关系.一棵"进化树"是一个带边权的树,其叶节点表示一个物种,两个叶节点之间的距离表示两个物种的差异.现在,一个重要的问题是,根据物种之 ...
- Warm up HDU - 4612 树的直径
题意:给出n个点和m条边的无向图,存在重边,问加一条边以后,剩下的桥的数量最少为多少. 题解: 你把这个无向图缩点后会得到一个只由桥来连接的图(可以说这个图中的所有边都是桥,相当于一棵树),然后我们只 ...
- GYM101810 ACM International Collegiate Programming Contest, Amman Collegiate Programming Contest (2018) M. Greedy Pirate (LCA)
题意:有\(n\)个点,\(n-1\)条边,每条边正向和反向有两个权值,且每条边最多只能走两次,有\(m\)次询问,问你从\(u\)走到\(v\)的最大权值是多少. 题解:可以先在纸上画一画,不难发现 ...