对极几何约束



文章目录

  • 对极几何约束
  • 前言
  • 一、理论推导
  • 二、代码实现
  • 总结



前言

一、理论推导

这部分将讲解计算帧与帧之间相机相应位姿及特征点三维坐标。

计算机视觉几何变换操作 计算机视觉 极几何约束_c++

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_02为观测对象,定义计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_03为左视图的相机中心,计算机视觉几何变换操作 计算机视觉 极几何约束_c++_04为右视图的相机中心,由计算机视觉几何变换操作 计算机视觉 极几何约束_基线_05构成一个计算机视觉几何变换操作 计算机视觉 极几何约束_c++_06平面;其中计算机视觉几何变换操作 计算机视觉 极几何约束_c++_07为基线,计算机视觉几何变换操作 计算机视觉 极几何约束_基线_08为左视图的极线,计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_09为右视图的极线,计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_10为基线与左视图的交点,称为极点,同理计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_11为右视图的极点;

  • 计算机视觉几何变换操作 计算机视觉 极几何约束_基线_12之间关系

设左右视图的投影矩阵分别为计算机视觉几何变换操作 计算机视觉 极几何约束_c++_13计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_14,内参矩阵为计算机视觉几何变换操作 计算机视觉 极几何约束_基线_15计算机视觉几何变换操作 计算机视觉 极几何约束_c++_16,左视图坐标系为世界坐标系。计算机视觉几何变换操作 计算机视觉 极几何约束_基线_17分别为左视图坐标系到右视图坐标系的旋转矩阵和平移向量,计算机视觉几何变换操作 计算机视觉 极几何约束_c++_02在左视图投影为计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_19,在右视图投影为计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_20,齐次坐标为$\hat{M_1}、\hat{M_2} $所以有:
计算机视觉几何变换操作 计算机视觉 极几何约束_基线_21

计算机视觉几何变换操作 计算机视觉 极几何约束_基线_22

由于,计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_03是相机中心,计算机视觉几何变换操作 计算机视觉 极几何约束_c++_24直线上所有点在左视图的投影都为计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_19计算机视觉几何变换操作 计算机视觉 极几何约束_c++_13是一个3*4的矩阵,计算机视觉几何变换操作 计算机视觉 极几何约束_基线_27,具有广义逆,记作计算机视觉几何变换操作 计算机视觉 极几何约束_c++_28计算机视觉几何变换操作 计算机视觉 极几何约束_基线_29, 所以:
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_30

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_31

同理,设计算机视觉几何变换操作 计算机视觉 极几何约束_基线_32
计算机视觉几何变换操作 计算机视觉 极几何约束_c++_33
即找到计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_34之间的关系;

  • 几何约束

计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_35对应的极线为计算机视觉几何变换操作 计算机视觉 极几何约束_基线_08计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_09计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_11计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_20经过极线计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_09,所以:
计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_41

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_42

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_43

  • 联立

联立可以得到:
计算机视觉几何变换操作 计算机视觉 极几何约束_基线_44
同时左乘计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_45可以得到:
计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_46
计算机视觉几何变换操作 计算机视觉 极几何约束_c++_47,则
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_48

  • 基本矩阵的性质及8点法求解计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_49

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_50是自由度为7,秩为2的矩阵。

计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_51,所以根据匹配到的特征点,利用最小二乘进行结算,即可得到相应的基本矩阵,但是由于最小二乘计算过程中并没有添加基本矩阵所要的约束条件,所以得到的解可能不满足性质,因此需要进一步修正。

  • 优化基本矩阵

为了满足条件,使用SVD分解来求解优化问题:
计算机视觉几何变换操作 计算机视觉 极几何约束_基线_52
使用SVD分解得到计算机视觉几何变换操作 计算机视觉 极几何约束_c++_53的奇异值,令其最小值为零,再代入求解新的计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_50,即为满足要求的基本矩阵。

当我们选用的点数>8时,我们需用RANSAC方法来进行优化。

  • RANSAC-随机一致性采样算法
/*
1、设定内点判断标准,随机采样8对匹配点;
2、利用8点法求解初始基础矩阵F;
3、优化初始基础急诊;
4、计算误差,并统计内点个数;
5、重复上述过程,至循环次数,并选择内点数最多的结果;
6、利用内点次数最多的结果所有内点重新估计参数。
*/

