一、基本原理
1.1外极几何
外极几何是研究两幅图像之间存在的几何。它和场景结构无关,只依赖于摄像机的内外参数。研究这种几何可以用在图像匹配、三维重建方面。
外极点: 基线与像平面的交点。
外极平面: 过基线的平面。
外极线: 对极平面与图像平面的交线。
基本矩阵F : 对应点对之间的约束m’Fm=0
基础矩阵的代数推导:
1.2基础矩阵的估算方法
基础矩阵F是一个3×3的矩阵,有9个未知元素。然而,上面的公式中使用的齐次坐标,齐次坐标在相差一个常数因子下是相等,F也就只有8个未知元素,也就是说,只需要8对匹配的点对就可以求解出两视图的基础矩阵F FF。
假设在两幅图像对应匹配点的坐标分别为:
由基础矩阵公式得
也即:
将上述公式中的F看成列向量:
那么可将上述公式改写为:
给定8组点的集合,我们有如下方程:
求解上面的方程组就可以得到基础矩阵各个元素了。
八点法 优点: 线性求解,容易实现,运行速度快 . 缺点:对噪声敏感
最小二乘法估算
使用归一化的坐标虽然能够在一定程度上消除噪声、错误匹配带来的影响,但还是不够的。8点法中,只使用8对匹配的点对估计基础矩阵,但通常两幅图像的匹配的点对远远多于8对,可以利用更多匹配的点对来求解上面的方程。
由于基础矩阵F在一个常量因子下是等价的,这样可以给基础矩阵F的元素组成的向量f施加一个约束条件
可以对矩阵Q 进行奇异值分解(SVD)
在估计基础矩阵时,设其最小奇异值为0,对上面方法取得的基础矩阵进行SVD分解
其最小特征值v3被设为0,以使得F的秩为2.这样得到
上述F就是最终得到的基础矩阵。
二、实验内容和分析
2.1实验内容
1.求解图像之间的基础矩阵
要求:分别用七点、八点、十点(匹配点),计算基础矩阵
2.实验图片包含三种情况,即(1)左右拍摄,极点位于图像平面上(2)像平面接近平行,极点位于无穷远(3)图像拍摄位置位于前后
针对上述情况,画出极点和极线,其中点坐标要均匀分布于各行
2.2 求解图像之间的基础矩阵
1.匹配点为七点
SIFT匹配
RANSAC筛选
基础矩阵:
[[-3.74405115e-04 2.97061956e-04 2.10048565e-02]
[ 5.22267792e-04 -3.91300262e-04 -3.06613580e-02]
[-1.48410971e-02 8.93704635e-03 1.00000000e+00]]
2.匹配点为八点
SIFT匹配
RANSAC筛选
基础矩阵
[[-2.69636313e-04 -9.17789259e-04 -2.95714666e-02]
[ 8.15264237e-04 1.01311622e-03 6.46453229e-02]
[ 8.17746079e-02 -2.88532391e-01 1.00000000e+00]]
3.匹配点为十点
SIFT匹配后
RANSAC筛选后
基础矩阵:
[[-1.35563615e-04 -4.72508953e-04 2.21439541e-03]
[ 5.46455880e-04 2.37112976e-04 5.28351729e-03]
[ 1.62115556e-02 -9.19249361e-02 1.00000000e+00]]
小结:
正如8点算法一样,使用7个点对应可得到以下方程:
若图像中仅有7个对应点,当基本矩阵有3个解时,不能断定哪-一个是真解。如果图像中有多于7个点对应,当基本矩阵有3个解时,可选取匹配点对应数最多的矩阵作为基本矩阵的真解。
参考:https://www.jiqizhixin.com/articles/19052902 谭平教授
1.当得到1个实数解、2个虚数解时,直接舍弃虚数解,实数解就是F的唯一 解;
2.当得到3个实数解时,称之为critical condition,这意味着,F的7个点和两个相机中心点,这9个点,通过三维空间中某个特定曲面。在这种特定情况下,7个对应点不能唯一确定一个F。
3.而匹配点大于等于8点时,对基础矩阵并无太大的影响。
2.3代码
def compute_fundamental(x1, x2):
n = x1.shape[1]
if x2.shape