计算机视觉之三维重建(4)---三维重建基础与极几何

news2024/11/20 0:43:17

文章目录

  • 一、三维重建基础
    • 1.1 问题引入
    • 1.2 线性解法
    • 1.3 非线性解法
    • 1.4 多视图几何的关键问题
  • 二、极几何与基础矩阵
    • 2.1 极几何
    • 2.2 极几何特例
    • 2.3 本质矩阵
    • 2.4 本质矩阵的性质
    • 2.5 基础矩阵
    • 2.6 基础矩阵的性质
  • 三、基础矩阵估计


一、三维重建基础

1.1 问题引入

 1. 从单张图像恢复场景几何比较困难。比如下面这张图,图片上人和塔几乎高度相同,但是我们不知道人和塔离摄像机的距离,无法还原真实场景。

在这里插入图片描述

 2. 要解决上面这个问题,我们必须有 “双眼系统” 才能解决。因为两条射线可以确定交点。但由于噪声的存在,两条直线通常不相交。我们应该如何通过两个摄像机像平面的点 p p p p ′ p' p 以及两个摄像机内参数 K K K K ′ K' K、三角化的矩阵 R R R T T T,来计算世界坐标系下的 P P P 点的坐标呢?
 有线性解法和非线性解法两种。

在这里插入图片描述

1.2 线性解法

 通过摄像机模型关系我们可以得到关于 p p p p ′ p' p 的式子,如下图左半部分所示。 那么我们可以根据这两个式子,对于同一个点以及两个像平面点之间的对应关系,写出四个齐次方程,但是未知数只有三个,所以是一个超定齐次线性方程组,可以用齐次方程的最小二乘解来进行计算。

在这里插入图片描述

1.3 非线性解法

 非线性解法对于下图来说,由于存在噪声,对于 P P P 点在两个平面的投影 M P MP MP M ′ P ∗ M'P^* MP 与真实的像平面 p p p p ′ p' p 存在一定的误差,所以寻找 m i n [ d ( p , M P ) + d ( p ′ , M ′ P ) ] min[d(p,MP)+d(p',M'P)] min[d(p,MP)+d(p,MP)]的值,仍然是一个齐次非线性方程组的问题,所以用牛顿法和 L − M L-M LM 方法来求解。

在这里插入图片描述

1.4 多视图几何的关键问题

 1. 摄影机几何:从一张或多张图像中求解摄像机的内外参数。

 2. 场景几何:通过二至多幅图片寻找3D场景坐标。

 3. 对应关系:已知一个图像的 p p p 点,如何在另一个图像上找到 p ′ p' p 点。

二、极几何与基础矩阵

2.1 极几何

 1. 极几何:描述同一场景或者物体的两个视点图像间的几何关系。极几何主要解决的就是多视图几何的第三个问题: p p p p ′ p' p 的对应关系。

 2. 对于下图,两个平面就是指两个视点图像,也就是两个摄像机的像平面。 p p p p ′ p' p 是两个像素点。
 (1) 极平面:过点 P P P O 1 O_1 O1 O 2 O_2 O2 的平面,也就是 P P P p p p p ′ p' p 所组成的平面,这两个平面相似。
 (2) 基线: O 1 O_1 O1 O 2 O_2 O2 的连线。
 (3) 极线:极平面与成像平面的交线,即 p e pe pe p ′ e ′ p'e' pe 直线。
 (4) 极点:基线与成像平面的交点,即下图的 e e e e ′ e' e

 3. 性质:
 (1) 极平面相交于基线,应该是基线在极平面上。
 (2) 极线相交于极点。
 (3) 对于不同的世界坐标点 P P P 和点 Q Q Q,在两个像平面的极点 e e e e ′ e' e 不变。
 (4) p p p 的对应点在另一个相机的极线 l ′ l' l 上。(对应点指的是两个相机之间的三角化 R R R T T T 对应关系)
 (5) p ′ p' p 的对应点在另一个相机的极线 l l l 上。

在这里插入图片描述

