计算机视觉之三维重建(7)---多视图几何(下)

文章目录

  • 一、透视结构恢复问题
    • 1.1 概述
    • 1.2 透视结构恢复歧义
    • 1.3 代数方法
    • 1.4 捆绑调整
  • 二、P3P问题
  • 三、随机采样一致性


一、透视结构恢复问题

1.1 概述

 1. 透视结构恢复问题:摄像机为透视相机,内外参数均未知。

 2. 问题:已知 n n n 个三维点 X j X_j Xj m m m 张图像中的对应点的像素坐标为 x i j x_{ij} xij,且 x i j = M i X j x_{ij}=M_iX_j xij=MiXj,其中 M i M_i Mi 为第 i i i 张图片对应的摄像机投影矩阵,求解 n n n 个三维点 X j X_j Xj 的坐标以及 m m m 个摄像机投影矩阵 M i M_i Mi

在这里插入图片描述

1.2 透视结构恢复歧义

 1. 透视结构与仿射结构的区别在于,透视结构计算得到的投影矩阵 M i M_i Mi,与真实投影矩阵差一个 4 ∗ 4 4*4 44 的可逆矩阵 H H H,也就是差了一个透视变换关系。

在这里插入图片描述

 2. 对于给定 m m m 个相机, n n n 个三维点,我们将有 2 m n 2mn 2mn 个等式, 11 m + 3 n − 15 11m+3n-15 11m+3n15 个未知量。

在这里插入图片描述

1.3 代数方法

 1. 求解步骤:(1) 求解基础矩阵 F F F (归一化八点法)。 (2) 基于 F F F 估计摄像机矩阵 F → M 1 , M 2 F \rightarrow M_1,M_2 FM1,M2。 (3) 三角化。
 关键是第二步的求解。

 2. (1)令 M 1 ∗ = [ I ∣ 0 ] M_1^*=[I|0] M1=[I∣0] M 2 ∗ = [ A ∣ b ] M_2^*=[A|b] M2=[Ab]。推导出基础矩阵 F F F A A A b b b 的关系: F = [ b x ] A F=[b_x]A F=[bx]A:同方向的向量叉乘为 0 0 0

在这里插入图片描述

 (2)如何计算 A A A b b b

在这里插入图片描述

1.4 捆绑调整

 1. 捆绑调整(Bundle Adjustment):捆绑调整使用最小化重投影误差,可以进行多次迭代,使重构点足够拟合真实值,可以应用于欧式结构、仿射结构和透视结构多种情况,是一个恢复结构和运动的非线性方法。

 2. 代数法与分解法的局限性:(1) 因式分解法:假定所有点都是可见的,所以对于存在遮挡,建立对应点关系失败的情况将不得不删除该对应点关系。 (2) 代数法:应用于 2 2 2 视图重建,多视图容易出现误差累积。

 3. 最小化重投影误差: m i n ( E ( M , X ) ) = ∑ i = 1 m ∑ j = 1 n D ( x i j , M i X j ) 2 min(E(M,X))=\sum_{i=1}^m \sum_{j=1}^nD(x_{ij},M_iX_j)^2 min(E(M,X))=i=1mj=1nD(xij,MiXj)2

在这里插入图片描述

 4. 捆绑调整的优势:同时处理大量视图,处理丢失的数据。局限性:大量参数的最小化问题,需要良好的初始条件(即初始 M i M_i Mi)。一般来说,捆绑调整作为运动恢复问题的最后一步,首先通过分解或代数方法先求出优化问题的初始 M i M_i Mi

