opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
参考:
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 |
可以看到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.
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较的更多相关文章
- [转]SIFT,SURF,ORB,FAST 特征提取算法比较
转载地址:https://blog.csdn.net/vonzhoufz/article/details/46461849 主要的特征检测方法有以下几种,在一般的图像处理库中(如opencv, VLF ...
- 模式匹配之常见匹配算法---SIFT/SURF、haar特征、广义hough变换的特性对比分析
识别算法概述: SIFT/SURF基于灰度图, 一.首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然后进行在极值点周围26个点进行NMS,从而得到粗略的特征点, ...
- OpenCV教程(47) sift特征和surf特征
在前面三篇教程中的几种角检测方法,比如harris角检测,都是旋转无关的,即使我们转动图像,依然能检测出角的位置,但是图像缩放后,harris角检测可能会失效,比如下面的图像,图像放大之前可 ...
- OpenCV特征点提取----Fast特征
1.FAST(featuresfrom accelerated segment test)算法 http://blog.csdn.net/yang_xian521/article/details/74 ...
- SIFT在OpenCV中的调用和具体实现(HELU版)
前面我们对sift算法的流程进行简要研究,那么在OpenCV中,sift是如何被调用的?又是如何被实现出来的了? 特别是到了3.0以后,OpenCV对特征点提取这个方面进行了系统重构,那么整个代码结构 ...
- FAST特征点检测
Features From Accelerated Segment Test 1. FAST算法原理 博客中已经介绍了很多图像特征检测算子,我们可以用LoG或者DoG检测图像中的Blobs(斑点检测) ...
- [OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (一)
部分 V图像特征提取与描述 OpenCV-Python 中文教程(搬运)目录 29 理解图像特征 目标本节我会试着帮你理解什么是图像特征,为什么图像特征很重要,为什么角点很重要等.29.1 解释 我相 ...
- FAST特征点检测算法
一 原始方法 简介 在局部特征点检测快速发展的时候,人们对于特征的认识也越来越深入,近几年来许多学者提出了许许多多的特征检测算法及其改进算法,在众多的特征提取算法中,不乏涌现出佼佼者. 从最早期的Mo ...
- 特征提取算法的综合实验(多种角度比较sift/surf/brisk/orb/akze)
一.基本概念: 作用:特征点提取在"目标识别.图像拼接.运动跟踪.图像检索.自动定位"等研究中起着重要作用: 主要算法: •FAST ,Machine Learning forHi ...
随机推荐
- Python 下载 tushare 数据,然后调用 C++ DLL 计算 wMA 存入本地 csv 文件再 python 读取
CMakeLists.txt project(wMA) add_library(wMA SHARED wMA.cpp) wMA.h #pragma once #ifndef WMA_WMA_H #de ...
- FlumeNG 笔记
环境:CentOS6.6 64位 + FlumeNG 1.6 请参考推荐文档: Flume-ng的原理和使用 - JunezChen Blog - SegmentFault https://segm ...
- iOS视频边下边播--缓存播放数据流
实现视频边下边播,这里的边下边播不是单独开一个子线程去下载,而是把视频播放的数据给保存到本地.简而言之,就是使用一遍的流量,既播放了视频,也保存了视频. 用到的框架:<AVFoundation/ ...
- 锁(MySQL篇)—之MyISAM表锁
前言 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...
- javascript运动框架
下面这个一个运动框架可以控制元素在一个属性上的运动,同时,可以调用回调函数. /* 获取元素某个属性的值 @obj: 对象 @attr: 属性值 */ function getStyle(obj, a ...
- mysql_config 问题
1 .you should have mysql_config available in $PATH For CentOS: yum install mysql-devel For openSUSE: ...
- 《jQuery判断radio、checkbox、select 是否选中和设置选中问题以及获取选中值》总结
<form> <input type="radio" name="gender" id="man" value=" ...
- MongoDB安装配置示例
参考 http://www.runoob.com/mongodb/mongodb-window-install.html http://www.cnblogs.com/lecaf/archive/20 ...
- 排序算法总结------选择排序 ---javascript描述
每当面试时避不可少谈论的话题是排序算法,上次面试时被问到写排序算法,然后脑袋一懵不会写,狠狠的被面试官鄙视了一番,问我是不是第一次参加面试,怎么可以连排序算法都不会呢?不过当时确实是第一次去面试,以此 ...
- Mac OS X 中一些常用的命令行技巧
一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...