首先假設三維空間中有一條直線 L,而三個視角的對應圖片中也會出現投影過後的直線(l, l', l'')。假設第一個視角的相機矩陣為 \(P=[I|0]\),第二個為 \(P'=[A|a_4]\),第三個為 \(P''=[B|b_4]\),則在每個視角中的直線反投影形成的平面向量為:
\[ \pi = P^T l = [l; 0]_{4 \times 1} \\ \pi' = P'^T l'= [A^T l'; a_4^T l']_{4 \times 1} \\ \pi' = P''^T l''= [B^T l''; b_4^T l'']_{4 \times 1} \]由於這三個平面交會於一條直線上,因此將此三個平面向量組成的矩陣 M 的 rank 為 2: \[ M_{4 \times 3} = [m_1, m_2, m_3] = \begin{bmatrix} l & A^T l' & B^T l''\\ 0 & a_4^Tl' & b_4^Tl'' \end{bmatrix} \]矩陣 M 的 rank 為 2,因此可以寫出 \(m_1 = \alpha m_2 + \beta m_3\) 的關係式,也因此可以利用最下面的 row 的關係寫出此式子: \[ l=(b_4^T l'')A^Tl' - (a_4^Tl')B^Tl'' = (l''^Tb_4) A^Tl' - (l'^Ta_4)B^Tl'' \\ l_i = l''^T(b_4a_i^T)l' - l'T(a_4b_i^T)l'' = l'^T(a_ib_4^T)l'' - l'^T(a_4b_i^T)l'' \]因此我們定義 trifocal tensor 為: \[ T_i = (a_ib_4^T) - (a_4b_i^T) \\ l_i = l'^T T_i l'' \]矩陣 \(T_i\) 為 \(3 \times 3\),總共有三個 \(3 \times 3\) 的的矩陣。總自由度為 18,而一組 trifocal tensor 可以提供 8 個約束。
Trifocal Tensor 的五種約束式
- Line-line-line correspondence: \[l'^T[T_1, T_2, T_3]l'' = l^T\]
- Point-line-line correspondence: \[l'^T(\sum x^i T_i)l'' = 0\]
- Point-line-point correspondence: \[l'^T(\sum x^i T_i)[x'']_\times = 0^T\]
- Point-point-line correspondence: \[[x']_\times (\sum x^i T_i)l'' = 0\]
- Point-point-point correspondence: \[[x']_\times (\sum x^i T_i)[x'']_\times = 0_{3 \times 3}\]
沒有留言:
張貼留言