flann进行特征点匹配 matlab实现_ORBSLAM2中的ORB特征点理论与实践

本文介绍了SLAM系统中的特征点法,重点讲解了ORB特征点的提取过程,包括FAST关键点检测、方向计算、BRIEF描述子提取,以及使用FLANN进行特征匹配的方法,强调了ORB特征在实时性和稳定性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道,一个SLAM系统分为前端和后端,其中前端也叫视觉里程计(VO),视觉里程计的作用是根据相邻图像的信息估计出一个粗略的相机运动,作为初值提供给后端。而视觉里程计的算法分为两大类:特征点法和直接法。本期我们介绍特征点法,它具有稳定,对光照、动态物体不敏感的有事,目前已经相当成熟。

SIFT/SURF/ORB特征点等人工设计的特征点,他们多多少少都具有如下性质:

1.可重复性----相同的特征可以在不同的图像上找到

2.可区别性----不同的特征具有不同的表达

3.高效率性----同一图像中,特征点的数量远小于像素点数量

4.本地性----特征仅与其邻域相关

首先,特征点是由关键点和描述子两部分组成,关键点一般指的是该特征点在图像上面的位置,有的特征点还具有朝向、大小等信息,描述子描述了其邻域像素的信息。SLAM中很少用SIFT这样奢侈的特征点因为SIFT特征在普通电脑CPU上无法实时计算。相反,FAST关键点计算相当快,但是它只是关键点,没有描述子。ORB-----Oriented FAST and Rotated BRIEF,是目前非常具有代表性的实时图像特征。它改进了FAST检测子不具有方向的问题,并且使用速度极快的二进制描述子BRIEF描述其邻域像素,对于SLAM来说是一个很好的选择。

ORB特征

ORB特征提取步骤:图像金字塔各层FAST角点提取+角点主方向计算+BRIEF描述子提取

A.FAST关键点 

ae148f67581a2c5051635d1ebad33b56.png

1.在图像中选择像素p,假设它的亮度为L

2.设置一个阈值T(比如L的20%)

3.以p为中心,选取半径为3的圆上16个像素点

4.假设选取的圆上有连续的N个点的亮度大于L+T或小于L-T,那么像素p可以被认为是特征点(N一般取12,即FAST-12.另外也有FAST-9和FAST-11)

5.使用1-4步骤遍历图像每个像素

小trick:在FAST-12中,为了更快,可以先做一个预筛选,这样可以排除大多数非角点的像素。具体操作为,对于每个像素,直接检测其邻域圆上第1,5,9,13个像素亮度。当且仅当这四个有3个像素亮度同时大于L+T或小于L-T,那么才将该像素加入候选队列进行再次筛选。此外原始的FAST角点经常出现扎堆现象,所以检测之后还需要进行非极大值抑制,在一定区域内仅保留响应极大值的情况,这在一定程度上克服了角点扎堆~

FAST特征点的计算仅仅比较像素间亮度的差异,所以速度极快,但是他存在重复性不强、分布不够均匀等缺点。此外,FAST不具有方向信息。同时,由于它固定取半径为3的圆,存在尺度问题:远处看是角点,近处看不是角点。

针对方向性问题---采用灰度质心法

计算特征点附近的图像灰度质心

1.在一个小的图像块B中,定义图像块的矩为:

5dace3db398499a4f8e980f8f7a5d111.png

2.通过矩找到图像块的质心:

1fc908905dac931ced52eb7917919737.png

3.连接图像块的几何中心O和质心C,得到一个方向向量,于是特征点的方向可以定义为

fb5b5f5dde4c3a656190fbb011ed3f4a.png

针对尺度问题---采用图像金字塔 

9adffa9f713200b9140965b395131d33.png

金字塔底层是原始图像,每网上一层,就对图像进行了一个固定倍率的缩放,就相当于我们有了分辨率不同的图像。较小的图像可以看成是远处看过来的场景。在特征匹配算法中,我们可以匹配不同层上的图像,从而实现尺度不变性。

B.BRIEF描述子

563161ad7126ad8dce7667a94a057feb.png

BRIEF是一种二进制描述子,由0和1组成,0和1编码了关键点邻域附近两个随机像素的大小关系。ORB在FAST关键点计算时计算了关键点的方向,因此利用方向心肌计算旋转之后的“Steer BRIEF”特征使得ORB描述子更加鲁棒! 

C.特征匹配

特征匹配解决了SLAM中的数据关联问题。我们知道描述子表示了两个特征之间的相似程度,对于二进制描述子,往往使用汉明距离---两个二进制串之间不同位数的个数。怎样对两幅图像的ORB特征进行匹配呢?

最简单的方法就是暴力匹配(Brute Force Matcher),即对图像1上每一个特征点和图像2上所有特征点都测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值