終於要來回答前面的問題:如何用兩張圖的匹配點解出 Essential Matrix 呢?
上一篇文中提到經典的 Epipolar constraint如下:
如果把矩陣和向量中的元素全部寫出來,可以得到:
如果把這個式子展開並整理(把所有與 相關的都丟到右邊),可以得到以下式子:
如上面式子展示的,Essential Matrix 是一個 3x3 的矩陣,最多有 9 個自由度,也就是說,只有要有 9 個配對的點就可以解出 Essential Matrix中的每一個元素(就像以前數學學過的,二元一次方程式需要兩個方程組才能解出來)。
只要把多個配對點疊成一個矩陣,就可以得到一個線性方程式:
不過根據定義 Essential Matrix ,而 和 各字有 3 個自由度,所以實際上只需要 5 個配對的點就可以解出 Essential Matrix(少了一個自由度是因為我們沒有大小的資訊,這個之後會談到)。
不過實務上,為了算法的穩定,我們會使用 8 個配對點來解 Essential Matrix,因為這裡線性方程組 是等於 ,也就是說無論我們用任何非 0 的數乘上 ,都可以是答案,因此喪失了一個自由度(需要用到一點線性代數的知識),也就是說我們算出來的 不是唯一解,而是一條高維度的線。
使用 8 個配對點來解 Essential Matrix 的算法就是出名的八點法 8-Point Algorithm (對,這名字很直白)。
總結來說,只要把對極約束 Epipolar constraint 寫成一個線性方程式,就可以利用多個配對點來解出 Essential Matrix 的每一個元素,當得到 之後,計算 和 就可以得到相機的外部參數。我們會在下一篇文中詳細的介紹八點法的算法。