為了獲取本質矩陣,首先計算基礎矩陣F。根據本質矩陣E,即可恢復得到運動的狀態R和T。
由可以根據匹配點得到F,然后根據
和相機內參,即可得到本質矩陣E。進而根據:
注意:根據攝像機模型t=-RT,恢復運動狀態,就是要計算t和R。
8點法
8點算法是計算基本矩陣的最簡單的方法,它涉及構造並(最小二乘)解一個線性方程組。給定足夠多的匹配點(至少7對),可解得基礎矩陣F。
記和
,每一組點匹配提供關於
的未知元素的一個線性方程。對應於一對點
和
的方程是:
寫成矩陣(矢量)的形式:
其中:
從而根據n對匹配的點集,我們可以得到線性方程組:
計算最小二乘解,的最小二乘解是對應於
的最小奇異矩陣的奇異矢量,即是
的SVD分解
中矩陣
的最后一列矢量。用這種方法得到的解矢量
在條件
下取
的最小值。
該方法步驟簡單,易於實現,但由於其計算結果對輸入數據異常敏感,從而直接影響它在實際中的應用。
1997年,Hartley對原始8點算法進行改進,在構造解的方程之前對輸入的數據進行適當的歸一化。即在形成8點算法的線性方程組之前,圖像點的一個簡單變換(平移或變尺度)將使這個問題的條件極大地改善,從而提高結果的穩定性。而且進行這種變換所增加的計算復雜性並不顯著。算法具體過程具體如下:
分別對兩幅圖像進行以上兩步變換,然后將變換后的圖像坐標作為輸入數據計算基礎矩陣。
計算過程如下:
注意:此時求得的F陣的秩並不保證嚴格為2。而且,由於噪聲影響計算得到的F一般都是滿秩的。
進而,根據相機的內參信息得到本質矩陣E。
運動恢復
在二視圖中,第一個相機的投影矩陣為:,而第二個相機的投影矩陣為:
,投影矩陣的旋轉矩陣R和平移矩陣t是要被計算出來的,計算的過程稱為運動恢復。這里的“運動”就是第二幀相機相對於第一幀相機的運動變化。
1992年,Hartley提出了從本質矩陣在相差一個尺度因子的情況下恢復出攝像機投影矩陣的四個可能解,然后從四個解中選擇一個正確解的方法。證明過程可見“計算機視覺中的多視圖幾何”中文本174頁。
定理1:一個3*3的矩陣是本質矩陣的充要條件是它的奇異值中有兩個相等而第三個是0。
定理2:設本質矩陣的SVD分解是:
,不考慮本質矩陣的符號,則存在兩種可能的解:
其中:
推論:已知本質矩陣和第一和攝像機矩陣
,那么第二個攝像機矩陣有下列四種可能的選擇:
t的具體空間長度是不能恢復出來的,只能在相差一個尺度因子的情況下恢復平移單位向量。
4個解的幾何解釋
顯然前面兩個解的差別就是第一個攝像機到第二個攝像機的平移矢量是反向的。
上下兩行的差別在於攝像機繞基線旋轉了180度,上圖中只有(a)時,重構點同時出現在兩個攝像機的前面。
從匹配點對中隨機選擇n對特征點,采用視圖重建的方法,分別基於四種可能的攝像機矩陣重建出對應的三維點,滿足景深為正的點數最多的解就是對應的,同時也可以確定相機的外參R和t。