二、P3P问题

 1. (1) PnP 问题:指通过世界中 N N N 个三维点坐标及其在图像中 N N N 个像点坐标,计算出相机或物体位姿的问题。 (2) P3P 问题:我们只讨论世界中 3 3 3 个三维点和图像中 3 3 3 个像点的关系,计算欧式结构恢复相机位姿的问题,也就是计算出摄像机的外参数 R R R T T T。 (3) 相比于之前求 F F F 和三角化得到摄像机外参数的方法,该方法误差更小。

 2. P3P 问题解法如下所示。其中步骤 1 1 1 的计算方法:由于 a = K [ I 0 ] P a a=K[I \hspace{0.2cm} 0]P_a a=K[I0]Pa,则 K − 1 a = [ I 0 ] P a K^{-1}a=[I \hspace{0.2cm} 0]P_a K1a=[I0]Pa,所极点到像点 a a a 的方向向量为: o a → = K − 1 a ∣ ∣ K − 1 a ∣ ∣ \overrightarrow{oa}=\frac{K^{-1}a}{||K^{-1}a||} oa =∣∣K1a∣∣K1a,同理可以计算出 o b → \overrightarrow{ob} ob o c → \overrightarrow{oc} oc

在这里插入图片描述

在这里插入图片描述

三、随机采样一致性

 1. 随机采样(Random sample consensus):一种适用于数据受到异常值污染的模型拟合方法,通过选择随机均匀采样一定的点,估计模型参数,并输出模型分数最高的模型。

 2. 算法流程:
 (1) 随机均匀采样获取模型求解所需的最小子集。
 (2) 适用该子集估计模型参数。
 (3) 计算剩余样本与当前模型的一致性,统计满足当前模型的内点(在正确拟合模型上的点为内点,负样本点为外点)个数,作为当前模型分数。
 (4) 按照设定次数重复(1)-(3)步,最终输出分数最高的模型。

在这里插入图片描述

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

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

相关文章

java 线程池实现方式

线程和数据库连接这些资源都是非常宝贵的资源。那么每次需要的时候创建,不需要的时候销 毁,是非常浪费资源的。那么我们就可以使用缓存的策略,也就是使用线程池。 newCachedThreadPool 创建一个可根据需要创建新线程的线程池,但…

基于单片机的有害气体检查系统设计

**单片机设计介绍,基于单片机的有害气体检查系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的有害气体检查系统设计旨在实现对环境中各种有害气体的实时监测与报警,保障人员健康和环境…

什么是原生IP?原生IP的作用是什么?

原生IP(Native IP)是指直接从互联网服务提供商(ISP)获得的IP地址,而非通过代理服务器、VPN或其他中间层方式获取。这种IP地址直接与用户的设备或网络关联,无需经过任何中间服务器或代理的转发或隐藏&#x…

物联网实战--驱动篇之(一)EEPROM存储器(AT24C64)

目录 一、驱动概述 二、AT24C64简介 三、驱动编写 四、驱动应用 一、驱动概述 这是驱动篇的第一篇,所以先说明下驱动篇的作用和书写计划。之前的净化器项目已有提及,向ESP8266、SHT30这些都属于驱动设备,主芯片STM32是核心,相…

C++入门4.引用

目录 1.引用概念: 2.引用特性: 3.常引用: 4.使用场景: 引用和指针的区别: 1.引用概念: 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空…

BLE协议—HID

BLE协议—HID HID设备HOGP(HID Over GATT Profile)HID服务HID infoHID ModeHID ReportHID MAP HID设备 HID(Human Interface Device,人机接口设备)是USB设备中常用的设备类型,是直接与人交互的USB设备&…

谷歌AI搜寻背后的资本战:收费传言引爆行业震荡|TodayAI

考虑对其AI驱动的搜索工具收费,这一消息在某种程度上让人感到惊讶。毕竟,谷歌超过一半的总收入来自搜索业务,几乎是其次大收入来源的五倍。YouTube订阅、Pixel手机、Play商店佣金以及Gmail存储空间的收入加起来,与搜索业务的价值相…

机台数据传输共享存在哪些问题?机台数据管控怎么做?

一些金融机构、大型制造业以及晶圆制造厂里面,都会存在大量的机台设备,这些机台会产⽣庞⼤⽽属性不同的数据,这些数据需要定期的进行采集和利用。机台数据在传输分享过程中,会面临各种问题和调整,所以需要做好机台数据…

