从零实战SLAM-第六课(特征点匹配)

 在七月算法报的班,老师讲的蛮好。好记性不如烂笔头,关键内容还是记录一下吧,课程入口,感兴趣的同学可以学习一下。

-------------------------------------------------------------------------------------------------------------------------------

视觉里程计也叫作SLAM的前端

从零实战SLAM-第六课(特征点匹配)_第1张图片

本质是通过连续两帧的图像,估算相机位姿的变化。

从零实战SLAM-第六课(特征点匹配)_第2张图片

特征点:能够在其他含有相同场景或目标的相似图像中以一种相同的或至少非常相似的不变形式表示图像或目标。

从零实战SLAM-第六课(特征点匹配)_第3张图片

特征点的几个特点:

Repeatability: 相同的“区域”可以在不同的图像中被找到。

Distinctiveness: 不同的“区域”有不同的表达。

Efficiency: 同一图像中,特征点的数量应远小于像素的数量。

Locality: 特征仅与一小片图像区域相关。

特征点的组成:

关键点(Key Point): 位置、大小、方向、评分等;

描述子(Descriptor): 特征点周围的图像信息。

经典的特征点:Harris, SIFT, SURF, ORB。其中SLAM用的最多的是ORB,其他几个的速度都太慢,无法满足实时性。

关键点: Oriented FAST。计算了特征点的主方向,为后续的BRIEF 描述子增加了旋转不变特性;

描述子: BRIEF。对前一步提取出特征点的周围图像区域进行描述。

从零实战SLAM-第六课(特征点匹配)_第4张图片

FAST:FAST 是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。如果一个像素与它邻域的像素差别较大(过亮或过暗), 那它更可能是角点。

从零实战SLAM-第六课(特征点匹配)_第5张图片

FAST的提取过程:

1. 在图像中选取像素,假设它的亮度为;

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

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

4. 在选取的圆上,若有连续的个点的亮度大于 + 或小于 − :像素:特征点( − 9、 − 11、 − 12)

5. 重复至遍历完全部的像素点。

在FAST的基础上计算旋转,就成了Oriented FAST,其流程为:

从零实战SLAM-第六课(特征点匹配)_第6张图片

BRIEF:BRIEF是一种二进制描述,需要用汉明距离度量。BRIEF-128:在特征点附近的128次像素比较。ORB: 旋转之后的BRIEF描述(steered BRIEF旋转不变性改进)。

BRIEF的生成过程:

从零实战SLAM-第六课(特征点匹配)_第7张图片

特征匹配的方法:一般常用特征匹配和暴力匹配。

特征匹配:通过描述子的差异判断哪些特征为同一个点。

暴力匹配:比较图1中每个特征和图2特征的距离。

从零实战SLAM-第六课(特征点匹配)_第8张图片

特征匹配中最常用的方法是KD Tree

从零实战SLAM-第六课(特征点匹配)_第9张图片

你可能感兴趣的:(计算机视觉,计算机视觉,算法)