python计算机视觉——基础矩阵与对极几何

本文介绍了对极几何在计算机视觉中的应用,特别是双视图几何的基础——基础矩阵。通过8点法估算基础矩阵,用于匹配和去除错配特征。还讨论了外极点、外极线及其在不同拍摄情况下的表现。最后,文章提供了在Python中使用OpenCV进行SIFT特征匹配和计算基本矩阵的实际操作,展示了在不同场景下的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对极几何

多视图几何利用在不同视点拍摄的图像间关系研究相机或者特征之间的关系,而在多视图几何中最重要的基础就是双视图,如果已经有了一个场景的两个视图以及视图中的对应图像点,则依据相机位置关系,相机性质和三维场景点的位置可以得到图像点的几何关系约束,即对极几何。通过对极几何,我们可以在已知两幅图像中两点是对应关系的前提下,求解两个相机的相对位置和姿态

如果仅看一个相机,我们并不能知道深度信息,可如果有两个相机的话(就像人有两只眼睛)我们就能得到深度的信息。
在这里插入图片描述
上图O和O’是两个相机中心,P点是物体所在,如果我们只看左边图像π上的点p,我们不能知道物体到底是在哪,点P1、P2或其他地方,可有了右边图像π’上的p’我们就能得到物体点P
在上图,我们把两相机中心的连线OO’成为基线,把他们与观测物体的平面OO’P成为对极平面,对极平面与两相机图像的交线l和l’称为对极线,而OO’与两图像的交点e,e’就是对极点。
随着观测点P的上下移动,对极平面也会围绕基线旋转
在这里插入图片描述
我们可以看到在左图对极平面旋转时对极点是不变的,而在相机图像上所有对极线都会交于对极点,这个对极点就是另一个相机中心在其图像上的像,当然正如右图所示,对极点可以在图像外。

1. 本质矩阵与基础矩阵

本质矩阵(Essential matrix)
几何表示是便于理解的,可是计算机并不懂,我们要将其转为代数形式。
我们知道由相机1到相机2是刚体运动,那么观测点P在相机1坐标系的坐标就可以通过刚体转换变成相机2坐标系下, P ′ = R P + T P'= RP+T P=RPT

其中R和T分别表示旋转和平移,如果我们将其左叉乘一个T,即
T × P ′ = T × R P + T × T = T × R P T×P'= T×RP+T×T=T×RP T×P=T×RPT×T=T×RP

其中 表示对极平面的法线,若再左点乘一个P’得到
P ′ ( T × P ′ ) = P ′ ( T × R P ) P'(T×P')= P'(T×RP) PT×P=P(T×RP)

由于P’与法线TxP’是垂直的,所以有
0 = P ′ ( T × R P ) 0=P'(T×RP) 0=P(T×RP)

我们知道两向量的叉乘可以转换为一向量的反对称矩阵与另一向量的点乘,于是
P ′ ( T × R P ) = P ′ [ T × ] R P ) = 0 P'(T×RP)= P'[T×]RP)=0 PT×RP=P[T×]RP)=0
[ T × ] [T×] [T×]表示 T T T的反对称矩阵,我们让 E = [ T × ] R E=[T×]R E=[T×]R,那么
P ′ T × E P = 0 P'^{T}×EP=0 PT×EP=0.
这个 E E E就是本质矩阵.

本质矩阵采用的是相机的外部参数,也就是说采用相机坐标(The essential matrix uses CAMERA coordinates),如果要分析数字图像,则要考虑坐标(u,v),此时需要用到内部参数(To use image coordinates we must consider the INTRINSIC camera parameters)

基础矩阵
1)两幅图像之间的约束关系使用代数的方式表示出来即为基本矩阵。

2)基础矩阵F满足: x T F x ′ = 0 x^{T}F{x}'=0 x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值