Python计算机视觉编程
多视图几何
几何计算机视觉把复杂的数学(尤其是射影几何等)引入到计算机视觉的研究中,形成了所谓的“多视图几何”。多视图几何为理解和形式化多视图成像几何奠定了坚实的理论基础,使得十几年前被认为无法解或难以解的问题得以求解,甚至能得到十分漂亮的结果。其最重要的特点是“未标定”方法,即没有必要已知或必须计算摄像机内参数,就可以达到计算机视觉的基本目的。
(一)外极几何
外极几何是研究两幅图像之间存在的几何。它和场景结构无关,只依赖于摄像机的内外参数。研究这种几何可以用在图像匹配、三维重建方面。
基本概念:
基线: 连接两个摄像机光点 O ( O ′ ) O(O') O(O′)的直线。
外极点: 基线与像平面的交点。
外极平面: 过基线的平面。
外极线: 对极平面与图像平面的交线。
基本矩阵 F F F: 对应点对之间的约束 m ′ T F m = 0 m^{'T}Fm=0 m′TFm=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=K′−T[t]xRK−1是秩为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]T≈KRτ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′=P′O=P′[0001]T=K′t
外极线: 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=F′TF=0
e ′ T F = 0 e^{'T}F=0 e′TF=0 F = K ′ − T E K − 1 F=K^{'-T}EK^{-1} F=K′−TEK−1
在两幅图像之间,基本矩阵将点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 s’m′=P′[X1]=K′RX+K′t
极点: 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′=P′C=P′[0001]T=K′t
极线: 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