【多視圖幾何】對極幾何與基礎矩陣


本文未指明圖片來源為 Multiple View Geometry in Computer Vision

Multiple View Geometry in Computer Vision 所做筆記。

第 9 章 《對極幾何與基礎矩陣》,Epipolar Geometry and the Fundamental Matrix

對極幾何研究的對象是雙視圖幾何,即兩張相鄰影像的位姿關系。

1. 對極幾何基礎概念

  1. 核點(epipole):基線(baseline)與成像平面的交點。同時極點也可以理解為相鄰影像成像中心在本影像上的像,因為基線是兩個相鄰影像成像中心的連線。
  2. 核平面(epipolar plane):含有基線的平面,是一簇平面。可以看做是由基線與空間中任意一點構成的平面。
  3. 核線(epipolar line):核平面與成像平面的交線。可以看做是成像平面上的任意一點(非核點)與核點所定義的直線。

2. 基礎矩陣 F

基礎矩陣可以看做是將點投影(轉換)為直線,將左影像上的一個點投影到右影像上形成一條核線。

2.1 幾何推導基礎矩陣

假設有一空間平面 \(\pi\),將 \(\pi\) 上的點 $ X $ 投影到左右影像上,可以得到這個三維點在兩張影像上的像 $ x, x^{\prime} \(,將空間平面上所有的點都進行投影,能夠得到左右影像上所有點的對應關系,這種對應關系可以使用單應矩陣(homography matrix, page 87)\) H_{\pi} $ 描述:

\[x^{\prime} = H_{\pi}x \]

通過空間的一個平面建立兩張影像中點的坐標對應關系

右影像上的核線 $ l^{\prime} $ 可以由兩個點——右影像上的核點 $ e^{\prime} $ 與右影像上的任意一點 $ x^{\prime} $ ——確定:

\[l^{\prime} = e^{\prime} \times x^{\prime} = [e^{\prime}]_{\times}x^{\prime} \]

將 $ x^{\prime} = H_{\pi}x $ 代入:

\[l^{\prime} = [e^{\prime}]_{\times}H_{\pi}x = Fx \]

這樣就得到了基礎矩陣的定義:

\[F = [e^{\prime}]_{\times}H_{\pi} \]

因為 $ x^{\prime} $ 在右核線 $ l^{\prime} $ 上,所以點積為 \(0\)

\[{x^{\prime}}^{T}l^{\prime} = {x^{\prime}}^{T}Fx = 0 \]

2.2 代數推導基礎矩陣

空間中三維點 $ X $ 反向投影到左影像上得到點 $ x $,這個過程可以用投影矩陣 $ PX = x $ 進行描述。

現在想辦法將 $ X $ 用 $ x $ 表示,$ P $ 是一個 4x3 的矩陣,不可逆。使用 $ P $ 的偽逆:$ P^{+} = P^{T}{(PP^{T})}^{-1} $,得

\[X = P^{+}x \]

對於左影像 $ X $ 是對應一條直線上的所有點,可以使用下面的方程表示這一條直線:

\[X(\lambda) = P^{+}x + \lambda C \]

現在將這一條直線投影到右影像上,即可得到右影像的核線。投影的方式是在 $ X(\lambda) $ 上找到兩個點,將這兩點分別投影到右影像上,投影后的兩個點確定右影像上的核線。

取 $ \lambda $ 為0,得到直線上的第一個點 $ P^{+}x $ ,取 \(\lambda\) 為 $ \infty $ 得到直線上的第二個點 \(C\) (即左影像的成像中心)。將這個兩個點分別投影到右影像上,得到 $ P^{\prime}P^{+}x $ 與 \(P^{\prime}C\) 。$ P^{\prime}C = e^{\prime} $,左影像成像中心在右影像上的成像是核點。這兩個點叉乘即可得到右影像上的核線:

\[l^{\prime} = (P^{\prime}C)\times(P^{\prime}P^{+}x) = [e^{\prime}]_{\times}P^{\prime}P^{+}x = Fx \]

所以 $ F = [e^{\prime}]_{\times}P^{\prime}P^{+} $。

