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

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

1 概述

2 矩阵计算

单应矩阵

1)结构

2)求解

3)求解中的问题

4)恢复运动

基本矩阵和本质矩阵

1)结构和求解

2)恢复运动

3 参考资料


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

1 概述

        对于单应矩阵H来说,它对应一个2D的摄影变换,即满足两幅图像之间对应点x和单应矩阵、基本矩阵和本质矩阵的变换单应矩阵、基本矩阵和本质矩阵

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

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

2 矩阵计算

单应矩阵

1)结构

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

                                                 单应矩阵、基本矩阵和本质矩阵                           (1)

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

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

2)求解

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

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

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

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

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

3)求解中的问题

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

       资料[2]中说归一化可以显著降低上面那些变化带来的影响。

       归一化的过程包括(平移和缩放):

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

                                 对u方向和v方向的平均距离进行归一化  (s1、s2)

       这样就得到了每幅图像上的归一化变换矩阵

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

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

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

4)恢复运动

        最后一步是分解恢复旋转和平移,这一步可以参看资料[3]。

基本矩阵和本质矩阵

1)结构和求解

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

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

2)恢复运动

        由于基本矩阵和本质矩阵的关系,我们只需要对本质矩阵分解即可。                          

        由单应矩阵、基本矩阵和本质矩阵可以看出我们只需要将E的分解与反对称矩阵和正交矩阵的乘积对应起来即可,即

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

       其中S=单应矩阵、基本矩阵和本质矩阵。具体的变换过程可以看资料[2]P174.最终有

                                            单应矩阵、基本矩阵和本质矩阵,  单应矩阵、基本矩阵和本质矩阵或者单应矩阵、基本矩阵和本质矩阵

        其中单应矩阵、基本矩阵和本质矩阵,单应矩阵、基本矩阵和本质矩阵.

        又单应矩阵、基本矩阵和本质矩阵,所以凑出来单应矩阵、基本矩阵和本质矩阵,其中单应矩阵、基本矩阵和本质矩阵为U的最后一列。

        最后的分解有四种结果:

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

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

        对应下面四种情况

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

        下面只需要找一个归一化的点带入计算,保证深度都为正的解就是正确解。

3 参考资料

[1] https://blog.****.net/kokerf/article/details/72437294

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

[3] Olivier Faugeras, F. Lustman. Motion and structure from motion in a piecewise planar environment.
RR-0856, INRIA. 1988. inria-00075698

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