计算机视觉之三维重建(5)---双目立体视觉

文章目录

  • 一、平行视图
    • 1.1 示意图
    • 1.2 平行视图的基础矩阵
    • 1.3 平行视图的极几何
    • 1.4 平行视图的三角测量
  • 二、图像校正
  • 三、对应点问题
    • 3.1 相关匹配法
    • 3.2 归一化相关匹配法
    • 3.3 窗口问题
    • 3.4 相关法存在的问题
    • 3.5 约束问题


一、平行视图

1.1 示意图

 如下图即是一个平行视图。特点:(1) 两个平面平行。 (2) 基线平行于图像平面,极点 e e e e ′ e' e 位于无穷远处。

在这里插入图片描述

1.2 平行视图的基础矩阵

 1. 对于基础矩阵我们有另一个表达式: F = e ′ × K ′ R K − 1 F=e'×K'RK^{−1} F=e×KRK1,推导过程如下所示。

在这里插入图片描述

 2. 在平行视图情况下,极点交于无穷远处,所以我们可以假定极点 e ′ = [ 1 , 0 , 0 ] T e'=[1,0,0]^T e=[1,0,0]T,平行视图下, K = K ′ K=K' K=K R = I R=I R=I,那么对于平行视图有:

在这里插入图片描述

1.3 平行视图的极几何

 1. 极线是水平的,平行于 u u u 轴。

 2. 平行视图下, p p p p ′ p' p v v v 轴方向坐标相同,即垂直方向没有变换。

 3. 极点位于无穷远处。

 4. 已知 p p p F F F 的情况下, p ′ p' p 只需要按着扫描线寻找即可,扫描线指的是过 p p p 且平行于 u u u 轴的线。

在这里插入图片描述

在这里插入图片描述

1.4 平行视图的三角测量

 1. 俯视这个平行视图,两个摄像机平面就会变成线。 P P P O 1 O_1 O1 O 2 O_2 O2 的距离表示为深度 z z z O 1 O_1 O1 O 2 O_2 O2 的距离为 B B B,焦距为 f f f。利用相似三角形底比高可得视差与深度 z z z 成反比。

在这里插入图片描述

在这里插入图片描述

 2. (1) 平行视图中的视差图:根据两台平行摄像机在不同角度观察同一物体或场景时,由于视角差异造成的图像的差异进而推断出物体的深度和距离,得到一幅信息图,可以用于对物体或场景的三维重建和识别。 (2) 3D电影通过用两个摄像头同时模拟拍摄同一场景,模拟人眼双眼视觉,再将两个平行视图分别投影到屏幕上,由于使用特殊的偏振式眼睛,通过人眼的立体视觉原理,会给观众感知到一种立体的深度效果。

在这里插入图片描述

在这里插入图片描述

二、图像校正

 1. 图像校正:使一组非平行视图通过校正构建成平行视图。

 2. 图像校正有五步:
 (1) 在两幅图像 l l l l ′ l' l 上找到一组匹配点 p i ↔ p i ′ p_i↔p'_i pipi,不少于 8 8 8 个。

 (2) 计算基础矩阵 F F F(八点法),求解两幅图像中的极点 e e e e ′ e' e
在这里插入图片描述

 (3) 选择透视变换 H ′ H' H e ′ e' e 映射到无穷远点 ( f , 0 , 0 ) (f,0,0) (f,0,0),变换公式: H = T − 1 G R T H=T^{-1}GRT H=T1GRT
 ① 先将图像的中心点从左下角移到中心。② 构造 R R R。③ 构造 G G G

在这里插入图片描述

 (4) 对透视变换矩阵 H H H 进行变换,使得经过 H H H H ′ H' H 变换后的两个像平面满足平行视图要求: Σ d ( H p i , H ′ p i ′ ) Σd(Hp_i,H'p_i') Σd(Hpi,Hpi)

 (5) 分别利用新的矩阵 H H H H ′ H' H,对左右两幅图像 l l l l ′ l' l 进行重采样,得到一组平行视图。

在这里插入图片描述

三、对应点问题

 对应点搜索问题,即根据 p p p 点寻找对应 p ′ p' p 点的问题,我们根据平行视图极几何关系可知, p ′ p' p 点一定在扫描线上,这样可以进一步缩小的检索范围。

