立體視覺 之 剛體變換

1  投影空間

 歐氏空間,主要描述角度和形狀,針對的是理想幾何物體。例如,兩條 ∥ 線永不相交,或交於無窮遠點 (虛擬的點)。中學時代的 「平面與立體幾何」,便屬於歐式空間。html

 投影空間,指實際的物體,被相機拍攝後,成像所在的空間,經常使用於計算機視覺中。在投影空間裏,兩條直線必然會相交於一點,只不過當這兩條線平行時,交點爲無窮遠。spa

  

 如圖所示,現實中的兩條鐵軌,成像在投影空間時,相交於某一點,也即無窮遠點;但在歐氏空間中,無窮遠點是理想點,並無實際意義。htm

 這樣,就須要一種新的表示方法 -- 齊次座標,將歐氏空間的無窮遠點,與投影空間中有實際意義的點,創建起映射關係blog

 

 2  齊次座標

 在平面幾何裏,採用笛卡爾座標,則一個點可表示爲 $(x, y)^{T}$。若是增長一個座標值,表示爲 $(x, y, 1)^{T}$,且約定 ($x, y, 1)^{T}$ 和 $(kx, ky, k)^{T}$ 表示的是同一個點 (其中 k ≠ 0),get

則這種用一個 N+1 維的向量,來表示 N 維向量的方法,稱爲齊次座標法。it

 這樣,由齊次座標 $(x, y, w)$,可推導出笛卡爾座標 $ (\dfrac{x}{w}, \dfrac{y}{w})$io

2.1  無窮遠點

    歐式空間中,兩條平行線方程組,以下:方法

 $\begin{cases} AX + BY + C = 0 \\ AX + BY + D = 0 \end{cases} $ ,其中 C ≠ Dim

 齊次座標點$(x, y, w)^{T}$ 與 歐氏空間點 $(X, Y)^{T}$ 的對應關係爲: $ X = \dfrac{x}{w}, Y = \dfrac{y}{w}$,代入上面方程組得:d3

 $\begin{cases} A\dfrac{x}{w} + B\dfrac{y}{w} + C = 0 \\ A\dfrac{x}{w} + B\dfrac{y}{w} + D = 0 \end{cases} $  =>  $\begin{cases} Ax+ By + Cw = 0 \\ Ax+ By + Dw = 0 \end{cases} $ => $w = 0$

 既然 w = 0,則齊次座標爲 $(x, y, 0)^{T}$,對應笛卡爾座標 $(\dfrac{x}{0}, \dfrac{y}{0})^{T}$,表示的是無窮遠點 $(∞, ∞)^{T}$

2.2  合併加法

 點 $(x, y, z)^{T}$,通過伸縮和平移後,成爲點 $ (x', y', z')^{T} = (r_{1}x+t_{1}, r_{2}y+t_{2}, r_{3}z+t_{3})^{T}$,該變換過程可用以下公式表示:

 $\begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} = \begin{bmatrix} r_{1} \\ r_{2} \\ r_{3}  \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} + \begin{bmatrix} t_{1} \\ t_{2} \\ t_{3} \end{bmatrix} $

 若是使用齊次座標,則可將平移變換,轉化爲矩陣乘法,消除了上式中的矩陣加法

 $\begin{bmatrix} x' \\ y' \\ z' \\1 \end{bmatrix} = \begin{bmatrix} r_{1} & 0 & 0 & t_{1} \\ 0 & r_{2} & 0 & t_{2} \\ 0 & 0 & r_{3} & t_{3} \\ 0 & 0 & 0 & 1  \end{bmatrix} \begin{bmatrix} x \\ y \\ z \\ 1\end{bmatrix} $

2.3 向量和點

    齊次座標還能夠區分向量和點,具體如何區分的,尚待研究 ... ...

 

3  剛體變換

