从今天起,好好复习一下面试到的题目,把研究生时期学习的,工作时间忘记的东西再补回来。

本文所写与原文相距甚远,如有疑问,请拜访原文。未经允许大量盗图,如有不满,请联系删除。 更多的细节请参考多视几何一书。

原文链接:单应矩阵Homograph matrix、本质矩阵Fundamental matrix、基本矩阵essential matrix——游振兴

在单目重建中,位姿求解一般应用的为本质矩阵。  在小型室内场景重建过程中,通常状态下,使用非退化状态下(深度估计之后所有特征点不分属于两个平面)两帧得到的匹配点,可以通过

公式:        p2^T *F *p1=0

根据匹配对p1、p2求解 F,进而求出相机位姿变换 R、t 。

1.  透视投影/中心投影

底片生成:相机模型总结为透视投影,空间点P通过中心投影方式落到焦距 f 固定的底片上,同时丢掉了深度信息。

相机内参:定焦固定头相机会有一个固定的投影关系,其中的参数为相机内参。其他扩展功能相机的内参需要更多的信息获取。

投影模型:物体标记为稀疏点模型之后,在世界坐标系中相机以任一位姿(R,t)观察模型,总能得到唯一的二维平面点位置集合(  S(p) )。

真空相机模型中,三维点集到图像底片,理论上遵循透射投影关系,相机表示为内参矩阵K,坐标转换关系为:

点集映射到底片上时丢失深度,其中f为相机焦距。dx,dy为像元尺寸,u0,v0为图像中心。 fx = f/dx ,fy = f/dy 分别为x轴和y轴上的归一化焦距。内参矩阵一般使用事先标定的方法。

2. PNP perspective-n-point

N点透视,给出一个世界坐标系标定的物体/三维点集合。依据透射关系,根据平面图像/N个二维投影点的位置来推算相机的观察者位姿,为PNP。

文章:使用OpenCV PNP

3. 核面约束

相机经过位姿转换,通过对同一个物体和同一组点观察得到两幅图像,同一组点在两幅图片中位置和顺序不同,但满足相机透视的 核面约束。

图3.1

核面约束:

上图中那个等于0的方程:p^T *F*p=0;

基本矩阵约束关系表现为:

这里的基本矩阵约束称为核线约束,如上图3.1,如果两帧之间的一个点坐标,外参矩阵已知,则空间点在另外一帧的坐标被约束在一条极线上,可以用来缩小图像匹配点的搜索范围。基本矩阵也可以用来计算内参矩阵。

       求取位姿:根据一组匹配的点集和极线约束可以得到一个相对固定的位姿转换( R, t )。

       本质矩阵:其中E矩阵为本质矩阵 Essential Matrix。E矩阵大小为3×3, 理论上旋转、平移共有6个自由度(3个旋转,3个平移),因尺度等价,E有5个自由度(z约束为1)。

E矩阵求解一般使用8点法,求取E矩阵之后,通过SVD分解,恢复出R,t。 当然也可以使用计算解析值的方法,使用五个点对,得到的结果有可能不太准确。

基本矩阵:其中F矩阵为基本矩阵 Fundamentl Matrix。 根据内参矩阵和本质矩阵,解析出基本矩阵。

4. 相机外参

在小型室内场景重建过程中,通常状态下,使用非退化状态下两帧得到的匹配点,可以通过

公式:        p2^T *F *p1=0

根据匹配对p1、p2求解F,进而求出相机外参——位姿变换 R、t 。Rt即相机外参。

本质矩阵是相对相机位姿的简单函数:

E= S(t)R

相机运动一般很难测量,且相机有可能未被标定,不能直接用于计算本质矩阵。一般是使用八点法,在E矩阵的线性框架下求解。

5. 退化现象/斜面投影

对一个平面/一组平面上的点进行不同位姿观察,依然会得到两个投影面/两组投影点,这对应了三维稀疏场景重建/SLAM中的退化问题。

约束关系变化为:

其中H矩阵为单应矩阵--Homograph Matrix。

5. 基本矩阵Fundamental Matrix、本质矩阵Essential Matrix、单应矩阵 Homograph Matrix

5.1 Essential Matrix

E= t ^ R 为3*3的矩阵,奇异值为 [ u, u, 0] ^ T 的形式。为本质矩阵的内在性质。

性质:理论上综合旋转、平移共有6个自由度,因尺度等价,E有5个自由度。

求解:一般使用8点法,然后通过SVD分解E矩阵,恢复出R,t 。也可以使用解析法求解E矩阵。

5.2 Fundamental Matrix

基本矩阵F和E只差了一个相机内参    F = K^(-T) *E *K^(-1) ,如果需要,直接带入求解。

5.3 Homograph Matrix

单应矩阵的定义与R、t、平面参数相关,单应矩阵为3*3的矩阵,自由度为8,求解的思路和E、F相似。

求解:可用一组不共线的四个匹配点来计算矩阵H。

总结:

根据图像来估计位姿,一般称之为位姿追踪。非退化状态下可是根据匹配点求解Essential Matrix ,退化状态下课根据匹配点来求解 Homograph Matrix。

