文章目录
一、基础矩阵原理
1.对极几何
假设在一个立体视觉系统中,有两个摄像机(即双目标定),如图2.1所示,设C和C’分别为两个摄像机的光心,两个摄像机所拍摄的图像分别为 I 和 I’ ,M 为三维空间中任意一点(即世界坐标点);m 和m’ 是点M在两个图像上的投影点,同时也是一对对应点;两节光心C 和C’的直线称为基线。空间点M和两个光心点C和C’共面,设共面的平面为 π(称为极平面),改极平面与图像平面的交线l 和 l’ 称为极线。因为两个摄像机的投影点也同时在平面 π 和像平面 l 和 l’ 上。所以可看出,寻找两个图像之间的对应点不必在整幅图像中寻找,只需要在相对应的极线上寻找即可。此时,就需要提供一个重要的极线约束,将对应点的搜索空间从二维降到一维。当三维空间的M点移动时,产生的对所有极线都穿过极点e(e’),极点是极线与图像平面的角点。
对极平面 = 包含基线的平面
对极线 = 对极平面与像平面的交线
2.极点性质
下面介绍极点的性质:
=像平面和的基线O1O2交点
=O2在相机1上的像点为e1
=基线的平行线在各自像面上的消失点
重点阐述一下第3个性质,
A. 如图,两个相机相对放置(会聚视角), 相机1面向右边,相机2面向左边,可知极点位于1的右边,2的左边。图中花瓶上标示的横线即为平行于基线的线条。
为什么平行于基线的线条消失点为极点?可以看上图,平行于基线的线条所在极面与像面必交于极点(基线必与像面交于极点),故而这些线条在像面上一定会交于极点。
==B.==当两个像面平行时,根据极点的定义,则极点位于无穷远处,极线与基线平行, 如下图所示
这个时候,与基线平行的线条的在像面是一系列平行线,消失点在无穷远,和极点重合
C. 当两个相机是前后放置且主点连线和像面垂直时(forward translation)
极点在各自像平面上的位置相同,且平行基线的线条在像面上的位置如上图右边所示。同样消失点为极点。
3.摄像机模型
一种基于平面棋盘格的标定,首先应该从两个平面的单应性(homography)映射开始着手。单应性(homography):在计算机视觉中被定义为一个平面到另一个平面的投影映射。首先看一下,图像平面与标定物棋盘格平面的单应性。 摄像机模型得到:
其中m的齐次坐标表示图像平面的像素坐标(u,v,1),M的齐次坐标表示世界坐标系的坐标点(X,Y,Z,1)。A[R t]即是上面一篇博客推出的P。R表示旋转矩阵、t表示平移矩阵、S表示尺度因子。A表示摄像机的内参数,具体表达式如下:
4.基础矩阵
设世界点X在像平面C,C’坐标系中的相对坐标分别p,p’,则有
其中在两幅图像上(即像平面)的投影点X 和X’的坐标值及P 和P’坐标值为:
则根据三线共面,有
推到情况:T为三维向量,T=(Tx,Ty,Tz),称下面S矩阵为T的反对称矩阵(反对称矩阵秩为2)。令Tp=Sp代入式子左边得到:
本质矩阵描述了空间中的点在两 个坐标系中的坐标对应关系。根据前述, K 和 K’ 分别为两个摄像机的内参矩阵,有:
基础矩阵描述了空间中的点在两个像平面中的坐标对应关系。这是一个对立体视觉和运动视觉非常重要的矩阵,重要性在于:不需要摄像机的投影矩阵,仅需要两幅图像间的对应点,使得我们可以利用对应点的关系恢复出基本矩阵F。
基础矩阵的基本性质如下:可以用于简化匹配和去除错误匹配点。
(1)基本矩阵的自由度为7;
(2)对极几何约束可以有基础矩阵代数表示
(3)F 为 3x3 矩阵,因为它是奇异的,即秩为2,对任意两幅图像的匹配点对都有, xx’ 均满足
(4)1. 转置: 如果 F 是表述点对 (x, x’)之间的基础矩阵, 则 FT 是 表述点对 (x’,x)之间的基础矩阵;
-
对极线: F 可以将点 x 映射到对应像平面上一条线
,同理可得
-
对极点: 对于所有对极线, 有
, 同理 有
二、基础矩阵求解
1.基础矩阵的估算计算方法
一般的估算方法分为三类:线性方法、非线性方法和鲁邦方法;其中线性方法和非线性方法适合特征点匹配无误情况下,客服特征点定位精确不够引入噪声数据;鲁棒法适合特征点有误情况下,可以剔除错误匹配数据或者抑制较大噪声。
基本流程为:利用SIFT方法提取图像中特征点,并进行匹配–>8点法计算基础矩阵(由于会存在错误,用作为RANSAC方法的迭代初值)–>使用RANSAC方法得到基础矩阵鲁棒解。
(1)归一化8点法
原理如下:对于两幅图像的匹配点X和X’,必然满足根据两个视外对极几何:该方程是关于 F 的9个未知参数的线性齐次方程。由于F在相差一个常数因子意义下是唯一的,所以讲其中一个非零参数归一化变为8个未知参数,因此只要得到8个匹配点就可以线性确定F,这就是所谓的8点法。设
分别是两图像中对应点的归一化坐标,F为基础矩阵
,将F写成由各个元素组成的矢量,即
则对其中X和X’分别表示两幅图像中的对应点的齐次坐标。如若两幅图有若干对应特征点,则有:
,即
在实际计算中,可以直接用ATA的分解来求解参数。 也可以用非线性优化,通过搜索f使得||Af||最小化, 同时满足||f||=1的约束。上述求解后的F不一定能满足秩为2的约束,因此 还要在F基础上加以约束。通过SVD分解可以解决上述问题,令则最终的解为 :
其中f包含了基础矩阵F的未知元素列向量,Hartley将图像坐标点归一化,即归一化8点计算。由于8点发过于高度依赖特征点匹配的正确度,当出现错误匹配时,结果就会很坏,为了提高精确度,所以讲8点法的计算结果作为RANSAC方法的初值。
2.最小二乘法
8点法中,只使用8对匹配的点对估计基础矩阵,但通常两幅图像的匹配的点对远远多于8对,可以利用更多匹配的点对来求解上面的方程。由于基础矩阵F在一个常量因子下是等价的,这样可以给基础矩阵F的元素组成的向量f施加一个约束条件,,这样由K≥8个匹配的点对,组合成一个矩阵QK×9,求解上面方程就变成了求解如下问题的最小二乘解
,其中,矩阵Q的每一行来自一对匹配点;f是基础矩阵F元素构成的待求解的向量,根据2-范数的定义
,将上式的中间部分提取出来得到矩阵M=QTQ,这是一个9×9的矩阵。基于拉格朗日-欧拉乘数优化定理,在∥f∥=1约束下,Qf=0的最小二乘解,为矩阵M=QTQ的最小特征值对应的特征向量。所以可以对矩阵Q进行奇异值分解(SVD)。其中,Q是K×9的矩阵;U是K×K的正交阵;Σ是K×9的对角矩阵,对角线的元素是奇异值;VT是9×9的正交阵,每一个列向量对应着Σ中的奇异值。所以,最小二乘解就是VT的第9个列向量,也就是可由向量f=V9构造基础矩阵F。基础矩阵F还有一个重要的性质,这里可以作为进一步的约束条件。那就是基础矩阵F的秩为2,
,上述使用列向量V9构造的基础矩阵的秩通常不为2,需要进一步的优化。在估计基础矩阵时,设其最小奇异值为0,对上面方法取得的基础矩阵进行SVD分解
,其最小特征值v3被设为0,以使得F的秩为2.这样得到
,上述F就是最终得到的基础矩阵。
3.随机取样RANSAC算法
基于匹配点对估算两视图的基础矩阵,唯一的已知条件就是匹配的点对坐标。在实践中,点对的匹配肯定是存在误差的,主要有两种类型的误差:
1、不精确的测量点位置引起的系统误差,通常服从高斯分布
2、错误匹配引起的误差,这些不匹配的点被称为外点,通常不服从高斯分布
对于基础矩阵的估算,不匹配的点能够造成很大的误差,即使是只有一对错误的匹配都能使估算值极大的偏离真实值。因此,需要找到一种方法,从包含错误点(外点)的匹配点对集合中,筛选出正确的匹配点(内点)。
RANSAC(Random Sample Consensus)随机采样一致性从一组含有外点的数据集中,通过迭代的方式估计出符合该数据集的数学模型的参数。因此,它也可以用来检测出数据集中的外点。
RANSAC有两个基本的假设:
1、数据集中包含的内点,内点的分布符合一个数学模型;而数据集中的外点不复合该数学模型
2、能够一组内点(通常很少)集合能够估计出其符合的数据模型
RANSAC的具体思想是:给定N个数据点组成的集合P,假设集合中大多数的点都是可以通过一个模型来产生的,且最少通过n个点可以拟合出模型的参数,则可以通过以下的迭代方式拟合该参数:
(1)从集合P中随机选择n个点
(2)使用这n个点估计出一个模型M
(3)对P中剩余的点,计算每个点与模型M的距离,距离超过阈值则认为是外点;不超过阈值则认为是内点,并记录该模型M所对应的内点的个数mi
将上面步骤重复k次,选择最大mi所对应的模型M作为最终结果。
在迭代次数k的选择是一个关键,可以通过理论的方式计算出k的取值。在选择n个点估计模型时,要保证选择的n的个点都是内点的概率足够的高。假设,从数据集中选择一个点为内点的概率为ϖ,则选择的n个点都是内点的概率为ϖn;则1−ϖn表示选择的n个点至少有一个是外点,用包含外点估算的模型显然是不正确的,则迭代k次均得不到正确模型的概率为(1−ϖn)k。设p表示k次迭代中至少有一次选择的点都是内点的概率,也就是估计出了正确的模型,则1−p就表示k次跌点都得到正确的模型,所以有,两边同时取对数,则有
,一般要求p大于95%即可
使用RANSAC估算基础矩阵时,首先需要确定判断点是内点还是外点的依据。通过上一篇的两视图的对极几何可知,像点总是在对极线,因此可以选择像点到对极线的距离作为判断该点是内点还是外点的依据,设点到对极的距离的阈值为d。则使用RANSAC的方法估算基础矩阵的步骤:
(1)从匹配的点对中选择8个点,使用8点法估算出基础矩阵Fi
(2)计算其余的点对到其对应对极线的距离dn,如果dn≤d则该点为内点,否则 为外点。记下符合该条件的内点的个数为mi
(3)迭代k次,或者某次得到内点的数目mi占有的比例大于等于95%,则停止。选择mi最大的基础矩阵作为最终的结果。
RANSAC能够不依赖于任何额外信息的情况下,将数据划分为内点和外点。但也有其相应的缺点,RANSAC并不能保证得到正确的结果,需要提高迭代的次数;另一个是,内点外点的判断需要设置阈值。
三、实验
1.实验要求
1.分别用七点、八点、十点(匹配点),计算图像基础矩阵,其中实验图片包含三种情况,即(1)左右拍摄,极点位于图像平面上(2)像平面接近平行,极点位于无穷远(3)图像拍摄位置位于前后
2. 针对上述情况,画出极点和极线,其中点坐标要均匀分布于各行
2.实验代码
(一)