Advertisement

视觉SLAM笔记(30) 特征点法

阅读量:

视觉SLAM中的特征点法用于提取图像中的关键点并进行匹配。该方法通过检测角点(如FAST)并结合描述子(如ORB)来增强鲁棒性。ORB利用改进后的FAST检测关键点,并通过BRIEF描述子实现高效匹配。这种组合在旋转和尺度变换下表现良好,在实时SLAM中被广泛应用以解决数据关联问题。

视觉SLAM笔记(30) 特征点法

  • 1. 特征点法

  • 2. 特征点

  • 3. ORB 特征

    • 3.1. FAST 关键点
    • 3.2. BRIEF 描述子
  • 4. 特征匹配


1. 特征点法

视觉 SLAM 可划分为视觉前端与优化后端两大模块。
其中前端部分通常被称作视觉里程计(简称 VO)。
通过分析相邻图像的数据信息, 估算出相机的大致运动轨迹, 并将其作为后端优化的基础条件。
具体而言, 在实现过程中, 则主要依据是否需要提取图像特征来进行分类讨论。

  • 特征点法的前端
  • 不提特征的直接法前端

主要依靠关键特征点定位技术的前端技术,在长时间段内始终被视为视觉里程计的主要方案。该系统运行稳定且对光照变化及动态物体无明显反应,在当前阶段被视为较为成熟的技术方案。

通过特征点法来学习获取并对应图像中的关键点位置。随后推断前后帧之间的相机运动参数及场景结构信息,并构建一个基本的两帧间视觉里程计系统。


2. 特征点

该方法的核心挑战在于如何通过图像数据推断相机运动。
然而,图像数据本质上是由亮度信息和色彩组成的二维阵列。
基于矩阵空间的运动估计问题具有显著的技术挑战性。

长期形成的惯性思维是:在视觉SLAM领域中遵循以下操作流程。具体而言,在图像处理过程中首先需要从输入的多幅图像中提取具有典型特征的点位,并确保这些点在相机姿态发生微小变动时保持稳定特性。随后,在此基础之上进行以下两个关键环节的研究:一是探索如何通过这些点的信息恢复相机运动状态与三维空间位置关系;二是建立基于这些关键点的几何约束模型以实现精确的空间重构。其中将这类几何特征统称为路标元素;而视觉SLAM框架下,则将这类几何属性命名为图像特征。

按照维基百科的说法,在计算机视觉领域中所定义的图像特征是一系列与特定计算任务相关的信息集合。这些计算任务在很大程度上会受到特定应用场景的影响。简单来说,在数据科学领域中也可以将图像信息通过数字形式进行重新表述的一种方式被称为特征

一组核心要素对于在指定任务上的最终表现具有支撑作用。
研究者们系统性地对特征进行长期而深入的研究。
数字图像以灰度值矩阵的形式完美地表示信息。
单个图像像素作为基础元素,在模式识别中发挥着不可替代的属性。

视觉里程计对特征点的变化有较高的要求。
灰度值受到光照条件、形变以及物体材质等因素的显著影响。
不同图像之间的差异显著,在稳定性上存在不足。

在场景和相机视角仅发生微小变化的情况下,在同一空间的多个位置出现相同的视觉标记是非常理想的。
单凭灰度值无法满足需求,在这种情况下必须从图像中提取出关键特征点。
这些关键特征点往往位于图像中的显著位置。

例如:

在这里插入图片描述

在图像中,我们可以将角点、边缘以及区域部分视为具有代表性的关键位置;然而,在实际识别过程中,则需要更高的判别能力才能够准确区分;相比之下,在边缘区域虽然相似性较高但仍然存在一定的区分度;而整个区域则最为复杂难以识别

研究者们注意到,在数字图像中与像素区块相比起来,
角点和边缘呈现出显著的不同之处,
这种差异使得它们在不同场景下的识别度更高。
因此,
一种直观的提取特征的方式就是在不同图像之间识别出对应的角点位置来提取特征。
其中,
在这样一种方法中被识别出来的这些特殊位置被称为特征。

然而,在多数应用场景中仅凭角点难以满足我们的一些基本需求

基于不变尺度的特征提取方法 SIFT(ScaleInvariant Feature Transform),该方法通过非极坐标空间进行二维几何分析并提取关键点;基于快速素波变换的优化版本 SURF;以及基于旋转BRIEF和定向FAST算法的等同于 ORB的方法等同于 ORB

相比于朴素的角点,这些人工设计的特征点能够拥有如下的性质:

  1. 一致性(Repeatability):在同一区域,在不同图像中均能被识别出来
  2. 可区分度(Distinctiveness):各具特色的不同区域各自具有独特的特征
  3. 高效率(Efficiency):同一图像中的特征点数量级上远低于其像素数量
  4. 局部相关性(Locality):该类特征仅依赖于局部邻域内的信息

该系统中的"特征点"主要包含以下两个核心要素:一是关键参数(Key-point),二是统计指标(Descriptor)。例如,在讨论SIFT特征时,则涉及"通过提取SIFT关键参数并计算其对应的统计指标"这两个基本步骤。

  • 关键点
    指该特征点在图像里的位置,有些特征点还具有朝向、大小等信息

  • 描述子 一般 是一个向量。
    它遵循一种预设的设计原则来捕捉该关键点周围的像素信息。
    这种设计原则的核心理念是确保外观相似的特征具有类似的描述子。

因此,在向量空间中两组特征点描述子之间若存在接近的距离,则可认定它们为同一组特征点
历史上而言,在图像领域研究者们曾提出多种不同性质的图像特征
其中一些特性极佳,在面对相机运动与光照变化的影响下仍能保持相似的表现形式;然而相应的计算需求也随之显著提升
而SIFT算法因其对图像变换过程中的光照、尺度以及旋转等因素的有效处理而脱颖而出
尽管如此,在SLAM领域中很少采用这种计算资源要求高的图像特征

另一些特征,则考虑到适当降低精度和鲁棒性以加快计算速度。
例如 FAST 关键点属于计算极为迅速的一种特征点(注意这里的"关键点"一词表明其不具备描述子属性)。
而 ORB 特征则是目前来看极为重要的实时图像特征。
它通过改进 FAST 检测器缺乏方向信息的缺陷,并采用了极其快速的二进制描述子 BRIEF,
从而极大地加快了整个图像特征提取的过程。

本研究通过系统性实验分析,在同一图像中提取大约 1000 个特征点时,ORB 的耗时约为 15.3 毫秒;而 SURF 和 SIFT 分别耗时约为 217.3 毫秒和 5228.7 毫秒。结果显示,在保持了特征子具有旋转和尺度不变性的前提下,ORB 在速度方面表现出了显著的优势,并且这一特点使其特别适合对实时性要求较高的 SLAM 应用场景。

多数特征提取都具有较好的并行特性,并且能够借助 GPU 等设备来实现高效的计算。
借助 GPU 加速的 SIFT 方法能够实现实时计算需求。
然而,在引入 GPU 的过程中会导致整体 SLAM 体系的成本上升。


3. ORB 特征

在当前的 SLAM 方法中,在质量和性能方面,ORB 展现出了权衡下的选择;基于 ORB 的方法,则用于全面阐述特征提取的整体流程。

在这里插入图片描述

ORB 特征亦由关键点和描述子两部分组成

其关键点被称为"Oriented FAST"这一术语,并被视为一种优化版本的FAST角点检测方法。
其描述子被定义为BRIEF(Binary Robust Independent Elementary Features),这一特征提取方法具有显著的鲁棒性。

因此,提取 ORB 特征分为两个步骤:

FAST算法通过自动检测图像中的关键点实现角点提取,在ORB算法中通过对特征点进行主方向分析以增强BRIEF描述子的旋转不变性

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

3.1. FAST 关键点

在这里插入图片描述

FAST是一种独特的角点检测方法,在图像处理领域具有重要地位。该算法的核心思想在于:当一个像素与其周边区域出现显著亮度差异(无论是过于明亮还是过于黑暗)时,则该像素很可能位于角点位置。相对于其他常见的角点检测方法,在FAST算法中只需通过亮度对比即可快速完成检测过程。其具体的实现步骤如下:

从图像中选择一个像素点p,并假设其亮度值为I_p。接着设定一个阈值T(例如将T设为I_p的20%)。然后以像素p为中心点,在半径3的圆形区域内选取16个相邻像素。如果在所选区域中发现有连续的N个相邻像素满足亮度显著高于或低于基准亮度I_p ± T的情况,则认为该圆周上存在足够的变化率。因此该区域内的该像素p就可以被判定为特征点。其中N常取12作为基准参数(称作FAST-12算法);除此之外,在实际应用中还常采用N=9和N=11的情况分别称为FAST-9和FAST-11算法

  1. 循环以上四步,对每一个像素执行相同的操作

在FAST-12算法中,为了提高效率,可以增加一个预测试操作流程,用于迅速剔除非关键像素.具体实施流程如下:对于每个像素p来说,在其邻域圆上检测第1、5、9、13号位置的亮度值.当且仅当这四个特定位置处的亮度值均满足大于I_p + T或小于I_p - T时,该像素才可能被视为角点候选.否则应予以排除.这一额外步骤不仅降低了计算开销,还能显著提升后续角点检测的效率.

此外,在分析FAST角点时会发现一个值得注意的现象:原始的FAST角点检测方法经常会出现"扎堆"现象

FAST算法主要通过比较相邻像素间的亮度值差异来计算特征点,并且具有极高的计算效率。然而该方法在某些情况下可能会遇到性能瓶颈。

FAST算法具有的规模较大且不固定特征点数量,在实际应用中通常希望能够在图像中提取固定的特征数目。因此,在ORB算法中对传统的FAST算法进行了优化改进。具体而言,可以预先指定目标角点的数量N,并对原始FAST算子计算相应的Harris响应值;接着选择响应值最大的前N个角点作为最终的关键点集合。

FAST 角点不具有方向信息

由于始终采用半径长度3的圆来定位,在尺度方面存在问题:
在远处观察时看上去像是直角顶点的位置,在靠近时可能就不再是直角顶点的位置了。

考虑到 FAST 角点缺乏方向性和尺度特性 , ORB 则通过引入了尺度和旋转信息加以改进

  1. 在一个小的图像块 B 中,定义图像块的矩为:
在这里插入图片描述
  1. 通过矩可以找到图像块的质心:
在这里插入图片描述

将图像块的几何中心 O 和质心 C 连接起来,并由此获得一个方向向量 \vec{OC};因此特征点的方向可被定义为:

在这里插入图片描述

通过上述方法,在改进后FAST角点不仅具有了尺度与旋转的描述,并且显著提升了它们在不同图像之间表述的鲁棒性;在ORB中将其命名为 Oriented FAST。


3.2. BRIEF 描述子

基于 Oriented FAST 关键点检测方法提取每一个关键点,并对该过程中的每一点生成其对应的描述子。同时,在特征提取阶段采用基于改进的 BRIEF 描述模型来实现对关键点特征的精确识别。

BRIEF 是一种 二进制 描述子,在计算机视觉领域被广泛采用。它的描述向量由大量 0 和 1 组成,每个元素都代表特定像素之间的关系信息。具体而言,在关键点周围选取两个像素(如 pq),通过比较它们的强度来确定编码关系:如果 p 的强度高于 q ,则赋予其值为 1;否则设为 0。为了构建一个完整的特征向量,在实际应用中通常会选取包含多个这样的像素对(例如总共选取约 128 对),最终生成一个包含多个维度的二进制编码向量用于表征图像特征

在作者最初的研究中提出了多种选择方案,
主要依据特定的概率模型进行随机定位。
BRIEF采用了基于随机采样的对比方法,
这种策略使得计算过程更为高效。
同时利用二进制编码使得存储更加便捷,
便于实际应用中的快速处理。
传统BRIEF描述子缺乏旋转不变性,
因此其性能在图像发生旋转时有所欠缺。
然而FAST算法通过计算关键点方向,
成功提取出具有方向特性的特征点。
基于此基础,
进一步发展出了具有旋转不变性的改进方案,
称为"Steer BRIEF"。

在对旋转和缩放进行优化后,
orb 在平移、旋转和缩放等变换下依然展现出良好的性能特征
与此同时,
fast 和 brief 的结合使其在计算效率方面表现尤为突出,
这一特点使其成为实时 slam 领域中备受推崇的算法基础


4. 特征匹配

在演示了图像提取 ORB 的结果后,接下来将具体介绍如何在不同图像之间进行特征匹配。

在这里插入图片描述

特征匹配在视觉 SLAM 中扮演着至关重要的角色。
从广义上讲,特征匹配旨在解决 SLAM 中的数据关联问题(即通过数据关联确定当前观测物与其先前观测物之间的对应关系)。

通过将图景特征向量与其自身或地图上的图景特征向量进行精确匹配,在后续的姿态估计以及路径优化等问题中实现显著效率提升

但是由于图像特征具有局部性特点 导致误匹配现象普遍发生

不过,在深入分析正确匹配的情况之前,请注意以下几点:
首先考察两个连续时间段内的图像变化情况;
假设在时间t对应的图像中我们能够检测到一组关键点集X_{m,t}(m=1,...M),这些关键点位于图象I_t中;
而在时间t+Δt对应的图象I_{t+Δt}中则检测到了另一组关键点集X_{n,t+Δt}(n=1,...N)。

最基础的特征匹配方法通常是暴力匹配算法(Brute-Force Matcher)。
对于每个特征点xmt而言,在所有xnt+1测量描述子中计算其与目标点的距离。
将这些距离值进行排序,并选择排序后的最小值作为配对对象。
然而,在实际应用中我们通常会采用不同的距离度量标准。
对于浮点类型的描述子来说,欧氏距离是一个有效的度量工具。
而对于二进制的描述符(如BRIEF),常用汉明距离来衡量两者之间的差异。

尽管特征点的数量极大时


参考:

《视觉SLAM十四讲》


相关推荐:

《视觉SLAM Visual SLAM Notes》第29章 G²­­­­­­­­­­­­­₁ ­­­ₐ ­¹框架


谢谢!

全部评论 (0)

还没有任何评论哟~