2.2 极几何特例

 1. 平行视图:平行视图是指两个摄像机之间三角化没有旋转关系,只有 u u u 轴的横向平移关系,基线平行于图像平面,两个极点位于无穷远处,极线平行于图像坐标的 u u u 轴。

在这里插入图片描述

 2. 前向平移:前向平移建立在两个摄像机具有两个方向的平移关系,但仍然保持极点位置相同,注意不是说同一个物体在同一个位置上。

在这里插入图片描述

 通过极几何的约束,可以将搜索范围缩小到对应的极线上,而并没有做到对应点,所以存在一个方向上的误差问题。

在这里插入图片描述

2.3 本质矩阵

 1. 本质矩阵:对规范化摄像机拍摄的两个视点图像间的极几何关系进行代数描述。
:这里强调规范化摄像机。规范化摄像机有如下性质。

在这里插入图片描述

 2. 规范化作用:我们假设有两个像平面 I I I I ′ I' I O 1 O_1 O1 O 2 O_2 O2 分别为像平面的原点,图像 I I I 上点 p p p 的像素坐标为 ( u , v ) (u,v) (u,v),图像 I ′ I' I 上点 p ′ p' p 的像素坐标为 ( u ′ , v ′ ) (u',v') (u,v)。此时对于世界坐标系的欧式坐标和两个图像点上的齐次坐标必然一致。