3.1 相关匹配法

 通过点与点之间 3 ∗ 3 3*3 33 窗口的相关性来进行判断。作为相关性标准,该方法可行依据在于,一般情况下一个图像上像素颜色或灰度的变化是平滑的,这样近似相同点平方的最大值的和在理论上大于高偏差点平方的最大值的和。

在这里插入图片描述

3.2 归一化相关匹配法

 1. 对于一个图像上存在像素颜色或灰度变化突变的情况,上一种方法会出现计算误差较大,所以需要进行归一化。

 2. 归一化相关匹配法:改变原来的相似性度量,通过每个窗口向窗口均值进行归一化,达到平滑的效果。

在这里插入图片描述

在这里插入图片描述

3.3 窗口问题

 对于较小的窗口:会引入更多的噪声,更容易受到噪声影响,但反之也会在没有噪声影响的地方提供更精确的信息。对于较大的窗口:通过归一化操作可以平滑更多的噪声,但也会丢失一部分细节。

在这里插入图片描述

3.4 相关法存在的问题

 1. 透视缩短和遮挡问题:

在这里插入图片描述

 2. 当遇到不规则物体在视角上存在遮挡时,可能由于 B / z B/z B/z 的过大,两个像平面无法得到更多的信息交互,导致信息丢失,所以可以适当减小 B / z B/z B/z。但当 B / z B/z B/z 过小时,由于双目视觉上遮挡的信息只能尽量的去弱化,不能去消除,所以当 B / z B/z B/z 过小时,物体的突出部会造成过大的深度误差,从而在三维重建过程中存在视觉上的明显错误。

在这里插入图片描述

 3. 同质区域:由于存在世界坐标下不同区域但颜色非常相近的地方,所以会导致误差的产生,比如用双目视觉去测量一堵白墙的形状,但光影极其不明显。

在这里插入图片描述

 4. 对于世界实物上存在重复的区域,这会对双目视觉的三维重建产生较大的影响。

在这里插入图片描述

3.5 约束问题

 1. 唯一性约束:对于一张图像中的任何点,在另一张图像上最多只有一个匹配点,不存在同质区域和重复区域。

在这里插入图片描述

 2. 顺序约束/单调性约束:左右视图中的对应点次序一致,保证不存在遮挡。

在这里插入图片描述

 3. 平滑性约束:视差函数通常是平滑的,减少曝光亮度突变的问题。

在这里插入图片描述

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

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

相关文章

2核2G服务器优惠价格轻量61元一年,CVM价格313元15个月

腾讯云2核2G服务器多少钱一年?轻量服务器61元一年,CVM 2核2G S5服务器313.2元15个月,轻量2核2G3M带宽、40系统盘,云服务器CVM S5实例是2核2G、50G系统盘。腾讯云2核2G服务器优惠活动 txybk.com/go/txy 链接打开如下图:…

最小覆盖子串-java

最小覆盖子串-java 题目描述 : 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必…

Mac上Matlab_R2023b ARM 版 启动闪退(意外退出)解决方法

安装好后,使用 "libmwlmgrimpl.dylib" 文件替换掉"/Applications/Matlab_R2023b.app/bin/maca64/matlab_startup_plugins/lmgrimpl"文件夹下的同名文件 在终端下执行如下命令: codesign --verbose --force --deep -s - /Applicat…

本地项目上传到GitHub

本文档因使用实际项目提交做为案例,故使用xxx等字符进行脱敏,同时隐藏了部分输出,已实际项目和命令行输出为准 0、 Git 安装与GitHub注册 1) 在下述地址下载Git,安装一路默认下一步即可。安装完成后,随便…

乡村数字化转型:科技赋能打造智慧农村新生态

随着信息技术的迅猛发展,数字化转型已成为推动社会进步的重要引擎。在乡村振兴的大背景下,乡村数字化转型不仅是提升乡村治理能力和治理水平现代化的关键,更是推动农业现代化、农村繁荣和农民增收的重要途径。本文旨在探讨乡村数字化转型的内…

解决MySQL幻读?可重复读隔离级别背后的工作原理

什么是当前读和快照读 当前读:又称为 "锁定读",它会读取记录的最新版本(也就是最新的提交结果),并对读取到的数据加锁,其它事务不能修改这些数据,直到当前事务提交或回滚。"sele…

Linux课程____shell脚本应用

:一、认识shell 常用解释器 Bash , ksh , csh 登陆后默认使用shell,一般为/bin/bash,不同的指令,运行的环境也不同 二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件,简单内容 #!/bin/bash …

