Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)

2023-11-09

算矩阵的基础知识
解析本质、基础、单应矩阵的自由度

1 寻找初始像对

1.1手动选择ID
1.2自动筛选

①prior focal length存在情况下,开始筛选

  • 匹配点数由小到大排序
  • 第二张候选影像的匹配数目大于init_min_num_inliers(100)

②两视图Triangulation

  • R和t满足启动阈值

2 基础矩阵F

2.1 F矩阵的自由度=7
  • 从cv角度,3*3矩阵9个参数
    • 因为up2scale自由度-1
    • 又因为rank(F)=2自由度-1
  • 从摄影测量角度:
    • 5pose
      • 确定射线位姿)
    • +2 intrinsic
      • fx和fy,通常s=0,主点坐标(cx,cy)不参与优化
2.2 求解方法(都需要归一化):
  • ①八点法,有唯一解,考虑噪声实际是转为:构建超定方程 ,最小二乘求解
    • 注意:由于会有误差,我们需要强制约束rank=2
      • 具体方法:将SVD分解的特征值最后一项(最小项)置为0再重构,代码如下:
// Enforcing the internal constraint that two singular values must non-zero
  // and one must be zero.
  Eigen::JacobiSVD<Eigen::Matrix3d> fmatrix_svd(
      ematrix_t.transpose(), Eigen::ComputeFullU | Eigen::ComputeFullV);
  Eigen::Vector3d singular_values = fmatrix_svd.singularValues();
  singular_values(2) = 0.0;
  const Eigen::Matrix3d F = fmatrix_svd.matrixU() *
                            singular_values.asDiagonal() *
                            fmatrix_svd.matrixV().transpose();
  • ②七点法:9个未知参数用7个点解,未知数>方程数。可以构建新的方程来解决:
    • 有9-7=2个nullspace,把方程改写为:
      • F=λF1+μF2,λ+μ=1

3 本质矩阵E

3.1 本质矩阵自由度为5
  • cv角度:6-1=5
    • 相机位姿6pose(3位置、3角度)
    • 尺度up2scale -1
  • 摄影测量角度:直接5pose定向元素
3.2 理解本质矩阵和基础矩阵
  • 基础矩阵内涵相机内参,本质矩阵无关内参
3.3 本质矩阵的求解:
  • 8点法,与8点法求F同,构建超定方程解最小二乘
    • 注意强制约束,通常是令λ1=(λ1+λ2)/ 2,λ2=λ1,λ3=0
  • 5点法,非线性求解过程复杂,一般都是计算基础矩阵F后结合内参K求解本质矩阵E(如orbslam2)
  • 综合来说5点法比8点法好一些,8点法适用于车载的forward-facing,但在sideways-facing表现不如5点法

4 单应矩阵H: DLT求解

5 从矩阵恢复R和t

5.1 本质矩阵Essential恢复Rt
  • SVD解出4个解
  • 三角化求出前方3D点最多的那组姿态参数
5.2 单应矩阵Homography恢复Rt
Reference:大纲参考网课
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H) 的相关文章

