1.基本矩阵F:根据两帧间匹配的像素点对儿计算
2.本质矩阵E:通过归一化坐标对进行计算。
因为R,t共有6个自由度,又因为单目尺度等价性,所以实际上E矩阵共有5个自由度。因此至少需要5个点对来求解。十四讲中说因为E矩阵的内在性质是一种非线性,求解起来十分麻烦。这句话怎么理解呢?其实意思应该是说把E矩阵用5个变量来表示是比较困难的,他们之间是一个非线性的表示形式(E=)因此也就很难利用五对儿归一化坐标点来直接求解。而把E矩阵直接用9个矩阵元素来线性表示的话求解起来就比较容易,为了保留E矩阵的尺度等价性我们只需要八对点去求解,这样的话。就使得下式的系数矩阵零空间维数为1,即矩阵是奇异矩阵,这样求出来的E矩阵就有无穷多个解,而且自由度是1,因此这和e的尺度等价性是一致的。
3.单应矩阵H:通过两帧间的像素点对儿求解,但要求这些点的空间位置共面。
下面的公式是十四讲第一版中的,实际上等式应该改为相似符号,因为我们计算的时候P按得是归一化坐标,因此之间差了一个尺度的问题。第二版书上已经改过来了。
下面的公式也应该是相似符号不是等号。因为是相似关系我们在不是0的情况下把矩阵乘上一个非零因子把h9设为1。这样H矩阵存在8个自由度。
然后可以得到3个等式,然后根据相似的比例关系可以得到下面的两个等式,这里是实实在在的等号。
整理得
其中若h9等于0那么上式中等式右侧都为0.
然后共需4对点即可求解,这四对点不能存在任意3点共线,否则某一点产生的约束可以用其他两个点的约束给消除了,也就是说造成下面的矩阵不满秩。
上述求解H矩阵的方法成为直接线性变化法(DLT)。
然后就是对H矩阵进行分解,求解R,t。这一部分参考ORBSLAM的讲解。
2022.9.14补充
一般的手持式设备或者无人机平台的定位是考虑6自由度位姿的,但实际应用的时候会根据不同的场景利用先验信息限制一些自由度,比如对于某种地面平台设备的定位实际上只需考虑1自由度的旋转和2个自由度的平移即可。
假设y轴定义为地面法向,那么只需求沿y轴的旋转和垂直y轴的平移,因此旋转矩阵第2行和第2列全为0(中间是1),平移t第2个数为0,这样他们对应的单应矩阵H其第二行和第二列也全为0(中间是1),因此在求解单应H的时候只有四个未知量,只需两对点即可求出。本质矩阵的11、13、22、31、33都为0,只有四个未知变量,考虑尺度的等价性,原来的8点法只需3点法即可求解。