多视图几何(10)_基本矩阵F的计算

基本矩阵F的计算

基本方程

基本矩阵满足
x ′ F x = 0 \pmb x^\prime F \pmb x= 0 xFx=0
用向量 f \pmb f f表示由 F F F的元素按行优先顺序排列的 9 9 9维度列向量,则有
A f = 0 A \pmb f = 0 Af=0
A A A n n n对匹配点组成的 n × 9 n \times 9 n×9矩阵, f \pmb f f的最小二乘解对应于 A A A的最小奇异值的奇异向量,即 S V D SVD SVD分解中矩阵 V V V的最后一列。基本矩阵的一个重要性质是它是奇异的,然后直接求解出的矩阵 F F F一般情况的秩不是 2 2 2,因此需要采取步骤强制这种约束。实现方法是修正由 A A A S V D SVD SVD分解得到的 F F F。矩阵 F F F被在约束 det ⁡ F ′ = 0 \det F^\prime =0 detF=0下最小化 Frobenius \text{Frobenius} Frobenius范数 ∥ F ′ − F ∥ \parallel F^\prime -F\parallel FF F ′ F^\prime F来代替。

如果 A A A的秩为 8 8 8,则可以在不计尺度因子下求解 f \pmb f f,当矩阵 A A A的秩为 7 7 7时,仍然可以用奇异性约束来求解基本矩阵。

最重要的情况是仅有 7 7 7对点对应是一致的,这导致一个 7 × 9 7 \times 9 7×9的矩阵 A A A,其秩为 7 7 7,此时 A f = 0 A \pmb f=0 Af=0的解形如 α F 1 = ( 1 − α ) F 2 \alpha F_1 = (1-\alpha )F_2 αF1=(1α)F2 2 2 2维空间,矩阵 F 1 , F 2 F_1,F_2 F1,F2是对应于 A A A的右零空间生成元 f 1 , f 2 f_1,f_2 f1,f2的矩阵。施加 det ⁡ F = 0 \det F=0 detF=0约束等价于 det ⁡ ( α F 1 + ( 1 − α ) F 2 ) = 0 \det (\alpha F_1 + (1-\alpha) F_2)=0 det(αF1+(1α)F2)=0。由于 F 1 , F 2 F_1,F_2 F1,F2已知,可以通过解此多项式来求解 α \alpha α,可能有一个或三个实数解。

归一化 8 8 8点算法

目标

给定 n ≥ 8 n \geq 8 n8组图像点对应 { x i ↔ x i ′ } \{x_i \leftrightarrow x_i^\prime \} {xixi},确定使得 x i ′ T F x i = 0 x_i^{\prime T} F x_i=0 xiTFxi=0的基本矩阵 F F F

算法
  1. 归一化:根据 x ^ i = T x i \hat x_i=Tx_i x^i=Txi x ^ i ′ = T ′ x i ′ \hat x_i^\prime = T^\prime x_i^\prime x^i=Txi变换图像坐标。其中 T , T ′ T,T^\prime T,T是由平移和缩放组成的归一化变换
  2. 按如下方法寻求对应于匹配 x ^ i ↔ x ^ i ′ \hat x_i \leftrightarrow \hat x_i^\prime x^ix^i的基本矩阵 F ^ ′ \hat F^\prime F^
    • 线性解:由 A ^ \hat A A^的对应最小奇异值的奇异向量确定 F ^ \hat F F^,其中 A ^ \hat A A^由匹配 x ^ i ↔ x ^ i ′ \hat x_i \leftrightarrow \hat x_i^\prime x^ix^i形成
    • 强迫约束:用SVD并以 F ^ ′ \hat F^\prime F^代替 F ^ \hat F F^使得 det ⁡ F ^ ′ = 0 \det \hat F^\prime =0 detF^=0
  3. 解除归一化:令 F = T ′ T F ^ ′ T F=T^{\prime T}\hat F^{\prime }T F=TTF^T

代数最小化算法

归一化 8 8 8点法中通过 S V D SVD SVD方法寻找最小化 ∥ F ′ − F ∥ \parallel F^\prime -F \parallel FF F ′ F^\prime F来代替 F F F,然而这并不是数值意义上最接近 F F F的算法。代数最小化方法是通过在约束 ∥ f ′ ∥ = 1 \parallel f^\prime \parallel =1 f∥=1下最小化 ∥ A f ∥ = 0 \parallel Af \parallel =0 Af∥=0,该过程只能通过迭代方式进行,因为 det ⁡ F ′ = 0 \det F^\prime=0 detF=0是三次约束而不是线性约束