3.1  剛體定義

 歐氏空間中,當物體被視爲剛體時,無論是該物體的位置或朝向發生變化,仍是更換觀察的座標系,其大小和形狀都保持不變

    形象點說,豬八戒的九齒釘耙,由冰鐵鑄造而成,即是一種剛體;而鎮元子大仙的七星鞭,因爲是龍皮作的,故爲非剛體。

3.2  位置和朝向

 所謂剛體變換,就是一個可被看作剛體的物體,從一個狀態 (位置朝向),轉換爲另外一個狀態的過程。

   

 如上所示,從世界座標系相機座標系的轉換,朝向由旋轉矩陣 $R$ 表示,位置則由平移矩陣 $T$ 來表示: $ P_{c} = R \cdot P_{w} + T$

 其中,旋轉矩陣 $  R = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix} $,平移矩陣 $  T = \begin{bmatrix} t_{1} \\ t_{2} \\ t_{3}   \end{bmatrix} $

 旋轉矩陣 R 爲正交矩陣 (也即,RR' = E,E 爲單位矩陣),則知足如下 6 個約束條件

 (1)  大小約束   $\begin{cases} r_{11}^2 + r_{12}^2 + r_{13}^2 = 1 \\ r_{21}^2 + r_{22}^2 + r_{23}^2 = 1 \\ r_{31}^2 + r_{32}^2 + r_{33}^2 = 1\end{cases} $        (2) 方向約束   $\begin{cases} r_{11}*r_{21} + r_{12}*r_{22} + r_{13}*r_{23} = 0 \\ r_{21}*r_{31} + r_{22}*r_{32} + r_{23}*r_{33} = 0 \\ r_{31}*r_{11} + r_{32}*r_{12} + r_{33}*r_{13} = 0\end{cases} $

   可用一個最簡單的正交矩陣 E,來理解上面的約束條件

       $\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

3.3  轉換關係

    若已知 $R$ 和 $T$,則可將世界座標系內的空間點,與相機座標系內的空間點,創建起一一對應的關係

 $ \begin{bmatrix} X_{c} \\ Y_{c} \\ Z_{c} \end{bmatrix} = \begin{bmatrix} R & T \end{bmatrix} \begin{bmatrix} X_{w} \\ Y_{w} \\ Z_{w} \end{bmatrix}$

3.3.1  約束分析

    $R$ 和 $T$ 共有 12 個未知量,減去正交約束的 6 個方程,則還剩 6 個未知量。

    表面上看,彷佛只需 2 組共軛點,就可獲得 6 個約束方程,對應求出剩餘的 6 個未知量。實際上,這 6 個方程是有冗餘信息的 (兩組共軛點,在各自的座標系下,兩點之間的距離相等)

    所以,第 2 組共軛點,只是提供了 2 個約束方程,加上第 1 組共軛點的 3 個約束,共有 5 個獨立的約束方程。

    顯然,還須要第 3 組共軛點,提供 1 個獨立的方程,才能求得 $R$ 和 $T$

3.3.2  幾何解釋

    以下圖所示,考慮兩個剛體,它們之間存在着相互 旋轉 和 平移

   

   首先,在每一個剛體上,各選一個點 L1 和 R1,移動其中一個剛體,使得這兩個點重合。此時,一個剛體可相對於另外一個剛體轉動 (以三種不一樣的方式)。

   而後,在每一個剛體上,再分別取一個點 L2 和 R2,而且 | L2 - L1 | = | R2 - R1 |,移動一個剛體,使得這兩對點,分別重合。此時,一個剛體能夠相對另外一個轉動 (以一種方式)。

   最後,在每一個剛體上,分別取第三個點 L3 和 R3,知足 | L3 - L1 | = | R3 - R1 | 且 | L3 - L2 | = | R3 - R2 |,而後將這三個點對齊。此時,兩個剛體便緊緊的連在了一塊兒。

 

 參考資料

    <視覺測量> 張廣軍,第2章

    <Robot Vision> Chapter 13

    <An Invitation to 3D Vision> Chapter 2

    Homogeneous Coordinates

相關文章
相關標籤/搜索