首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» ORB: an efficient alternative to SIFT or SURF
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
ORB: an efficient alternative to SIFT or SURF
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2017-11-4 12:47
|
只看该作者
ORB: an efficient alternative to SIFT or SURF
本帖最后由 look_w 于 2017-11-4 12:50 编辑
介绍目前SIFT特征准确度高,但是计算复杂度也高。很多时候需要用到匹配、追踪什么的,使用SIFT就比较慢。本文作者提出了ORB(Oriented FAST and Rotation BRIEF)特征。ORB有个特点是这个特征没有申请专利,另外这种特征的好处是:
给FAST检测子方向和快速计算;
高效计算带有方向的BRIEF特征
关键点(keypoint 就是图片中比较重要的位置,比如角点)使用FAST检测子寻找。
描述子(descriptor 就是对关键点进行描述)这里使用的是BRIEF描述子。但是BRIEF没有方向,所以这里就给BRIEF一个方向。
FAST关键点FAST的基本方法可以写成:
1、计算1和9是否会大于阈值,如果大于阈值则可以进入下一个,否则就不是关键点。
2、计算1,9,5,13是不是大于阈值的个数超过3个,不是的话,就不是关键点。是的话进入下一步。
3、计算一个像素点,取周围距离为3的一个圆,然后这个像素点与周围的【1-16】的差值大于阈值的个数count,如果会大于阈值,则计算的count+1。如果count大于等于9,那么就作为候选项。
4、使用NMS,如果在3x3或5x5的邻域内,如果没有有比当前像素更大的score的点,那么就抑制这个点。
在ORB特征里,使用的是FAST-9,圆的半径是9(在这里也有人说FAST-9是半径为3,这个具体看了代码再说)
计算完这些以后,FAST特征没有对特征的正确度进行排序,所以这里使用了Harris角点进行计算排序。首先去较低的阈值获取超过N个关键点,然后再根据Harris角点的计算进行排序。与此同时,FAST没有产生多尺度的特征,所以使用在计算图片的尺度金字塔,在不同尺度计算FAST关键点。
之后需要计算FAST的方向了,在计算方向的时候,这里提出了一个叫做intensity centroid的东西。
具体计算方法就是:
首先是计算moment,就是在某个领域内计算m,计算公式如下图:
这里计算的就是强度中心。
然后我们从中点O(也就是FAST的关键点)到C点就有了一个向量:
O
C
→
计算FAST的方向就可以使用下面的公式计算咯。在ORB特征里面,它使用的领域就是一个圆。
作者在这里提到为了找到方向,他特地使用MAX和BIN的方法计算方向,但是他发现还是center centroid的方法最好。
rBRIEF描述子rBRIEF(rotation-aware BRIEF)描述子。
首先先来了解一下什么是BRIEF【6】、【7】、【8】、【9】、【10】、【11】。
描述子是对关键点进行一个描述,刚才我们已经通过了FAST特征找到了关键点的位置和方向。
下面是详细的步骤:
为减少噪声干扰,先对图像进行高斯滤波(方差为2,高斯窗口为9x9)。
以特征点为中心,取SxS的邻域大窗口。在大窗口中随机选取一对(两个)5x5的子窗口,比较子窗口内的像素和(可用积分图像完成),进行二进制赋值。(一般S=31)
在大窗口中随机选取N对子窗口,重复步骤2的二进制赋值,形成一个二进制编码,这个编码就是对特征点的描述,即特征描述子。(一般N=256)
在随机选取特征点的时候,有几种随机选取的方法【6】。
在ORB特征中,选取的随机点是高斯分布的。长度n=256。在进行计算描述子的时候,采用的高斯核是5x5的31x31的区域内进行。
为了让BRIEF具有旋转不变性,这里使用了得当初寻找FAST的关键点的方向的作为BRIEF的方向,这样就可以得到:
把关键点周围的要用来计算的坐标列成2xn的矩阵。
计算通过旋转矩阵之后这些点的坐标。旋转矩阵就是[cos a sin a; sin a -cos a]这个矩阵。
这里就是计算旋转之后的坐标中取出点来计算BRIEF描述子。
所以从整个步骤中我们可以看到ORB特征还是比较简单的,复杂度也比较低,速度很快。有方向和尺度的信息,这是之前BRIEF没有的。
具体的这个特征的分析,比如后面PCA说为什么ORB更好呀,就得自己看论文咯,已经写得很清楚了。当然特征还有SIFT、SURF、AKAZE、HIST等等。之前CV课上都有做过东西,没有来得及总结,以后有空再把追踪、场景识别、图像拼接等等这些东西从原理到代码介绍一遍。
看完这些,再回到ORB-SLAM的计算特征的部分,再梳理一遍。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议