SIFT,SURF,ORB,FAST 特征提取算法比较

SIFT,SURF,ORB,FAST 特征提取算法比较



主要的特征检测方法有以下几种,在一般的图像处理库中(如opencv, VLFeat, Boofcv等)都会实现。

这里主要关注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

时间: 2024-12-18 14:47:17

SIFT,SURF,ORB,FAST 特征提取算法比较的相关文章

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/ 主要的特征检测方法有以下几种,在一般的图像处理库中(如opencv, VLFeat, Boofcv等)都会实现. FAS

OpenCV中feature2D学习——FAST特征点检测与SIFT/SURF/BRIEF特征提取与匹配

在前面的文章<OpenCV中feature2D学习--FAST特征点检测>中讲了利用FAST算子进行特征点检测,这里尝试使用FAST算子来进行特征点检测,并结合SIFT/SURF/BRIEF算子进行特征点提取和匹配. I.结合SIFT算子进行特征点提取和匹配 由于数据类型的不同,SIFT和SURF算子只能采用FlannBasedMatcher或者BruteForceMatcher来进行匹配(参考OpenCV中feature2D学习--BFMatcher和FlannBasedMatcher).

SIFT 特征提取算法总结

原文链接:http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html   主要步骤 1).尺度空间的生成: 2).检测尺度空间极值点: 3).精确定位极值点: 4).为每个关键点指定方向参数: 5).关键点描述子的生成. L(x,y,σ), σ= 1.6 a good tradeoff     D(x,y,σ), σ= 1.6 a good tradeoff 关于尺度空间的理解说明:图中的2是必须的,尺度空间是连续的.在 

BRISK特征提取算法

简介 BRISK算法是2011年ICCV上<BRISK:Binary Robust Invariant Scalable Keypoints>文章中,提出来的一种特征提取算法,也是一种二进制的特征描述算子. 它具有较好的旋转不变性.尺度不变性,较好的鲁棒性.在图像配准应用中,速度比较:SIFT>SURF>BRISK>FREAK>ORB,在对有较大模糊的图像配准时,BRISK算法在其中表现最为出色. BRISK算法 特征点检测 BRISK算法主要利用FAST9-16进行特

SIFT/SURF、haar特征、广义hough变换的特性对比分析[z]

 SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点,再使用二次插值法得到精确特征点所在的层(尺度),即完成了尺度不变. 二.在特征点选取一个与尺度相应的邻域,求出主方向,其中SIFT采用在一个正方形邻域内统计所有点的梯度方向,找到占80%以上的方向作为主方向:而SURF则选择圆形邻域,并且使用活动扇形的方法求出特征点主方向,以主方向对齐即完成旋转不变. 三.以主方

SIFT/SURF

SIFT/SURF为了实现不同图像中相同场景的匹配,主要步骤: 1.尺度空间的建立: 2.特征点的提取: 3.利用特征点周围邻域的信息生成特征描述子:(以特征点为中心,在周围邻域内统计特征,将特征附加到稳定点上,生成特征描述子) 4.特征点匹配. 如果两幅图像中的物体只是旋转和缩放的关系,加上图像的亮度及对比度的不同,要在这些条件下实现物体之间的匹配,只要找到多于三对物体间的匹配点就可以通过射影几何的理论建立它们的一一对应. 如何找到这样的匹配点呢?SIFT/SURF作者的想法是首先找到图像中的

FREAK特征提取算法

简介 FREAK算法是2012年CVPR上<FREAK: Fast Retina Keypoint>文章中,提出来的一种特征提取算法,也是一种二进制的特征描述算子. 它与BRISK算法非常相似,个人觉得就是在BRISK算法上的改进,关于BRISK算法详见上一篇博文:BRISK特征提取算法.FREAK依然具有尺度不变性.旋转不变性.对噪声的鲁棒性等. FREAK算法 采样模式 在BRISK算法中,采样模式是均匀采样模式(在同一圆上等间隔的进行采样):FREAK算法中,采样模式发生了改变,它采取了

模式匹配之常见匹配算法---SIFT/SURF、haar特征、广义hough变换的特性对比分析

识别算法概述: SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点,再使用二次插值法得到精确特征点所在的层(尺度),即完成了尺度不变. 二.在特征点选取一个与尺度相应的邻域,求出主方向,其中SIFT采用在一个正方形邻域内统计所有点的梯度方向,找到占80%以上的方向作为主方向:而SURF则选择圆形邻域,并且使用活动扇形的方法求出特征点主方向,以主方向对齐即完成旋转不变

医学CT图像特征提取算法--肺结节CT图像特征提取算法

摘自本人毕业论文<肺结节CT影像特征提取算法研究> 医学图像特征提取可以认为是基于图像内容提取必要特征,医学图像中需要什么特征基于研究需要,提取合适的特征.相对来说,医学图像特征提取要求更加高,因为对医生的辅助诊断起着至关重要的作用,所以需要严谨可靠的特征.肺结节CT影像特征提取也是属于医学图像特征提取领域的一个部分,有着医学图像特征提取的基本要求.既有其他医学图像特征提取的方法,也有针对肺结节的特定特征提取方法.本小节主要对一些常用的肺结节CT影像医学图像特征提取方法进行介绍,主要可以分为灰