기본 행렬 (Fundamental Matrix) 정의
기본 행렬 \mathbf{F}는 두 개의 이미지 좌표계 사이의 관계를 나타내는 3 \times 3 행렬이다. 이는 두 개의 서로 다른 뷰에서 동일한 3D 점이 투영될 때 발생하는 제약 조건을 정의하는 역할을 한다. 기본 행렬은 에피폴라 제약을 만족시키는 중요한 수학적 도구이다.
카메라 1에서의 한 점 \mathbf{x}_1와 카메라 2에서의 대응점 \mathbf{x}_2 사이에는 다음과 같은 에피폴라 제약이 성립한다:
여기서: - \mathbf{x}_1은 첫 번째 이미지 좌표에서의 점을 나타내는 3 \times 1 크기의 동차 좌표 벡터이다. - \mathbf{x}_2는 두 번째 이미지 좌표에서의 대응점이다. - \mathbf{F}는 두 이미지 사이의 기본 행렬이다.
이 식은 카메라 1에서의 점 \mathbf{x}_1가 카메라 2에서의 에피폴라인 위에 위치해야 함을 의미한다.
본질 행렬 (Essential Matrix) 정의
본질 행렬 \mathbf{E}는 두 카메라의 내적 파라미터를 포함하여 보다 구체적인 관계를 나타낸다. 본질 행렬은 두 카메라가 동일한 캘리브레이션을 가지고 있다는 가정 하에 유도되며, 월드 좌표계에서의 3D 점과 두 카메라의 상대적 위치 및 방향을 반영한다.
본질 행렬 \mathbf{E}는 두 이미지 좌표계에서의 대응점 간의 에피폴라 제약을 다음과 같이 표현한다:
여기서: - \mathbf{x}와 \mathbf{x}'는 두 이미지에서의 동차 좌표 벡터이다. - \mathbf{E}는 본질 행렬이다.
본질 행렬은 두 카메라의 상대적인 회전 행렬 \mathbf{R}과 이동 벡터 \mathbf{t}로 표현될 수 있으며, 다음과 같은 관계가 성립한다:
여기서 [\mathbf{t}]_\times는 이동 벡터 \mathbf{t}의 스큐 대칭 행렬이다.
기본 행렬과 본질 행렬의 관계
기본 행렬 \mathbf{F}와 본질 행렬 \mathbf{E}는 두 이미지에서 대응되는 점들 간의 관계를 설명하지만, 이들 사이에는 내적 파라미터의 유무에 따라 중요한 차이가 있다.
두 카메라의 내적 파라미터 행렬을 각각 \mathbf{K}_1과 \mathbf{K}_2라고 할 때, 기본 행렬 \mathbf{F}는 본질 행렬 \mathbf{E}와 내적 파라미터의 곱으로 표현된다:
이 식은 기본 행렬이 본질 행렬에 두 카메라의 내적 파라미터가 적용된 형태임을 나타낸다. 본질 행렬은 카메라의 상대적인 기하학적 관계만을 포함하지만, 기본 행렬은 두 카메라의 내부 구조까지 고려된 제약을 나타낸다.
카메라 내적 파라미터와 기본 행렬의 역할
카메라의 내적 파라미터 행렬 \mathbf{K}_1과 \mathbf{K}_2는 각 카메라가 어떻게 이미지 좌표로 3D 점을 투영하는지 나타낸다. 기본 행렬 \mathbf{F}는 이 내적 파라미터 행렬을 통해 두 이미지 좌표계 간의 관계를 설명한다.
카메라의 내적 파라미터 행렬 \mathbf{K}는 다음과 같은 형태를 갖는다:
여기서: - f_x, f_y는 카메라의 초점 거리이다. - c_x, c_y는 이미지 중심 좌표이다.
기본 행렬 \mathbf{F}는 이러한 내적 파라미터를 이용해 본질 행렬 \mathbf{E}와 연결되며, 두 카메라의 내적 파라미터가 서로 다를 때도 에피폴라 기하학적 제약을 만족시킬 수 있게 해준다. 즉, 본질 행렬은 두 카메라의 상대적인 위치와 방향에만 의존하는 반면, 기본 행렬은 이와 함께 카메라의 내부 구조를 포함하여 더 복합적인 관계를 반영한다.
본질 행렬의 기하학적 의미
본질 행렬 \mathbf{E}는 두 카메라가 같은 캘리브레이션을 갖고 있다고 가정할 때, 두 카메라의 상대적인 회전 및 이동을 나타낸다. 본질 행렬은 카메라 간의 기하학적 변환을 설명하며, 실제 세계의 3D 점이 두 카메라 이미지 평면에 어떻게 투영되는지를 알려준다.
본질 행렬의 중요한 성질 중 하나는 카메라 좌표계 간의 상대적 변환을 보존하는 것이다. 두 카메라가 회전 \mathbf{R}과 이동 \mathbf{t}을 통해 연결되었다면, 본질 행렬은 다음과 같은 형태를 가진다:
여기서 [\mathbf{t}]_\times는 이동 벡터 \mathbf{t}를 스큐 대칭 행렬로 변환한 것이다. 이 행렬은 두 카메라의 위치 관계를 나타내며, 두 이미지에서 대응하는 점들이 동일한 3D 점을 가리키는지 여부를 결정하는 데 사용된다.
본질 행렬과 스케일 불변성
본질 행렬 \mathbf{E}는 스케일 불변성을 갖는다. 즉, \mathbf{E}는 카메라 간의 상대적인 위치와 방향을 나타내지만, 두 카메라 사이의 실제 거리나 크기는 반영하지 않는다. 본질 행렬의 특성 상, 카메라 간의 거리를 변화시키더라도 에피폴라 기하학적 제약을 만족시키는 기본 행렬 \mathbf{F}를 구할 수 있다. 이 때문에, 스테레오 매칭이나 3D 복원과 같은 응용에서는 추가적인 정보를 사용하여 절대적인 스케일을 복원해야 한다.
기본 행렬과 본질 행렬의 특성 비교
기본 행렬 \mathbf{F}와 본질 행렬 \mathbf{E}는 비슷한 역할을 하지만, 그 특성과 구성 방식에서 중요한 차이가 있다.
- 내적 파라미터 포함 여부:
- 기본 행렬 \mathbf{F}는 카메라의 내적 파라미터를 포함하여, 실제 관측된 이미지 좌표에서의 대응 관계를 설명한다.
-
본질 행렬 \mathbf{E}는 내적 파라미터를 고려하지 않고, 두 카메라 간의 상대적인 위치와 회전만을 나타낸다.
-
행렬의 계수:
- 본질 행렬 \mathbf{E}는 계수(rank)가 2인 3 \times 3 행렬이다. 이는 두 카메라의 상대적인 기하학적 관계를 나타내기 위한 최소한의 제약을 제공한다.
-
기본 행렬 \mathbf{F}도 계수 2를 가져야 하며, 이미지 상에서 에피폴라 제약을 만족시키기 위한 제약을 나타낸다.
-
에피폴과 에피폴라인:
- 기본 행렬 \mathbf{F}는 두 카메라 이미지 좌표계에서 각각 에피폴라인을 정의한다. 한 이미지의 점 \mathbf{x}_1는 다른 이미지에서 에피폴라인 위에 대응된다.
- 본질 행렬 \mathbf{E}는 카메라 좌표계에서 동일한 기하학적 제약을 제공한다. 본질 행렬을 통해 두 카메라가 동일한 3D 점을 관찰할 때, 그 점들이 에피폴라인을 따라 위치함을 확인할 수 있다.
기본 행렬의 특이값 분해
기본 행렬 \mathbf{F}는 일반적으로 특이값 분해(SVD, Singular Value Decomposition)를 통해 분석할 수 있다. 기본 행렬 \mathbf{F}는 3 \times 3 행렬이므로, 특이값 분해는 다음과 같이 표현된다:
여기서: - \mathbf{U}와 \mathbf{V}는 직교 행렬이다. - \mathbf{\Sigma}는 대각행렬로, 기본 행렬의 특이값을 나타낸다.
기본 행렬의 중요한 특성 중 하나는, 그 계수(rank)가 2라는 점이다. 이는 대각행렬 \mathbf{\Sigma}에서 하나의 특이값이 0이어야 한다는 것을 의미한다. 이를 통해 기본 행렬이 에피폴라 기하학적 관계를 만족함을 보장할 수 있다.
본질 행렬의 특이값 분해
본질 행렬 \mathbf{E} 역시 특이값 분해를 사용할 수 있으며, 본질 행렬의 특이값 분해는 기본 행렬과 유사한 형태를 갖는다:
여기서 \mathbf{\Sigma}는 두 개의 같은 값과 하나의 0 값을 가지는 대각 행렬이다. 이는 본질 행렬의 계수가 2임을 반영하며, 두 카메라 간의 상대적 위치와 회전이 에피폴라 제약을 만족시키는 구조로 형성됨을 나타낸다.
본질 행렬의 특이값 분해는 주로 스테레오 매칭과 3D 복원 과정에서 사용되며, 이를 통해 두 카메라 간의 상대적 위치와 회전 정보를 보다 쉽게 추출할 수 있다.
본질 행렬과 기본 행렬의 계산
기본 행렬 \mathbf{F}는 두 이미지에서의 대응점들을 이용해 계산할 수 있으며, 이는 주로 최소한 8개의 대응점이 필요하다. 이러한 방법은 '8-point 알고리즘'으로 잘 알려져 있다. 본질 행렬 \mathbf{E}는 기본 행렬을 바탕으로 카메라의 내적 파라미터를 고려하여 계산된다. 이를 통해 두 이미지에서의 기하학적 제약을 더욱 정확하게 표현할 수 있다.