任意一个 3 × 3 3 \times 3 3×3奇异矩阵可以写成 F = M [ e ] × F=M[e]_\times F=M[e]×,其中 M M M是一个非奇异矩阵, e e e是第一幅图像的对极点。现在希望计算形如 F = M [ e ] × F=M[e]_\times F=M[e]×并在约束 ∥ f ∥ = 1 \parallel f \parallel =1 f∥=1下最小化代数误差 ∥ A f ∥ \parallel Af \parallel Af。假定已知 e e e的初始值,将 F = E [ e ] × F=E[e]_\times F=E[e]×改写为 f = E m f=Em f=Em,则 E E E
E = [ [ e ] × [ e ] × [ e ] × ] E=\begin{bmatrix} [\pmb e]_\times & & \\ &[\pmb e]_\times &\\ &&[\pmb e]_\times \end{bmatrix} E= [e]×[e]×[e]×
因为 f = E m f=Em f=Em,该最小化问题变为

在约束条件 ∥ E m ∥ = 1 \parallel Em \parallel =1 Em∥=1下,最小化 ∥ A E m ∥ \parallel AEm \parallel AEm

目标

求在约束 ∥ f ∥ = 1 \parallel f \parallel =1 f∥=1 det ⁡ F = 0 \det F=0 detF=0下最小化代数误差 ∥ A f ∥ \parallel Af \parallel Af的基本矩阵 F F F

算法
  1. 用归一化 8 8 8点算法求基本矩阵的第一个近似 F 0 F_0 F0,然后求 F 0 F_0 F0的右零向量 e 0 e_0 e0
  2. 从对极点的估计 e i = e 0 e_i=e_0 ei=e0出发,计算矩阵 E i E_i Ei,接着求最小化$\parallel Af_i \parallel 并满足 并满足 并满足\parallel f_i \parallel =1 的向量 的向量 的向量f_i=E_im_i$
  3. 计算代数误差 ε i = A f i \varepsilon_i=Af_i εi=Afi,由于 f i f_i fi从而 ε i \varepsilon_i εi被确定到仅相差一个正负号,修正 ε i \varepsilon_i εi的符号,使得当 i > 0 i>0 i>0 e i T e i − 1 > 0 e_i^Te_{i-1}>0 eiTei1>0。这样做是为了保证作为 e i e_i ei的函数的 ε i \varepsilon_i εi平滑变化
  4. 商量不定义了 I R 3 → I R 9 IR^3 \rightarrow IR^9 IR3IR9的一个映射: e i → ε i e_i \rightarrow \varepsilon_i eiεi,现在用LM迭代变换 e i e_i ei以最小化 ∥ ε i ∥ \parallel \varepsilon _i \parallel εi
  5. 收敛时, f i f_i fi代表所求的基本矩阵

几何距离

黄金标准方法

假定图像点的测量噪声服从高斯分布。

目标

给定 n ≥ 8 n \geq 8 n8组图像点对应 { x i ↔ x i ′ } \{x_i \leftrightarrow x_i^\prime \} {xixi},确定基本矩阵的最大似然估计 ( M L E ) F ^ (MLE)\hat F (MLE)F^

M L E MLE MLE同时还求满足 x ^ i ′ T F ^ x ^ i = 0 \hat x_i^{\prime T} \hat F \hat x_i=0 x^iTF^x^i=0的辅助点对应集合 { x ^ i ↔ x ^ i ′ } \{\hat x_i \leftrightarrow \hat x_i^\prime \} {x^ix^i},并最小化
∑ i d ( x i , x ^ i ) 2 + d ( x i ′ , x ^ i ′ ) 2 \sum_{i}d(x_i,\hat x_i)^2 + d(x_i^\prime ,\hat x_i^\prime)^2 id(xi,x^i)2+d(xi,x^i)2

