立体视觉几何(一)

1.什么是立体视觉几何

在这里插入图片描述

立体视觉=对应+重建:
• 对应:给定一幅图像中的点pl,找到另一幅图像中的对应点pr。
• 重建:给定对应关系(pl, pr),计算空间中相应点的3D 坐标P。

立体视觉:从图像中的投影恢复场景中点的三维位置的过程

类型:基于窗口/局部的算法和全局算法

三角测量:给定pl,我们知道点P位于连接pl和左光心Cl的直线Ll上。**假设我们确切地知道相机的参数,我们可以显式计算 Ll 和 Lr 的参数。**因此,我们可以计算两条直线的交点,即点 P

本地立体算法步骤

◇ 匹配代价计算:SSD、SAD、MSE、MAD
◇ 代价聚合
◇ 视差计算和优化
◇ 视差细化

指用于从一对立体图像(或称为双目图像)中计算深度信息的一系列步骤。在计算机视觉领域,这些算法通过比较同一场景的两个稍有不同视角的图像来估计物体的距离。

  1. 匹配成本计算:这是立体匹配的第一步。目标是确定立体图像对中的两个像素有多匹配。常见的匹配成本计算方法包括:

    • SSD(平方差之和):测量对应图像区块中像素强度的平方差。
    • SAD(绝对差之和):类似于SSD,但使用绝对差值。
    • MSE(均方误差):区域内平方差的平均值。
    • MAD(平均绝对差):区域内绝对差的平均值。

    这些方法用于计算每个像素可能视差的成本。成本越低,表示匹配越好。

  2. 成本聚合:在计算了初步匹配成本之后,通常会在邻域内聚合这些成本,以提高对噪声和无纹理区域的鲁棒性。聚合步骤有助于引入上下文信息,减少初步匹配中不正确匹配的影响。

  3. 视差计算和优化:这一步涉及为每个像素选择最小化聚合成本的视差值(即在两幅图像中匹配像素之间的水平位移)。可以应用优化方法,如动态规划、图割或半全局匹配,以找到整个图像中最一致的视差值。

  4. 视差细化:从前一步获得的初步视差图可能存在不准确之处,特别是在物体边界或遮挡区域附近。因此,会采用中值滤波、左右一致性检查(用于识别和纠正遮挡或匹配错误)和亚像素增强等细化步骤,来提高视差图的质量。

通过遵循这些步骤,本地立体声算法可以生成代表场景深度信息的视差图。这个图在3D重建、自主导航和虚拟现实等多种应用中非常关键。

寻找对应

稀疏和密集对应
在这里插入图片描述

解决对应问题(correspondence problem)是立体视觉中的一个核心问题,特别是在处理双目(或多目)立体图像时。在这个上下文中,对应问题指的是确定一幅图像中的像素点在另一幅图像中的匹配点。理解这一问题的关键在于了解“极线约束”(epipolar constraints)。

  1. 二维搜索域的问题: 如果没有任何约束,为了在一幅图像中找到另一幅图像的每个像素点的对应点,理论上需要在整个图像平面上进行搜索。这称为二维搜索域,它导致计算量非常大,且容易产生错误匹配。

  2. 极线约束(Epipolar Constraints): 幸运的是,在立体视觉中,我们可以利用极线约束来显著减少搜索的复杂度,缩小特征点匹配时的搜索范围。极线约束基于这样一个事实:对于第一幅图像中的任何一个点,其在第二幅图像中的对应点必定位于一条特定的线上,这条线称为极线。

    • 极线是由摄像机的几何配置决定的。具体来说,给定第一个摄像机拍摄的一个点,第二个摄像机拍摄的对应点必须位于连接这个点和两个摄像机中心的线与第二个摄像机成像平面的交线上。
    • 这意味着,对于第一幅图像中的任何点,我们不需要在第二幅图像的整个平面上搜索其对应点,而只需要在一条线上进行搜索。
  3. 如何应用极线约束:

    • 在实际应用中,首先要确定两个摄像机之间的几何关系,包括它们的位置和方向。这通常通过称为**的过程完成。
    • 一旦摄像机被标定,就可以计算出极线,并将搜索对应点的问题从一个二维问题简化为一个一维问题。
    • 这样,匹配过程变得更加高效,并且匹配错误的可能性也大大减少。

总之,极线约束是解决立体视觉中对应问题的关键,它通过将复杂的二维搜索问题简化为一维搜索,使得深度估计变得更加可行和精确。

图像校正

