基本矩阵F的计算
基本方程
基本矩阵满足
x
′
F
x
=
0
\pmb x^\prime F \pmb x= 0
x′Fx=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
∥F′−F∥的
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 n≥8组图像点对应 { x i ↔ x i ′ } \{x_i \leftrightarrow x_i^\prime \} {xi↔xi′},确定使得 x i ′ T F x i = 0 x_i^{\prime T} F x_i=0 xi′TFxi=0的基本矩阵 F F F
算法
- 归一化:根据 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′=T′xi′变换图像坐标。其中 T , T ′ T,T^\prime T,T′是由平移和缩放组成的归一化变换
- 按如下方法寻求对应于匹配
x
^
i
↔
x
^
i
′
\hat x_i \leftrightarrow \hat x_i^\prime
x^i↔x^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^i↔x^i′形成
- 强迫约束:用SVD并以 F ^ ′ \hat F^\prime F^′代替 F ^ \hat F F^使得 det F ^ ′ = 0 \det \hat F^\prime =0 detF^′=0
- 解除归一化:令 F = T ′ T F ^ ′ T F=T^{\prime T}\hat F^{\prime }T F=T′TF^′T
代数最小化算法
归一化 8 8 8点法中通过 S V D SVD SVD方法寻找最小化 ∥ F ′ − F ∥ \parallel F^\prime -F \parallel ∥F′−F∥的 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
算法
- 用归一化 8 8 8点算法求基本矩阵的第一个近似 F 0 F_0 F0,然后求 F 0 F_0 F0的右零向量 e 0 e_0 e0
- 从对极点的估计 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$
- 计算代数误差 ε 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 eiTei−1>0。这样做是为了保证作为 e i e_i ei的函数的 ε i \varepsilon_i εi平滑变化
- 商量不定义了 I R 3 → I R 9 IR^3 \rightarrow IR^9 IR3→IR9的一个映射: e i → ε i e_i \rightarrow \varepsilon_i ei→εi,现在用LM迭代变换 e i e_i ei以最小化 ∥ ε i ∥ \parallel \varepsilon _i \parallel ∥εi∥
- 收敛时, f i f_i fi代表所求的基本矩阵
几何距离
黄金标准方法
假定图像点的测量噪声服从高斯分布。
目标
给定 n ≥ 8 n \geq 8 n≥8组图像点对应 { x i ↔ x i ′ } \{x_i \leftrightarrow x_i^\prime \} {xi↔xi′},确定基本矩阵的最大似然估计 ( 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^i′TF^x^i=0的辅助点对应集合
{
x
^
i
↔
x
^
i
′
}
\{\hat x_i \leftrightarrow \hat x_i^\prime \}
{x^i↔x^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
i∑d(xi,x^i)2+d(xi′,x^i′)2
算法
- 用线性算法来计算 F ^ \hat F F^的一个秩为 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=[I∣0],P′=[[e′]×F^∣e′],其中 e ′ e^\prime e′由 F ^ \hat F F^得到
- 用三角测量法,由对应点 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xi↔xi′和 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′=P′X^i
- 在 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′=[M∣t],同时 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′=P′X^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(xi′TFxi)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(xi′TFxi)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})
i∑d(xi′,Fxi)2+d(xi,FTxi′)2=i∑(xi′TFxi)2((Fxi)12+(Fxi)221+(FTxi′)12+(FTxi′)221)
建议
- 不要使用未归一化的 8 8 8点算法
- 为了快速并易于实现,使用归一化 8 8 8点算法,常能给出足够好的结果,适宜作为其他算法的第一步
- 如果需要更高的准确性,采用代数最小化方法,用或者不用关于对极点位置的迭代均可
- 另一种能给出很好结果的方法是运用最小化 S a m p s o n Sampson Sampson代价函数,它与迭代代数方法给出相似的结果
- 若高斯噪声假设成立,为了得到最好的结果,可使用黄金标准算法
F的自动计算
目标
计算两幅图像之间的基本矩阵
算法
- 兴趣点:在每幅图像中计算兴趣点
- 假设对应:利用兴趣点的灰度领域的相近和相似计算它们的匹配集
-
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,在数目相等时,选择内点标准差最小的那个解
- 非线性估计:利用LM算法最小化某个代价函数,由划为内点的所有对应重新估计 F F F
- 引导匹配:利用所估计的 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),a≥b≥c,则在 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 n≥8组点对应,如果 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 n≥6组完全精准的点对应 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=IIT−k2Σ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=
10−1/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+H′e′aT)H′M
- 设 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=H′M, 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
算法描述
现在总结重采样算法。其输入是有共同重叠区域的一对图像,输出是重采样的一对图像,使得这两幅图像中对极线都是水平的,并且两幅图像中的对应点尽可能相互接近。两个匹配点之间的任何视差都沿着水平对极线。该算法的一个顶层概述如下。
- 在两幅图像之间确定从图像到图像的匹配种子集合 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xi↔xi′,最少需要7个点,当然越多越好。
- 计算基本矩阵 F F F并且找到两幅图像中的对极点 e , e ′ e,e^\prime e,e′
- 选择一个把对极点 e e e映射到无穷远点 ( 1 , 0 , 0 ) T (1,0,0)^T (1,0,0)T的射影变换 H H H
- 求最小化最小二乘距离
∑ i d ( H x i , H ′ x i ′ ) \sum_i d(Hx_i,H^\prime x_i^\prime) i∑d(Hxi,H′xi′)
的匹配射影变换 H H H,实质是求 H A H_A HA - 根据射影变换 H H H重采样第一幅图像并根据射影变换 H ′ H^\prime H′重采样第二幅图像