一般的說法是基礎矩陣7自由度是因為一共9個數,秩為2(行列式不是0)減去一個自由度,尺度等價性再減去一個自由度,但是為什麼本質矩陣也滿足上面倆條件但是隻在6的基礎上減去一個自由度呢?


謝邀。

考慮這些矩陣的自由度時,重點在於理解parameterization之後有多少個待定的參數,然後明確一個點,在雙視圖幾何中,fundamental matrix以及essential matrix僅由相機的內參兩張圖片之間的相對變換決定,與絕對位置沒有關係。接下來理一下這幾個矩陣的自由度問題:

  1. 最簡單的homography(單應矩陣 mathbf{H} ),可以將二維射影空間 mathbb{P}^2 中的一個點 mathbf{x} 變換到 mathbb{P}^2 中的另一個點 h(mathbf{x}) 。根據射影空間的性質,必然存在一個 3 	imes 3 的矩陣mathbf{H},使得 h(mathbf{x}) = mathbf{Hx} 。回顧齊次坐標系的定義,放縮一個點的坐標依然得到這個點本身,所以有 h(mathbf{x})=(alphamathbf{H})mathbf{x} = mathbf{H}(alphamathbf{x}) = mathbf{H}mathbf{x} 。換句話說,在不加任何限制的情況下,僅僅考慮二維射影空間中的變換,一個單應矩陣 mathbf{H} 可由9個參數確定,扣去scale的一個,自由度為8。這個部分很好理解。

2. 接下來考慮fundamental matrix(基礎矩陣 mathbf{F} )的情況。 mathbf{F} 的推導有兩種方法(Chapter 9 in [1]),本質上都是求解圖片A中的一個點 mathbf{x} 與圖片B中對應的點 mathbf{x} 應該滿足什麼樣的約束。第一種是我個人比較喜歡的逆投影表示,由純矩陣運算推導,過程可以參見這個答案,另一種是幾何方法推導,利用transfer via a plane的方法,利用第二種方法可以比較快地推導出自由度為7。這個方法包含以下三步:

  • mathbf{x} 的一個可能的位置表示為 mathbf{x} = mathbf{H}_{pi}mathbf{x} ,即通過平面 pi 進行射影變換(Chapter 13 in [1])
  • mathbf{x} 這個可能的位置應該與圖片B中的epipole共同組成epipolar line l ,因此有 l = [e]_{	imes}mathbf{H}_{pi}mathbf{x}
  • mathbf{x} 應該落在 l 上,即 mathbf{x}^T[e]_{	imes}mathbf{H}_{pi}mathbf{x} = 0 ,其中 mathbf{F} = [e]_{	imes}mathbf{H}_{pi}

由1可知, mathbf{H}_{pi} 作為一個homography matrix,自由度是8,然而 [e]_{	imes} 作為一個skew symmetric matrix,秩只有2,由 	ext{rank}(AB) leq min(	ext{rank}(A), 	ext{rank}(B)) ,得知 mathbf{F} 必然為singular matrix,這個額外的條件使得 mathbf{F} 的自由度為7。

3. 最後來看Essential matrix(本質矩陣 mathbf{E} ),也就是題主覺得不解的地方。因為 mathbf{E} 可以理解為 mathbf{F} 的一個特例,其中涉及的兩個投影矩陣都不包含相機內參。注意開頭所說的,雙視圖幾何中絕對位置不重要,所以我們可以不失一般性地假定圖片A位於 mathbf{0} ,旋轉為 mathbf{I} ,圖片B位於 mathbf{t} ,旋轉為 mathbf{R} 。這樣, e 退化為 mathbf{t} ,而 mathbf{H}_{pi} 退化為 mathbf{R} 。換言之,我們可以得到 mathbf{E}=[mathbf{t}]_{	imes}mathbf{R} 。 其中 mathbf{t} 有3個自由度, mathbf{R} 有3個自由度,考慮translation在scale上的等價性減去1個自由度,得到自由度為5。

作為對比,我們看一下究竟是什麼使得 mathbf{E} 的自由度比 mathbf{F} 要少,可以看到其核心就在於 mathbf{E} 去除了兩個相機內參 mathbf{K}mathbf{K} 的影響。在這個答案的結論中,我們得知 mathbf{F} = [mathbf{e}]_{	imes} mathbf{P}mathbf{P}^dagger ,也就是 mathbf{H}_{pi} = mathbf{P}mathbf{P}^dagger = mathbf{K}[mathbf{R}|t]left(mathbf{K}[mathbf{R}|t]
ight)^{dagger} 。這裡可以看出,一個最簡單的 mathbf{K} 也需要4個參數定義,兩個內參矩陣就是8個參數,哪怕考慮了 mathbf{t}mathbf{R} 的相對關係一共只需要6個參數,加起來也已經14個參數,超過了最後 3	imes3 矩陣的9個參數,所以 mathbf{F} 可以用9個參數為起點來考慮。作為對比,在 mathbf{E} 中, mathbf{t}mathbf{R} 一共6個參數已經比9要小,所以應該以6作為起點來考慮。

另外一個有趣的點是,為什麼 mathbf{F}mathbf{E} 都考慮了scale的等價性,而只有 mathbf{F} 考慮了singularity的限制呢?這個問題我個人的理解是,singularity的約束實際上來自於skew symmetric矩陣的一個特性:前兩個singular value必然相等且第三個singular value為0。在 mathbf{F} 的計算中,一個homography矩陣 mathbf{H}_{pi} 會使得相乘後的結果矩陣singular value發生變化,進而導致結果矩陣可能出現non-singular的情況,因而需要加上singularity的約束。在 mathbf{E} 的計算中,旋轉矩陣 mathbf{R} 不會改變singular value的值(證明請google之),這使得相乘後的結果依然保持了前兩個singular value相等且第三個singular value為0的性質,singularity得到了保持,也就不需要額外的singularity約束了。

Reference:

[1] Hartley, R., Zisserman, A. (2003). Multiple view geometry in computer vision. Cambridge university press.


推薦閱讀:
查看原文 >>
相關文章