本文未指明圖片來源為 Multiple View Geometry in Computer Vision 。
讀 Multiple View Geometry in Computer Vision 所做筆記。
第 9 章 《對極幾何與基礎矩陣》,Epipolar Geometry and the Fundamental Matrix。
對極幾何研究的對象是雙視圖幾何,即兩張相鄰影像的位姿關系。
1. 對極幾何基礎概念
- 核點(epipole):基線(baseline)與成像平面的交點。同時極點也可以理解為相鄰影像成像中心在本影像上的像,因為基線是兩個相鄰影像成像中心的連線。
- 核平面(epipolar plane):含有基線的平面,是一簇平面。可以看做是由基線與空間中任意一點構成的平面。
- 核線(epipolar line):核平面與成像平面的交線。可以看做是成像平面上的任意一點(非核點)與核點所定義的直線。
2. 基礎矩陣 F
基礎矩陣可以看做是將點投影(轉換)為直線,將左影像上的一個點投影到右影像上形成一條核線。
2.1 幾何推導基礎矩陣
假設有一空間平面 \(\pi\),將 \(\pi\) 上的點 $ X $ 投影到左右影像上,可以得到這個三維點在兩張影像上的像 $ x, x^{\prime} \(,將空間平面上所有的點都進行投影,能夠得到左右影像上所有點的對應關系,這種對應關系可以使用單應矩陣(homography matrix, page 87)\) H_{\pi} $ 描述:
右影像上的核線 $ l^{\prime} $ 可以由兩個點——右影像上的核點 $ e^{\prime} $ 與右影像上的任意一點 $ x^{\prime} $ ——確定:
將 $ x^{\prime} = H_{\pi}x $ 代入:
這樣就得到了基礎矩陣的定義:
因為 $ x^{\prime} $ 在右核線 $ l^{\prime} $ 上,所以點積為 \(0\) :
2.2 代數推導基礎矩陣
空間中三維點 $ X $ 反向投影到左影像上得到點 $ x $,這個過程可以用投影矩陣 $ PX = x $ 進行描述。
現在想辦法將 $ X $ 用 $ x $ 表示,$ P $ 是一個 4x3 的矩陣,不可逆。使用 $ P $ 的偽逆:$ P^{+} = P^{T}{(PP^{T})}^{-1} $,得
對於左影像 $ X $ 是對應一條直線上的所有點,可以使用下面的方程表示這一條直線:
現在將這一條直線投影到右影像上,即可得到右影像的核線。投影的方式是在 $ X(\lambda) $ 上找到兩個點,將這兩點分別投影到右影像上,投影后的兩個點確定右影像上的核線。
取 $ \lambda $ 為0,得到直線上的第一個點 $ P^{+}x $ ,取 \(\lambda\) 為 $ \infty $ 得到直線上的第二個點 \(C\) (即左影像的成像中心)。將這個兩個點分別投影到右影像上,得到 $ P^{\prime}P^{+}x $ 與 \(P^{\prime}C\) 。$ P^{\prime}C = e^{\prime} $,左影像成像中心在右影像上的成像是核點。這兩個點叉乘即可得到右影像上的核線:
所以 $ F = [e^{\prime}]_{\times}P^{\prime}P^{+} $。
2.3 基礎矩陣的性質
- 轉置對稱性:如果 $ F $ 是一對影像 $ (P, P^{\prime}) $ 的基礎矩陣(即 $ x^{\prime}Fx = 0 $ ),反過來 $ (P^{\prime}, P) $ 的基礎矩陣是 $ F^{T} $。證明很簡單,直接對 $ x^{\prime}Fx = 0 $ 兩側分別轉置,得到 $ x^{T}F^{T}{x^{\prime}} = 0 $ 。
- 核線:對於左影像上任意一點 $ x $ ,其在右影像上的核線為 $ l^{\prime} = Fx $ 。
- 核點:任何核線都會經過核點,所以有對於左影像上任意一點 $ x $ ,$ {e^{\prime}}^{T}l^{\prime} = {e^{\prime}}^{T}(Fx) = 0 $ ,於是有 $ {e^{\prime}}^{T}F = 0 $ 。同理有 $ Fe = 0 $ 。
- $ F $ 具有7自由度:一個 3x3 的單應矩陣,具有8個自由度,而 $ F $ 還滿足 $ det F = 0 $,所以 $ F $ 具有7個自由度。
- $ 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 $ ,所以右核線的計算方法如下:
直線 $ k $ 選擇為 $ e $ 能夠簡化計算,直線 $ e $ 肯定不會通過核點 $ e $ ($ e^{T} e \neq 0$),所以對應核線的計算公式整理如下:
3. 從特殊運動中推導基礎矩陣
3.1 僅有位移
在僅有位移的情況下,左右相機的內參也一致,左右相機的投影矩陣可以寫成 $ P = K[I | 0], P^{\prime} = K[I | t] $, 由
可以得到
計算兩張影像上影像坐標的對應關系。
$ 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 $ 的關系:
3.2 旋轉與位移
當兩張影像相對位姿含有旋轉與位移時,先將左影像進行旋轉,與右影像對齊(具有相同的姿態)。於是將問題簡化為上述的位移問題。
將一張影像僅做旋轉,相當於將影像進行一次平行投影(投影點在無窮遠處),如下圖:
這個平行投影可以使用單應矩陣 $ H_{\infty} $ 表示,$ H_{\infty} $ 通過兩張影像的投影矩陣計算得到。
將上式的 $ x^{\prime} $ 替換 $ x^{\prime} = x + Kt/Z $ 中的 $ x $,即可得到最后的結果: