计算机视觉之三维重建(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,一经查实,立即删除!

相关文章

Redis的Hash数据结构中100万对field和value,field是自增时如何优化?优化Hash结构。

ZipList使用是有条件的,当entry数据量太大时就会启用哈希结构,占用内存空间 1.设置bigkey的上限 在redis.config中设置 2.拆分为string类型 String底层结果没有太多优化,占用内存多 想要批量获取数据麻烦 3.拆分为小的hash 将id/100作为…

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…

MATLAB 打开文件对话框选择点云输入 (52)

MATLAB 打开文件对话框选择点云输入 (52) 一、算法介绍二、算法实现1.代码一、算法介绍 从指定的路径中(具体的文件夹),选择指定的文件格式(比如ply文件),读取手动点击选择的点云。 整个过程通过打开资源管理器的对话框来手动点击选择点云读取。直接运行即可。 二、算…

Linux课程____shell脚本应用

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

CSS3 简介

1.CSS3 概述 CSS3 是CSS2 的升级版本,它在CSS2 的基础上,新增了很多强大的新功能,从而解决一些实际 面临的问题。 CSS3 在未来会按照模块化的方式去发展: https://www.w3.org/Style/CSS/current-work.html CSS3 的新特性如下&am…

翻译 《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文件,…

阳光消费金融2023利润创新高,固收业务立功

来源 | 镭射财经(leishecaijing) 3月28日,光大银行披露了2023年年报,亦公布旗下消金公司阳光消费金融业绩。截至2023年末,阳光消费金融总资产116.77 亿元,同比下滑6.41%;净资产13.19亿元&#…

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

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

sqlmap基础知识(二)

一、sqlmap的基本使用 读取文件/上传文件 支持的数据库类型 仅对MySQL、MSSQL、PostgreSQL有效,可以进行文件操作 前提条件 必须是高权限用户 mysql禁用secure_file_priv php禁用GPC 有目录读写文件权限 sqlmap -u url --is-dba # 查看是否为dba权限,…

pytorch | torch.contiguous()方法

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

Android WindowManager工具类

WindowManager提供三个方法&#xff1a; addView()、updateLayout()、removeView()。分别对应是添加view、更新view、移除view。 <!--悬浮窗权限--><uses-permission android:name"android.permission.SYSTEM_ALERT_WINDOW"/> WindowManagerUtil pack…

Linux-3 yum和vim

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

【Go】goroutine并发常见的变量覆盖案例

越过山丘 遇见六十岁的我 拄着一根白手杖 在听鸟儿歌唱 我问他幸福与否 他笑着摆了摆手 在他身边围绕着一群 当年流放归来的朋友 他说你不必挽留 爱是一个人的等候 等到房顶开出了花 这里就是天下 总有人幸福白头 总有人哭着分手 无论相遇还是不相遇 都是献给岁月的序曲 …