Java 线程池的基本用法

线程池 池化思想:线程池、数据连接池等,比如我们 Spark 的 Executor 就是典型的线程池,用户在启动 Spark 作业的同时启动线程池,这样 Spark 的 Task 就可以直接获取资源,而不用像 MR 程序那样等待容器上的进程开启了。…

一、持续集成介绍

持续集成介绍 一、什么是持续集成二、持续集成的流程三、持续集成的组成要素四、持续集成的好处 一、什么是持续集成 持续集成(CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可…

JavaScript前端学习大全

一、概念 JavaScript简称为JS,这门语言诞生主要用于完成页面的数据验证,因此运行在客户端,需要浏览器来解析JavaScript的代码。是世界上最流行的脚本语言。JavaScript 是一种让网页变得有趣和动态的编程语言。比如,当你在网页上点…

学习【RabbitMQ入门】这一篇就够了

目录 1. RabbitMQ入门1-1. 同步调用1-2. 异步调用1-3. MQ技术选型1-4. RabbitMQ介绍消息模式 1-5. SpringAMQPBasic QueueWork QueueFanout ExchangeDirect ExchangeTopic Exchange消息转换器 1. RabbitMQ入门 1-1. 同步调用 优势: 时效性强,等待到结…

当前2024阿里云服务器哪个地域价格比较优惠,哪个地域便宜?

目前2024年阿里云服务器地域对比哪个价格更优惠?华北6(乌兰察布)、华北3(张家口)、华北1(青岛)和华南2(河源)地域更便宜,云服务器吧yunfuwuqiba.com整理阿里云…

【量子计算机为什么能吊打通用计算机】浅谈

Quntum Computer 一、量子计算机导入 这是一双手,这是大自然送给你最神奇的礼物,你用它来写字、吃饭、打游戏,除此之外,它还有一个妙不可言的功能,计算。是的,手是你人生中的第一个计算器,到小…

Azure service tag 导致的Exchange online 无法发送邮件的问题

最近碰到一个比较有趣的客户问题。 这个客户一直在使用Exchange online 与自己在Azure Vnet 里面的exchange server交换邮件。 客户的网络架构如下图所示。 客户说之前从exchange online往外发邮件一直是好的,但是最近两周开始只有百分之3左右的邮件可以发出去,其他的都pen…

java中大型医院HIS系统源码 Angular+Nginx+SpringBoot云HIS运维平台源码

java中大型医院HIS系统源码 AngularNginxSpringBoot云HIS运维平台源码 云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工…

不连续页分配器

不连续页分配器 在设备长时间运行后,内存碎片话,连续的物理页比较稀缺;伙伴分配器和slab块分配器,分配的内存物理上是连续的;在这种情况下,如果需要分配长度超过一页的内存块,可以使用不连续页…

LeetCode-17. 电话号码的字母组合【哈希表 字符串 回溯】

LeetCode-17. 电话号码的字母组合【哈希表 字符串 回溯】 题目描述:解题思路一:回溯三部曲:解题思路二:回溯解题思路三: 题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组…

【JavaSE】反射

Java代码的生命周期 Java代码在计算机中经历的阶段:Source源代码阶段、Class类对象阶段、RunTime运行时阶段。 Source源代码阶段: 这个阶段是由程序员编写生成源代码,再由Javac编译器生成class文件。 Class类对象阶段:由类加载器将class文件加载到JVM内…

【保姆级教程】如何订阅OnlyFans?如何在OnlyFans上面支付?OnlyFans虚拟卡订阅教程

1. 引言 什么是OnlyFans:OnlyFans是一种内容订阅服务,成立于2016年,允许内容创作者从用户那里获得资金,用户需要支付订阅费用才能查看他们的内容。它在多个领域受到欢迎,包括音乐、健身、摄影,以及成人内容…