随机推荐

  • 干预分析模型- China GDP

    干预分析模型 GDP预测 加载pandas matplotlib等包 处理时间序列 import pandas as pd import numpy as np import matplotlib pylab as plt matplotl
  • 谷歌浏览器Chrome和浏览器驱动webdriver的版本对应

    谷歌浏览器Chrome和浏览器驱动webdriver的版本对应 在搞懂这个之前 先来说明几个词 Chrome 浏览器 Selenium 是一个用于浏览器自动化测试的工具集 是一个完整的自动化测试框架 WebDriver 是Selenium的
  • 尚硅谷大数据技术之Flume

    第1章 概述 1 1 Flume定义 Flume是Cloudera提供的一个高可用的 高可靠的 分布式的海量日志采集 聚合和传输的系统 Flume基于流式架构 灵活简单 flume能保证数据的可靠性 但不能保证数据的重复性 1 2 Flum
  • Rides:基本操作与原理

    目录 redis是什么 谁在使用redis 使用redis客户端 redis数据结构 strings lists 集合set 有序集合 哈希 redis持久化 RDB AOF AOF重写 如何选择RDB和AOF 主从 用法 redis是什么
  • APP保活

    APP保活 前言 app保活 在Android中是一种流氓行为 一方面无端浪费用户手机电量 另一方面给用户一种很困惑的感觉 影响用户体验还有可能导致整个Android系统流畅性变差 所以Google官方一种不推荐该功能 也一直在阻止这方面功
  • 最细致的LayUI【前端框架】从入门到实战-快速搭建后台管理系统

    最细致的LayUI 前端框架 从入门到实战 快速搭建后台管理系统 LayUI学习思维导图 和 Bootstrap 有些相似 但该框架有个极大的好处就是定义了很多前后端交互的样式接口 如分页表格 只需在前端配置好接口 后端则按照定义好的接口规
  • 【干货】Android系统定制基础篇:第三部分(Android静默安装、Android支持usb打印机)

    1 Android静默安装 一些产品要求APP在升级时能够实现静默安装 而无需弹出安装界面让用户确认 这里提出两种实现方案 方案一 APP调用 pm 命令实现静默安装 此方案无须修改Android源码 但需要root权限 方案二 修改And
  • ESP32之 ESP-IDF + Clion 开发环境搭建(一)—— Windows版

    本文章 来自原创专栏 ESP32教学专栏 基于ESP IDF 讲解如何使用 ESP IDF 构建 ESP32 程序 发布文章并会持续为已发布文章添加新内容 每篇文章都经过了精打细磨 通过下方对话框进入专栏目录页 CSDN 请求进入目录 O
  • 基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算

    陶瓷材料 第26卷 第3期 2006年8月 热 带 地 理 TROPICALGEOGRAPHY Vol126 No13 Aug 2006 基于MATLAB的图解粒度参数计算 王 为 吴 正 华南师范大学地理系 广州510631 摘 要 粒度
  • Android res文件夹下资源定义及使用

    1 颜色 RGB ARGB RRGGBB AARRGGBB 颜色资源应该位于
  • Android JNI实现锅炉压力显示系统详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 第一步创建GuoLu c文件 Created by DELL on 2023 8 13 include
  • TCP协议通讯流程——三次握手四次挥手

    TCP协议通讯流程 如图 1 服务器的初始化 服务器端 调用socket 创建文件描述符 调用bind 将当前文件描述符与IP地址跟端口号绑定在一起 如果该端口号已经被其它进程占用了 就会bind失败 调用listen 声明当前文件描述符为
  • 【vue】Echarts3D地图下钻

    需求分析 地图下钻是一个非常常见的功能需求 本篇文章会细致讲解如何在Vue3中使用Eharts gl渲染出3D地图 并且实现地图下钻和返回上级地图的完整功能 github项目demo地址 点击这里 注意此项目为vue3版本 vue2版本在仓
  • Linux如何启动网卡?

    在新安装的Linux系统 我们配置的网卡可能是没有激活的 此时ping不通外网 下载包的时候也会报错 下面我们看看如何启动网卡 1 首先获取root权限 输入su 再输入密码 密码是不显示的 注意小键盘有没有锁住 获取root权限后 输入提
  • Python Turtle 画图

    https www jb51 net article 130181 htm Turtle库是Python语言中一个很流行的绘制图像的函数库 想象一个小乌龟 在一个横轴为x 纵轴为y的坐标系原点 0 0 位置开始 它根据一组函数指令的控制 在
  • PNG编解码算法详解

    1 PNG介绍 PNG是便携式网络图型 Portable Network Graphics 的缩写 由于PNG带有透明通道 无损压缩 可提升设计元素的呈现效果 因此设计上对PNG情有独钟 广泛的运用在设计 游戏 网页 app开发里 实际使用
  • MFC 最详细入门教程

    From https blog csdn net wang18323834864 article details 78621633 Visual Studio 2019 https visualstudio microsoft com zh
  • AttributeError: module 'urllib' has no attribute 'urlopen'

    使用py3的urllib urlopen方法时报错 PS C Users jiangcheng Documents Python Scripts gt python Python 3 6 5 Anaconda Inc default Mar
  • IDEA常用插件之代码扫描SonarLint

    文章目录 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 查看结果 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 项目右键 gt Analyze gt Analyze with SonarLint 查看结果 扫
  • Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)

    算矩阵的基础知识 解析本质 基础 单应矩阵的自由度 1 寻找初始像对 1 1手动选择ID 1 2自动筛选 prior focal length存在情况下 开始筛选 匹配点数由小到大排序 第二张候选影像的匹配数目大于init min num