算法
  1. 用线性算法来计算 F ^ \hat F F^的一个秩为 2 2 2的初始估计
  2. 计算辅助变量 { x ^ i , x ^ i ′ } \{\hat x_i,\hat x_i^\prime\} {x^i,x^i}的初始估计如下:
    • 选择摄像机矩阵 P = [ I ∣ 0 ] , P ′ = [ [ e ′ ] × F ^ ∣ e ′ ] P=[I \mid 0],P^\prime=[[e^\prime]_\times \hat F \mid e^\prime] P=[I0],P=[[e]×F^e],其中 e ′ e^\prime e F ^ \hat F F^得到
    • 用三角测量法,由对应点 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xixi F ^ \hat F F^确定 X ^ i \hat X_i X^i的一个估计
    • F ^ \hat F F^相容的对应是 x ^ i = P X ^ i , x ^ i ′ = P ′ X ^ i \hat x_i= P\hat X_i,\hat x_i^\prime =P^\prime \hat X_i x^i=PX^i,x^i=PX^i
  3. F ^ \hat F F^ X ^ i \hat X_i X^i上,使用LM最小化上述代价函数,它有 3 n + 12 3n+12 3n+12个变量: 3 n 3n 3n来自于 n n n 3 D 3D 3D X ^ i \hat X_i X^i 12 12 12个来自于摄像机矩阵 P ′ = [ M ∣ t ] P^\prime = [M \mid t] P=[Mt],同时 F ^ = [ t ] × M \hat F = [t]_\times M F^=[t]×M x ^ i = P X ^ i , x ^ i ′ = P ′ X ^ i \hat x_i = P\hat X_i,\hat x_i^\prime = P^\prime \hat X_i x^i=PX^i,x^i=PX^i

秩2矩阵的参数化

  • 对极参数化
  • 两个对极点都作为参数

一阶几何误差Sampson

根据 S a m p s o n Sampson Sampson公式
ε T ε J J T = ( x i ′ T F x i ) 2 J J T \frac{\varepsilon^T \varepsilon }{JJ^T} = \frac{(x_i^{\prime T} F x_i)^2}{JJ^T} JJTεTε=JJT(xiTFxi)2
J J J的定义得到
J J T = ( F x i ) 1 2 + ( F x i ) 2 2 + ( F T x i ′ ) 1 2 + ( F T x i ′ ) 2 2 JJ^T = (Fx_i)_1^2+(Fx_i)_2^2 +(F^Tx_i^\prime )_1^2 +(F^Tx_i^\prime )_2^2 JJT=(Fxi)12+(Fxi)22+(FTxi)12+(FTxi)22
其中 ( F x i ) j 2 (Fx_i)_j^2 (Fxi)j2表示向量 F x i Fx_i Fxi的第 j j j个元素的平方,代价函数为
∑ i ( x i ′ T F x i ) 2 ( F x i ) 1 2 + ( F x i ) 2 2 + ( F T x i ′ ) 1 2 + ( F T x i ′ ) 2 2 \sum_i \frac{(x_i^{\prime T}F x_i)^2}{ (Fx_i)_1^2+(Fx_i)_2^2 +(F^Tx_i^\prime )_1^2 +(F^Tx_i^\prime )_2^2} i(Fxi)12+(Fxi)22+(FTxi)12+(FTxi)22(xiTFxi)2
用这种方法逼近集合误差的突出优点是对策道德代价函数只涉及 F F F的参数,不需要 n n n个空间点 X i X_i Xi的坐标,从而把一个 3 n + 7 3n+7 3n+7的自由度的最小化问题转换为一个只有 7 7 7自由度的问题

对称对极点距离

上述Sampson类似另一种代价函数
∑ i d ( x i ′ , F x i ) 2 + d ( x i , F T x i ′ ) 2 = ∑ i ( x i ′ T F x i ) 2 ( 1 ( F x i ) 1 2 + ( F x i ) 2 2 + 1 ( F T x i ′ ) 1 2 + ( F T x i ′ ) 2 2 ) \sum_i d(x_i^\prime,Fx_i)^2+d(x_i,F^Tx_i^\prime)^2 = \sum_i(x_i^{\prime T }Fx_i)^2(\frac 1{(Fx_i)_1^2+(Fx_i)_2^2} + \frac 1{(F^Tx_i^\prime)_1^2+(F^Tx_i^\prime)_2^2}) id(xi,Fxi)2+d(xi,FTxi)2=i(xiTFxi)2((Fxi)12+(Fxi)221+(FTxi)12+(FTxi)221)

建议

  1. 不要使用未归一化的 8 8 8点算法
  2. 为了快速并易于实现,使用归一化 8 8 8点算法,常能给出足够好的结果,适宜作为其他算法的第一步
  3. 如果需要更高的准确性,采用代数最小化方法,用或者不用关于对极点位置的迭代均可
  4. 另一种能给出很好结果的方法是运用最小化 S a m p s o n Sampson Sampson代价函数,它与迭代代数方法给出相似的结果
  5. 若高斯噪声假设成立,为了得到最好的结果,可使用黄金标准算法

