您当前的位置: 首页 > 
  • 2浏览

    0关注

    417博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

(01)ORB-SLAM2源码无死角解析-(08)ORBextractor::operator()→FAST关键点提取

江南才尽,年少无知! 发布时间:2022-03-13 17:05:09 ,浏览量:2

讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的(01)ORB-SLAM2源码无死角解析链接如下(本文内容来自计算机视觉life ORB-SLAM2 课程课件): (01)ORB-SLAM2源码无死角解析-(00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/123092196   文末正下方中心提供了本人 联系方式, 点击本人照片即可显示 W X → 官方认证 {\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式,\color{blue}点击本人照片即可显示WX→官方认证} 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证  

一、前言

上一篇博客,我们对 ORBextractor::operator() 中调用的ComputePyramid(image)函数进行了讲解,那么接下来我们就是要分析紧跟在其后面的 ComputeKeyPointsOctTree(allKeypoints) 函数进行讲解。其代码实现位于src/ORBextractor.cc文件中。在讲解代码之前,我们先来具体的了解一下ORC特征,前面的博客我们提及到ORB特征主要由 Oriented FAST 关键点与 Rotated BRIEF 描述子两个部分组成。

 

二、FAST关键点

我们先来了解一下什么四FAST关键。判断一个像素点是否为FAST关键点,主要流程如下:

	1、选取像素p,假设它的亮度为Ip;
	
	2、设置一个阈值T(比如Ip的20%);
	
	3、以像素p为中心,选取半径为3的圆上的16个像素点;
	
	4、假如选取的圆上,有连续的N个点的亮度大于Ip+T或小于Ip-T,那么像素p可以被认为是关键点;
	通常取12,即为FAST-12。其他常用的N取值为9和11,它们分别被称为FAST-9,FAST-11)。
	
	5、循环以上4步,对每一个像素执行相同操作。

简单的图示如下: 在这里插入图片描述 FAST是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与它邻域的像素差别较大(过亮或过暗),那它更可能是角点。

在FAST-12算法中,为了更高效,可以添加一项预测试操作,以快速地排除绝大多数不是角点的像素。具体操作为,对于每个像素,直接检测邻域圆上的第1,5,9,13个像素的亮度。只有当这四个像素中有三个同时大于Ip+T或小于Ip-T时,当前像素才有可能是一个角点,否则应该直接排除。这样的预测试操作大大加速了角点检测。此外,原始的FAST角点经常出现“扎堆”的现象。所以在第一遍检测之后,还需要用非极大值抑制(Non-maximal suppression),在一定区域内仅保留响应极大值的角点, 避免角点集中的问题。

FAST特征点的计算仅仅是比较像素间亮度的差异,速度非常快,但它也有一些问题如下:

F A S T 特征点数量很大且不确定 → \color{red}{FAST特征点数量很大且不确定→} FAST特征点数量很大且不确定→FAST特征点数量很大且不确定,而我们往往希望对图像提取固定数量的特征。因此,在ORB中,对原始的FAST算法进行了改进。 我们可以指定最终要提取的角点数量N,对原始FAST角点分别计算Harris响应值,然后选取前N NN个具有最大响应值的角点,作为最终的角点集合。

F A S T 角点不具有方向信息 → \color{red}{FAST角点不具有方向信息→} FAST角点不具有方向信息→由于它固定取半径为3的圆,存在尺度问题 :远处看着像是角点的地方,接近后看可能就不是角点了。针对FAST角点不具有方向性和尺度的弱点,ORB添加了尺度和旋转的描述。尺度不变性由构建图像金字塔,并在金字塔的每一层上检测角点来实现。而特征的旋转是由灰度质心法(Intensity Centroid)实现的

金字塔我们已经在前面进行了讲解,对于灰度质心法(Intensity Centroid)稍后会进行讲解

 

三、代码流程
	 //用于存储所有的关键点信息
    allKeypoints.resize(nlevels);

	//循环对图像金字塔进行处理
	for (int level = 0; level             
关注
打赏
1592542134
查看更多评论
0.0381s