RANSAC采样次数的计算:
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_55
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_56:样本点数;

计算机视觉几何变换操作 计算机视觉 极几何约束_基线_15:求解模型需要最少的点的个数;

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_58:内点的概率;

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_59计算机视觉几何变换操作 计算机视觉 极几何约束_基线_15个点都是内点的概率;

计算机视觉几何变换操作 计算机视觉 极几何约束_基线_61:K个点至少有一个外点的概率;

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_62计算机视觉几何变换操作 计算机视觉 极几何约束_c++_02次采样至少有1次成功的概率。

内点评判标准(计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_64为左视图投影点,计算机视觉几何变换操作 计算机视觉 极几何约束_c++_65为右视图投影点):

1、一阶几何误差,又称Sampson distance。
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_66
对该公式进行说明:计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_67计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_64对应相乘,计算机视觉几何变换操作 计算机视觉 极几何约束_c++_69计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_64对应相乘,计算机视觉几何变换操作 计算机视觉 极几何约束_基线_71计算机视觉几何变换操作 计算机视觉 极几何约束_c++_65对应相乘,计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_73计算机视觉几何变换操作 计算机视觉 极几何约束_c++_65对应相乘。

2、对称极线距离
计算机视觉几何变换操作 计算机视觉 极几何约束_c++_75

  • *用所有内点进行非线性优化–计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_76(选用)
  • 计算本质矩阵计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_77

计算机视觉几何变换操作 计算机视觉 极几何约束_基线_78

式中,计算机视觉几何变换操作 计算机视觉 极几何约束_c++_79即本质矩阵,所以:
计算机视觉几何变换操作 计算机视觉 极几何约束_基线_80
本质矩阵性质:当且仅当它的两个奇异值相等且第三个奇异值为零;所以,求解计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_50同理,利用SVD分解来重构计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_82,不同的是:
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_83

  • 单应矩阵

当场景中的特征点都落在同一个平面时,通过单应性进行估计。设距光心为计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_84平面,特征点计算机视觉几何变换操作 计算机视觉 极几何约束_基线_85在两个视图上对应点计算机视觉几何变换操作 计算机视觉 极几何约束_c++_86计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_87满足:
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_88

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_89

计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_90

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_91

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_92

计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_93

计算机视觉几何变换操作 计算机视觉 极几何约束_c++_94,称之为单应性矩阵,得:
计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_95
类似于计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_96得求解方法
计算机视觉几何变换操作 计算机视觉 极几何约束_c++_97
即:
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_98
计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_99是处理齐次性的比例因子,从方程第三行求解计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_99带入第一、二行,可得到:
计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_101

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_102

计算机视觉几何变换操作 计算机视觉 极几何约束_基线_103

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_104

得到两个约束,单应性矩阵自由度为8(计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_105),则至少需要4对匹配点进行求解。计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉_106,求计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_107为0特征值的特征向量,或通过计算机视觉几何变换操作 计算机视觉 极几何约束_基线_108分解求得计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_107的一维零子空间。

在工程应用时,我们会倾向于同时计算基础矩阵和单应性矩阵,从而选择从投影误差最小的作为估计相机运动的矩阵。

  • 帧与帧之间相机相应位姿的求解

根据前面,我们知道计算机视觉几何变换操作 计算机视觉 极几何约束_c++_110计算机视觉几何变换操作 计算机视觉 极几何约束_c++_111计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_112计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_113的奇异值分解(SVD)得到,设计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_113的SVD为:
计算机视觉几何变换操作 计算机视觉 极几何约束_基线_115
在奇异值分解中,对于任意一个计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_113,存在两个可能的计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_112计算机视觉几何变换操作 计算机视觉 极几何约束_c++_111与之对应:
计算机视觉几何变换操作 计算机视觉 极几何约束_特征点_119

计算机视觉几何变换操作 计算机视觉 极几何约束_基线_120

计算机视觉几何变换操作 计算机视觉 极几何约束_计算机视觉几何变换操作_121

我们所得到的四个解,相机2对应有四种姿态和位移,我们选择P同时满足在两个相机前方。判断方法:

/*
1、利用三角测量(p1, p2, K1, R1, t1, K2, R2, t2),求出四种情况对应的三维坐标;
2、利用R、t,求出投影的(x,y,z);
3、z>0,对两个相机均成立,则正确。
*/

二、代码实现


总结