F的自动计算

目标

计算两幅图像之间的基本矩阵

算法
  1. 兴趣点:在每幅图像中计算兴趣点
  2. 假设对应:利用兴趣点的灰度领域的相近和相似计算它们的匹配集
  3. RANSCA \text{RANSCA} RANSCA鲁棒估计:重复 N N N次采样,其中 N N N是自适应确定的
    • 选择 7 7 7组对应构成的一个随机样本计算基本矩阵 F , F, F得到一个或三个解
    • 对每组假设对应计算距离 d ⊥ d_\perp d
    • 计算与 F F F一致的内点数,即满足 d ⊥ < t d_\perp<t d<t像素的对应的数目
    • 如果 F F F有三个实解,计算每一个解的内点数并保留具有最多内点数的解
      选择具有最多内点数的 F F F,在数目相等时,选择内点标准差最小的那个解
  4. 非线性估计:利用LM算法最小化某个代价函数,由划为内点的所有对应重新估计 F F F
  5. 引导匹配:利用所估计的 F F F定义对极线附近的搜索区域,以便进一步确定兴趣点的对应

最后两步可以反复迭代直到对应的数目稳定为止

计算F的特殊情形

  • 纯平移运动
  • 平面运动
  • 已标定的情况:只需要求解本质矩阵
    E E E是一个 S V D SVD SVD E = U D V T E=UDV^T E=UDVT 3 × 3 3 \times 3 3×3矩阵,其中 D = d i a g ( a , b , c ) , a ≥ b ≥ c D=diag(a,b,c),a\geq b \geq c D=diag(a,b,c),abc,则在 Frobenius \text{Frobenius} Frobenius范数下最接近 E E E的本质矩阵是 E ^ = U D ^ V T \hat E = U\hat D V^T E^=UD^VT,其中 D ^ = d i a g ( ( a + b ) / 2 , ( a + b ) / 2 , 0 ) \hat D = diag((a+b)/2,(a+b)/2,0) D^=diag((a+b)/2,(a+b)/2,0)

其他元素的对应

  • 直线:视图之间的图像直线的对应对 F F F完全没有约束
  • 空间曲线和曲面:在对极平面与空间曲线相切的点上,像曲面与对应的对极线相切,这为两视图集合提供了约束

退化

  • d i m ( N ) = 1 dim(N)=1 dim(N)=1:唯一解——非退化情形
    发生于一般位置的 n ≥ 8 n \geq 8 n8组点对应,如果 n > 8 n>8 n>8,那么点对应必须是完全精准的
  • d i m ( N ) = 2 dim(N)=2 dim(N)=2 1 1 1 3 3 3个解
    发生于 7 7 7组点对应的情形,同时也发生于 n > 7 n>7 n>7组完全精准的点对应的情形,其中 3 D 3D 3D点和摄像机中心在一个被称为临界曲面的直纹二次曲面上。二次曲面可以是非退化的或退化的
  • d i m ( N ) = 3 dim(N)=3 dim(N)=3:两参数的解族
    发生于由一个单应相关联的 n ≥ 6 n \geq 6 n6组完全精准的点对应 x i ′ = H x i x_i^\prime = Hx_i xi=Hxi
    • 绕摄像机中心旋转(一种退化的运动)
    • 所有的世界点在一个平面上(一种退化的结构)

计算F的几何解释

对极线的包络

如果要在第二幅图像中寻找再第一幅图中 x x x的匹配点,我们会在 F x Fx Fx这条极线上搜索,但由于误差存在有可能不在这条直线上。下面确定对极线的包络,即 x x x的匹配点在 F x Fx Fx的多远的范围内出现

如果 I I I是服从均值为 I ~ \widetilde I I ,协方差矩阵为秩 2 2 2矩阵 Σ I \Sigma_I ΣI的高斯分布的随机直线,则平面二次曲线
C = I ‾ I ‾ T − k 2 Σ I C = \overline I \overline I^T - k^2 \Sigma_I C=IITk2ΣI
表示一个等似然轮廓,它围住了直线 I I I的所有事件中的某一部分。如果 F 2 ( k 2 ) F_2(k^2) F2(k2)表示累积 X 2 2 \mathcal X_2^2 X22分布,且选择 k 2 k^2 k2使得 F 2 ( k 2 ) = α F_2(k^2)=\alpha F2(k2)=α,则所有直线中占 α \alpha α比例的部分落在由 C C C所界定的区域内,也就是说这些直线落在这个区域的概率是 α \alpha α

