当前位置: 首页 > article >正文

图像特征点提取与匹配

引入

视觉里程计根据两帧图像确定机器人的位姿变化。视觉里程计的算法主要分为两个大类:特征点法和直接法。特征点法长久以来(直到现在)被认为是视觉里程计的主流方法。而特征点法首先需要提取特征点并进行匹配。

1. 特征点

1.1特征点的定义&特性

  • 有限性:数量较少
  • 局域性:特征信息只与较小的区域有关
  • 可重复性:相同的特征点可以在相邻帧图片中找到
  • 可区分性:不同的特征点易于区分
    特征点
    图 1 可作为特征点的像素点 图1 可作为特征点的像素点 1可作为特征点的像素点

特征点由**关键点(Key-point)描述子(Descriptor)**两部分组成。

  • 关键点:该特征点在图像里的位置,有些特征点还具有朝向、大小等信息
  • 描述子:描述关键点,用于与其他特征点进行区分

1.2特征点提取的典型方法

ORB特征点法是综合性能最好的方法之一。因此以此为例进行介绍。
它的关键点称作Oriented FAST。是一种改良的FAST特征点。其基本确定方法是以某像素点为中心,3像素为半径的圆上的像素点绝大多数比这个像素点亮或者暗,则该像素点为ORB特征点。
ORB特征点
图 2 可作为 F A S T 特征点的像素点 图2 可作为FAST特征点的像素点 2可作为FAST特征点的像素点
FAST算法仅基于像素间的亮度差异,因此运行速度非常快。然而,该算法不具有方向信息。另外,由于该方法固定选取半径为3的圆形窗口来进行计算,因此不具有尺度不变性——远处和近处的同一角点无法匹配。

尺度不变性由构建图像金字塔,并在金字塔的每一层上检测角点来实现。
金字塔

旋转不变性是由灰度质心法(Intensity Centroid)实现。
在这里插入图片描述
其中I(x,y)函数用于表示在点(x,y)处像素强度/亮度。
它的描述子称作
BRIEF描述子
是一种二进制描述子,其描述向量由许多个0和1组成,这里的0和1编码了关键点附近两个随机像素(比如p和q)的大小关系:如果p比q大,则取1,反之就取0。如果我们取了128个这样的p,q,则最后得到128维由0、1组成的向量。

2.特征点的匹配

常用方法是快速近似最近邻(FLANN)算法。由于这些匹配算法理论已经成熟,而且实现上也已集成到OpenCV,所以这里就不再描述它的技术细节了。感兴趣的读者可以查找相关资料进行了解​。


http://www.kler.cn/a/533748.html

相关文章:

  • 缓存类为啥使用 unordered_map 而不是 map
  • 宾馆民宿酒店住宿管理系统+小程序项目需求分析文档
  • Linux中安装rabbitMQ
  • Unity开发游戏使用XLua的基础
  • 物联网领域的MQTT协议,优势和应用场景
  • Spring Bean 的生命周期介绍
  • Docker技术相关学习三
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(一)
  • 因果推断与机器学习—因果表征学习与泛化能力
  • 基于微信小程序的校园水电费管理平台设计与实现
  • 基础I/O
  • windows环境下安装Python3.13.2
  • 笔记day7
  • 解决threeJS加载obj gltf和glb模型后颜色太暗的方法
  • 专业学习|通过案例了解蒙特卡罗模拟实操步骤与含义
  • 入行FPGA设计工程师需要提前学习哪些内容?
  • apex判断opp是否有附件
  • HTML排版标签、语义化标签、块级和行内元素详解
  • 位置-速度双闭环PID控制详解与C语言实现
  • 二叉树原理及其C语言实现
  • 【STM32】HAL库USB虚拟U盘MSC配置及采用自带的Flash作为文件系统
  • JavaScript系列(60)--云原生应用开发详解
  • JAVA架构师进阶之路
  • 高级java每日一道面试题-2025年01月27日-框架篇[SpringBoot篇]-如何在Spring Boot启动的时候运行一些特定的代码?
  • Android 系统的启动流程
  • 【华为OD-E卷 - 112 任务最优调度 100分(python、java、c++、js、c)】