摘要: 本文來自章國峯_相機模型與投影變換ppt總結,補充了自己的對於多視圖幾何的一些理解,圖來自ppt。
一、 齊次座標和座標變換(等距變換;相似變換;仿射變換;射影變換)
1. 齊次座標:
在原有的座標上面增加一個維度,新增維度不增加自由度,通常爲1
以下對應2維和3維
[ x y ] \begin{bmatrix}x \\ y \end{bmatrix} [ x y ] 變爲[ x y 1 ] \begin{bmatrix}x \\ y \\1 \end{bmatrix} ⎣ ⎡ x y 1 ⎦ ⎤ , [ x y z ] \begin{bmatrix}x \\ y \\z \end{bmatrix} ⎣ ⎡ x y z ⎦ ⎤ 變爲[ x y z 1 ] \begin{bmatrix}x \\ y \\z \\1 \end{bmatrix} ⎣ ⎢ ⎢ ⎡ x y z 1 ⎦ ⎥ ⎥ ⎤
A. 齊次座標可以更好的表示平移和放縮,旋轉和平移
使用齊次座標完成平移和放縮
[ u ′ v ′ 1 ] = [ s u 0 s u t u 0 s v s v t v 0 0 1 ] [ u v 1 ] = [ s u 0 0 0 s v 0 0 0 1 ] [ 1 0 t u 0 1 t v 0 0 1 ] [ u v 1 ] = S T x \begin{bmatrix}{u}' \\{v}' \\1 \end{bmatrix}=\begin{bmatrix}s_{u} &0 &s_{u}t_{u}
\\0 &s_{v} &s_{v}t_{v}
\\0 &0 &1
\end{bmatrix}
\begin{bmatrix}u
\\v
\\1
\end{bmatrix}=\begin{bmatrix}s_{u} &0 &0
\\0 &s_{v} &0
\\0 &0 &1
\end{bmatrix}
\begin{bmatrix}1 &0 &t_{u}
\\0 &1 &t_{v}
\\0 &0 &1
\end{bmatrix}
\begin{bmatrix}u
\\v
\\1
\end{bmatrix}=
STx ⎣ ⎡ u ′ v ′ 1 ⎦ ⎤ = ⎣ ⎡ s u 0 0 0 s v 0 s u t u s v t v 1 ⎦ ⎤ ⎣ ⎡ u v 1 ⎦ ⎤ = ⎣ ⎡ s u 0 0 0 s v 0 0 0 1 ⎦ ⎤ ⎣ ⎡ 1 0 0 0 1 0 t u t v 1 ⎦ ⎤ ⎣ ⎡ u v 1 ⎦ ⎤ = S T x
使用齊次座標完成旋轉和放縮
[ u ′ v ′ 1 ] = [ c o s ( θ ) − s i n ( θ ) t u s i n ( θ ) c o s ( θ ) t v 0 0 1 ] [ u v 1 ] = [ 1 0 t u 0 1 t v 0 0 1 ] [ c o s ( θ ) − s i n ( θ ) 0 s i n ( θ ) c o s ( θ ) 0 0 0 1 ] [ u v 1 ] = T R x \begin{bmatrix}{u}' \\{v}' \\1 \end{bmatrix}=
\begin{bmatrix}cos(\theta) &-sin(\theta) &t_{u}
\\sin(\theta) &cos(\theta) &t_{v}
\\0 &0 &1
\end{bmatrix}
\begin{bmatrix}u
\\v
\\1
\end{bmatrix}=
\begin{bmatrix}1 &0 &t_{u}
\\0 &1 &t_{v}
\\0 &0 &1
\end{bmatrix}
\begin{bmatrix}cos(\theta) &-sin(\theta) &0
\\sin(\theta) &cos(\theta) &0
\\0 &0 &1
\end{bmatrix}
\begin{bmatrix}u
\\v
\\1
\end{bmatrix}=
TRx ⎣ ⎡ u ′ v ′ 1 ⎦ ⎤ = ⎣ ⎡ c o s ( θ ) s i n ( θ ) 0 − s i n ( θ ) c o s ( θ ) 0 t u t v 1 ⎦ ⎤ ⎣ ⎡ u v 1 ⎦ ⎤ = ⎣ ⎡ 1 0 0 0 1 0 t u t v 1 ⎦ ⎤ ⎣ ⎡ c o s ( θ ) s i n ( θ ) 0 − s i n ( θ ) c o s ( θ ) 0 0 0 1 ⎦ ⎤ ⎣ ⎡ u v 1 ⎦ ⎤ = T R x
B. 並且可以用齊次座標更容易表示點,線,面的關係。可以用兩個齊次座標的點的叉積描述一條直線,兩條線的叉積定義一個點(交點)
l = p × q l=p \times q l = p × q
x = p × q x=p \times q x = p × q
C(補充). 引入齊次座標後,可以很好的表示以下兩種概念(2D下表示):
理想點 :[ x 1 x 2 0 ] \begin{bmatrix}x_{1}&x_{2}&0 \end{bmatrix} [ x 1 x 2 0 ] 表示理想點,或者無窮遠點。通過引入理想點,我們可以表示兩平行直線的交點。
無窮遠線 :上述理想點的集合,即爲無窮遠線,用矢量l = [ 0 0 1 ] T l=\begin{bmatrix}0 &0&1 \end{bmatrix}^{T} l = [ 0 0 1 ] T 表示
D. 向量叉積的矩陣表示
v × x v\times x v × x 表示向量的叉積,與下面這種矩陣乘法等價,所以我們可以用矩陣的線性乘法來表示叉積
v × x = [ v ] × x v\times x=[v]_{\times}x v × x = [ v ] × x
其中[ v ] × = [ 0 − v z v z v z 0 − v x − v y v x 0 ] [v]_{\times}=
\begin{bmatrix}0 &-v_{z} &v_{z}
\\v_{z}&0&-v_{x}
\\-v_{y}&v_{x}&0\end{bmatrix} [ v ] × = ⎣ ⎡ 0 v z − v y − v z 0 v x v z − v x 0 ⎦ ⎤ ,其是秩爲2的3 × 3 3\times3 3 × 3 的斜對稱矩陣。
2. 幾種變換(2D下描述)
A. 等距變換:2D變換有三個自由度,是保距離的
[ u ′ v ′ 1 ] = [ R t 0 1 ] [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}R&t
\\0&1\end{bmatrix}
\begin{bmatrix} u\\v\\1\end{bmatrix} ⎣ ⎡ u ′ v ′ 1 ⎦ ⎤ = [ R 0 t 1 ] ⎣ ⎡ u v 1 ⎦ ⎤
B. 相似變換:2D情況具有四個自由度,保角度 (等距變換上,多了放縮因子s)
[ u ′ v ′ 1 ] = [ s R t 0 1 ] [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}sR&t
\\0&1\end{bmatrix}
\begin{bmatrix} u\\v\\1\end{bmatrix} ⎣ ⎡ u ′ v ′ 1 ⎦ ⎤ = [ s R 0 t 1 ] ⎣ ⎡ u v 1 ⎦ ⎤
C. 仿射變換:六自由度,保平行
[ u ′ v ′ 1 ] = [ A t 0 1 ] [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}A&t
\\0&1\end{bmatrix}
\begin{bmatrix} u\\v\\1\end{bmatrix} ⎣ ⎡ u ′ v ′ 1 ⎦ ⎤ = [ A 0 t 1 ] ⎣ ⎡ u v 1 ⎦ ⎤
A = [ a 11 a 12 a 21 a 22 ] = R ( θ ) R ( − ϕ ) S R ( ϕ ) A=\begin{bmatrix}a_{11}&a_{12}
\\a_{21}&a_{22}\end{bmatrix}=R(\theta)R(-\phi)SR(\phi) A = [ a 1 1 a 2 1 a 1 2 a 2 2 ] = R ( θ ) R ( − ϕ ) S R ( ϕ ) S = [ s x 0 0 s y ] S=\begin{bmatrix}s_{x}&0
\\0&s_{y}\end{bmatrix} S = [ s x 0 0 s y ]
D. 射影變換:八自由度,保同線性
[ u ′ v ′ 1 ] = [ A t v b ] = [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}A&t
\\v&b\end{bmatrix}=
\begin{bmatrix} u\\v\\1\end{bmatrix} ⎣ ⎡ u ′ v ′ 1 ⎦ ⎤ = [ A v t b ] = ⎣ ⎡ u v 1 ⎦ ⎤ H = [ A t v b ] H=\begin{bmatrix}A&t
\\v&b\end{bmatrix} H = [ A v t b ]
求解射影變換(下面有八個未知數,需要四組點來求解):
H = [ A t v b ] = [ h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ] H=\begin{bmatrix}A&t
\\v&b\end{bmatrix}=
\begin{bmatrix}h_{1}&h_{2}&h_{3}
\\h_{4}&h_{5}&h_{6}
\\h_{7}&h_{8}&h_{9}\end{bmatrix} H = [ A v t b ] = ⎣ ⎡ h 1 h 4 h 7 h 2 h 5 h 8 h 3 h 6 h 9 ⎦ ⎤ x ′ = H x {x}'=Hx x ′ = H x
展開上述關於u_{2}和v 2 v_{2} v 2 的等式:
h 1 u 1 + h 2 u 2 + h 3 − h 7 u 1 u 2 − h 8 v 1 u 2 − h 9 u 2 = 0 h_{1}u_{1}+h_{2}u_{2}+h_{3}-h_{7}u_{1}u_{2}-h_{8}v_{1}u_{2}-h_{9}u_{2}=0 h 1 u 1 + h 2 u 2 + h 3 − h 7 u 1 u 2 − h 8 v 1 u 2 − h 9 u 2 = 0
h 4 u 1 + h 5 u 2 + h 6 − h 7 u 1 v 2 − h 8 v 1 v 2 − h 9 v 2 = 0 h_{4}u_{1}+h_{5}u_{2}+h_{6}-h_{7}u_{1}v_{2}-h_{8}v_{1}v_{2}-h_{9}v_{2}=0 h 4 u 1 + h 5 u 2 + h 6 − h 7 u 1 v 2 − h 8 v 1 v 2 − h 9 v 2 = 0
改寫爲:
A i = ( u 1 v 1 1 0 0 0 − u 1 u 2 − v 1 u 2 − u 2 0 0 0 u 2 v 2 1 u 1 v 2 − v 1 v 2 − v 2 ) A_{i}=\begin{pmatrix}u_{1}&v_{1}&1&0&0&0&-u_{1}u_{2}&-v_{1}u_{2}&-u_{2}
\\0&0&0&u_{2}&v_{2}&1&u_{1}v_{2}&-v_{1}v_{2}&-v_{2}\end{pmatrix} A i = ( u 1 0 v 1 0 1 0 0 u 2 0 v 2 0 1 − u 1 u 2 u 1 v 2 − v 1 u 2 − v 1 v 2 − u 2 − v 2 )
h ∗ = ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) h^{*}=\begin{pmatrix}h_{1}&h_{2}&h_{3}&h_{4}&h_{5}&h_{6}&h_{7}&h_{8}&h_{9}\end{pmatrix} h ∗ = ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 )
改寫爲: A i h = 0 A_{i}h=0 A i h = 0
總結:
二、 相機模型
1. 針孔相機模型(如下圖)
世界座標系中的點到針孔相機像平面變換爲
( f X f Y Z ) = [ f f 1 ] [ 1 0 1 0 1 0 ] ( X Y Z 1 ) \begin{pmatrix}fX\\fY\\Z\end{pmatrix}=\begin{bmatrix}f\\&f\\&&1\end{bmatrix}\begin{bmatrix}1&&&0\\&1&&0\\&&1&0\end{bmatrix}\begin{pmatrix}X\\Y\\Z\\1\end{pmatrix} ⎝ ⎛ f X f Y Z ⎠ ⎞ = ⎣ ⎡ f f 1 ⎦ ⎤ ⎣ ⎡ 1 1 1 0 0 0 ⎦ ⎤ ⎝ ⎜ ⎜ ⎛ X Y Z 1 ⎠ ⎟ ⎟ ⎞
K K K [ R ∣ t ] [R|t] [ R ∣ t ]
K K K 爲相機內參矩陣; [ R ∣ t ] [R|t] [ R ∣ t ] 爲旋轉位移矩陣
由於裝調等誤差,存在主點的偏移:
( f X / Z + x 0 f Y / Z + x 0 1 ) \begin{pmatrix}fX/Z+x_{0}\\fY/Z+x_{0}\\1\end{pmatrix} ⎝ ⎛ f X / Z + x 0 f Y / Z + x 0 1 ⎠ ⎞ ~( f X + Z x 0 f Y + Z x 0 Z ) = [ f x 0 0 f y 0 0 1 0 ] ( X Y Z 1 ) \begin{pmatrix}fX+Zx_{0}\\fY+Zx_{0}\\Z\end{pmatrix}=\begin{bmatrix}f&&x_{0}&0\\&f&y_{0}&0\\&&1&0\end{bmatrix}\begin{pmatrix}X\\Y\\Z\\1\end{pmatrix} ⎝ ⎛ f X + Z x 0 f Y + Z x 0 Z ⎠ ⎞ = ⎣ ⎡ f f x 0 y 0 1 0 0 0 ⎦ ⎤ ⎝ ⎜ ⎜ ⎛ X Y Z 1 ⎠ ⎟ ⎟ ⎞
透視相機模型,其內參矩陣增加了一個扭曲因子s:
K = [ f s x 0 f y 0 1 ] K=\begin{bmatrix}f&s&x_{0}\\&f&y_{0}\\&&1\end{bmatrix} K = ⎣ ⎡ f s f x 0 y 0 1 ⎦ ⎤
徑向畸變:設畸變量爲R ( x , y ) R(x,y) R ( x , y ) ,則R ( x , y ) = ( 1 + k 1 r 2 + k 2 r 4 + . . . ) R(x,y)=(1+k_{1}r^{2}+k_{2}r^{4}+...) R ( x , y ) = ( 1 + k 1 r 2 + k 2 r 4 + . . . )
2. 相機外參(旋轉和平移)
相機座標和世界座標的轉換關係爲{ X c = R X w + t X w = R ′ X c + t ′ \left\{\begin{matrix}X_{c}=RX_{w}+t
\\X_{w}=R^{'}X_{c}+t^{'}
\end{matrix}\right. { X c = R X w + t X w = R ′ X c + t ′ ,其中{ R ′ = R − 1 t ′ = − R − 1 t \left\{\begin{matrix}R^{'}=R^{-1}
\\t^{'}=-R^{-1}t
\end{matrix}\right. { R ′ = R − 1 t ′ = − R − 1 t 。
三、單應矩陣與常見投影變換
1. 單應矩陣
這裏描述了一副圖像,經過純旋轉後得到的圖像,其中共有的點可以用以上矩陣關係描述,這個矩陣稱爲單應矩陣 ,H可以表示爲H = K 2 R K 1 − 1 H=K_{2}RK_{1}^{-1} H = K 2 R K 1 − 1 。使用點來表示H形成的對應關係,可以是
c ( u 2 v 2 1 ) = ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) ( u 1 v 1 1 ) c\begin{pmatrix}u_{2}
\\v_{2}
\\1
\end{pmatrix}=\begin{pmatrix}h_{1}&h_{2}&h_{3}
\\h_{4}&h_{5}&h_{6}
\\h_{7}&h_{8}&h_{9}
\end{pmatrix}\begin{pmatrix}u_{1}
\\v_{1}
\\1
\end{pmatrix} c ⎝ ⎛ u 2 v 2 1 ⎠ ⎞ = ⎝ ⎛ h 1 h 4 h 7 h 2 h 5 h 8 h 3 h 6 h 9 ⎠ ⎞ ⎝ ⎛ u 1 v 1 1 ⎠ ⎞
其中( u 2 v 2 1 ) \begin{pmatrix}u_{2}
\\v_{2}
\\1
\end{pmatrix} ⎝ ⎛ u 2 v 2 1 ⎠ ⎞ 和( u 1 v 1 1 ) \begin{pmatrix}u_{1}
\\v_{1}
\\1
\end{pmatrix} ⎝ ⎛ u 1 v 1 1 ⎠ ⎞ 分別表示第二幅圖和第一幅圖中對應點的座標。
2. 平面投影變換
選擇一個世界座標系,使得平面上的點在該座標系下Z座標爲0,可以推導投影矩陣
( x 1 x 2 x 3 ) = ( p 11 p 12 p 13 p 14 p 21 p 22 p 23 p 24 p 31 p 32 p 33 p 34 ) = ( X Y 0 1 ) = ( p 11 p 12 p 14 p 21 p 22 p 24 p 31 p 32 p 34 ) ( X Y 1 ) \begin{pmatrix}x_{1}
\\x_{2}
\\x_{3}
\end{pmatrix}=\begin{pmatrix}p_{11}&p_{12}&p_{13}&p_{14}
\\p_{21}&p_{22}&p_{23}&p_{24}
\\p_{31}&p_{32}&p_{33}&p_{34}
\end{pmatrix}=\begin{pmatrix}X
\\Y
\\0
\\1
\end{pmatrix}=\begin{pmatrix}p_{11}&p_{12}&p_{14}
\\p_{21}&p_{22}&p_{24}
\\p_{31}&p_{32}&p_{34}
\end{pmatrix}\begin{pmatrix}X
\\Y
\\1
\end{pmatrix} ⎝ ⎛ x 1 x 2 x 3 ⎠ ⎞ = ⎝ ⎛ p 1 1 p 2 1 p 3 1 p 1 2 p 2 2 p 3 2 p 1 3 p 2 3 p 3 3 p 1 4 p 2 4 p 3 4 ⎠ ⎞ = ⎝ ⎜ ⎜ ⎛ X Y 0 1 ⎠ ⎟ ⎟ ⎞ = ⎝ ⎛ p 1 1 p 2 1 p 3 1 p 1 2 p 2 2 p 3 2 p 1 4 p 2 4 p 3 4 ⎠ ⎞ ⎝ ⎛ X Y 1 ⎠ ⎞
這個矩陣描述了三維平面到圖像平面的射影變換:
A.使用透視相機時,最常見的一種從世界座標系到圖像平面的變換
B.兩平面的映射用該3*3的矩陣表示
C.射影變換通常也稱爲“單應性映射”
D.H有八個自由度
3. 其它變換
弱透視變換:景物平面到相機面座標是是比例關係
正交投影:兩平面座標大小相等,符號相反
四、雙視圖幾何
1. 對極幾何
對極幾何是兩視圖之間滿足的關係,指兩幅視圖上對應的點滿足:
x ′ F x = 0 x^{'}Fx=0 x ′ F x = 0
這裏的矩陣F,稱爲基礎矩陣(Fundamental matrix)。
2. 求解基礎矩陣F
第一次更新:19.11.15 15:50