图像校正(Rectification)是立体视觉系统中的一项重要技术,它在搜索图像对应点之前通常会被执行,以简化搜索过程。让我们分析一下校正的动机、实现方法和一种简单的解决方案:

动机

  • 简化对应点搜索: 在没有校正的情况下,对应点可能位于图像的任何位置,这导致在二维空间中进行搜索。图像校正的主要目的是将这种二维搜索简化为一维搜索,使问题更易于处理。
  • 将极线对齐到水平扫描线: 校正后的图像具有这样一个属性,即任一点在另一图像中的对应点位于同一水平扫描线上。这大大降低了匹配算法的复杂度。

实现

  • 输入图像校正: 校正过程涉及对输入图像进行变换,以使得对应的水平扫描线成为极线。这意味着,如果在一个图像中找到了一个特征点,那么在另一个图像中的对应点将位于相同的水平位置。
  • 独立匹配水平扫描线: 校正后,每一对水平扫描线可以独立匹配,计算匹配分数。这极大简化了算法的复杂度,因为算法只需要在一维空间内(即同一扫描线内)搜索对应点。

简单解决方案:旋转摄像机

  • 摄像机旋转: 一种实现图像校正的简单方法是物理地或通过软件旋转两台摄像机,使它们垂直于连接摄像机中心的线(c0 和 c1)。这样做的结果是,摄像机拍摄的图像中的极线会自然地与水平扫描线对齐。
  • 对齐效果: 通过这种方式,极线被对齐到水平方向,从而使得在双目立体视觉系统中匹配对应点变得更加简单和直接。

总结

图像校正在立体视觉中扮演着关键角色,它通过简化对应点的搜索过程来提高了系统的效率和匹配的准确性。通过物理或软件方法校正摄像机,可以使得极线对齐到水平扫描线,从而将原本的二维搜索问题转化为一维搜索问题。这不仅简化了计算过程,还提高了匹配的精度和系统的整体性能。

  1. 同态变换(Homography)的概念:

    • 在计算机视觉中,同态变换是一种变换,它可以将一个平面内的点映射到另一个平面内的点。
    • 在双目立体视觉系统中,这种变换可以用来调整两个摄像头拍摄的图像,使得它们在一个共同的平面(P)上对齐。
  2. 映射到共同平面 P:

    • 假设有一个平面 P 在空间中,以及两个同态变换 Hl 和 Hr 分别对应于左图像和右图像。
    • 这两个变换的作用是将两个图像映射到平面 P 上,同时保证平面 P 平行于连接两个摄像头中心点(Cl 和 Cr)的线。
    • 通过这样的映射,两个图像在新的平面 P 上具有相同的视角和几何关系。
  3. 极线的平行性:

    • 当两个图像映射到这样的平面 P 上时,极线(即那些在一个图像中的点可能在另一个图像中找到匹配点的线)会变得平行。
    • 这是因为平面 P 被设定为平行于 Cl 和 Cr 连线,所以在校正后的图像中,所有极线都是平行的。
  4. 极线与图像行的平行性:

    • 通过适当选择坐标系,可以确保这些平行的极线与图像的行平行。
    • 这意味着,在校正后的图像中,任何一个点的可能匹配点都将位于另一图像的同一行上。

这个过程的关键是通过同态变换将两个图像映射到一个共同的平面上,并调整它们的视角使得极线平行于该平面。通过这种方式,极线也就与图像的行平行,从而将匹配点的搜索简化为在水平行上的一维搜索,大大简化了计算过程,并提高了效率和准确性。这种方法在双目立体视觉系统中广泛应用,特别是在需要高精度和高效率的应用场景中。
在这里插入图片描述
则校正算法为:
• 选择与 CrCl 平行的平面 P
• 定义 P 上的左右图像坐标系
• 根据 P 和虚拟图像的坐标系构造校正矩阵 Hl 和 Hr。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

list下

文章目录 注意:const迭代器怎么写?运用场合? inserterase析构函数赋值和拷贝构造区别?拷贝构造不能写那个swap,为什么?拷贝构造代码 面试问题什么是迭代器失效?vector、list的区别? 完整代码 注…

qt学习:QT对话框+颜色+文件+字体+输入

目录 概述 继承图 QColorDialog 颜色对话框 QFileDialog 文件对话框 保存文件对话框 QFontDialog 字体对话框 QInputDialog 输入对话框 概述 对于对话框的功能,在GUI图形界面开发过程,使用是非常多,那么Qt也提供了丰富的对话框类QDia…

网络:FTP

1. FTP 文件传输协议,FTP是用来传输文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。 2. 特点 明文传输。 作用:可以从服务器上下载文件,或将本地文件上传到服务器。 3. FTP原理 FTP有控制层面…

