矩阵求解

单应矩阵、基本矩阵和本质矩阵


这一篇主要是介绍和总结在视觉slam中经常用到的一些变换矩阵。

        对于基本矩阵F来说,它也对应一个2D摄影变换,只不过它是将一幅图像中的一个点映射为另一幅图像中的一条直线,即满足,其中Fx是将图像上一点x映射为另一幅图像中的一条线,而表示点在直线上。

        对于本质矩阵E来说,它可以说是对应一个3D变换,将空间中一个点映射为空间中的一条直线,即满足,只不过这里的点和线都是三维的。

        对于单应矩阵,它使用的是齐次坐标,因此单应矩阵的维度是3*3。在两边同时左叉乘可以得到,经过整理可得

        其中是矩阵H第i行的转置,由于这个关系是在齐次坐标下成立的,H最多只能确定到相差一个尺度因子,因此H有8个独立的比率,自由度为8。由式1可以看出来A的秩为2,即每对点提供两个约束,所以要求解单应矩阵H至少需要4对匹配点。

         前面说过求解H至少需要4对匹配点,当有精确的4对匹配点时我们可以直接解线性方程组得到唯一精确解;当这4对点不精确的时候也能得到一个解,但不准确;当对应点超过4对时,由于误差的存在,往往除了零解之外是无解的,这时候就需要求一个使整体误差最小的近似解。

        对于求这个近似解,我们按照误差有没有物理意义分成根据代数距离求解和根据几何距离求解。

        根据代数距离求解就是最小化代数误差矢量,即min,可以参看资料[1]和资料[2]的P408。一般使用SVD分解的方法分解系数矩阵A,即,最小特征值对应的特征向量(V的最后一列)即为H的近似解

        根据几何距离求解误差函数包括单图像误差、对称转移误差、重投影误差等,具体可以参看资料[2]P57。求解几何距离时误差函数不是线性的,所以可以使用上一篇文章中的。

        对于求近似解的大多数问题我们都可以使用来过滤大多数的外点。代数误差的方法直接求闭式解,很快;而几何距离的方法往往是迭代求解的,比较慢。但是使用代数误差存在一些问题。

在slam中我们往往在图像金字塔中求解对应的特征点来保证特征的尺度不变性,但是由于图像金字塔中的尺度变化不是连续的,往往在匹配时会造成一些尺度上的变化(纯属个人猜测);其次在其他一些基于图像的应用中图像的坐标原点会变化。这些变化在基于几何距离计算单应矩阵的方法中不会引起任何不适,但是在基于代数距离的求解中,由于这些变化的存在,计算变得不再精确,也就是说几何误差对这些变化是非不变的(具体推导过程参见资料[2]P66)。

将所有点对计算得到的形心移动到原点(t1、t2)

      将归一化后计算出的单应矩阵使用T1、T2进行反归一化就得到原始的单应变换

        基本矩阵和本质矩阵差不多是一回事,,其中K是相机内参。E是将相机坐标系下一个深度为1的三维点映射为另一个相机坐标系下空间中的一条直线;F是将一幅图像上的一个二维点映射为另一幅图像的一条直线。这两个体现的是一种规律,将点映射为直线,只不过一个是空间,一个是平面,它们可以通过内参矩阵联系起来。

基本矩阵和单应矩阵类似,它使用的是齐次坐标,因此维度是9,差一个尺度自由度为8,行列式为零,所以最后自由度为7。本质矩阵可以分解为R和t([4]P142),因此它的自由度为6,又最多只能确定到相差一个尺度因子,所以最终的自由度为5。对于求解这两个矩阵的最小集合来说,F需要7对点,E需要5对点。当拥有的点对超过最小值时,求解F和H一样有代数误差和几何误差这两种方法,当使用代数误差求解的时候也需要进行归一化。并且使用几何误差的时候要注意对最后的结果进行奇异值约束。

[2] 《计算机视觉中的多视图几何》

[4] 《视觉SLAM十四讲 从理论到事件》

}

我要回帖

更多关于 2x2矩阵求值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信