張氏相機標定心得體會——湖南澤塔{Zeta}
- 相機標定
- 小孔成像原理
- 多張照片的張氏標定法
相機標定
\quad \quad 學習相機標定一年有余,發現當前網上資料或不詳細,或有些有錯誤,雖感受不是特別好,但或多或少給我提供了很寶貴的線索,乘涼了這么久,也種棵樹,讓后面的朋友方便乘涼,
\quad \quad 第一次在CSDN發文,這次就以張正友的多張照片標定來展開討論吧,
小孔成像原理
\quad \quad
在相機外為了測量標定板和標定物而建立的坐標系稱為世界坐標系或物坐標系,記為
{
O
;
x
w
,
y
w
,
z
w
}
\{O;x_w,y_w,z_w\}
{O;xw?,yw?,zw?},這里下標
w
w
w表示world,因相機凸鏡較小,且接收感光螢屏在固定位置強制獲取成像,所以不能用凸鏡成像原理來分析,這里適合用小孔成像原理來進行分析,但需要考慮畸變因素,目前認為的畸變主要包括徑向畸變、切向畸變和薄棱鏡畸變,因目前的普通相機(區別于魚眼鏡頭和超廣角鏡頭這種畸變較大的鏡頭)拍照和視頻畸變處理相對較好了,本文不展開討論畸變,后文將相機凸鏡中心稱為小孔
O
′
O'
O′,小孔處凸鏡中心軸線記為
z
′
z'
z′軸,將小孔作為原點,原點處垂直于
z
′
z'
z′軸的平面順勢建立
x
′
O
′
y
′
x'O'y'
x′O′y′平面,本文稱該坐標系為小孔坐標系
{
O
′
;
x
′
,
y
′
,
z
′
}
\{O';x',y',z'\}
{O′;x′,y′,z′},
對于相機外一點
P
P
P,設其世界坐標為
(
x
,
y
,
z
)
(x,y,z)
(x,y,z),其小孔坐標為
(
x
′
,
y
′
,
z
′
)
(x',y',z')
(x′,y′,z′),設
x
′
x'
x′軸上正方向單位向量
i
?
′
\vec i'
i
′在世界坐標系下坐標為
(
l
1
,
m
1
,
n
1
)
T
(l_1,m_1,n_1)^T
(l1?,m1?,n1?)T;
y
′
y'
y′軸上正方向單位向量
j
?
′
\vec j'
j
?′在世界坐標為
(
l
2
,
m
2
,
n
2
)
T
(l_2,m_2,n_2)^T
(l2?,m2?,n2?)T;
z
′
z'
z′軸上正方向單位向量
k
?
′
\vec k'
k
′在世界坐標為
(
l
3
,
m
3
,
n
3
)
T
(l_3,m_3,n_3)^T
(l3?,m3?,n3?)T;設小孔的世界坐標為
(
x
0
,
y
0
,
z
0
)
(x_0,y_0,z_0)
(x0?,y0?,z0?),則根據空間決議幾何相關知識有
(
x
y
z
)
=
(
l
1
l
2
l
3
m
1
m
2
m
3
n
1
n
2
n
3
)
(
x
′
y
′
z
′
)
+
(
x
0
y
0
z
0
)
,
\begin{gathered} \quad \begin{pmatrix} x \\y\\z \end{pmatrix}=\begin{pmatrix} l_1 & l_2&l_3 \\ m_1& m_2&m_3\\n_1&n_2&n_3 \end{pmatrix}\begin{pmatrix} x' \\y'\\z' \end{pmatrix}+\begin{pmatrix} x _0\\y_0\\z_0 \end{pmatrix} \end{gathered},
???xyz????=???l1?m1?n1??l2?m2?n2??l3?m3?n3????????x′y′z′????+???x0?y0?z0??????,
這里
T
=
(
l
1
l
2
l
3
m
1
m
2
m
3
n
1
n
2
n
3
)
\begin{gathered} T=\begin{pmatrix} l_1 & l_2&l_3 \\ m_1& m_2&m_3\\n_1&n_2&n_3 \end{pmatrix} \end{gathered}
T=???l1?m1?n1??l2?m2?n2??l3?m3?n3??????為過渡矩陣,是正交矩陣,所以
(
x
′
y
′
z
′
)
=
(
l
1
m
1
n
1
l
2
m
2
n
2
l
3
m
3
n
3
)
(
x
y
z
)
+
(
x
0
′
y
0
′
z
0
′
)
,
\begin{gathered} \quad \begin{pmatrix} x' \\y'\\z' \end{pmatrix}=\begin{pmatrix} l_1 & m_1&n_1 \\ l_2& m_2&n_2\\l_3&m_3&n_3 \end{pmatrix}\begin{pmatrix} x \\y\\z\end{pmatrix}+\begin{pmatrix} x' _0\\y'_0\\z'_0 \end{pmatrix} \end{gathered},
???x′y′z′????=???l1?l2?l3??m1?m2?m3??n1?n2?n3????????xyz????+???x0′?y0′?z0′??????,
這里
(
x
0
′
y
0
′
z
0
′
)
=
?
(
l
1
m
1
n
1
l
2
m
2
n
2
l
3
m
3
n
3
)
(
x
0
y
0
z
0
)
,
\begin{gathered} \begin{pmatrix} x' _0\\y'_0\\z'_0 \end{pmatrix}=-\begin{pmatrix} l_1 & m_1&n_1 \\ l_2& m_2&n_2\\l_3&m_3&n_3 \end{pmatrix}\begin{pmatrix} x_0 \\y_0\\z_0\end{pmatrix} \end{gathered},
???x0′?y0′?z0′?????=????l1?l2?l3??m1?m2?m3??n1?n2?n3????????x0?y0?z0??????,
可以將旋轉與平移寫到一個矩陣運算,得如下形式:
(
x
′
y
′
z
′
)
=
(
l
1
m
1
n
1
x
0
′
l
2
m
2
n
2
y
0
′
l
3
m
3
n
3
z
0
′
)
(
x
y
z
1
)
,
\begin{gathered} \quad \begin{pmatrix} x' \\y'\\z' \end{pmatrix}=\begin{pmatrix} l_1 & m_1&n_1 &x' _0\\ l_2& m_2&n_2&y'_0\\l_3&m_3&n_3&z'_0 \end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix} \end{gathered},
???x′y′z′????=???l1?l2?l3??m1?m2?m3??n1?n2?n3??x0′?y0′?z0′??????????xyz1???????,
記
R
1
=
(
l
1
m
1
n
1
l
2
m
2
n
2
l
3
m
3
n
3
)
R_1=\begin{pmatrix} l_1 & m_1&n_1 \\ l_2& m_2&n_2\\l_3&m_3&n_3 \end{pmatrix}
R1?=???l1?l2?l3??m1?m2?m3??n1?n2?n3?????,記
t
=
(
x
0
′
y
0
′
z
0
′
)
t=\begin{pmatrix} x' _0\\y'_0\\z'_0 \end{pmatrix}
t=???x0′?y0′?z0′?????,則有
(
x
′
y
′
z
′
)
=
(
R
1
t
)
(
x
y
z
1
)
(
1.1
)
,
\begin{gathered} \quad \begin{pmatrix} x' \\y'\\z' \end{pmatrix}=\begin{pmatrix} R_1& t\end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix}\quad {(1.1)} \end{gathered},
???x′y′z′????=(R1??t?)?????xyz1??????(1.1)?,
設接收螢屏與小孔坐標系的水平平面平行,設小孔到接收螢屏的距離為
f
f
f,設前面提到的物點
P
P
P的小孔成像為
P
1
P_1
P1?,設
P
1
P_1
P1?在小孔坐標系下坐標為
(
u
1
,
v
1
,
?
f
)
T
(u_1,v_1,-f)^T
(u1?,v1?,?f)T,則利用相似比有
u
1
x
′
=
v
1
y
′
=
?
f
z
′
\frac{u_1}{x'}=\frac{v_1}{y'}=\frac{-f}{z'}
x′u1??=y′v1??=z′?f?,寫成矩陣形式為
(
u
1
v
1
1
)
=
1
z
′
(
?
f
0
0
0
?
f
0
0
0
1
)
(
x
′
y
′
z
′
)
\begin{pmatrix} u _1\\v_1\\1\end{pmatrix}=\frac{1}{z'}\begin{pmatrix} -f &0&0 \\ 0& -f&0\\0&0&1 \end{pmatrix}\begin{pmatrix} x' \\y'\\z' \end{pmatrix}
???u1?v1?1????=z′1?????f00?0?f0?001???????x′y′z′????,
結合公式
(
1.1
)
(1.1)
(1.1),有
(
u
1
v
1
1
)
=
1
l
3
x
+
m
3
y
+
n
3
z
+
z
0
′
(
?
f
0
0
0
?
f
0
0
0
1
)
(
R
1
t
)
(
x
y
z
1
)
(
1.2
)
\begin{pmatrix} u _1\\v_1\\1\end{pmatrix}=\frac{1}{l_3x+m_3y+n_3z+z'_0}\begin{pmatrix} -f &0&0 \\ 0& -f&0\\0&0&1 \end{pmatrix}\begin{pmatrix} R_1& t\end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix}\quad{(1.2)}
???u1?v1?1????=l3?x+m3?y+n3?z+z0′?1?????f00?0?f0?001????(R1??t?)?????xyz1??????(1.2),
因為小孔成像后再經過光電傳感器生成矩陣形式的數字像素影像,忽略離散化,只考慮尺度拉伸與旋轉和平移,設
P
P
P點小孔成像后對應到像素影像的點
P
2
P_2
P2?的像素坐標為
(
u
,
v
)
T
(u,v)^T
(u,v)T則
(
u
v
1
)
=
(
α
1
γ
1
u
0
s
1
β
1
v
0
0
0
1
)
(
u
1
v
1
1
)
\begin{pmatrix} u \\v\\1\end{pmatrix}=\begin{pmatrix} \alpha_1&\gamma_1&u_0 \\ s_1& \beta_1&v_0\\0&0&1 \end{pmatrix}\begin{pmatrix} u _1\\v_1\\1\end{pmatrix}
???uv1????=???α1?s1?0?γ1?β1?0?u0?v0?1???????u1?v1?1????,
結合公式
(
1.2
)
(1.2)
(1.2),有
(
u
v
1
)
=
1
l
3
x
+
m
3
y
+
n
3
z
+
z
0
′
(
α
1
γ
1
u
0
s
1
β
1
v
0
0
0
1
)
(
?
f
0
0
0
?
f
0
0
0
1
)
(
R
t
)
(
x
y
z
1
)
(
1.3
)
\begin{pmatrix} u \\v\\1\end{pmatrix}=\frac{1}{l_3x+m_3y+n_3z+z'_0}\begin{pmatrix} \alpha_1&\gamma_1&u_0 \\ s_1& \beta_1&v_0\\0&0&1 \end{pmatrix}\begin{pmatrix} -f &0&0 \\ 0& -f&0\\0&0&1 \end{pmatrix}\begin{pmatrix} R& t\end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix}\quad{(1.3)}
???uv1????=l3?x+m3?y+n3?z+z0′?1????α1?s1?0?γ1?β1?0?u0?v0?1????????f00?0?f0?001????(R?t?)?????xyz1??????(1.3),
化簡得
(
u
v
1
)
=
1
l
3
x
+
m
3
y
+
n
3
z
+
z
0
′
(
?
f
α
1
?
f
γ
1
u
0
?
f
s
1
?
f
β
1
v
0
0
0
1
)
(
R
1
t
)
(
x
y
z
1
)
(
1.4
)
\begin{pmatrix} u \\v\\1\end{pmatrix}=\frac{1}{l_3x+m_3y+n_3z+z'_0}\begin{pmatrix} -f\alpha_1&-f\gamma_1&u_0 \\-f s_1& -f\beta_1&v_0\\0&0&1 \end{pmatrix}\begin{pmatrix} R_1& t\end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix}\quad{(1.4)}
???uv1????=l3?x+m3?y+n3?z+z0′?1?????fα1??fs1?0??fγ1??fβ1?0?u0?v0?1????(R1??t?)?????xyz1??????(1.4),
利用矩陣的正交分解(搜索QR分解可以找到相關資訊,這里需要RQ分解)可以將矩陣
(
?
f
α
1
?
f
γ
1
?
f
s
1
?
f
β
1
)
\begin{pmatrix} -f\alpha_1&-f\gamma_1\\-f s_1& -f\beta_1 \end{pmatrix}
(?fα1??fs1???fγ1??fβ1??)唯一分解為第一個對角線元素為正的上三角矩陣和一個行列式為1的正交矩陣的乘積,設
(
?
f
α
1
?
f
γ
1
?
f
s
1
?
f
β
1
)
=
(
α
γ
0
β
)
Q
\begin{pmatrix} -f\alpha_1&-f\gamma_1\\-f s_1& -f\beta_1 \end{pmatrix}=\begin{pmatrix} \alpha&\gamma\\0& \beta\end{pmatrix}Q
(?fα1??fs1???fγ1??fβ1??)=(α0?γβ?)Q,則
(
?
f
α
1
?
f
γ
1
u
0
?
f
s
1
?
f
β
1
v
0
0
0
1
)
(
R
1
t
)
=
(
α
γ
u
0
0
β
v
0
0
0
1
)
(
Q
0
?
T
0
?
1
)
(
R
1
t
)
\begin{pmatrix} -f\alpha_1&-f\gamma_1&u_0 \\-f s_1& -f\beta_1&v_0\\0&0&1 \end{pmatrix}\begin{pmatrix} R_1& t\end{pmatrix}=\begin{pmatrix} \alpha&\gamma&u_0 \\0& \beta&v_0\\0&0&1 \end{pmatrix}\begin{pmatrix} Q&\vec{0}^T \\ \vec{0}& 1\end{pmatrix}\begin{pmatrix} R_1& t\end{pmatrix}
????fα1??fs1?0??fγ1??fβ1?0?u0?v0?1????(R1??t?)=???α00?γβ0?u0?v0?1????(Q0
?0
T1?)(R1??t?)
記
(
R
t
)
=
(
Q
0
?
0
?
T
1
)
(
R
1
t
)
,
\begin{pmatrix} R& t\end{pmatrix}=\begin{pmatrix} Q&\vec{0} \\ \vec{0}^T& 1\end{pmatrix}\begin{pmatrix} R_1& t\end{pmatrix},
(R?t?)=(Q0
T?0
1?)(R1??t?),則
(
u
v
1
)
=
1
l
3
x
+
m
3
y
+
n
3
z
+
z
0
′
(
α
γ
u
0
0
β
v
0
0
0
1
)
(
R
t
)
(
x
y
z
1
)
\begin{pmatrix} u \\v\\1\end{pmatrix}=\frac{1}{l_3x+m_3y+n_3z+z'_0}\begin{pmatrix} \alpha&\gamma&u_0 \\0& \beta&v_0\\0&0&1 \end{pmatrix} \begin{pmatrix} R& t\end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix}
???uv1????=l3?x+m3?y+n3?z+z0′?1????α00?γβ0?u0?v0?1????(R?t?)?????xyz1??????
此公式為相機的小孔成像原理對應的最終公式,
這里
z
′
=
l
3
x
+
m
3
y
+
n
3
z
+
z
0
′
z'=l_3x+m_3y+n_3z+z'_0
z′=l3?x+m3?y+n3?z+z0′?為
P
P
P點在小孔坐標系下的第三個分量,是
P
P
P點到小孔坐標系水平平面的距離,
R
R
R為水平坐標系選取恰當,使得內引數
α
\alpha
α為正且內參數矩陣為上三角情形下對應的行列式為1的正交矩陣,
多張照片的張氏標定法
\quad
設
z
a
z_a
za?表示物點到小孔坐標系水平面距離,設內引數矩陣為
K
K
K,將上面成像公式簡記為
z
a
(
u
v
1
)
=
K
(
R
t
)
(
x
y
z
1
)
z_a\begin{pmatrix} u \\v\\1\end{pmatrix}=K \begin{pmatrix} R& t\end{pmatrix}\begin{pmatrix} x \\y\\z\\1\end{pmatrix}
za????uv1????=K(R?t?)?????xyz1??????
考慮平面標定板的多張不同角度下的照片,設世界坐標的水平平面為標定板所在平面,此時成像公式為
z
a
(
u
v
1
)
=
K
(
l
1
m
1
n
1
x
0
′
l
2
m
2
n
2
y
0
′
l
3
m
3
n
3
z
0
′
)
(
x
y
0
1
)
,
z_a\begin{pmatrix} u \\v\\1\end{pmatrix}=K \begin{pmatrix} l_1&m_1&n_1&x'_0\\l_2&m_2&n_2&y'_0\\l_3&m_3&n_3&z'_0\end{pmatrix}\begin{pmatrix} x \\y\\0\\1\end{pmatrix},
za????uv1????=K???l1?l2?l3??m1?m2?m3??n1?n2?n3??x0′?y0′?z0′??????????xy01??????,
所以可以簡化為
z
a
(
u
v
1
)
=
K
(
l
1
m
1
x
0
′
l
2
m
2
y
0
′
l
3
m
3
z
0
′
)
(
x
y
1
)
,
z_a\begin{pmatrix} u \\v\\1\end{pmatrix}=K \begin{pmatrix} l_1&m_1&x'_0\\l_2&m_2&y'_0\\l_3&m_3&z'_0\end{pmatrix}\begin{pmatrix} x \\y\\1\end{pmatrix},
za????uv1????=K???l1?l2?l3??m1?m2?m3??x0′?y0′?z0′????????xy1????,
這里設
H
=
1
z
a
K
(
l
1
m
1
x
0
′
l
2
m
2
y
0
′
l
3
m
3
z
0
′
)
H=\frac{1}{z_a}K \begin{pmatrix} l_1&m_1&x'_0\\l_2&m_2&y'_0\\l_3&m_3&z'_0\end{pmatrix}
H=za?1?K???l1?l2?l3??m1?m2?m3??x0′?y0′?z0′?????,稱之為單應性矩陣,
成像公式化為
(
u
v
1
)
=
H
(
x
y
1
)
,
\begin{pmatrix} u \\v\\1\end{pmatrix}=H\begin{pmatrix} x \\y\\1\end{pmatrix},
???uv1????=H???xy1????,
對于一張照片有5個及以上的物點坐標和匹配的像點坐標,可以構成出H中的9個量為未知數的線性方程組,就可以計算出
H
H
H,設有列向量分塊矩陣記號
H
=
(
h
1
,
h
2
,
h
3
)
H=( h_1,h_2,h_3)
H=(h1?,h2?,h3?),則
z
a
K
?
1
(
h
1
,
h
2
)
=
(
l
1
m
1
l
2
m
2
l
3
m
3
)
{z_a}K^{-1}(h_1,h_2)= \begin{pmatrix} l_1&m_1\\l_2&m_2\\l_3&m_3\end{pmatrix}
za?K?1(h1?,h2?)=???l1?l2?l3??m1?m2?m3?????
所以將上式拆開成列向量的兩個等式,用轉置與之左乘可得
h
1
T
z
a
2
K
?
T
K
?
1
h
2
=
(
l
1
,
l
2
,
l
3
)
(
m
1
m
2
m
3
)
=
0
h_1^T{z^2_a}K^{-T}K^{-1}h_2=(l_1,l_2,l_3) \begin{pmatrix} m_1\\m_2\\m_3\end{pmatrix}=0
h1T?za2?K?TK?1h2?=(l1?,l2?,l3?)???m1?m2?m3?????=0
以及
h
1
T
z
a
2
K
?
T
K
?
1
h
1
=
h
2
T
z
a
2
K
?
T
K
?
1
h
2
=
1
h_1^T{z^2_a}K^{-T}K^{-1}h_1=h_2^T{z^2_a}K^{-T}K^{-1}h_2=1
h1T?za2?K?TK?1h1?=h2T?za2?K?TK?1h2?=1
因
z
a
≠
0
z_a\neq0
za??=0暫時未知,所以一張照片只能得到如下兩個等式:
h
1
T
K
?
T
K
?
1
h
2
=
0
h_1^TK^{-T}K^{-1}h_2=0
h1T?K?TK?1h2?=0
和
h
1
T
K
?
T
K
?
1
h
1
=
h
2
T
K
?
T
K
?
1
h
2
h_1^TK^{-T}K^{-1}h_1=h_2^TK^{-T}K^{-1}h_2
h1T?K?TK?1h1?=h2T?K?TK?1h2?,
令
B
=
K
?
T
K
?
1
B=K^{-T}K^{-1}
B=K?TK?1,設
B
=
(
B
1
B
2
B
4
B
2
B
3
B
5
B
4
B
5
B
6
)
B=\begin{pmatrix} B_1&B_2&B_4\\B_2&B_3&B_5\\B_4&B_5&B_6\end{pmatrix}
B=???B1?B2?B4??B2?B3?B5??B4?B5?B6?????,
h
1
=
(
h
11
,
h
12
,
h
13
)
T
,
h
2
=
(
h
21
,
h
22
,
h
23
)
T
h_1=(h_{11},h_{12},h_{13})^T,h_2=(h_{21},h_{22},h_{23})^T
h1?=(h11?,h12?,h13?)T,h2?=(h21?,h22?,h23?)T則展開矩陣運算,得
h
11
h
21
B
1
+
2
h
11
h
22
B
2
+
h
12
h
22
B
3
+
2
h
11
h
23
B
4
+
2
h
12
h
23
B
5
+
h
13
h
23
B
6
=
0
h_{11}h_{21}B_1+2h_{11}h_{22}B_2+h_{12}h_{22}B_3+2h_{11}h_{23}B_4+2h_{12}h_{23}B_5+h_{13}h_{23}B_6=0
h11?h21?B1?+2h11?h22?B2?+h12?h22?B3?+2h11?h23?B4?+2h12?h23?B5?+h13?h23?B6?=0和
(
h
11
2
?
h
21
2
)
B
1
+
2
(
h
11
h
12
?
h
21
h
22
)
B
2
+
(
h
12
2
?
h
22
2
)
B
3
+
2
(
h
11
h
13
?
h
21
h
23
)
B
4
+
2
(
h
12
h
13
?
h
22
h
23
)
B
5
+
(
h
13
2
?
h
23
2
)
B
6
=
0
(h_{11}^2-h^2_{21})B_1+2(h_{11}h_{12}-h_{21}h_{22})B_2+(h_{12}^2-h_{22}^2)B_3+2(h_{11}h_{13}-h_{21}h_{23})B_4+2(h_{12}h_{13}-h_{22}h_{23})B_5+(h_{13}^2-h^2_{23})B_6=0
(h112??h212?)B1?+2(h11?h12??h21?h22?)B2?+(h122??h222?)B3?+2(h11?h13??h21?h23?)B4?+2(h12?h13??h22?h23?)B5?+(h132??h232?)B6?=0
所以當內引數不發生變化時,三張或更多的照片,每張照片至少匹配5點就可以獲取六個或更多以上型別的線性齊次方程構成的方程組,因
B
=
K
?
T
K
?
1
=
(
1
α
2
?
γ
α
2
β
v
0
γ
?
u
0
β
α
2
β
?
γ
α
2
β
γ
2
α
2
β
2
+
1
β
2
?
γ
(
v
0
γ
?
u
0
β
)
α
2
β
2
?
v
0
β
2
v
0
γ
?
u
0
β
α
2
β
?
γ
(
v
0
γ
?
u
0
β
)
α
2
β
2
?
v
0
β
2
(
v
0
γ
?
u
0
β
)
2
α
2
β
2
+
v
0
β
2
+
1
)
B=K^{-T}K^{-1}=\begin{pmatrix} \frac{1}{\alpha^2}&-\frac{\gamma}{\alpha^2\beta}&\frac{v_0\gamma-u_0\beta}{\alpha^2\beta}\\ -\frac{\gamma}{\alpha^2\beta}&\frac{\gamma^2}{\alpha^2\beta^2}+\frac{1}{\beta^2}&-\frac{\gamma (v_0\gamma-u_0\beta)}{\alpha^2\beta^2}-\frac{v_0}{\beta^2}\\\frac{v_0\gamma-u_0\beta}{\alpha^2\beta}&-\frac{\gamma (v_0\gamma-u_0\beta)}{\alpha^2\beta^2}-\frac{v_0}{\beta^2}&\frac{(v_0\gamma-u_0\beta)^2}{\alpha^2\beta^2}+\frac{v_0}{\beta^2}+1\end{pmatrix}
B=K?TK?1=????α21??α2βγ?α2βv0?γ?u0?β???α2βγ?α2β2γ2?+β21??α2β2γ(v0?γ?u0?β)??β2v0???α2βv0?γ?u0?β??α2β2γ(v0?γ?u0?β)??β2v0??α2β2(v0?γ?u0?β)2?+β2v0??+1?????,
B
1
>
0
B_1>0
B1?>0,所以可以求得齊次方程的一組非零解,也就是得到與
B
B
B相差一個正系數的解,設
1
λ
2
B
\frac{1}{\lambda^2 } B
λ21?B為解,即
1
λ
2
K
?
T
K
?
1
\frac{1}{\lambda^2 }K^{-T}K^{-1}
λ21?K?TK?1已知,通過cholesky分解,得到相機的內引數矩陣
λ
K
\lambda K
λK,因K的第三行第三列為1,所以可以求出
K
K
K,
也可以通過如下公式求得
v
0
=
B
2
?
B
4
?
B
1
?
B
5
B
1
?
B
3
?
B
2
2
v_0=\frac{B_2*B_4-B_1*B_5}{B_1*B_3-B_2^2}
v0?=B1??B3??B22?B2??B4??B1??B5??
u
0
=
?
B
4
?
v
0
?
B
2
B
1
u_0=-\frac{B_4-v_0*B_2}{B_1}
u0?=?B1?B4??v0??B2??
λ
1
=
B
6
?
B
4
2
+
v
0
?
(
B
2
?
B
4
?
B
1
?
B
5
)
B
1
\lambda_1=B_6-\frac{B_4^2+v_0*(B_2*B_4-B_1*B_5)}{B_1}
λ1?=B6??B1?B42?+v0??(B2??B4??B1??B5?)?
α
=
λ
1
B
1
\alpha=\sqrt{\frac{\lambda_1}{B_1}}
α=B1?λ1??
?
β
=
λ
1
?
B
1
B
1
B
3
?
B
2
2
\beta=\sqrt{\frac{\lambda_1*B_1}{B_1B_3-B_2^2}}
β=B1?B3??B22?λ1??B1??
?
γ
=
?
B
2
?
α
2
?
β
λ
1
\gamma=-\frac{B_2*\alpha^2*\beta}{\lambda_1}
γ=?λ1?B2??α2?β?
[1]Zhang, Zhengyou - 《IEEE Transactions on Pattern Analysis & Machine Intelligence》 - 2000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287156.html
標籤:其他
上一篇:計算機網路期末復習攻略