坦克大战游戏代码

坦克大战游戏 主函数战场面板开始界面坦克父类敌方坦克我方坦克子弹爆炸效果数据存盘及恢复图片 主函数 package cn.wenxiao.release9;import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.swing.JFrame; import javax.swing.JMenu; impor…

RS-485通讯

RS-485通讯协议简介 与CAN类似,RS-485是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。RS-485通讯协议由RS-232协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单…

【HarmonyOS】掌握布局组件,提升应用体验

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

【RT-DETR有效改进】华为 | GhostnetV2移动端的特征提取网络效果完爆MobileNet系列

前言 大家好,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持ResNet32、ResNet101和PP…

自动控制原理——数学模型建立

目标 1.数学模型概念 描述系统输入、输出变量以及内部个变量之间的关系的数学表达式 2.建模方法 解析法(机理解析法): 根据系统工作所依据的物理定律写运动方程 实验法(系统辨识法): 给系统施加某种测试信号&am…

万户 ezOFFICE wf_process_attrelate_aiframe.jsp SQL注入漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…

Intel开发环境Quartus、Eclipse与WSL的安装

PC :win10 64bit 安装顺序:先安装Quartus 21.4,接着Eclipse或者WSL(Windows Subsystem for Linux),Eclipse与WSL的安装不分先后。 为什么要安装Eclipse? 因为Eclipse可以开发基于Nios II的C/…

SwiftUI 框架有哪些主要优势

SwiftUI是苹果公司在2019年推出的一种用于构建用户界面的框架,它使用Swift语言编写,并且与iOS、iPadOS、macOS、watchOS和tvOS等平台兼容。下面简单的看下有哪些主要的优势。 声明式的界面描述 使用声明式编程风格,通过简洁的代码描述用户界…

力扣645.错误的集合

一点一点地刷,慢慢攻克力扣!! 王子公主请看题 集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数…

C++:基于C的语法优化

C:基于C的语法优化 命名空间命名空间域域作用限定符展开命名空间域 输入输出缺省参数全缺省参数半缺省参数 函数重载参数类型不同参数个数不同参数类型的顺序不同 引用基本语法按引用传递返回引用引用与指针的区别 内联函数autoauto与指针和引用结合 范围for循环nul…

红队打靶练习:W34KN3SS: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、gobuster 5、dirsearch WEB web信息收集 目录探测 漏洞利用 openssl密钥碰撞 SSH登录 提权 get user.txt get passwd 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB…

羊驼系列大模型LLaMa、Alpaca、Vicuna

羊驼系列大模型:大模型的安卓系统 GPT系列:类比ios系统,不开源 LLaMa让大模型平民化 LLaMa优势 用到的数据:大部分英语、西班牙语,少中文 模型下载地址 https://huggingface.co/meta-llama Alpaca模型 Alpaca是斯…

java枚举详细解释

枚举的基本认识 我们一般直接定义一个单独的枚举类 public enum 枚举类名{枚举项1,枚举项2,枚举项3 } 可以通过 枚举类名.枚举项 来访问该枚举项的 - 可以理解为 枚举项就是我们自己定义的一个数据类型,是独一无二的 接下来我们直接用一个例子来完全理解 加深理解 这里…

VScode代码查找、替换

快捷方法按CtrlF Mac为CommandF 右上角出现的框就是查找框,可以输入想找的内容 点击左边的小尖儿,输入替换的内容后 按回车是替换一个,按Ctrl回车(Command回车)是全替换,点击右边那两个图案也可以&#x…

DHCP配置(路由器,交换机)

DHCP接口地址池配置 拓扑 PC配置DHCP点击应用。 路由器配置命令 <Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]int g0/0/1[Huawei-GigabitEthernet0/0/1]ip address 10.1.1.1 24[Huawei-GigabitEthernet0/0/1]q[Huawei]dhcp enable Info: T…

DBA技术栈MongoDB: 索引和查询优化

2.1 批量插入数据 单条数据插入db.collection.insertOne()多条数据插入db.collection.insertMany() db.inventory.insertMany( [{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },{ item: "notebook"…

web蓝桥杯真题--12、由文本溢出引发的“不友好体验”

背景介绍 通常情况下&#xff0c;为保证布局的稳定性&#xff0c;以及遵循在有限的空间展示更多内容的原则&#xff0c;页面的某块区域不会随内容的增多而无限增高或增宽&#xff0c;一般会有一个约束。 例如&#xff1a;整体元素过多可以使用滚动条&#xff1b;文字内容过多…