可用于实时计算位姿。

三维重建1-位姿追踪:单应矩阵、本质矩阵和基本矩阵相关推荐

  1. 单目初始化 单应矩阵 本质矩阵 恢复R t 三角变换求 3D点

    单目初始化 单应矩阵 本质矩阵 恢复R t 三角变换求 3D点 博文末尾支持二维码赞赏哦 ^_^ /* * This file is part of ORB-SLAM2 * * 单目相机初始化 * 用 ...

  2. ORB-SLAM2 特征点法SLAM 单目 双目 rgbd相机SLAM 单应/本质矩阵恢复运动 小图大图地图优化

    ORB-SLAM2 ORB特征点法SLAM 支持单目.双目.rgbd相机 安装测试 本文github链接 orbslam2 + imu ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大规模 ...

  3. 极几何,本质矩阵,基础矩阵,单应矩阵,相机投影矩阵

    什么是三角化? 三角化就是下图的红字部分:K和K'分别为两个相机的内参矩阵 什么是极几何? 极几何描述了同一场景或者物体在两个视点图像间的对应关系. 下图中的O1和O2分别是两个相机的光心,即摄像机坐 ...

  4. 基础矩阵,本质矩阵,单应性矩阵讲解

    ORB-SLAM点云地图中相机的位姿初始化,无论算法工作在平面场景,还是非平面场景下,都能够完成初始化的工作.其中主要是使用了适用于平面场景的单应性矩阵H和适用于非平面场景的基础矩阵F,程序中通过一个 ...

  5. svo: semi-direct visual odometry 半直接视觉里程计 fast角点匹配 光流匹配 单应变换求位姿 直接法求解位姿 高斯均匀分布混合深度滤波

    svo: semi-direct visual odometry 半直接视觉里程计 本博文github地址 svo代码注释 SVO代码分析 较细致 svo: semi-direct visual od ...

  6. 09_对极约束与单应矩阵

    前言 根据上一节的介绍,我们已经有了匹配好的点对,然后我们就可以根据点对估计相机的运动.这里由于相机的原理不同,我们要分情况讨论: 如果是单目相机,此时我们仅知道2D的像素坐标,要根据两组2D点估计相 ...

  7. 多视图几何总结——从本质矩阵恢复摄像机矩阵

    多视图几何总结--等距变换.相似变换.仿射变换和射影变换 多视图几何总结--从本质矩阵恢复摄像机矩阵 (1)本质矩阵性质 (2)从本质矩阵恢复摄像机矩阵 多视图几何总结--从本质矩阵恢复摄像机矩阵 本 ...

  8. 计算机视觉中本质矩阵的概念,【计算机视觉】Lecture 19:本质矩阵和基础矩阵...

    对极几何 左边 极点:相机1所看到的相机2的位置. 右边 极点:相机2所看到的相机1的位置 对极几何 对应点位于共轭极线上 对极几何 给定一幅图像中的一个点,我们如何确定在第二幅图像中要搜索的对应极线 ...

  9. 从本质矩阵恢复相机矩阵

    本质矩阵 本质矩阵(essential matrix )是基本矩阵在归一化图像坐标下的一种特殊形式. 考虑相机矩阵P=K[R∣t]P=K[R|\mathbf t]P=K[R∣t],点x=PX\math ...

最新文章

  1. Java 处理0x00特殊字符
  2. Java制作VCARD
  3. 计算机管理设置,win10系统打开计算机管理的设置步骤
  4. 如何将maven项目打包成可执行的jar
  5. mysql中engine是什么意思_mysql中engine=innodb和engine=myisam的区别
  6. 内存泄漏分析工具tMemoryMonitor(转载)
  7. 海康监控设备如何修改IP地址
  8. 华为网络设备查看设备温度状态检查命令方法
  9. 【MFC】CTabSheet类之再改造
  10. UE4 InputMode无法锁定编辑器视口鼠标解决方案
  11. java乘方运算符号_Java 4. 运算符号
  12. 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
  13. php中seq是什么意思,seq-answer
  14. 飞飞影视系统php版怎么进,飞飞影视系统PHPVOD搬家图文教程
  15. Go语言 数据库编程
  16. QQ空间打不开,IE里无法运行脚本的解决方案 转自:spookfox.cublog.cn
  17. C#Url下载图片(jpg\pdf\png\jpeg...)
  18. html图片自动切换代码,急哦~!如何实现网页中的图片自动变换?
  19. 创建线程池的七种方式
  20. 算法唯手熟尔(PAT剩余清单 or leetcode)---希望可以日更

热门文章

  1. 解析JavaScript中的字符串类型与字符编码支持
  2. 接口测试基础之入门篇(待续)
  3. 第02篇:C#星夜拾遗之Windows窗体
  4. AI会率先在汽车、安全和金融领域落地!不服来辩 | AI科技评论
  5. docker拷贝文件
  6. Linux基础8 bash的特性
  7. 设计模式学习笔记 1.介绍
  8. 清北学堂(2019 4 28 ) part 1
  9. [图像处理] 直方图均衡化原理 - 数学推导
  10. 已知可生成0~4的rand5(),实现生成0~6的rand7()