图像矫正

为了产生一对“匹配对极线的投影”,对视点差别很大的立体图像对进行重采样。这些投影的对极线平行于 x x x轴并且在视图之间相匹配,从而图像之间的视差进发生在 x x x方向,即 y y y方向没有视差。

为了使对极线匹配,对两幅图像施加一对 2 D 2D 2D射影变换,用这种方法使两幅图像尽可能的对应,并且任何视差都将平行于 x x x轴,因为施加的任意 2 D 2D 2D射影变换可能造成图像极大的失真,寻找变换对的方法要使得图像是真的最小

映射对极点到无穷远点

假定 x 0 x_0 x0是原点且对极点 e = ( f , 0 , 1 ) T e=(f,0,1)^T e=(f,0,1)T x x x轴上,考虑以下变换
G = [ 1 0 0 0 1 0 − 1 / f 0 1 ] G = \begin{bmatrix} 1 & 0&0\\ 0& 1&0\\ -1/f & 0 & 1 \end{bmatrix} G= 101/f010001
该变换把对极点 ( f , 0 , 1 ) T (f,0,1)^T (f,0,1)T变到无穷远点 ( f , 0 , 0 ) T (f,0,0)^T (f,0,0)T

对于任何位置上的感兴趣点 x 0 x_0 x0和对极点 e e e,所需要的映射 H = G R T H=GRT H=GRT T T T是把 x 0 x_0 x0映射到原点的平移, R R R是一个绕原点的旋转并使对极点 e ′ e^\prime e转到 x x x轴上的点 ( f , 0 , 1 ) T (f,0,1)^T (f,0,1)T

匹配变换

现在考虑如何把一个映射施加到另一图像上是的极线相互匹配

  • J , J ′ J,J^\prime J,J是具有基本矩阵 F = [ e ′ ] × M F=[e^\prime]_\times M F=[e]×M的两幅图像,并设 H ′ H^\prime H J ′ J^\prime J的一个射影变换,则 J J J的一个射影变换 H H H H ′ H^\prime H匹配当且仅当对某个向量 a a a H H H具有形式

H = ( I + H ′ e ′ a T ) H ′ M H=(I+H^\prime e^\prime a^T)H^\prime M H=(I+HeaT)HM

  • J , J ′ J,J^\prime J,J是具有基本矩阵 F = [ e ′ ] × M F=[e^\prime]_\times M F=[e]×M的两幅图像,并设 H ′ H^\prime H J ′ J^\prime J的把对极点 e ′ e^\prime e映射到无穷远点 ( 1 , 0 , 0 ) T (1,0,0)^T (1,0,0)T的一个射影变换,则 J J J的一个射影变换 H H H H ′ H^\prime H匹配当且仅当 H = H A H 0 H=H_AH_0 H=HAH0,其中 H 0 = H ′ M H_0=H^\prime M H0=HM, H A H_A HA

H A = [ a b c 0 1 0 0 0 1 ] H_A = \begin{bmatrix} a & b & c \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} HA= a00b10c01

算法描述

现在总结重采样算法。其输入是有共同重叠区域的一对图像,输出是重采样的一对图像,使得这两幅图像中对极线都是水平的,并且两幅图像中的对应点尽可能相互接近。两个匹配点之间的任何视差都沿着水平对极线。该算法的一个顶层概述如下。

  1. 在两幅图像之间确定从图像到图像的匹配种子集合 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xixi,最少需要7个点,当然越多越好。
  2. 计算基本矩阵 F F F并且找到两幅图像中的对极点 e , e ′ e,e^\prime e,e
  3. 选择一个把对极点 e e e映射到无穷远点 ( 1 , 0 , 0 ) T (1,0,0)^T (1,0,0)T的射影变换 H H H
  4. 求最小化最小二乘距离
    ∑ i d ( H x i , H ′ x i ′ ) \sum_i d(Hx_i,H^\prime x_i^\prime) id(Hxi,Hxi)
    的匹配射影变换 H H H,实质是求 H A H_A HA
  5. 根据射影变换 H H H重采样第一幅图像并根据射影变换 H ′ H^\prime H重采样第二幅图像
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愤怒的卤蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值