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

news/2024/7/26 11:36:21/文章来源:https://blog.csdn.net/m0_62881487/article/details/137128359

文章目录

  • 一、平行视图
    • 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.luyixian.cn/news_show_1035366.aspx

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

相关文章

怎样在Linux搭建NTP服务器

搭建 NTP(Network Time Protocol)服务器可以帮助你在局域网内提供时间同步服务,让网络中的设备都使用统一的时间。以下是在 Linux 系统上搭建 NTP 服务器的基本步骤: 安装 NTP 服务器软件: 在终端中执行以下命令安装 N…

第二十章 红黑树

大家应该都接触过平衡二叉树(AVLTree),了解到 AVL 树的性质,其实平衡二叉树最大的作用就是查找,AVL 树的查找、插入和删除在平均和最坏情况下都是 O(logn)。AVL 树的效率就是高在这个地方。如果在 AVL 树中插入或删除节点后,使得高…

JUC:synchronized优化——锁的升级过程(偏向锁->轻量级锁->重量级锁)以及内部实现原理

文章目录 锁的类型轻量级锁重量级锁自旋优化偏向锁偏向锁的细节偏向锁的撤销批量重偏向批量撤销锁消除 锁的类型 重量级锁、轻量级锁、偏向锁。 加锁过程:偏向->轻量级->重量级 轻量级锁 轻量级锁的使用场景:如果一个对象虽然有多线程要加锁&am…

HarmonyOS 应用开发之Actor并发模型对比内存共享并发模型

内存共享并发模型指多线程同时执行复数任务,这些线程依赖同一内存并且都有权限访问,线程访问内存前需要抢占并锁定内存的使用权,没有抢占到内存的线程需要等待其他线程释放使用权再执行。 Actor并发模型每一个线程都是一个独立Actor&#xf…

IDEA无法连接虚拟机中的Redis的解决方案,无法连接Jedis,无法ping通虚拟机的解决方案

首先,笔者先说明一下自身的情况,怎么连接都连不上,网上的教程全部都看了一遍,基本上没用得上的,这篇文章里面的解决方案包括了笔者能在网上找到了最全面的办法总结,最后终于是连上了 目录 一.连接Jedis出错…

大数据学习第十一天(复习linux指令3)

1、su和exit su命令就是用于账户切换的系统命令 基本语法:su[-] [用户名] 1)-表示是否在切换用户后加载变量,建议带上 2)参数:用户名,表示切换用户 3)切换用户后,可以通过exit命令退…

数据结构——lesson12排序之归并排序

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

【CANN训练营笔记】AscendCL图片分类应用(C++实现)

样例介绍 基于PyTorch框架的ResNet50模型,对*.jpg图片分类,输出各图片所属分类的编号、名称。 环境介绍 华为云AI1s CPU:Intel Xeon Gold 6278C CPU 2.60GHz 内存:8G NPU:Ascend 310 环境准备 下载驱动 wget ht…

小折叠手机无法使用车上的无线充电?车和手机都没问题

最近看到一个案例——一位新入手Pocket 2的机主,发现自己的手机无法在车上进行无线充电。检查了手机和汽车都没问题,折腾大半天结果发现是电磁线圈没对准无线充电的位置。 无线充电的原理是手机的无线充电电磁线圈对准电磁线圈,通过电磁波感…

Wireshark TS | HTTP 传输文件慢问题

问题背景 之前有几篇文章写过关于应用传输慢的问题,延用之前的老套话,应用传输慢是一种比较常见的问题,慢在哪,为什么慢,有时候光从网络数据包分析方面很难回答的一清二楚,毕竟应用的定义范围实在太广&…

汽车租赁(源码+文档)

汽车租赁(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能项目截图客户端登录界面首页订单个人信息我的界面新手指引注册界面车型选择支付界面修改信息 管理端用户管理订单管理分类管理 文件包含内容 1、搭建视频 2、流程图 3、开题报告 …

vue3+threejs新手从零开发卡牌游戏(二十四):添加p2战斗逻辑

用代码模拟p2战斗逻辑,按流程进行步骤拆分: 1.p2抽卡 2.p2召唤怪兽上场 3.p2战斗 其中战斗部分分为几种情况: 情况一:p2场上卡牌由大到小进行排序,按序轮询可以攻击的卡牌,然后攻击p1场上卡牌由大到小…

[蓝桥杯嵌入式]hal库 stm32 (DMA串口1收发,采用空闲中断方法)

前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32G431RBT6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32G4xx…

supersqli-攻防世界

题目 加个报错 1 and 11 #没报错判断为单引号字符注入 爆显位 1 order by 2#回显正常 1 order by 3#报错 说明列数是2 尝试联合查询 -1 union select 1,2# 被过滤了 return preg_match("/select|update|delete|drop|insert|where|\./i",$inject); select|update|d…

SpringBoot+thymeleaf完成视频记忆播放功能

一、背景 1)客户要做一个视频播放功能,要求是系统能够记录观看人员在看视频时能够记录看到了哪个位置,在下次观看视频的时候能够从该位置进行播放。 2)同时,也要能够记录是谁看了视频,看了百分之多少。 说明:由于时间关系和篇幅原因,我们这里只先讨论第一个要求,第…

Lambda表达式,Stream流

文章目录 Lambda表达式作用前提函数式接口特点 语法省略模式和匿名对象类的区别 Stream流思想作用三类方法获取方法单列集合(Collection[List,Set双列集合Map(不能直接获取)数组同一类型元素(Stream中的静态方法) 常见的中间方法终结方法收集方法 Optional类 Lambda表达式 作用…

HarmonyOS 应用开发之通过标准化数据通路实现数据共享

场景介绍 在多对多跨应用数据共享的场景下,需要提供一条数据通路能够接入多个不同应用的数据并共享给其他应用进行读取。 UDMF针对多对多跨应用数据共享的不同业务场景提供了标准化的数据通路,提供了标准化的数据接入与读取接口。 标准化数据通路的定…

3.java openCV4.x 入门-数据类型(CvType)与Scalar

专栏简介 💒个人主页 📰专栏目录 点击上方查看更多内容 📖心灵鸡汤📖我们唯一拥有的就是今天,唯一能把握的也是今天 🧭文章导航🧭 ⬆️ 2.hello openCV ⬇️ 4.待更新 数据类型&#xff…

Leaflet使用多面(MultiPolygon)进行遥感影像掩膜报错解决之道

目录 前言 一、问题初诊断 1、山重水复 2、柳暗花明 3、庖丁解牛 4、问题定位 二、解决多面掩膜问题 1、尝试数据修复 2、实际修复 3、最终效果 三、总结 前言 之前一篇讲解遥感影像掩膜实现:基于SpringBoot和Leaflet的行政区划地图掩膜效果实战&#xff0…

Shell脚本介绍及基本功能

目录 一、什么是Shell 二、什么是Shell脚本 三、echo 四、Hello World 五、Bash的基本功能 1.别名 2.常用快捷键 3.输入输出 4.输出重定向 5.多命令执行 6.管道符 7.通配符和特殊符合 一、什么是Shell Shell是一种命令行解释器,它是操作系统的一部分&a…