基础矩阵和本质矩阵

这篇具有很好参考价值的文章主要介绍了基础矩阵和本质矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义

本质矩阵E(Essential Matrix):反映空间中一点P在不同视角摄像机的相机坐标系下表示之间的关系。
空间点P在相机a下相机坐标系中的表示: P a C = [ x a C y a C z a C ] P_a^C=\begin{bmatrix}x_a^C\\y_a^C\\z_a^C\\\end{bmatrix} PaC= xaCyaCzaC
空间点P在相机b下相机坐标系中的表示: P b C = [ x b C y b C z b C ] P_b^C=\begin{bmatrix}x_b^C\\y_b^C\\z_b^C\\\end{bmatrix} PbC= xbCybCzbC
P a C P_a^C PaC P b C P_b^C PbC之间的关系:
P a C E P b C = [ x a C y a C z a C ] E [ x b C y b C z b C ] = 0 P_a^CEP_b^C=\begin{bmatrix}x_a^C\\y_a^C\\z_a^C\\\end{bmatrix}E\begin{bmatrix}x_b^C\\y_b^C\\z_b^C\\\end{bmatrix}=0 PaCEPbC= xaCyaCzaC E xbCybCzbC =0
基础矩阵F(Fundamental Matrix):反映空间中一点P在不同视角摄像机的图像坐标系下表示之间的关系。
空间点P在相机a下图像坐标系中的表示: P a I = [ u a v a 1 ] P_a^I=\begin{bmatrix}u_a\\v_a\\1\\\end{bmatrix} PaI= uava1
空间点P在相机b下图像坐标系中的表示: P b I = [ u b v b 1 ] P_b^I=\begin{bmatrix}u_b\\v_b\\1\\\end{bmatrix} PbI= ubvb1
P a I P_a^I PaI P b I P_b^I PbI之间的关系:
P a I F P b I = [ u a v a 1 ] F [ x b C y b C z b C ] = 0 P_a^IFP_b^I=\begin{bmatrix}u_a\\v_a\\1\\\end{bmatrix}F\begin{bmatrix}x_b^C\\y_b^C\\z_b^C\\\end{bmatrix}=0 PaIFPbI= uava1 F xbCybCzbC =0

推导

基础矩阵和本质矩阵
如图假设P点在相机1中的坐标为:
x 1 = O 1 P ⃗ x_1=\vec{O_1P} x1=O1P
相机2的坐标系相对于1发生了旋转 R R R以及平移 t = O 1 O 2 ⃗ t=\vec{O_1O_2} t=O1O2 ,所以P在相机2中的坐标为:
x 2 = O 2 P ⃗ = R x 1 + t x_2=\vec{O_2P}=Rx_1+t x2=O2P =Rx1+t
因为 O 1 P ⃗ \vec{O_1P} O1P O 2 P ⃗ \vec{O_2P} O2P O 1 O 2 ⃗ \vec{O_1O_2} O1O2 在同一个平面,所以有:
O 2 P ⃗ ⋅ ( O 1 O 2 ⃗ × O 1 P ⃗ ) = 0 \vec{O_2P}\cdot(\vec{O_1O_2}\times\vec{O_1P})=0 O2P (O1O2 ×O1P )=0
该公式在相机2的坐标系中表示为:
x 2 ⋅ ( t × ( R x 1 + t ) ) = x 2 ⋅ ( t × ( R x 1 ) ) = x 2 T ( t ∧ R ) x 1 = 0 x_2\cdot(t\times(Rx_1+t))=x_2\cdot(t\times(Rx_1))=x_2^T(t^\wedge R)x_1=0 x2(t×(Rx1+t))=x2(t×(Rx1))=x2T(tR)x1=0
所以 t ∧ R t^\wedge R tR就是本质矩阵,其中若设在各相机图像坐标系的坐标为 p 1 p_1 p1 p 2 p_2 p2,有 p 1 = K x 1 p_1=Kx_1 p1=Kx1 p 2 = K x 2 p_2=Kx_2 p2=Kx2 K K K为相机内参矩阵,带入上面的等式有:
p 2 T K − T ( t ∧ R ) K − 1 p 1 = 0 p_2^TK^{-T}(t^\wedge R)K^{-1}p_1=0 p2TKT(tR)K1p1=0
所以基础矩阵为:
F = K − T E K − 1 F=K^{-T}EK^{-1} F=KTEK1
可以看到本质矩阵含有坐标的平移以及旋转信息,所以在求解变换矩阵的时候,我们可以先求解本质矩阵然后再对本质矩阵进行分解来得到旋转和平移矩阵。

求解

由基础矩阵的等式关系通过(八点法)引入8对匹配特征点即可构建一个8*9的线性方程组,然后求解出基础矩阵,进而得到本质矩阵。通过SVD即可以恢复R和t。

Reference

https://zhuanlan.zhihu.com/p/79845576
https://www.zhihu.com/question/27581884
https://blog.csdn.net/ABC1225741797/article/details/108022772文章来源地址https://www.toymoban.com/news/detail-419852.html