翻译 《The Old New Thing》 - Why is a registry file called a “hive“?

Why is a registry file called a “hive“?https://devblogs.microsoft.com/oldnewthing/20030808-00/?p42943 为什么注册表文件被称为‘蜂巢’? Raymond Chen 2003年8月8日 分享一个没用的知识: 话说有一位 Windows NT 的开发者十分讨厌蜜蜂。于是&a…

sectigo 单IP证书360元

IP数字证书使用了强大的加密功能,能够有效保护网站和用户数据在传输过程中的安全。由Sectigo颁发的各种数字证书兼容性高,可以支持几乎所有主流浏览器,在用户访问时不会出现“不安全”提示,Sectigo旗下的IP证书可以为只有公网IP地…

HAProxy + Vitess负载均衡

一、环境搭建 Vitess环境搭建: 具体vitess安装不再赘述,主要是需要启动3个vtgate(官方推荐vtgate和vtablet数量一致) 操作: 在vitess/examples/common/scripts目录中,修改vtgate-up.sh文件,…

Python之Opencv教程(4):识别图片中多张人脸

1、识别代码 导入必要的库 import cv2加载人脸识别器 face_detector cv.CascadeClassifier("data//haarcascade_frontalface_alt.xml")这里使用了OpenCV自带的人脸识别分类器,路径为cv2.data.haarcascades ‘haarcascade_frontalface_default.xml’。你…

pytorch | torch.contiguous()方法

torch.contiguous()方法语义上是“连续的”,经常与torch.permute()、torch.transpose()、torch.view()方法一起使用,要理解这样使用的缘由,得从pytorch多维数组的低层存储开始说起: touch.view()方法对张量改变“形状”其实并没有…

Linux-3 yum和vim

目录 本节目标: Linux 软件包管理器 yum 什么是软件包 1.yum是什么?软件包? 2.Linux(centos)的生态 3.yum的相关操作 我怎么知道我应该安装什么软件? 4.yum的本地配置 关于 rzsz 查看软件包 Linux编辑器-vim使用 1.v…

开源知识库平台Raneto--使用Docker部署Raneto

文章目录 一、Raneto介绍1.1 Raneto简介1.2 知识库介绍 二、阿里云环境2.1 环境规划2.2 部署介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Raneto镜像五、部署Raneto知识库平台5.1 创建挂载目录5.2 编辑config.js文件5.…

MySQL InnoDB 之 多版本并发控制(MVCC)

多版本并发控制(MVCC,Multi-Version Concurrency Control)是数据库管理系统中用于提供高并发性和在事务处理中实现隔离级别的一种技术。MVCC 允许系统在不完全锁定数据库资源的情况下,处理多个并发事务,从而提高了数据…

Datacom HCIP笔记-OSPF协议 之二

链路:路由器之间的相连的链路 状态:链路上的参数在某一时刻的状态 单边邻居 one way? 收到对端发来的hello报文,其中没有自己的router id LSA类型: 1类LSA:描述路由器自身加入到ospf进程中的直连链路的状态…

大数据-TXT文本重复行计数工具

支持系统类型:Windows 64位系统 Linux 64位系统 苹果64位系统 硬盘要求:固态硬盘(有效剩余磁盘空间大小最低3倍于大数据文件的大小) 内存要求:最低8G(例如只有几百G数据) 如果处理TB级大数据文…

STM32 软件I2C方式读取AS5600磁编码器获取角度例程

STM32 软件I2C方式读取AS5600磁编码器获取角度例程 🔖本例程使用正点原子例程作为工程模板创建。 📘 硬件电路部分 🌿原理图部分: 🌿PCB布线和电路 ✨注意事项:有些硬件需要I2C上拉,否则检…

校园局域网钓鱼实例

Hello ! 我是"我是小恒不会java" 本文仅作为针对普通同学眼中的网络安全,设计的钓鱼案例也是怎么简陋怎么来 注:本文不会外传代码,后端已停止使用,仅作为学习使用 基本原理 内网主机扫描DNS劫持前端模拟后端…

【2023】kafka入门学习与使用(kafka-2)

目录💻 一、基本介绍1、产生背景2、 消息队列介绍2.1、消息队列的本质作用2.2、消息队列的使用场景2.3、消息队列的两种模式2.4、消息队列选型: 二、kafka组件1、核心组件概念2、架构3、基本使用3.1、消费消息3.2、单播和多播消息的实现 4、主题和分区4.…