双目视觉(七)稀疏双目匹配

news2024/11/16 19:45:44

系列文章

  1. 双目视觉(一)双目视觉系统
  2. 双目视觉(二)双目匹配的困难和评判标准
  3. 双目视觉(三)立体匹配算法
  4. 双目视觉(四)匹配代价
  5. 双目视觉(五)立体匹配算法之动态规划全局匹配
  6. 双目视觉(六)U-V视差
  7. 【项目实战】利用U-V视差进行地面检测
  8. 【项目实践】U-V视差路面检测之动态规划

这里介绍ORB_SLAM算法中的双目匹配算法

双目匹配

在ORB_SLAM采用粗匹配精匹配结合的方式来实现双目特征点的精确匹配

1.粗匹配

假设双目相机已被标定好,即双目相机的左右图像的极线相互平行,那么理论上左右图像中共轭点的坐标仅在u轴上不同

为了寻找左图中的某一特征点在右图中对应的匹配点, 可以通过沿该特征点对应的极线进行搜索,这样避免了在整幅右图像上进行搜索,同时提高了匹配的速度。

然而, 由于误差的影响, 匹配点对的坐标在v方向可能存在几个像素的偏差,这样会造成沿极线搜索时无法匹配到最佳的特征点。因此,为了减少误差的影响,沿极线在v方向扩展一定的范围形成一个带状区域,将右图中待匹配的特征点按y 坐标分配到相应的带状区域
在这里插入图片描述
选取左图像中的某一特征点,如a,与对应的带状区域内中的点,如b, c, d, e, f,逐一进行描述子的比较,寻找最佳的匹配点。其中,待匹配集合中的特征点的x坐标理论上应该落在 [ m i n U r , m a x U r ] \left[minU_{r}, maxU_{r}\right] [minUr,maxUr]范围内,而 [ m i n U r , m a x U r ] \left[minU_{r}, maxU_{r}\right] [minUr,maxUr]可以通过公式确 定。 因 此, 可以预先 筛选掉落在 [ m i n U r , m a x U r ] \left[minU_{r}, maxU_{r}\right] [minUr,maxUr]之外的点b
{ max ⁡ d = f ⋅ B min ⁡ Z min ⁡ d = f ⋅ B max ⁡ Z ⇒ { max ⁡ U r = U l − min ⁡ d min ⁡ U r = U l − max ⁡ d \left\{\begin{array} { l } { \operatorname { max } d = \frac { f \cdot B } { \operatorname { m i n } Z } } \\ { \operatorname { min } d = \frac { f \cdot B } { \operatorname { m a x } Z } } \end{array} \Rightarrow \left\{\begin{array}{l} \max U_{r}=U_{l}-\min d \\ \min U_{r}=U_{l}-\max d \end{array}\right.\right. {maxd=minZfBmind=maxZfB{maxUr=UlmindminUr=Ulmaxd

2.精匹配

在经过了粗匹配后, 左图像中的特征点在右图像中对应的带状区域内寻找到了最佳的匹配点,但是由于特征点的坐标可能不是那么精准,此时的匹配点可能并不是真正的最佳匹配点, 因此需要在粗匹配的基础上进一步进行精匹配。 通过在当前匹配点的位置附近构建滑动窗口,然后使用模板匹配算法寻找更优的位置
在这里插入图片描述
左右红点是双目图像通过粗匹配后得到的匹配点对,以左图的匹配点为中心取一个宽为W的图像块,然后在右图中构建一个相同尺寸的图像块, 在搜索范围 [ − L , L ] \left[-L, L\right] [L,L]内从左向右滑动窗口, 并通过模板匹配算法依次计算两个图像块的相似度, 最终找到最佳的匹配位置, 其中相似度计算:
S A D ( u , v , l ) = ∑ i = − w 2 w 2 ∑ j = − w 2 w 2 ∣ I l ( u + i , v + j ) − I r ( u + i + l , v + j ) ∣ , l ∈ ( − L , L ) S A D(u, v, l)=\sum_{i=-\frac{w}{2}}^{\frac{w}{2}} \sum_{j=-\frac{w}{2}}^{\frac{w}{2}}\left|I_{l}(u+i, v+j)-I_{r}(u+i+l, v+j)\right|, l \in(-L, L) SAD(u,v,l)=i=2w2wj=2w2wIl(u+i,v+j)Ir(u+i+l,v+j),l(L,L)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/497865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试1:概念

1.需求 用户需求:该需求一般比较简略。(一句话) 软件需求:或者功能需求,详细描述开发人员必须实现的软件功能(一个文档) 2.BUG 说明是存在的并且正确,程序和规格说明之间不匹配是错误 3.软件生命周期 从诞生到停服 需求分析,计划,设计,编码,测试,运行维护 需求分析:分析…

出海的中国企业,为什么有80%都选择了这家云服务商?

对于想要出海的中国企业来说,什么样的云服务才是他们的最佳选择? 中国企业出海驶入快车道 中国企业的出海大潮,多年来一直方兴未艾,并且得到了政府部门的大力支持。这股“走出去”的热潮,一方面对内有利于推动产业升级…

均摊时间复杂度

均摊时间复杂度,它对应的分析方法,摊还分析(或者叫平摊分析) 均摊时间复杂度应用的场景比它更加特殊、更加有限 // array表示一个长度为n的数组// 代码中的array.length就等于nint[] array new int[n];int count 0;void insert…

电子时钟实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供设置闹钟时间、选择闹钟铃声功能。 问题描述 利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供设置闹钟时间…

【Go编程语言】 Go和Goland的安装

Go和Goland的安装 文章目录 Go和Goland的安装一、 Goland官网二、打开Goland,并输入激活码 GO官网地址:https://golang.google.cn/ go中文网地址:https://studygolang.com/dl 安装完成得到的目录 环境变量配置: 1.新建变量 变…

【Gin框架深度解析】路由实现原理,让你彻底掌握Gin中路由的奥秘!

文章目录 Gin路由1、基本路由2、Restful风格的API3、API参数4、URL参数5、表单参数6、上传单个文件6.1、上传特定文件 7、上传多个文件8、路由分组9、404页面处理10、路由原理 Gin路由 1、基本路由 ​ 举一个例子: package mainimport ("net/http"&quo…

ARM嵌入式编译器控制诊断信息(warning/error)

ARM编译器以警告(warning)和错误(error)的形式来提供编译诊断信息,并且用户可以通过一些命令行选项,来控制这些warnings和errors的打开或者关闭。编译器会在程序编译和链接过程中将遇到的warnings和errors在…

开关电源基础03:正激和反激开关电源拓扑(1)-正激拓扑

说在开头:关于薛定谔的波动方程(2) 全新的量子理论诞生不到一年,很快面临着粒子和波动的内战。矩阵力学从直接观测到的原子谱线出发,引入矩阵的数学工具,建立了整个新力学的大厦;它强调观测到的…

大数据Doris(十三):Duplicate数据模型以及聚合模型的局限性

文章目录 Duplicate数据模型以及聚合模型的局限性 一、Duplicate数据模型 二、聚合模型的局限性 Duplicate数据模型以及聚合模型的局限性 一、Duplicate数据模型 在某些多维分析场景下,数据既没有主键,也没有聚合需求,只需要将数据原封不…

JDK17新特性之--新的Compact Strings(JEP 254)

前言 JDK9将String底层的数据结构从private final char value[];改成了private final byte[] value; , JEP 254: Compact Strings(紧凑字符串),这要修改的目的就是为了节省空间1。我们先看一下JDK9和JDK8中String源码的变化。 JDK9中String源码&#xf…

深度学习技巧应用12-神经网络训练中批归一化的应用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用12-神经网络训练中批归一化的应用,在深度学习中,批归一化(Batch Normalization,简称BN)是一种重要的技巧,它在许多神经网络中都得到了广泛应用。本文将详细介绍批归一化的原理和应用,并结合PyTorch框架构建一个简…

法规标准-SAE J2802标准解读

SAE J2802是做什么的? SAE J2802全名为盲点监测系统(BSMS):工作特性和用户界面,其中主要是对BSMS系统的工作特性及用户界面进行了介绍 BSMS目标 强制性目标 任何可获得公路许可的车辆,此处视为大于125 …

深入浅出二叉树— C语言版【数据结构】

目录 ​编辑 1.树概念及结构 1.1树的概念 1.2 树的相关概念 ​1.3 树的表示 2.二叉树概念及结构 2.1概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 简单二叉树题目练习 2.5 二叉树的存储结构 2.5.1 顺序存储——堆 2.5.2 链式存储 1.树概念及结构 1.1树的概念 树…

Java --- String类

(一)String java.lang.String 类代表字符串。Java 程序中所有的字符串文字(例如 "hello" )都可以看作是实现此类的实例。 字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。 字符串 St…

深度卷积图神经网络(Deep Convolutional Graph Neural Network,DCGNN)的基本概念与应用

目录 一、引言 1.1 神经网络的发展历程 1.2 图神经网络的出现 二、深度卷积图神经网络的基本概念 2.1 图的表示 2.2 图卷积神经网络 2.3 深度卷积图神经网络 三、深度卷积图神经网络的应用 3.1 图像分类 3.2 图像分割 3.3 图像生成 四、深度卷积图神经网络的优缺点 …

【数据结构与算法】图的概述(内含源码)

个人主页:【😊个人主页】 系列专栏:【❤️数据结构与算法】 学习名言:天子重英豪,文章教儿曹。万般皆下品,惟有读书高——《神童诗劝学》 系列文章目录 第一章 ❤️ 学前知识 第二章 ❤️ 单向链表 第三章…

分布式一致性Hash算法原理及实现

文章目录 一致性Hash原理提高容错性和和扩展性一致性Hash实现思路代码 一致性Hash原理 简单来说,一致性Hash算法将整个哈希值空间组织成一个虚拟的圆环, 如假设某哈希函数 H 的值空间为 0 ~ 2^32-1(即哈希值是一个32位无符号整形)…

搜狗百科怎么创建?搜狗百科创建指南(经验分享)

搜狗百科是一个允许用户创建、编辑和维护百科全书的网站。它是搜狗搜索旗下的一个产品,为用户提供了一个共享知识的平台。创建一个搜狗百科词条并非难事,但需要遵守一些注意事项。 话不多说。小媒同学将介绍搜狗百科词条的创建过程和注意事项。 一、创建…

java基础入门-04-【集合学生管理系统】

Java基础入门-04-【集合&学生管理系统】 11、集合&学生管理系统11.1.ArrayList集合和数组的优势对比:11.1.1 ArrayList类概述11.1.2 ArrayList类常用方法11.1.2.1 构造方法11.1.2.2 成员方法11.1.2.3 示例代码 11.1.3 ArrayList存储字符串并遍历11.1.3.1 案…

【观察】甲骨文以“双引擎”驱动,加速中国企业拥抱决策智能

毫无疑问,当前中国整体经济形态正在从传统经济向数字经济转型,千行百业也在加速数字化转型,特别是随着企业数据的沉淀越来越庞大,对数据平台以及智能决策等新技术的需求也越来越旺盛。 国家发布的《“十四五”数字经济发展规划》中…