Python计算机视觉编程第五章——多视图几何

本文深入探讨了多视图几何在计算机视觉中的应用,特别是外极几何概念,包括基本矩阵的计算、外极点和外极线的求解。通过实例展示了如何使用8点算法计算基础矩阵,并进行三角剖分以恢复三维点。同时,讨论了从基础矩阵恢复照相机矩阵的过程,以及在不同情况下的度量重建。最后,概述了基于图像的三维重建步骤,并给出了实施过程中可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

多视图几何

几何计算机视觉把复杂的数学(尤其是射影几何等)引入到计算机视觉的研究中,形成了所谓的“多视图几何”。多视图几何为理解和形式化多视图成像几何奠定了坚实的理论基础,使得十几年前被认为无法解或难以解的问题得以求解,甚至能得到十分漂亮的结果。其最重要的特点是“未标定”方法,即没有必要已知或必须计算摄像机内参数,就可以达到计算机视觉的基本目的。

(一)外极几何

外极几何是研究两幅图像之间存在的几何。它和场景结构无关,只依赖于摄像机的内外参数。研究这种几何可以用在图像匹配、三维重建方面。

基本概念:

基线:  连接两个摄像机光点 O ( O ′ ) O(O') O(O)的直线。
外极点:  基线与像平面的交点。
外极平面:  过基线的平面。
外极线:  对极平面与图像平面的交线。
基本矩阵 F F F:  对应点对之间的约束 m ′ T F m = 0 m^{'T}Fm=0 mTFm=0

数学表达:
光心:   O = [ 0 0 0 1 ] τ O=\begin{bmatrix} 0 &0 & 0 & 1 \end{bmatrix}^{\tau } O=[0001]τ      O ′ = [ − R τ t 1 ] τ O^{'}=\begin{bmatrix} -R^{\tau } t & 1 \end{bmatrix}^{\tau } O=[Rτt1]τ

基本矩阵 F F F:    F = K ′ − T [ t ] x R K − 1 F=K^{'-T}[t]xRK^{-1} F=KT[t]xRK1是秩为2的3x3矩阵,自由度为7。

外极点:   e = P O ′ = P [ − R τ t 1 ] T ≈ K R τ t e=PO^{'}=P\begin{bmatrix} -R^{\tau }t & 1\end{bmatrix}^{T}\approx KR^{\tau }t e=PO=P[Rτt1]TKRτt
                 e ′ = P ′ O = P ′ [ 0 0 0 1 ] T = K ′ t e^{'}=P^{'}O=P^{'}\begin{bmatrix} 0 & 0 & 0 & 1\end{bmatrix}^{T}= K^{'}t e=PO=P[0001]T=Kt

外极线:   l = e × m l=e\times m l=e×m
                 l ′ = e ′ × m ′ l^{'}=e^{'}\times m^{'} l=e×m
本质矩阵 E E E:    E = [ t ] x R E=[t]_{x}R E=[t]xR 是秩为 2 2 2 3 × 3 3\times 3 3×3矩阵,自由度为 5 5 5
对象之间的关系:   l = F T m ′ l=F^{T}m^{'} l=FTm       l ′ = F m l^{'}=Fm l=Fm
                                F e = 0 Fe=0 Fe=0           e = F ′ T F = 0 e=F^{'T}F=0 e=FTF=0
                                e ′ T F = 0 e^{'T}F=0 eTF=0       F = K ′ − T E K − 1 F=K^{'-T}EK^{-1} F=KTEK1

在两幅图像之间,基本矩阵将点m映射为对应的对极线,将对极点映射为0.不能提供对应点间的一一对应。

基本矩阵的代数推导:

空间中一点 M = [ X 1 ] T M=\begin{bmatrix} X & 1\end{bmatrix}^{T} M=[X1]T在两幅图像上的成像分别为:

s m = P [ X 1 ] T = K X sm=P\begin{bmatrix} X & 1\end{bmatrix}^{T}=KX sm=P[X1]T=KX
s ’ m ′ = P ′ [ X 1 ] = K ′ R X + K ′ t s^{’}m^{'}=P^{'}\begin{bmatrix} X & 1\end{bmatrix}=K^{'}RX+K^{'}t sm=P[X1]=KRX+Kt

极点: e ′ = P ′ C = P ′ [ 0 0 0 1 ] T = K ′ t e^{'}=P^{'}C=P^{'}\begin{bmatrix} 0 & 0 & 0 & 1 \end{bmatrix}^{T}=K^{'}t e=PC=P[0001]T=Kt

极线: l ′ = [ e ′ ] x m ′ = [ K ′ t ] x [ K ′ R X + K ′ t ] = K ′ − T [ t ] x R K − 1 m = F m l^{'}=\left [ e^{'}\right ]_{x}m^{'}=\left [ K^{'}t \right ]_{x}\left [ K^{'} RX+K^{'}t\right ]=K^{'-T}\left [ t \right ]_{x}RK^{-1}m=Fm l=[e

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值