【三维重建补充知识-0】视差、深度概念及其转换

news2024/11/24 3:37:48

一、基本概念

把手指放在眼前,分别闭上左、右眼,我们会发现手指与后边物体的相对位置是不同的,也即两眼所识别的两幅图像之间存在视觉差异,我们通过“视差”这一概念来表示这种差别

该过程也可以通过两个处于同一平面的相机来模拟:
在这里插入图片描述

如下图所示,在同一水平面上存在位置偏移的两个相机,它们对同一物体拍照成像后在图片上的像素点坐标位置并不相同

在这里插入图片描述

对于同一特征点P,在相机Ol和Or下成像点分别为p和p’,两条向上的箭头线代表了相机的摄影主轴方向(平行),两条红线代表了成像平面(沿x方向的长度相等),以相片的左边界为x方向的零起始边,p点和p‘点在对应相平面下的x坐标分别为xl和xr,定义视差(disparity)为xl-xr

二、视差与深度的转换

通过视差,利用相似三角形我们可以计算出点P距离相机的深度信息

记OlOr距离为B,pp‘距离为b,深度为z,焦距为f,视差xl-xr为s,则有
b B = z − f z \frac{b}{B}=\frac{z-f}{z} Bb=zzf
B − s B = z − f z \frac{B-s}{B}=\frac{z-f}{z} BBs=zzf
z = f B s z=f\frac{B}{s} z=fsB
由此通过视差便可以求出物体与相机沿光轴方向上的距离,也即深度信息。

b=B-s推导:
b为pp‘距离,即B减去左右两个红色小三角形的底边,左边的底边为xr - L/2,右边的底边为L/2 - xl,因此b=B - (xr - L/2) - (L/2 - xl) = B - xr + xl,也即b = B-s

三、视差与深度关系

同时根据公式我们可以看出当物体距离越远,视差越小,物体越近,视差越大
在这里插入图片描述
这是符合我们日常生活经验的,对于手指的例子,放的离眼睛越近,两次背后物体与手指的位置偏差越大,当放到足够远时,与手指靠很近的物体则基本看不出位置的偏移。

对于人眼双目系统而言,正是因为两眼之间存在水平的位置偏移产生了视差,人脑在接受到两张图片之后才可以恢复出深度信息,也即我们能够感受到3D场景下看到的物体离我们有多远

3D电影就是利用了视差,使用两个投影仪投影出两幅具有视差的图像(所以不戴3D眼镜直接看会感觉画面是重叠模糊的),在3D眼镜作用下左、右眼分别只看到对应的一张图像,这就模拟了人眼的双目视觉体系,从而在大脑中产生具有深度感的立体3D场景

四、视差图与深度图

视差图上每个像素点存储了该点在两幅图像下的视差值(为了反映不同视角下图片的差异),而深度图则记录了各点对应真实物体与相机光心沿光轴方向上的距离(为了存储真实三维场景信息)。

以下分别为不同视角的源图像、处理后的视差图和处理后的深度图:
原始图像
视差图
深度图

上边的步骤并不复杂,要想从两张图片中获取视差图,只需对两幅图像上的特征点进行提取,随后在另一张图像上进行特征匹配来寻找对应点,随后即可计算出对应点的视差,获取视差图后可进一步转换为深度图,而有了深度图之后则可以进行三维重建来恢复真实的3D场景(点云等表示方法),因此:

  • 视差图可以看作立体匹配(提取特征、特征匹配)的输出承载体
  • 深度图是立体匹配与点云生成之间的中间桥梁

参考:
https://www.fpga-china.com/4559.html
https://zhuanlan.zhihu.com/p/522285892
https://www.cnblogs.com/riddick/p/8486223.html

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

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

相关文章

Ajax学习:Ajax请求基本操作

点击按钮,发送请求(前端页面和服务端页面信息交流 但是不刷新页面) 注意使用谷歌浏览器 服务器端打开:使用nodemon //1、导入express const expressrequire(express) //2、创建应用对象 创建web服务器 const appexpress() //3、…

软考高级系统架构师_计算机组成与结构02_高速缓存_磁盘结构_输入输出技术_总线结构_可靠性_---软考高级系统架构师005

1.Cache是Cpu与主存储器之间的速度比主存储器要块10倍左右,因为cpu用的说主存储器中的地址, 而cpu速度很快,主存储器速度慢,所以中间加了这个cache,那么这里就涉及到,怎么把cache地址转化成主存储器的地址,cpu使用地址的时候首先访问主存储器地址,但是访问的是cache,所以这个时…

第十二周学习总结 Progress Lack

