6.147 에피폴라 기하학과 기본 행렬
두 대의 카메라로 동일한 장면을 촬영할 때, 두 이미지 사이에는 에피폴라 기하학(epipolar geometry)이라는 고유한 기하학적 관계가 성립한다. 이 관계를 대수적으로 표현하는 것이 기본 행렬(fundamental matrix)이며, 카메라의 내부 파라미터를 알지 못하더라도 이미지 점 대응만으로 추정할 수 있는 강력한 도구이다. 본 절에서는 에피폴라 기하학의 원리와 기본 행렬의 수학적 성질을 선형대수학적 관점에서 체계적으로 다룬다.
1. 에피폴라 기하학의 기본 요소
두 카메라의 중심을 \mathbf{C}_1, \mathbf{C}_2라 하고, 3차원 공간의 점 \mathbf{P}가 각각의 이미지 평면에 \mathbf{p}_1, \mathbf{p}_2로 투영된다고 하자. 에피폴라 기하학의 핵심 요소는 다음과 같다.
에피폴(epipole): 한 카메라의 중심이 다른 카메라의 이미지 평면에 투영된 점이다. 첫 번째 이미지의 에피폴 \mathbf{e}_1은 \mathbf{C}_2가 첫 번째 카메라에 투영된 점이며, 두 번째 이미지의 에피폴 \mathbf{e}_2는 \mathbf{C}_1이 두 번째 카메라에 투영된 점이다.
\mathbf{e}_1 = P_1 \tilde{\mathbf{C}}_2, \quad \mathbf{e}_2 = P_2 \tilde{\mathbf{C}}_1
에피폴라 평면(epipolar plane): 두 카메라 중심 \mathbf{C}_1, \mathbf{C}_2와 3차원 점 \mathbf{P}가 정의하는 평면이다.
에피폴라 선(epipolar line): 에피폴라 평면이 각 이미지 평면과 만나는 직선이다. 첫 번째 이미지의 점 \mathbf{p}_1에 대응하는 두 번째 이미지의 에피폴라 선 \mathbf{l}_2는, \mathbf{p}_2가 반드시 놓여야 하는 직선이다.
2. 에피폴라 제약 조건
에피폴라 기하학의 핵심 성질은 다음과 같다. 첫 번째 이미지의 점 \mathbf{p}_1이 주어지면, 이에 대응하는 두 번째 이미지의 점 \mathbf{p}_2는 특정 에피폴라 선 위에 존재해야 한다. 이 관계를 대수적으로 표현한 것이 에피폴라 제약 조건(epipolar constraint)이다.
\tilde{\mathbf{p}}_2^\top F \tilde{\mathbf{p}}_1 = 0
여기서 F는 3 \times 3 기본 행렬이고, \tilde{\mathbf{p}}_1, \tilde{\mathbf{p}}_2는 각각 첫 번째와 두 번째 이미지의 동차 픽셀 좌표이다.
3. 기본 행렬의 유도
두 카메라의 투영 행렬이 각각 P_1 = K_1[I \vert \mathbf{0}], P_2 = K_2[R \vert \mathbf{t}]로 주어진다고 하자. 첫 번째 이미지의 점 \tilde{\mathbf{p}}_1에 대응하는 반투영 광선(back-projected ray)은 다음과 같다.
\mathbf{P}(\lambda) = \lambda K_1^{-1} \tilde{\mathbf{p}}_1
이 광선을 두 번째 카메라로 투영하면, 두 번째 이미지에서의 에피폴라 선이 결정된다. 두 번째 이미지에서의 에피폴 \mathbf{e}_2와 광선 위의 한 점의 투영 K_2 R K_1^{-1} \tilde{\mathbf{p}}_1을 잇는 직선이 에피폴라 선이다.
\mathbf{l}_2 = \mathbf{e}_2 \times (K_2 R K_1^{-1} \tilde{\mathbf{p}}_1) = [\mathbf{e}_2]_\times K_2 R K_1^{-1} \tilde{\mathbf{p}}_1
여기서 [\mathbf{e}_2]_\times는 \mathbf{e}_2의 반대칭 행렬(skew-symmetric matrix)이다.
[\mathbf{a}]_\times = \begin{bmatrix} 0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0 \end{bmatrix}
\mathbf{p}_2가 에피폴라 선 \mathbf{l}_2 위에 있으려면 \tilde{\mathbf{p}}_2^\top \mathbf{l}_2 = 0이어야 하므로 다음이 성립한다.
\tilde{\mathbf{p}}_2^\top [\mathbf{e}_2]_\times K_2 R K_1^{-1} \tilde{\mathbf{p}}_1 = 0
따라서 기본 행렬은 다음과 같이 정의된다.
F = [\mathbf{e}_2]_\times K_2 R K_1^{-1} = K_2^{-\top} [\mathbf{t}]_\times R K_1^{-1}
4. 기본 행렬의 대수적 성질
기본 행렬 F는 다음과 같은 중요한 성질을 가진다.
랭크 2 조건: F는 항상 \text{rank}(F) = 2이다. 이는 [\mathbf{e}_2]_\times가 랭크 2인 반대칭 행렬이기 때문이다.
\det(F) = 0
이 특이성(singularity) 조건은 기본 행렬의 본질적 제약이다.
에피폴과의 관계: 에피폴은 기본 행렬의 영공간(null space)과 왼쪽 영공간(left null space)에 해당한다.
F \mathbf{e}_1 = \mathbf{0}, \quad F^\top \mathbf{e}_2 = \mathbf{0}
즉, \mathbf{e}_1은 F의 오른쪽 영공간의 기저 벡터이고, \mathbf{e}_2는 F^\top의 오른쪽 영공간의 기저 벡터이다.
에피폴라 선: 점 \tilde{\mathbf{p}}_1에 대응하는 두 번째 이미지의 에피폴라 선은 다음과 같다.
\mathbf{l}_2 = F \tilde{\mathbf{p}}_1
점 \tilde{\mathbf{p}}_2에 대응하는 첫 번째 이미지의 에피폴라 선은 다음과 같다.
\mathbf{l}_1 = F^\top \tilde{\mathbf{p}}_2
자유도: F는 3 \times 3 = 9개의 요소를 가지지만, 스케일 자유도(1)와 랭크 2 제약(1)에 의해 독립적인 자유도는 7이다.
5. 기본 행렬의 추정: 8점 알고리즘
N \geq 8개의 점 대응 (\tilde{\mathbf{p}}_{1,i}, \tilde{\mathbf{p}}_{2,i})가 주어질 때, 에피폴라 제약 조건을 적층하면 다음의 선형 시스템이 된다.
A \mathbf{f} = \mathbf{0}
여기서 \mathbf{f} = \text{vec}(F) \in \mathbb{R}^9는 F의 요소를 벡터화한 것이고, A의 i번째 행은 다음과 같다.
\mathbf{a}_i = [u_{2,i} u_{1,i}, \; u_{2,i} v_{1,i}, \; u_{2,i}, \; v_{2,i} u_{1,i}, \; v_{2,i} v_{1,i}, \; v_{2,i}, \; u_{1,i}, \; v_{1,i}, \; 1]
A의 특이값 분해(SVD)를 수행하여 최소 특이값에 대응하는 오른쪽 특이 벡터를 \hat{\mathbf{f}}로 취하고, 이를 3 \times 3 행렬 \hat{F}로 재배열한다.
그러나 \hat{F}는 일반적으로 랭크 2 조건을 만족하지 않으므로, 랭크 2 행렬로의 사영(projection)이 필요하다. \hat{F}의 SVD를 수행한다.
\hat{F} = U \text{diag}(\sigma_1, \sigma_2, \sigma_3) V^\top
랭크 2 제약을 강제하기 위해 최소 특이값을 0으로 설정한다.
F = U \text{diag}(\sigma_1, \sigma_2, 0) V^\top
이 F가 에피폴라 제약 조건과 랭크 2 조건을 동시에 만족하는 최적 기본 행렬이다.
6. 정규화 8점 알고리즘
수치적 안정성을 높이기 위해, 점 좌표를 정규화한 후 기본 행렬을 추정하는 정규화 8점 알고리즘(normalized 8-point algorithm)을 사용한다. 정규화 변환 T_1, T_2를 적용한다.
\hat{\tilde{\mathbf{p}}}_{1,i} = T_1 \tilde{\mathbf{p}}_{1,i}, \quad \hat{\tilde{\mathbf{p}}}_{2,i} = T_2 \tilde{\mathbf{p}}_{2,i}
정규화 변환은 점들의 중심이 원점에, 평균 거리가 \sqrt{2}가 되도록 설정한다.
T = \begin{bmatrix} s & 0 & -s \bar{u} \\ 0 & s & -s \bar{v} \\ 0 & 0 & 1 \end{bmatrix}
여기서 (\bar{u}, \bar{v})는 점들의 평균 좌표이고, s는 스케일 인수이다. 정규화된 좌표로 기본 행렬 \hat{F}를 추정한 후, 원래 좌표계의 기본 행렬로 변환한다.
F = T_2^\top \hat{F} T_1
7. 점 알고리즘
기본 행렬의 자유도가 7이므로, 최소 7개의 점 대응으로 F를 추정할 수 있다. 7개의 대응으로부터 A \in \mathbb{R}^{7 \times 9}를 구성하면 A의 영공간은 2차원이다. 영공간의 기저 벡터를 \mathbf{f}_1, \mathbf{f}_2로 놓으면, 일반해는 다음과 같다.
F = \alpha F_1 + (1 - \alpha) F_2
여기서 F_1, F_2는 \mathbf{f}_1, \mathbf{f}_2를 재배열한 행렬이다. 랭크 2 조건 \det(F) = 0을 적용하면 \alpha에 대한 3차 다항식이 얻어진다.
\det(\alpha F_1 + (1 - \alpha) F_2) = 0
이 방정식은 최대 3개의 실수 해를 가지므로, 최대 3개의 기본 행렬이 존재한다.
8. 기본 행렬과 본질 행렬의 관계
카메라의 내부 파라미터 행렬 K_1, K_2가 알려져 있으면, 기본 행렬로부터 본질 행렬(essential matrix) E를 다음과 같이 구할 수 있다.
E = K_2^\top F K_1
본질 행렬은 기본 행렬에서 내부 파라미터의 영향을 제거한 것으로, 두 카메라 사이의 순수한 기하학적 관계(상대 회전과 병진)만을 인코딩한다.
참고 문헌
- Hartley, R., & Zisserman, A. (2004). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge University Press.
- Longuet-Higgins, H. C. (1981). A Computer Algorithm for Reconstructing a Scene from Two Projections. Nature, 293, 133-135.
- Hartley, R. I. (1997). In Defense of the Eight-Point Algorithm. IEEE Transactions on Pattern Analysis and Machine Intelligence, 19(6), 580-593.
- Ma, Y., Soatto, S., Kosecka, J., & Sastry, S. S. (2004). An Invitation to 3-D Vision. Springer.
v 0.1