2.3 基礎矩陣的性質

  1. 轉置對稱性:如果 $ F $ 是一對影像 $ (P, P^{\prime}) $ 的基礎矩陣(即 $ x^{\prime}Fx = 0 $ ),反過來 $ (P^{\prime}, P) $ 的基礎矩陣是 $ F^{T} $。證明很簡單,直接對 $ x^{\prime}Fx = 0 $ 兩側分別轉置,得到 $ x^{T}F^{T}{x^{\prime}} = 0 $ 。
  2. 核線:對於左影像上任意一點 $ x $ ,其在右影像上的核線為 $ l^{\prime} = Fx $ 。
  3. 核點:任何核線都會經過核點,所以有對於左影像上任意一點 $ x $ ,$ {e^{\prime}}^{T}l^{\prime} = {e^{\prime}}^{T}(Fx) = 0 $ ,於是有 $ {e^{\prime}}^{T}F = 0 $ 。同理有 $ Fe = 0 $ 。
  4. $ F $ 具有7自由度:一個 3x3 的單應矩陣,具有8個自由度,而 $ F $ 還滿足 $ det F = 0 $,所以 $ F $ 具有7個自由度。
  5. $ F $ 是相關的:$ F $ 將左影像上的一點 $ x $ 投影到右影像上一條核線 $ l^{\prime} $,投影本質上是將 $ x $ 與左核點的連線 $ l $ 投影到右影像上的核線 \(l^{\prime}\) ,所以右影像上的一條核線 $ l^{\prime} $ 對應的是左影像上的一條核線 $ l $,這種點到線的投影不可逆。

2.4 核線的單應性

一張截圖說明一切:

對應的核線可以看作是相互的投影

兩張影像上核線的對應關系可以看作是中心投影,投影中心 $ p $ 位於核線上。

求左核線 $ l $ 對應的右核線 $ l^{\prime} $ 是現在左核線上找一點 $ x $ 使用基礎矩陣通過 $ l^{\prime} = Fx $ 計算得到。 $ x $ 是任意的,只需要其在 $ l $ 上就行。可以通過做核線 $ l $ 與另一條不經過核點直線的交點計算得到 $ x $ 。假設另外一條直線為 $ k $,那么 $ l $ 與 $ k $ 的交點為 $ [k]_{\times}l $ ,所以右核線的計算方法如下:

\[l^{\prime} = F[k]_{\times}l \]

直線 $ k $ 選擇為 $ e $ 能夠簡化計算,直線 $ e $ 肯定不會通過核點 $ e $ ($ e^{T} e \neq 0$),所以對應核線的計算公式整理如下:

\[l^{\prime} = F[e]_{\times}l \]

\[l = F^{T}[e^{\prime}]_{\times}l^{\prime} \]

3. 從特殊運動中推導基礎矩陣

3.1 僅有位移

在僅有位移的情況下,左右相機的內參也一致,左右相機的投影矩陣可以寫成 $ P = K[I | 0], P^{\prime} = K[I | t] $, 由

\[F=[e^{\prime}]_{\times}K^{\prime}RK^{-1} \]

可以得到

\[F = [e^{\prime}]_{\times} \]

計算兩張影像上影像坐標的對應關系。

$ x= PX = K[I | 0]X $ 左影像的投影關系,現在反求空間點 $ X $ 的坐標,$ (X, Y, Z)^{T} = ZK^{-1}x $,其中 $ Z $ 是標量,表示 $ X $ 的深度。將 $ X $ 的坐標計算結果帶入右影像的投影關系 $ x^{\prime} = P^{\prime}X = K[I | t]X $,可以得到 $ x^{\prime} $ 與 $ x $ 的關系:

\[x^{\prime} = x + Kt/Z \]

3.2 旋轉與位移

當兩張影像相對位姿含有旋轉與位移時,先將左影像進行旋轉,與右影像對齊(具有相同的姿態)。於是將問題簡化為上述的位移問題。

將一張影像僅做旋轉,相當於將影像進行一次平行投影(投影點在無窮遠處),如下圖:

先旋轉后平移計算兩張影像坐標對應關系

這個平行投影可以使用單應矩陣 $ H_{\infty} $ 表示,$ H_{\infty} $ 通過兩張影像的投影矩陣計算得到。

\[x = K^{\prime}[I | 0]X \]

\[x^{\prime} = K[R | 0]X = KRK^{-1}K[I | 0]X = KRK^{-1}x \]

將上式的 $ x^{\prime} $ 替換 $ x^{\prime} = x + Kt/Z $ 中的 $ x $,即可得到最后的結果:

\[x^{\prime} = KRK^{-1}x + Kt/Z \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM