计算机视觉——多视图几何

本文介绍了多视图几何中的外极几何原理,讲解了基础矩阵的估算方法,包括八点法及其优缺点,并通过实验展示了如何使用SIFT匹配和RANSAC筛选求解基础矩阵。实验分析了不同拍摄情况下的极点和极线分布,如左右拍摄、平面平行及前后拍摄的位置。
摘要由CSDN通过智能技术生成

一、基本原理

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值