에피폴라인의 정의
에피폴라인(Epipolar Line)은 두 대의 카메라 시스템에서 한 카메라의 점이 다른 카메라의 이미지 평면에 투영될 때 위치할 수 있는 가능한 경로를 나타낸다. 즉, 3차원 공간의 한 점이 한 카메라에서 특정 위치에 있는 경우, 그 점이 다른 카메라에서 어디에 나타날 수 있는지를 결정하는 선이다. 이 선은 두 카메라의 상대적 위치와 그 점의 3차원 좌표에 따라 달라지며, 두 카메라의 에피폴라 기하학에서 중요한 역할을 한다.
이미지 좌표계에서의 에피폴라인 표현
이미지 평면에서 에피폴라인을 수학적으로 표현하기 위해서는 기본 행렬(Fundamental Matrix) \mathbf{F}의 개념을 사용한다. 두 카메라가 관측한 한 점 \mathbf{x}_1과 \mathbf{x}_2는 다음의 에피폴라 제약을 따른다.
여기서: - \mathbf{x}_1은 첫 번째 카메라의 이미지 좌표에서의 점을 나타내며, 이는 [u_1, v_1, 1]^\top 형태로 표현된다. - \mathbf{x}_2은 두 번째 카메라의 이미지 좌표에서의 점을 나타내며, 이는 [u_2, v_2, 1]^\top 형태로 표현된다. - \mathbf{F}는 두 카메라 간의 기본 행렬로, 두 카메라 사이의 상대적인 위치와 방향을 포함하고 있다.
위 방정식에서 중요한 점은, \mathbf{x}_2가 주어졌을 때, \mathbf{F} \mathbf{x}_1은 이미지 평면에서의 에피폴라인의 방정식을 정의한다는 것이다. 즉, 두 번째 카메라 이미지 평면에서의 에피폴라인은 다음과 같은 방정식으로 나타낼 수 있다:
여기서 \mathbf{l}_2는 두 번째 카메라에서의 에피폴라인을 의미하며, \mathbf{l}_2 = [a, b, c]^\top는 이미지 평면에서의 선 방정식 ax + by + c = 0을 정의한다.
비슷하게 첫 번째 카메라의 이미지 평면에서의 에피폴라인은 다음과 같이 표현된다:
이때, \mathbf{l}_1 = [a', b', c']^\top은 첫 번째 카메라 이미지 평면에서의 에피폴라인을 나타내며, 선의 방정식은 a'x + b'y + c' = 0이다.
에피폴라인의 기하학적 의미
두 카메라의 이미지 평면에서의 에피폴라인은 기하학적으로 매우 의미가 깊다. 3차원 공간에서 한 점이 첫 번째 카메라에 투영된 점 \mathbf{x}_1이 주어졌을 때, 이 점이 두 번째 카메라에 투영될 가능성이 있는 모든 점은 두 번째 카메라 이미지 평면에서 에피폴라인 상에 존재한다.
에피폴라인의 기하학적 특성
에피폴라인은 두 카메라의 이미지 평면에서 특정 기하학적 특성을 가진다. 특히, 각 에피폴라인은 항상 에피폴(Epipole)을 지나간다. 에피폴은 두 카메라의 광학 중심을 연결하는 선이 이미지 평면과 만나는 점을 의미한다. 즉, 첫 번째 카메라에서 관측된 점이 두 번째 카메라에서 에피폴라인을 따라 위치할 수 있는데, 그 에피폴라인은 두 번째 카메라의 에피폴을 지나간다.
- 첫 번째 카메라의 이미지 평면에서, 두 번째 카메라의 광학 중심을 투영한 점이 에피폴이 된다.
- 두 번째 카메라의 이미지 평면에서는 첫 번째 카메라의 광학 중심을 투영한 점이 에피폴이 된다.
따라서, 두 카메라 시스템에서 에피폴라인은 각 카메라의 이미지 평면에서 서로 교차하는 구조를 가지며, 각 에피폴라인은 대응되는 카메라의 에피폴을 지나간다.
기본 행렬과 에피폴라인
기본 행렬 \mathbf{F}은 두 카메라 간의 상대적인 위치와 방향을 포함하고 있기 때문에, 에피폴라인의 기하학적 특성도 이 행렬을 통해 나타난다.
특정 점 \mathbf{x}_1이 첫 번째 카메라의 이미지 평면에서 관측되었을 때, 이 점이 두 번째 카메라의 이미지 평면에서 어디에 위치할지 알 수 없지만, 에피폴라인 \mathbf{l}_2 = \mathbf{F} \mathbf{x}_1을 통해 그 점이 반드시 에피폴라인 상에 있을 것임을 알 수 있다. 이와 유사하게, \mathbf{x}_2가 주어졌을 때 첫 번째 카메라의 이미지 평면에서의 에피폴라인은 \mathbf{l}_1 = \mathbf{F}^\top \mathbf{x}_2으로 계산된다.
에피폴라인의 방정식에서 중요한 점은, 선의 형태로 표현된다는 것이다. 즉, 이미지 평면 내에서의 직선 방정식으로 나타낼 수 있으며, 이는 에피폴라인의 위치를 명확하게 정의해준다.
에피폴과 에피폴라인의 관계
에피폴과 에피폴라인 사이의 관계를 더욱 명확히 하기 위해서는 기본 행렬과 에피폴의 상호작용을 이해해야 한다. 에피폴은 두 카메라 간의 상대적인 기하학적 관계를 반영하며, 에피폴라인은 이 관계를 이미지 평면에 나타내는 선이다.
기본 행렬 \mathbf{F}은 항상 두 카메라 간의 상대적 위치 및 방향을 고려하여 에피폴라인의 위치를 계산하는데, 이 행렬의 특성상 다음과 같은 속성이 성립한다:
여기서 \mathbf{e}_1과 \mathbf{e}_2는 각각 첫 번째와 두 번째 카메라의 에피폴을 나타낸다. 이 식들은 에피폴이 각각의 이미지 평면에서 에피폴라인의 방정식에 의해 항상 만족된다는 것을 의미한다. 다시 말해, 모든 에피폴라인은 반드시 해당 카메라의 에피폴을 지나간다.
에피폴라인의 계산
두 카메라 시스템에서 주어진 점의 에피폴라인을 계산하는 과정은 다음과 같다.
먼저, 두 카메라에서의 관측점을 \mathbf{x}_1과 \mathbf{x}_2로 정의했을 때, 기본 행렬 \mathbf{F}을 사용하여 에피폴라인을 계산한다. 앞서 설명한 대로, 두 번째 카메라의 이미지 평면에서 에피폴라인 \mathbf{l}_2는 다음과 같은 형태로 나타낼 수 있다:
이 선의 방정식은 이미지 평면에서의 직선 방정식을 정의하며, 이는 ax + by + c = 0 형태로 표현된다. 구체적으로, 선의 각 요소는 기본 행렬 \mathbf{F}와 첫 번째 카메라의 관측점 \mathbf{x}_1에 의해 결정된다.
에피폴라인의 계산 과정은 다음과 같은 단계를 따른다:
- 첫 번째 카메라에서 관측된 점 \mathbf{x}_1을 기본 행렬 \mathbf{F}에 곱하여 두 번째 카메라 이미지 평면에서의 에피폴라인 \mathbf{l}_2를 계산한다.
- 계산된 \mathbf{l}_2 = [a, b, c]^\top는 직선의 방정식 ax + by + c = 0를 나타낸다.
- 두 번째 카메라 이미지 평면에서 주어진 점이 이 직선 방정식을 만족한다는 것은 해당 점이 에피폴라인 위에 있다는 것을 의미한다.
비슷한 방법으로, 두 번째 카메라에서 관측된 점 \mathbf{x}_2로부터 첫 번째 카메라의 에피폴라인을 계산할 수 있다:
이 역시 a'x + b'y + c' = 0 형태의 선 방정식을 만족하며, 첫 번째 카메라 이미지 평면에서의 에피폴라인을 정의한다.
에피폴라인의 실질적 활용
에피폴라인의 실질적인 활용은 스테레오 비전 시스템에서 매우 중요하다. 스테레오 비전은 두 대의 카메라를 사용하여 3차원 정보를 복원하는 과정이다. 이때 두 이미지 사이에서 대응되는 점을 찾는 과정에서 에피폴라인을 활용하면 계산량을 줄일 수 있다.
에피폴라인은 이미지 평면 내의 특정 직선이기 때문에, 대응점을 찾는 문제를 2차원이 아닌 1차원 문제로 단순화할 수 있다. 즉, 한 이미지에서 주어진 점이 있을 때, 다른 이미지에서는 그 점이 에피폴라인 상에 위치해야 한다는 제약이 있기 때문에, 전체 이미지에서 대응점을 찾는 것이 아니라 에피폴라인을 따라 대응점을 찾으면 된다. 이는 스테레오 정합(Stereo Matching)에서 매우 중요한 역할을 한다.
스테레오 정합 알고리즘에서, 두 이미지 사이의 대응점을 찾기 위한 초기 단계로 에피폴라인을 계산하고, 해당 선을 따라 대응점을 탐색함으로써 계산 효율성을 크게 향상시킬 수 있다.