到了这里,关于基础矩阵和本质矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 视觉SLAM中,本质矩阵、基础矩阵、单应性矩阵自由度和秩分析

    由于基础矩阵和本质矩阵都是由对极约束来的 1.1 本质矩阵E的自由度为5,秩为2 1.1.1 自由度: 首先,旋转和平移一共6个自由度。 其次,由于对极约束的原因,本质矩阵是具有尺度等价性的,所以自由度减1。 所以,本质矩阵的自由度为5。 1.1.2 秩 性质:正交矩阵一定是可逆

    2024年02月12日
    浏览(44)
  • AI人工智能中的数学基础原理与Python实战: 矩阵本质及其运算

    人工智能(AI)和机器学习(ML)已经成为当今最热门的技术领域之一,它们在各个行业的应用也越来越广泛。然而,在深入了解这些领域之前,我们需要了解一些基本的数学原理和算法。这篇文章将涵盖矩阵的本质以及如何在Python中进行矩阵运算。 矩阵是计算机科学和数学中的一

    2024年04月09日
    浏览(66)
  • 图像处理中,采用极线约束准则来约束特征点匹配搜索空间,理论上在极线上进行搜索。这里的极线是什么线,怎么定义的?基本矩阵F和本质矩阵E有什么区别?

    问题描述:图像处理中,采用极线约束准则来约束特征点匹配搜索空间,理论上在极线上进行搜索。这里的极线是什么线,怎么定义的?基本矩阵F和本质矩阵E有什么区别? 问题1解答: 极线是通过极线几何学的原理定义的。在摄影测量学和计算机视觉中,极线是由两个相机

    2024年01月19日
    浏览(40)
  • 【线性代数】矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)

    我将严谨地说明矩阵求导的本质与分子布局、分母布局的本质。希望对初学的同学、想理解本质的同学提供一些帮助。 注1 :看懂本文只需了解本科阶段高等数学的偏导如何求、本科阶段线性代数的矩阵的定义,无需任何其他知识。 注2 :本文若无特殊说明,则约定向量均为列

    2024年02月10日
    浏览(41)
  • 矩阵补充(matrix completion)

    这篇文章介绍矩阵补充(matrix completion),它是一种向量召回通道。矩阵补充的本质是对用户 ID 和物品 ID 做 embedding,并用两个 embedding 向量的內积预估用户对物品的兴趣。值得注意的是,矩阵补充存在诸多缺点,在实践中效果远不及双塔模型。 上篇文章介绍了embedding,它可

    2024年01月19日
    浏览(43)
  • 对角矩阵(diagonal matrix)

    对角矩阵(英语:diagonal matrix)是一个 主对角线之外的元素皆为 0 的矩阵。对角线上的元素可以为 0 或其他值。 对角矩阵参与矩阵乘法 矩阵 A 左乘一个对角矩阵 D,是分别用 D 的对角线元素分别作用于矩阵 A 的每一行; 相似地,矩阵 A 右乘一个对角矩阵 D,是分别将 D 的对

    2024年02月11日
    浏览(47)
  • Eigen-Matrix矩阵

    在Eigen中,所有矩阵和向量都是矩阵模板类的对象。向量只是矩阵的一种特殊情况,要么有一行,要么有一列。矩阵就是一个二维数表,可以有多行多列。 Matrix类有六个模板参数,但现在只需要了解前三个参数就足够了。剩下的三个参数都有默认值,我们暂时不碰它们,我们

    2024年03月09日
    浏览(67)
  • Eigen 矩阵Matrix及其简单操作

    在Eigen,所有的矩阵和向量都是Matrix模板类的对象,Vector只是一种特殊的矩阵(一行或者一列)。 Matrix有6个模板参数,主要使用前三个参数,剩下的有默认值。 Scalar是表示元素的类型,RowsAtCompileTime为矩阵的行,ColsAtCompileTime为矩阵的列。 库中提供了一些类型便于使用,比如

    2024年02月12日
    浏览(35)
  • leetcode 542. 01 Matrix(01矩阵)

    矩阵中只有0,1值,返回每个cell到最近的0的距离。 思路: 0元素到它自己的距离是0, 只需考虑1到最近的0是多少距离。 BFS. 先把元素1处的距离更新为无穷大。 0的位置装入queue。 从每个0出发,走上下左右4个方向,遇到0不需要处理,遇到1,距离为当前距离+1. 如果当前距离

    2024年02月12日
    浏览(39)
  • 矩阵求导的本质与分子布局、分母布局的本质

    大佬讲解的实在太吊了。 就拿大佬的总结说明一下: 矩阵求导结果,无非就是分子的转置、向量化,分母的转置、向量化,它们的各种组合而已。 1、分子布局的本质:分子是标量、列向量、矩阵向量化后的列向量;分母是标量、列向量转置后的行向量、矩阵的转置矩阵、矩

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包