对极几何约束
文章目录
- 对极几何约束
- 前言
- 一、理论推导
- 二、代码实现
- 总结
前言
一、理论推导
这部分将讲解计算帧与帧之间相机相应位姿及特征点三维坐标。
为观测对象,定义为左视图的相机中心,为右视图的相机中心,由构成一个平面;其中为基线,为左视图的极线,为右视图的极线,为基线与左视图的交点,称为极点,同理为右视图的极点;
- 找之间关系
设左右视图的投影矩阵分别为与,内参矩阵为与,左视图坐标系为世界坐标系。分别为左视图坐标系到右视图坐标系的旋转矩阵和平移向量,在左视图投影为,在右视图投影为,齐次坐标为$\hat{M_1}、\hat{M_2} $所以有:
由于,是相机中心,直线上所有点在左视图的投影都为,是一个3*4的矩阵,,具有广义逆,记作,, 所以:
同理,设
即找到之间的关系;
- 几何约束
对应的极线为和,和经过极线,所以:
- 联立
联立可以得到:
同时左乘可以得到:
令,则
- 基本矩阵的性质及8点法求解
是自由度为7,秩为2的矩阵。
,所以根据匹配到的特征点,利用最小二乘进行结算,即可得到相应的基本矩阵,但是由于最小二乘计算过程中并没有添加基本矩阵所要的约束条件,所以得到的解可能不满足性质,因此需要进一步修正。
- 优化基本矩阵
为了满足条件,使用SVD分解来求解优化问题:
使用SVD分解得到的奇异值,令其最小值为零,再代入求解新的,即为满足要求的基本矩阵。
当我们选用的点数>8时,我们需用RANSAC方法来进行优化。
- RANSAC-随机一致性采样算法
/*
1、设定内点判断标准,随机采样8对匹配点;
2、利用8点法求解初始基础矩阵F;
3、优化初始基础急诊;
4、计算误差,并统计内点个数;
5、重复上述过程,至循环次数,并选择内点数最多的结果;
6、利用内点次数最多的结果所有内点重新估计参数。
*/
RANSAC采样次数的计算:
:样本点数;
:求解模型需要最少的点的个数;
:内点的概率;
:个点都是内点的概率;
:K个点至少有一个外点的概率;
:次采样至少有1次成功的概率。
内点评判标准(为左视图投影点,为右视图投影点):
1、一阶几何误差,又称Sampson distance。
对该公式进行说明:与对应相乘,与对应相乘,与对应相乘,与对应相乘。
2、对称极线距离
- *用所有内点进行非线性优化–(选用)
- 计算本质矩阵
式中,即本质矩阵,所以:
本质矩阵性质:当且仅当它的两个奇异值相等且第三个奇异值为零;所以,求解同理,利用SVD分解来重构,不同的是:
- 单应矩阵
当场景中的特征点都落在同一个平面时,通过单应性进行估计。设距光心为平面,特征点在两个视图上对应点、满足:
令,称之为单应性矩阵,得:
类似于得求解方法
即:
是处理齐次性的比例因子,从方程第三行求解带入第一、二行,可得到:
得到两个约束,单应性矩阵自由度为8(),则至少需要4对匹配点进行求解。,求为0特征值的特征向量,或通过分解求得的一维零子空间。
在工程应用时,我们会倾向于同时计算基础矩阵和单应性矩阵,从而选择从投影误差最小的作为估计相机运动的矩阵。
- 帧与帧之间相机相应位姿的求解
根据前面,我们知道,、由的奇异值分解(SVD)得到,设的SVD为:
在奇异值分解中,对于任意一个,存在两个可能的,与之对应:
我们所得到的四个解,相机2对应有四种姿态和位移,我们选择P同时满足在两个相机前方。判断方法:
/*
1、利用三角测量(p1, p2, K1, R1, t1, K2, R2, t2),求出四种情况对应的三维坐标;
2、利用R、t,求出投影的(x,y,z);
3、z>0,对两个相机均成立,则正确。
*/
二、代码实现
总结