关于计划的制定 FlowUs计划链接: 点击我进入计划 发现不足:首先,制定计划经验不足,制定计划应该是具体的、有任务量、完成时间。 其次任务应该是可衡量的(比如,我阅读李升波老师的网站文章,应…

【WAX链游】发布一个免费开源的Alien Worlds【外星世界】合约脚本TLM

前言 《链游Farmers World【农民世界】爆火,发布一个免费开源的脚本》 在之前的文章中,我们分享了一个开源的农民世界(Farmers World)脚本 【OpenFarmer】:https://github.com/encoderlee/OpenFarmer 经过这段时间以来的不断学习&#xff…

【HTML】重点知识内容~快速上手

推荐前端学习路线如下: HTML、CSS、JavaScript、noodJS、组件库、JQuery、前端框架(Vue、React)、微信小程序和uniapp、TypeScript、webpack 和 vite、Vue 和 React 码源、NextJS、React Native、后端内容。。。。。。 HTML基本结构&#xff…

QT教程:QSortFilterProxyModel代理实现自定义排序、联合过滤

1. QsortFilterProxyModel介绍 QsortFilterProxyModel类用来为model和view之间提供强大的排序和过滤支持。将模型排序或者过滤后在视图上显示,并且无需对模型中的数据进行任何转换,也无需对模型在中数据进行修改。 比如: 对某列筛选带有”xxx”的关键字出来.并支持…

Maya——1——在maya中,用Arnold(阿诺德)还原Subtance Painter(sp)中的材质效果。

1根据上图的导出选项,在sp中设置arnold的导出参数,得到五张贴图,删掉其中的高度图(用不上)留下这四张 base(基础颜色) Metallic(金属度) Normal(法线&#x…

Google Colab训练yolov3自定义数据集

共分7步: 一、进入Google Colab训练环境 二、下载编译Darknet 三、上传数据集 四、修改配置文件 五、下载预训练权重文件 六、开始训练数据 七、测试训练结果 一、进入Google Colab训练环境 打开 Google Drive 云端硬盘 新建Google Colaboratory文件,…

公共大数据集群中如何配置 YARN 的公平调度器和容量调度器

公共大数据集群中如何配置 YARN 的公平调度器和容量调度器 1 YARN 资源管理框架与公平/容量调度器 作为一款资源调度框架,Yarn 支持可插拔的调度器,常见的调度器有公平调度器 fair scheduler 和容量调度器 capacity scheduler。常见的大数据发行版中&a…

一张照片,如何生成一个二维码?

冬天落在恭王府的第一场大雪、春天聚在河边觅食的麻雀、盛夏午后从冰箱里拿出来的大西瓜、深秋爬满南墙的红叶……每一份惊喜和快乐,都值得分享给更多的朋友。 今天我们要介绍的是,如何将一张照片,做成一个二维码,扫码后就可以看…

利用两个小demo理解汇编代码排查内存溢出问题

利用两个小demo理解汇编代码排查内存溢出问题 https://www.cnblogs.com/liuchuanloong/articles/16925695.html 【背景】 近日处理现场问题时遇到了踩内存导致的崩溃问题,然而个人对反汇编程序执行过程不熟悉,通过查阅资料,对比分析两个小d…

不适用于云的应用程序有哪些?

所有应用程序都适合在云上运行吗?这是在云计算中寻求改进IT解决方案的企业经常问的一个问题。这个问题的答案是“视情况而定”。虽然企业云的应用正在飞速发展,大多数企业都在考虑将整个应用程序迁移到云上,以实现可伸缩、灵活、可访问、敏捷和精益的工…

PC端配置定位服务步骤(依赖于腾讯位置服务)

目录 第一步 : 安装 jsonp 第二步 : 在mian.js中配置并使用 第三步 : 在 manifest.json中进行相关配置 第四步 : 获取经纬度值,从而得到地址 第一步 : 安装 jsonp 执行此代码 : np…

Origin2022安装教程

Origin2022他来了! 本人虽然是Python和R的资深绘图用户,偶尔也用用Origin,Origin的优势区间是手动、全可控,要素复杂事图片效果好: 安装方法和安装包下载破解见文末: Origin 2022新要素 1.对地理要素和…

基于 51 单片机室内灯光控制系统

1. 功能介绍 这是基于 STC89C52 单片机设计的灯光控制系统,实现对室内灯光的控制,采集光敏传感器,红外线热释电传感器,声音传感器,光照照度传感器等数据进行处理,完成室内灯光的智能控制。 支持的功能与设…

VBox组件内部局域网

我使用VirtualBox并不是很专业,只是拿它来组件服务器。后来这个虚拟机对我越来越重要,我的各种测试服务器和学习服务器越来越多,于是我就给他们规划了IP地址,像这样: 我用的网络一直都是桥接,每个虚拟机都可以上网&…

高性能HTTP和反向代理Web服务器 - Nginx

Nginx一、安装1.1.Windows安装1.2.Linux安装1.3.常用命令二、动静分离三、反向代理3.1.正向代理3.2.反向代理四、负载均衡4.1.轮询4.2.加权轮询4.3.Ip hash五、限流六、缓存七、黑白名单Nginx是一个高性能的HTTP服务器和反向代理的web服务器,同时也提供IMAP&#xf…

一文带你读懂公司卫生间一直有人窜稀的原理

不知道你有没有这样的经历,一直忙忙碌碌,需求不断,当你终于解决完手头的事情,突然特别着急想要去卫生间的时候,仅有的几个门总是关着的,于是怀疑,可能其他人更需要这次机会,他们也一…

华为云安装Docker,在其中安装Tomcat运行Html项目一步到位

一日不学习浑身难受,对于追光者的我来说,就是这种情况!!!今天心血来潮,想把云服务器、Docker、Tomcat、Html项目集成一块进行练习,为了后面的部署项目做准备。 环境介绍:华为云cent…

KafKa存储机制

目录 存储机制 kafka 存储选型 Kafka 存储方案剖析 kafka 存储架构设计 kafka 日志系统架构设计 日志目录布局 磁盘数据存储 可靠性 Producer的可靠性保证 kafka 配置为 CP系统 kafka 配置为 AP系统 Broker 的可靠性保证 Consumer 的可靠性策略 AutoCommit&#xff…