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

2023-05-16

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


主要的特征检测方法有以下几种,在一般的图像处理库中(如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 NOSIFTSURFORBFAST
02414412650011978
14295812950016763
23404478450016191
3163928025007166
41510148449729562
5105728309500720
619118729516125
733524706500567
816540337426701
94899752350012780
101979421250010676
1135993294500663
121631682877923
131884241350011681
142509505550018097
15917747735007224
163332321750020502
175446661150016553
1845926033500706
192665094599613
20208727865007459
212582365150012147
222509423750014890
23123645455006473
24131126065004293
25237387500657
2696814184886609
Time Cost21.5217.40.970.25

可以看到FAST提取了大量的特征点,在计算时间上,比SIFT SURF快两个数量级,ORB在FAST基础上得来的,特征点的质量比较高!

下面通过通过两张图片来看这几个算法匹配的效果,1639-1311-697表示图片1,2分别提取了1639,1311个keypoints,其中匹配的有697个。

Image pairSIFTSURFORBFAST(SURF)
eiffel-1.jpg,eiffel-13.jpg1639-1311-6972802-2606-1243500-500-2511196-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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Verilog电路设计小技巧之表达式位宽

    不积跬步无以至千里 记录Verilog电路设计中的点点滴滴 今天想说说verilog中表达式的位宽问题 xff0c 编码过程中 xff0c 经常会出现很多表达式位宽不匹配 基本上在跑lint的时候 xff0c 只要一个表达式中有任意2个操作
  • MicroPython在Pycharm上的运行方式

    安装插件micropython 安装CP210x VCP Winodws 可在设备管理器中查看 安装python环境变量envs 在Pycharm中激活环境变量 eg xff1a activate MicroPython pip insta
  • VS2012运行C++程序出现fatal error LNK1104: 无法打开文件“kernel32.lib”错误

    VS2012运行C 43 43 程序出现fatal error LNK1104 无法打开文件 kernel32 lib 错误 一 本人的安装环境 xff1a win7 64位 二 解决方法 当时安装完成之后 xff0c 运行一个简单的Hel
  • 调试llvm时出现collect2: fatal error: ld terminated with signal 9

    安装llvm debug版本 release版本的安装过程可以参考https blog csdn net vincentuva article details 82993563 在安装使用debug版本时 xff0c 只需要进入到build
  • 地址栏中的#是什么意思

    我们在开发vue时 xff0c 地址栏中会出现 xff0c 如下图所示 xff1a 当我们点击跳转A页面时 xff1a 那么地址栏中的 到底是什么意思 xff1f 如何去掉 xff1f 路由的两种显示模式 Hash模式 这个模式下地址栏中包
  • Anaconda静默安装

    我们默认安装Anaconda时 xff0c 需要进行交互才可以完成安装 xff0c 例如需要输入yes xff0c 或者回车 有时候我们只需要他进行默认安装即可 xff0c 不需要进行交互 命令如下 xff1a span class tok
  • 使用godoc创建可以本地浏览的go文档站点

    Golang 的官网地址是golang org xff0c 有的时候国内打不开 现在国内的可以使用 xff08 golang google cn xff09 其实 xff0c 如果已经安装好了 go xff0c 可以在本地直接查看go 文档
  • 慎用 dpkg --force-all 安装 linuxqq

    最近与一个朋友联络 xff0c 要用 QQ 去 xff31 xff31 官网上只有比较早的版本 xff0c 安装后 xff0c 还提示必须更新 xff0c 点击还找不到下载 xff0c 悲了个催 后面幸好有 web qq 暂时解决了这个问题
  • 又开了一个BLOG,发个贴纪念一下

    很久没写技术方面的BLOG了 xff0c 最近因为查询资料看了很多比人的BLOG 感觉心里有些痒痒的 xff0c 所以决定再次开一个BLOG xff0c 本人是搞嵌入式开发的 xff0c 对各种通讯终端 xff0c CPU以及LINUX比较
  • How to make linux boot from network

    1 Enable dhcp server on a linux server the etc dhcpd conf should be looked like this ddns update style interim ignore cl
  • 转回CSDN了

    在BLOGSPOT上面挣扎了几个月 xff0c 还是放弃了 xff0c 毕竟看我的BLOG绝大多数肯定是中国人 xff0c 一个老被中国政府封的BLOG是没办法让别人接受的 xff0c 哎 xff0c 还是对BLOGSPOT恋恋不舍阿 xf
  • 最近在研究Mythtv

    mythtv是一个linux下的开源电视节目观看 录制和管理的软件 xff0c 如果装在普通PC上就可以变成一台电视PC xff0c 可以使用遥控器来看电视 xff0c 录节目 xff0c 如果装在一个嵌入式系统里就是一个机顶盒啦 xff0
  • arm linux 内核移植及驱动调试-网卡(1)

    最近在给一块ARM开发板 扬创的2440 移植新的kernel xff0c 原来的驱动都在 xff0c 不过还是碰到不少问题 xff0c 主要是对ARM LINUX的一些结构不甚了解 xff0c 这里作个笔记以便自己或他人查阅 前面没有什么
  • UBUNTU 下的IE6搞定

    可以上网上银行 支付宝 就是有点卡 不知道为什么 另外还有些小bug 不过我已经非常满意了 先装好wine 在ubuntu下面就是 sudo apt get install wine cabextract 然后直接下载安装ie4linux就
  • UBUNTU 下编译POKY

    记录一下我在UBUNTU下编译POKY的一些TIPS xff0c 防止以后再编的时候忘掉 xff0c 又要重新GOOGLE 1 解开pinky的包 2 进入pinky目录输入 source poky init build env 3 修改b
  • LLVM编译collect2: fatal error: ld terminated with signal 9

    报错 xff1a collect2 fatal error ld terminated with signal 9 查了一下这个报错 xff0c 可能是内存不足 xff0c 看到有前人的解决方法 xff0c 创建了20G的交换空间 xff1
  • Rust安装与编写第一个rust程序

    Rust 是 Mozilla 开发的注重安全 性能和并发性的编程语言 下边来演示一下如何安装rust xff0c 并尝试创建第一个rust项目 使用 rustup 脚本安装 xff1a 第一步 xff1a 执行 curl https sh
  • (C语言)栈应用简易计算器实现

    利用栈实现简易计算器 进行包含 43 间的计算 include lt stdio h gt include lt string h gt define MaxSize 100 typedef struct CharStack 字符栈 cha
  • 【实战原创】Centos7下Samba服务器配置(实战)

    这篇文章主要介绍了 Centos7 下 Samba 服务器配置 xff08 实战 xff09 xff0c 文中通过示例代码介绍的非常详细 xff0c 对大家的学习或者工作具有一定的参考学习价值 xff0c 需要的朋友们下面随着小编来一起学习
  • 批量修改word中的公式--mathtype

    1 用word打开一个需要编辑公式的文档 2 编辑公式的格式 xff0c 首先 xff0c 双击一个公式 xff0c 打开数学公式编辑器MathType xff0c 进入编辑状态 xff0c 点击大小菜单中的自定义选项 xff0c 修改字号

随机推荐