비정렬 카메라 시스템에서는 카메라들이 서로 정렬되지 않은 상태에서 동일한 장면을 촬영한다. 이 상황에서는 각 카메라의 좌표계가 서로 다르기 때문에, 이를 통합하여 에피폴라 관계를 정의하는 과정이 중요하다. 이를 위해 각 카메라의 내적 및 외적 파라미터, 이미지 좌표계의 변환 등을 다루게 된다.
카메라의 내적 및 외적 파라미터
카메라의 내적 파라미터는 카메라의 고유한 특성을 나타내며, 초점 거리, 주점 좌표, 렌즈 왜곡 등을 포함한다. 반면, 외적 파라미터는 카메라의 위치 및 방향을 설명하며, 카메라 좌표계를 월드 좌표계로 변환하는 데 사용된다.
비정렬 카메라 시스템에서, 두 카메라의 외적 파라미터는 서로 다른 좌표계에 속하는 관계로, 이를 통일된 표현으로 변환해야 한다. 이때 각 카메라의 위치 및 방향을 설명하는 회전 행렬 \mathbf{R}과 이동 벡터 \mathbf{t}는 다음과 같이 정의된다.
여기서:
- \mathbf{P}_1은 첫 번째 카메라의 투영 행렬이며, 정규화된 형태로 표현된다.
- \mathbf{P}_2는 두 번째 카메라의 투영 행렬이며, 회전 행렬 \mathbf{R}과 이동 벡터 \mathbf{t}로 구성된다.
에피폴라 기하학의 기본 원리
비정렬 카메라 간의 에피폴라 관계는 두 카메라에서 같은 3D 점을 촬영한 이미지 좌표들 간의 기하학적 제약을 정의한다. 3D 공간의 한 점 \mathbf{X}가 두 카메라에서 각각의 이미지 평면에 투영되어 좌표 \mathbf{x}_1과 \mathbf{x}_2로 나타난다고 가정할 때, 이 두 좌표는 특정한 기하학적 관계를 따른다.
이 관계는 두 카메라 사이의 기본 행렬 \mathbf{F}로 표현된다. 기본 행렬은 두 이미지 좌표 \mathbf{x}_1과 \mathbf{x}_2가 에피폴라 제약을 따르는지 여부를 결정하는 데 사용된다. 즉, \mathbf{x}_1과 \mathbf{x}_2는 다음과 같은 조건을 만족한다.
기본 행렬 \mathbf{F}의 유도
기본 행렬 \mathbf{F}는 두 카메라 간의 상대적인 위치와 방향을 나타내는 외적 파라미터인 \mathbf{R}과 \mathbf{t}로부터 유도된다. 기본 행렬은 다음과 같이 정의된다.
여기서:
- \mathbf{K}_1과 \mathbf{K}_2는 각각 첫 번째와 두 번째 카메라의 내적 파라미터 행렬이다.
- [\mathbf{t}]_\times는 이동 벡터 \mathbf{t}에 대응하는 스큐 대칭 행렬이다.
스큐 대칭 행렬 [\mathbf{t}]_\times는 다음과 같이 표현된다.
이때, 두 이미지 평면 상의 점 \mathbf{x}_1과 \mathbf{x}_2가 에피폴라 관계를 만족하는 경우, 위 수식은 두 점 사이의 상관 관계를 명확하게 표현한다.
에피폴과 에피폴라인
비정렬 카메라 시스템에서 에피폴라 관계를 이해하기 위해서는 에피폴과 에피폴라인의 개념을 알아야 한다. 에피폴라 기하학에서, 에피폴(epipole)은 한 카메라의 중심이 다른 카메라의 이미지 평면에 투영된 점을 의미한다. 즉, 두 카메라가 서로 다른 위치에 있을 때, 각 카메라의 중심은 상대 카메라의 이미지 평면에서 하나의 점으로 표현된다.
에피폴라인(epipolar line)은 한 카메라의 이미지 평면에서 특정 점과 대응되는 점이 다른 카메라의 이미지 평면 상에서 존재할 수 있는 위치를 나타내는 직선이다. 에피폴라인은 기본 행렬 \mathbf{F}를 통해 계산된다.
에피폴라인의 계산
에피폴라인을 계산하기 위해, 한 이미지의 점 \mathbf{x}_1이 주어지면, 두 번째 이미지 평면에서의 대응 에피폴라인 \mathbf{l}_2는 다음과 같이 계산된다.
마찬가지로, 두 번째 이미지의 점 \mathbf{x}_2에 대한 첫 번째 이미지 평면에서의 에피폴라인 \mathbf{l}_1은 다음과 같이 계산된다.
이러한 에피폴라인은 두 카메라 간의 기하학적 관계를 나타내며, 각 점이 다른 이미지에서 어떤 직선 위에 대응될 수 있는지를 나타낸다.
에피폴라인과 에피폴라 제약
비정렬 카메라 시스템에서 두 이미지 간의 에피폴라 관계는 다음과 같은 에피폴라 제약을 따른다. 이는 두 이미지의 대응점이 항상 에피폴라인 상에 존재한다는 사실에 기반한다. 이를 수식으로 표현하면, 두 번째 이미지의 점 \mathbf{x}_2는 첫 번째 이미지의 점 \mathbf{x}_1에 대응하는 에피폴라인 \mathbf{l}_2 상에 위치한다.
이 에피폴라 제약은 에피폴라 기하학의 기본 원리이며, 비정렬 카메라 시스템에서 3D 복원을 수행할 때 중요한 역할을 한다. 이를 통해 두 이미지 간의 기하학적 관계를 이용하여 각 이미지에서의 대응점을 찾을 수 있다.
스테레오 매칭과 에피폴라 제약
스테레오 비전 시스템에서 가장 중요한 문제 중 하나는 두 카메라 이미지 간의 대응점을 찾는 것이다. 이 과정은 스테레오 매칭(stereo matching)이라고 불리며, 에피폴라 제약을 이용하여 효율적으로 수행될 수 있다. 에피폴라 제약을 통해, 하나의 이미지에서 특정 점에 대한 대응점이 다른 이미지에서 에피폴라인 상에만 존재해야 함을 알 수 있다. 이를 통해 검색 공간을 2D에서 1D로 축소할 수 있어, 스테레오 매칭 알고리즘의 계산 비용을 크게 줄일 수 있다.
비정렬 카메라 간의 삼각 측량
삼각 측량(triangulation)은 두 카메라의 시차를 이용하여 3D 공간 상의 점을 복원하는 과정이다. 비정렬 카메라 시스템에서는 두 카메라가 정렬되어 있지 않기 때문에, 삼각 측량을 통해 각 이미지에서 대응되는 점을 기반으로 3D 좌표를 계산할 수 있다.
삼각 측량의 기본 개념은 두 카메라에서 찍힌 2D 이미지 점들이 3D 공간의 동일한 점 \mathbf{X}에서 비롯된 것임을 전제로 한다. 따라서 두 이미지 좌표 \mathbf{x}_1과 \mathbf{x}_2를 알고 있을 때, 해당 점의 3D 좌표 \mathbf{X}를 복원할 수 있다.
삼각 측량을 수행하려면 두 카메라의 투영 행렬 \mathbf{P}_1과 \mathbf{P}_2를 사용하여 다음과 같은 관계를 정의한다.
여기서:
- \mathbf{x}_1과 \mathbf{x}_2는 각각 첫 번째와 두 번째 이미지에서의 2D 좌표이다.
- \mathbf{P}_1과 \mathbf{P}_2는 각각 첫 번째와 두 번째 카메라의 투영 행렬이다.
- \mathbf{X}는 3D 공간에서의 점이다.
이 두 방정식을 결합하여 다음과 같은 선형 시스템을 정의할 수 있다.
여기서 \mathbf{A}는 각 이미지의 좌표와 카메라의 투영 행렬로부터 도출된 행렬이다. 이 시스템을 풀어 3D 공간에서의 점 \mathbf{X}를 구할 수 있다.
삼각 측량의 선형 시스템
삼각 측량 문제를 좀 더 구체적으로 풀기 위해, 이미지 좌표 \mathbf{x}_1 = (x_1, y_1, 1)와 \mathbf{x}_2 = (x_2, y_2, 1)를 사용하여 다음과 같은 시스템을 정의할 수 있다.
첫 번째 카메라의 투영 방정식은 다음과 같다.
두 번째 카메라의 투영 방정식은 다음과 같다.
여기서 \mathbf{P}_1^{(i)}와 \mathbf{P}_2^{(i)}는 각각 첫 번째와 두 번째 카메라의 투영 행렬 \mathbf{P}_1과 \mathbf{P}_2의 i번째 행을 의미한다. 이를 통해 4개의 방정식을 얻을 수 있으며, 이 선형 시스템을 풀어 3D 좌표 \mathbf{X}를 구할 수 있다.
비정렬 카메라 시스템의 한계
비정렬 카메라 시스템에서 삼각 측량을 수행할 때 몇 가지 한계가 존재한다. 첫째, 두 카메라가 매우 가까이 배치되었거나 기하학적으로 불안정한 위치에 있을 경우, 삼각 측량의 정확도가 낮아질 수 있다. 이 문제는 카메라 간의 기하학적 배치와 시차에 의존하며, 이를 해결하기 위해서는 카메라 간의 적절한 배치를 고려해야 한다.
둘째, 이미지 잡음과 왜곡이 삼각 측량 결과에 영향을 미칠 수 있다. 카메라 렌즈의 왜곡이 제대로 보정되지 않거나 이미지의 해상도가 낮을 경우, 대응점 추출 및 삼각 측량의 정확도가 저하될 수 있다. 이러한 문제를 해결하기 위해서는 정밀한 카메라 보정이 필요하다.