在这里插入图片描述

 3. 本质矩阵的关系表达式: E = T × R E=T×R E=T×R,其中摄像机 1 1 1 经过平移 T T T 变换,旋转 R R R 变换得到摄像机 2 2 2。对于世界坐标的点 P P P 投影到摄影机 1 1 1 的像平面 p p p 点,投影到摄像机 2 2 2 的像平面 p ′ p' p 点有下面关系成立: p ′ T [ T × R ] p = 0 p'^T[T×R]p=0 pT[T×R]p=0,即 p ′ T E p = 0 {p'}^TEp=0 pTEp=0,如何证明?
 我们知道任意一个 I I I 上的点 p p p 经过 R R R T T T 变换得到 I ′ I' I 上的点 p ′ p' p,由于旋转矩阵 R R R 是一个正交矩阵,其转置等于其逆,有 R T R = I R^TR=I RTR=I,所以可以推出 p ′ p' p O 1 O_1 O1 上的坐标。
 过程: p ′ = R p + T p'=Rp+T p=Rp+T,所以 p = R T p ′ − R T T p=R^Tp'-R^TT p=RTpRTT
p p p p ′ p' p 都是规范化摄像机坐标系下的像素坐标。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.4 本质矩阵的性质

 1. p p p 对应的极线是 l ′ l' l,对应关系 l ′ = E p l'=Ep l=Ep

 2. p ′ p' p 对应的极线是 l l l,对应关系 l = E T p ′ l=E^Tp' l=ETp

 3. E e = 0 Ee=0 Ee=0 e ′ T E = 0 e'^TE=0 eTE=0

 4. E E E 是奇异的, r a n k rank rank 2 2 2

 5. E E E 5 5 5 个自由度 (三个平移三个旋转,由于行列式为 0 0 0,去掉一个自由度)。

在这里插入图片描述

2.5 基础矩阵

 基础矩阵:对一般的透视摄像机拍摄的两个视点的图像间的极几何关系进行代数描述。

在这里插入图片描述

在这里插入图片描述

2.6 基础矩阵的性质

 1. 基本上性质与本质矩阵相似,只不过由于多了两个参数 K K K K ′ K' K 所以为 7 7 7 个自由度。

在这里插入图片描述

 2. 基础矩阵作用:基础矩阵中包含了摄像机内参数信息,所以给了基础矩阵,我们无需知道两个摄像机的内外参数就可以建立相同场景在不同视图的对应关系。

三、基础矩阵估计

 1. 首先由于 p ′ T F p = 0 {p'}^TFp=0 pTFp=0 我们可以转化成 W F ′ = 0 WF'=0 WF=0 的齐次形式,此时我们定义新的列向量参数为 F ′ F' F,由于参数列向量 F ′ F' F 一共有 8 8 8 个有效值,所以我们只需要找 8 8 8 组点就可以解这个齐次线性方程组。解齐次线性方程组,仍然可以用齐次线性方程组的最小二乘解,通过找大于 8 8 8 个点,通过求解一个 S V D SVD SVD 问题即可。

在这里插入图片描述

在这里插入图片描述

 2. 但此时有一个问题:当前的 F ′ F' F 与基础矩阵 F F F 并不一致,这一方面可以通过reshape来修改,但由于多组点不一定均为正确点以及噪声点的出现,可能导致 F ′ F' F 矩阵的秩为 3 3 3,而一般基础矩阵 F F F 的秩为 2 2 2,所以我们要进行秩 2 2 2 校正。

在这里插入图片描述

在这里插入图片描述

 3. 由于计算八点法求齐次线性方程组的最小二乘解过程中,参数之间数值差异过大,导致精度较低,误差较大,所以对八个点进行归一化处理。
 对每幅图像施加变换 T T T(平移与缩放),让其满足原点为图像上八个点的重心,各个点到坐标原点的均方根距离均为根号2。所以主要是计算两台摄像机的两幅图像中的 T T T T ′ T' T

在这里插入图片描述

 4. 归一化八点法过程如下所示:

在这里插入图片描述

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

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

相关文章

MySQL Explain 字段详解

Explain 工具介绍 Explain 一般被称为解释器,通过 Explain 工具,我们能分析我们使用的查询语句或是结构的性能瓶颈,它提供 MySQL 如何执行语句的信息。 使用语法: explain [extended|partition] select在 select 关键字前加 ex…

【多模态融合】SuperFusion 激光雷达与相机多层次融合 远距离高清地图预测 ICRA 2024

前言 本文介绍激光雷达与相机进行多层次融合,包括数据级融合、特征级融合和BEV级融合。 融合后的BEV特征可以支持不同的任务头,包括语义分割、实例编码和方向预测,最后进行后处理生成高清地图预测,它是来自ICRA 2024的。 会讲解…

【C++ leetcode】双指针(专题完结)

15. 三数之和 题目 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的…

3.26学习总结

java 实例变量和局部变量 实例变量是记录这个类中对象的特点的每一个对象的实例变量都可以不同(例如名字,性别等),其中一个对象的实例变量改变不会影响其他的变量. 类变量是一种特殊的实例变量,他的特殊在于所有的对象的类变量都是相同的,当一个对象改变了类变量那么所有对象…

0101支付安全-支付模块-项目实战

文章目录 一、信息安全的基础-机密性1 相关概念2 对称加密和非对称加密 二、身份认证三 摘要算法四、数字签名五、数字证书结语 在支付过程中,设计多方的敏感信息,那么安全尤为重要。下面先简单介绍下,相关概念。 一、信息安全的基础-机密性 …

Java项目:76 Springboot学生读书笔记共享

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本文从管理员、用户的功能要求出发, 读书笔记共享平台系统中的功能模块主要是实现管理员;首页、个人中心、用户管理、…

Intellij IDEA构建Android开发环境

Intellij IDEA创建项目时没有Android的选项 进设置(Intellij IDEA - Settings - Plugins ) 再次创建项目可以看到Android的选项 解决Android导入项目时Gradle下载速度慢/超时/失败

Ansys Speos | Light Expert Group探测器组使用技巧

附件下载 联系工作人员获取附件 概述 相机挡板的设计需要在光路的不同位置同步多个照度图,以尽量减少杂散光。2023R2 Speos提供了一种新的探测器,用于高阶杂散光分析,可以同时对多个探测器进行光线追迹。Light Expert工具可以即时过滤3D视…

docker安装elasticseachkibana

1.docker安装es 创建本机挂载目录,与容器上目录映射 /Users/wangpei/2024/mydata/elasticsearch conf下创建yml文件 echo "http.host : 0.0.0.0" >> /Users/wangpei/2024/mydata/elasticsearch/config/elasticsearch.yml 安装容器: d…

书籍推荐|meta分析R语言实践教程-Doing Meta-Analysis with R: A Hands-On Guide

“The problems are solved, not by giving new information, but by arranging what we have known since long.” – Ludwig Wittgenstein 推荐理由 《Doing Meta-Analysis with R: A Hands-On Guide》是由 Mathias Harrer, Pim Cuijpers, Toshi Furukawa, 和 David Ebert所…

排序(冒泡/快速/归并)

冒泡排序 时间复杂度为 O(n^2) 原理 比较相邻的元素. 如果第一个比第二个大,就交换他们两个.依次比较每一对相邻的元素—>结果 : 最后的元素是这组数中最大的重复上述步骤 , 除了最后一个[]因为最后一个已经是排好序的了(这组数中最大的那个)]持续对越来越少的元素进行如上…

如何备考2025年AMC8竞赛?吃透2000-2024年600道真题(免费送题)

最近有家长朋友问我,现在有哪些类似于奥数的比赛可以参加?我的建议可以关注下AMC8的竞赛,类似于国内的奥数,但是其难度要比国内的奥数低一些,而且比赛门槛更低,考试也更方便。比赛的题目尤其是应用题比较有…

NIO与AIO

NIO与AIO NIO模型 在 LInux 环境中,java.nio.channels.Selector 的子类叫做 sun.nio.ch.EPollSelectorImpl ,其底 层是基于 Epoll 模型去实现的 IO 多路复用器。 对于 Epoll 模型 我们需要了解到它底层的三个函数 在 JDK 实现的底层中,EPol…

git clone没有权限的解决方法

一般情况 git clone时没有权限,一般是因为在代码库平台上没有配置本地电脑的id_rsa.pub 只要配置上,一般就可以正常下载了。 非一般情况 但是也有即使配置了id_rsa.pub后,仍然无法clone代码的情况。如下 原因 这种情况是因为ssh客户端…

Codigger用户篇:安全、稳定、高效的运行环境(一)

在当今数字化时代,个人数据的安全与隐私保护显得尤为重要。为了满足用户对数据信息的安全需求,我们推出Codigger分布式操作系统,它提供了一个运行私有应用程序的平台,旨在为用户提供一个安全、稳定、高效的私人应用运行环境。Codi…

对谈Concured首席技术官:利用AI和MongoDB打造个性化内容推荐系统

Built with MongoDB 栏目采访了AI初创企业Concured在成立约一年后加入的首席技术官 Tom Wilson,围绕 Concured 的人工智能使用情况、Wilson 加入团队的过程、坚持选择MongoDB的原因以及公司未来发展展开讨论。 关于Concured 内容无处不在。无论消费者寻找什么或所处…

【Effective Web】html/css优化和技巧

html/css优化和技巧 html/css可以做到一些js的功能&#xff0c;减少js操作dom的高昂成本。 巧用伪类 显示勾选时文案 checkbo勾选时触发&#xff0c;实现checkbox的简单选中事件处理 <template><input type"checkbox" /><span class"checkb…

最优算法100例之07-数组中只出现一次的数

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 一个整型数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这个只出现一次的数字。 题解报告 最优解法…

Java框架安全篇--Shiro-550漏洞

Java框架安全篇--Shiro-550漏洞 Shiro反序列化源码可以提取&#xff1a; https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4 JAVA反序列化就不说了&#xff0c;可以参考前面文章 https://blog.csdn.net/m0_63138919/article/details/136751184 初始Apache Sh…

VOC(客户之声)赋能智能家居:打造个性化、交互式的未来生活体验

随着科技的飞速发展&#xff0c;智能家居已成为现代家庭不可或缺的一部分。然而&#xff0c;如何让智能家居更好地满足用户需求&#xff0c;提供更贴心、更智能的服务&#xff0c;一直是行业关注的焦点。在这个背景下&#xff0c;VOC&#xff08;客户之声&#xff09;作为一种用…