图像处理检测方法 — ORB(Oriented FAST and Rotated BRIEF)
1、FAST
FAST算子的基本原理是:若某像素点与其周围领域内足够多的连续的像素点存在某一属性差异,并且该差异大于指定阈值,则可以断定该像素点与其邻域像素有可被识别的不同之处,可以作为一个特征点(角点);对于灰度图像,FAST算子考察的属性是像素与其邻域的灰度差异。
这个检查过程可以用下图更清楚的描述:对于图像上所有像素点,考察其7*7邻域内以该点为圆心,半径是3的圆周上的共计16个像素点和中心点的差异。如果有连续的12(或9)个像素点与中心点的灰度差的绝对值大于或低于某一给定阈值,则该点被检测为FAST特征点。
为了提高检测速度,FAST提出分割测试的概念,不是逐个遍历考察圆周上的16个像素点,而是先考察垂直和水平方向上的4个点,1,9,5,13 进行测试(先测试 1 和 19, 如果它们符合
阈值要求再测试 5 和 13)。如果 p 是角点,那么这四个点中至少有 3 个要符合阈值要求。如果不是的话肯定不是角点,就放弃。对通过这步测试的点再继续进行测试(是否有 12 的点符合阈值要求)。基于FAST算子要求圆周上最少有12(或9)个连续的差异较大的点,如果垂直和水平方向上4个点中有2个或2个以上不满足要求的点,则可以直接判断该点不是FAST特征点,这样可以排除绝大部分非FAST特征点。进过初步筛选,在对剩下的符合条件的点实施FAST算子进行特征点检测,最后进过非极大值抑制后得到最终的特征点检测结果。 
但它的缺点是不具有方向性,尺度不变性。但速度快。缺点:
- 当 n<12 时它不会丢弃很多候选点 (获得的候选点比较多)。
- 像素的选取不是最优的,因为它的效果取决与要解决的问题和角点 的分布情况。
- 高速测试的结果被抛弃
- 检测到的很多特征点都是连在一起的。
前 3 个问题可以通过机器学习的方法解决,最后一个问题可以使用非最大值抑 制的方法解决。 检测到的很多特征点都是连在一起的,采用非极大值抑制解决。
2、BRIEF
- 取目标像素点一定范围内的领域,一般9*9。
- 对该领域进行高斯模糊处理,一般选核参数σ=2
- 以满足高斯分布的方式在该领域内随机选取N组像素点对,比较这两个像素点的灰度值大小,x>=y则返回1,x< y则返回0 (所有特征点的计算均采用统一的随机取样模板)
- 将步骤3的结果组合成一个N位的二进制编码,即为目标像素点的特征值。根据精度和速度要求,一般N会取256和32.
BRIEF 不去计算描述符而是直接找到一个二进制字符串。这种算法使用的是已经平滑后的图像,它会按照一种特定的方式选取一组像素点对 n d (x,y),然后在这些像素点对之间进行灰度值对比。例如,第一个点对的灰度值分别为 p 和 q。如果 p 小于 q,结果就是 1,否则就是 0。就这样对 n d个点对进行对比得到一个 n d 维的二进制字符串。n d 可以是128,256,512。OpenCV 对这些都提供了支持,但在默认情况下是 256(OpenCV 是使用字节表示它们的,所以这些值分别对应与 16,32,64)。当我们获得这些二进制字符串之后就可以使用汉明距离对它们进行匹配了。非常重要的一点是:BRIEF 是一种特征描述符,它不提供查找特征的方法。所以我们不得不使用其他特征检测器,比如 SIFT 和 SURF 等。原始文献推荐使用 CenSurE 特征检测器,这种算法很快。而且 BRIEF 算法对 CenSurE关键点的描述效果要比 SURF 关键点的描述更好。
原生的BRIEF的缺点也比较明显,不具备旋转不变性、不具备尺度不变性而且对噪声敏感,但是它算法简单而且计算复杂度低,计算速度很快。
3、ORB (Oriented FAST and Rotated BRIEF)
原理方法:http://blog.csdn.net/yang843061497/article/details/38553765
首先它使用 FAST 找到关键点,然后再使用 Harris角点检测对这些关键点进行排序找到其中的前 N 个点。它也使用金字塔从而产 生尺度不变性特征。但是有一个问题,FAST 算法步计算方向。那旋转不变性怎样解决呢?作者进行了如下修改。它使用灰度矩的算法计算出角点的方向。以角点到角点所在(小块)区域 质心 的方向为向量的方向。为了进一步提高旋转不变性,要计算以角点为中心半径为 r 的圆形区域的矩,再根据矩计算除方向。对于描述符,ORB 使用的是 BRIEF 描述符。但是我们已经知道 BRIEF对与旋转是不稳定的。所以我们在生成特征前,要把关键点领域的这个 patch的坐标轴旋转到关键点的方向。
图像处理检测方法 — ORB(Oriented FAST and Rotated BRIEF)的更多相关文章
- ORB(oriented FAST and rotated BRIEF)特征提取与检测
ORB采取FAST算法检测特征点,采取BRIEF算法计算特征点描述子. 1.检测特征点 检测候选特征点周围一圈的像素值,若有足够多的像素值与候选特征点的差异都较大,则认为该候选特征点是特征点. 对于上 ...
- 图像处理检测方法 — SIFT和SURF
0.特征与匹配方法总结汇总对比 参考网址:http://simtalk.cn/2017/08/18/%E7%89%B9%E5%BE%81%E4%B8%8E%E5%8C%B9%E9%85%8D/#ORB ...
- [转]ORB特征提取-----FAST角点检测
转载地址:https://blog.csdn.net/maweifei/article/details/62887831 (一)ORB特征点提取算法的简介 Oriented FAST and Rota ...
- 人脸检测学习笔记(数据集-DLIB人脸检测原理-DLIB&OpenCV人脸检测方法及对比)
1.Easily Create High Quality Object Detectors with Deep Learning 2016/10/11 http://blog.dlib.net/201 ...
- 综述 | SLAM回环检测方法
本文作者任旭倩,公众号:计算机视觉life成员,由于格式原因,公式显示可能出问题,建议阅读原文链接:综述 | SLAM回环检测方法 在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿 ...
- CVPR2019目标检测方法进展综述
CVPR2019目标检测方法进展综述 置顶 2019年03月20日 14:14:04 SIGAI_csdn 阅读数 5869更多 分类专栏: 机器学习 人工智能 AI SIGAI 版权声明:本文为 ...
- 目标检测方法总结(R-CNN系列)
目标检测方法系列--R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD 目录 相关背景 从传统方法到R-CNN 从R-CNN到SPP Fast R-CNN ...
- R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD, R-FCN系列深度学习检测方法梳理
1. R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation 技术路线:selec ...
- 目标检测方法——R-FCN
R-FCN论文阅读(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 目录 作者及相关链接 方法概括 方法 ...
随机推荐
- javascript判断浏览器核心
20 21 22 23 24 /** * 判断浏览器核心 * @return IE6.0/IE7.0/IE8.0/FireFox/Opera/other * @author ypz */ functi ...
- MapReduce源码分析之LocatedFileStatusFetcher
LocatedFileStatusFetcher是MapReduce中一个针对给定输入路径数组,使用配置的线程数目来获取数据块位置的实用类.它的主要作用就是利用多线程技术,每个线程对应一个任务,每个任 ...
- zabbix 自定义脚本监控activemq
1. 编写获取activemq队列积压消息(check-amq.sh) #!/bin/bash QUEUENAME=$ MQ_IP='172.16.1.56' curl -uadmin:admin h ...
- py.test
只运行某一个用例 pytest test_mod.py::test_func 或者 pytest test_mod.py::TestClass::test_method
- Android开发 adb命令提示:Permission denied (转)
如题:模拟器版本->android 7.1.1 遇到这样的情况把模拟器root一下就好了:su root =============2017年4月3日20:57:33============== ...
- JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期
JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期. JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成ser ...
- Ant自己主动编译打包&公布 android项目
Eclipse用起来尽管方便,可是编译打包android项目还是比較慢,尤其将应用打包公布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自己主动编译打包了 ...
- Linux命令提示符的配置
Linux登录过程中加载配置文件顺序: /etc/profile → /etc/profile.d/*.sh → ~/.bash_profile → ~/.bashrc → [/etc/bashrc] ...
- linux集群管理
本文以ubuntu-16.04.3-server-amd64为例,搭建服务器集群.同样是依托于虚拟机. 创建第一个节点 创建新的虚拟机参见:创建新的虚拟机,创建之后,编辑虚拟机,选择Ubuntu镜像, ...
- Effective Java 读书笔记(一):使用静态工厂方法代替构造器
这是Effective Java第2章提出的第一条建议: 考虑用静态工厂方法代替构造器 此处的静态工厂方法并不是设计模式,主要指static修饰的静态方法,关于static的说明可以参考之前的博文&l ...