멀티 카메라 배열은 여러 대의 카메라를 사용하여 하나의 장면을 다양한 각도에서 촬영하고, 각 카메라의 위치 및 방향을 정확히 파악하여 통합된 3D 정보를 얻는 것을 목적으로 한다. 이러한 배열은 스테레오 비전뿐만 아니라 멀티 뷰 시스템을 통해 깊이 추정 및 공간 내 물체의 위치를 보다 정확하게 추정할 수 있게 해준다.
카메라 배열의 기본 개념
멀티 카메라 배열에서는 각 카메라가 서로 다른 위치에 설치되므로, 각 카메라에서 캡처된 이미지가 서로 다른 시각 정보를 담고 있다. 이를 통해 물체의 3차원 정보를 추출할 수 있으며, 특히 깊이 정보(depth information)를 추정하는 데 유리하다. 기본적으로 카메라 배열은 각 카메라의 내부 및 외부 파라미터를 정확히 알고 있어야 한다.
내부 및 외부 파라미터
멀티 카메라 배열에서 각 카메라의 내부 파라미터는 다음과 같다: - 초점 거리 f - 주점(Principal point)의 위치 (u_0, v_0) - 픽셀 비율 s_x, s_y
외부 파라미터는 다음을 포함한다: - 카메라의 위치 \mathbf{T} \in \mathbb{R}^3 - 카메라의 방향(회전 행렬) \mathbf{R} \in \mathbb{R}^{3 \times 3}
이 파라미터들은 각각의 카메라가 3D 공간 내에서 어떻게 배치되어 있는지를 나타내며, 이를 통해 각 카메라에서 동일한 물체를 바라보는 시점을 정밀하게 계산할 수 있다.
멀티 카메라 배열의 기본 원리
멀티 카메라 배열에서 여러 대의 카메라는 서로 다른 시점에서 동일한 장면을 캡처한다. 이를 위해서 각 카메라의 2D 이미지에서 3D 좌표로 변환하는 과정이 필요하다. 각 카메라의 관측 모델은 핀홀 카메라 모델을 기반으로 하며, 이를 통해 2D 이미지 상의 점을 3D 공간의 점으로 매핑한다.
핀홀 카메라 모델
멀티 카메라 배열에서 각 카메라는 기본적으로 핀홀 카메라 모델을 따른다. 핀홀 카메라 모델은 다음과 같은 수식으로 표현된다:
여기서, - \mathbf{p} \in \mathbb{R}^2는 2D 이미지 평면 상의 점을 의미한다. - \mathbf{K} \in \mathbb{R}^{3 \times 3}는 카메라의 내부 파라미터 행렬이다. - \mathbf{R} \in \mathbb{R}^{3 \times 3}는 회전 행렬이며, 카메라의 방향을 나타낸다. - \mathbf{T} \in \mathbb{R}^3는 카메라의 위치를 나타내는 변위 벡터이다. - \mathbf{P} \in \mathbb{R}^3는 3D 공간에서의 물체의 좌표이다.
다중 뷰 기하학
멀티 카메라 배열에서는 각 카메라에서 얻은 2D 이미지에서 3D 좌표를 추정하기 위한 다중 뷰 기하학(Multi-View Geometry)이 적용된다. 이 과정에서 두 가지 핵심 개념이 중요하다: 기본 행렬(Fundamental Matrix)와 에피폴라 기하학(Epipolar Geometry).
- 기본 행렬: 두 카메라 간의 대응점 사이의 기하학적 관계는 기본 행렬 \mathbf{F}로 표현된다. 기본 행렬은 두 이미지 사이의 대응점이 반드시 에피폴라 선(epipolar line) 위에 놓이도록 강제한다. 이를 수식으로 나타내면:
여기서, - \mathbf{p}_1, \mathbf{p}_2는 각각 두 카메라에서의 대응점이다.
- 에피폴라 기하학: 에피폴라 기하학은 두 개의 카메라가 동일한 물체를 관측할 때, 한 이미지에서의 점이 다른 이미지에서 에피폴라 선 위에 대응하는 점을 가져야 한다는 원리를 따른다. 이를 통해 이미지 간의 상호 관계를 파악할 수 있다.
동기화와 정렬
멀티 카메라 시스템에서 각 카메라는 동일한 시간에 장면을 캡처해야 한다. 이를 위해 카메라 간의 동기화가 필수적이다. 동기화되지 않은 카메라는 서로 다른 시간대의 장면을 캡처할 수 있으며, 이는 정확한 3D 정보 추정에 방해가 된다. 동기화 외에도 각 카메라의 정확한 정렬이 필요하다. 정렬이 맞지 않을 경우, 이미지 상의 왜곡이 발생할 수 있다.
깊이 정보 추정
멀티 카메라 배열의 주요 목표 중 하나는 3D 공간 내의 깊이 정보를 추정하는 것이다. 이를 위해서는 두 가지 주요 기법이 사용된다: 삼각측량(Triangulation)과 스테레오 매칭(Stereo Matching).
- 삼각측량: 삼각측량은 두 개 이상의 카메라에서 동일한 물체를 관측할 때, 해당 물체의 3D 좌표를 추정하는 방법이다. 두 카메라의 관찰 각도와 거리를 이용하여 물체의 깊이를 계산한다. 삼각측량의 수식은 다음과 같이 표현된다:
여기서, - \mathbf{A}는 관측된 2D 좌표와 카메라 파라미터 행렬로 구성된 행렬이다. - \mathbf{b}는 카메라의 외부 파라미터로부터 계산된 벡터이다.
스테레오 매칭
스테레오 매칭은 멀티 카메라 배열에서 매우 중요한 기법으로, 두 개 이상의 카메라에서 동일한 물체의 대응점을 찾는 과정이다. 스테레오 매칭을 통해 각 카메라에서 관측된 물체의 위치 차이를 기반으로 깊이를 추정할 수 있다. 이 과정은 주로 다음의 단계를 거친다:
-
이미지 정렬: 먼저, 각 카메라의 이미지가 동일한 평면에서 비교될 수 있도록 정렬한다. 이를 위해 에피폴라 기하학을 이용하여 이미지 상의 대응점들이 에피폴라 선 위에 위치하도록 변환한다.
-
특징점 추출: 각 카메라의 이미지에서 눈에 띄는 특징점을 추출한다. 이는 코너(corners), 엣지(edges), 또는 특정 패턴 등이 될 수 있다.
-
특징점 매칭: 두 이미지 간의 특징점을 비교하여 동일한 물체의 특징을 찾는다. 이 때, 에피폴라 제약을 사용하여 검색 범위를 좁힐 수 있다.
-
깊이 계산: 대응점을 찾으면, 두 카메라 간의 거리 및 시차(Disparity)를 이용하여 깊이를 계산한다. 시차는 물체가 두 카메라 이미지에서 서로 다른 위치에 나타나는 차이를 의미한다. 깊이 Z는 다음 수식으로 표현된다:
여기서, - Z는 추정된 깊이, - f는 카메라의 초점 거리, - B는 두 카메라 사이의 베이스라인(baseline), - d는 시차(disparity)를 나타낸다.
에피폴라 제약을 활용한 정합
스테레오 매칭에서 두 이미지 간의 대응점을 찾는 과정에서, 에피폴라 제약(epipolar constraint)을 사용하여 검색 공간을 줄일 수 있다. 에피폴라 제약은 다음과 같이 정의된다:
이 제약 조건은 한 이미지에서의 점이 다른 이미지에서 에피폴라 선 위에 존재해야 한다는 의미로, 이를 통해 각 카메라에서 관찰된 점들이 동일한 물체에 해당하는지를 빠르게 확인할 수 있다.
멀티 카메라 배열의 캘리브레이션
멀티 카메라 배열에서 중요한 단계는 각 카메라의 정확한 캘리브레이션이다. 이를 통해 각 카메라의 내부 및 외부 파라미터를 결정하고, 카메라 간의 상대적인 위치와 방향을 파악할 수 있다. 멀티 카메라 캘리브레이션은 주로 전역 최적화(global optimization)를 통해 수행되며, 이를 통해 모든 카메라의 파라미터를 동시에 최적화한다.
전역 최적화 기법
멀티 카메라 배열의 캘리브레이션에서는 전역 최적화 기법을 사용하여 각 카메라의 위치와 방향을 동시에 최적화한다. 이 과정에서 각 카메라의 관찰된 이미지 좌표와 실제 3D 좌표 간의 오류를 최소화하는 방식으로 최적화가 이루어진다. 대표적인 전역 최적화 기법으로는 Levenberg-Marquardt 알고리즘이 사용된다. 최적화 과정에서의 목적 함수는 다음과 같다:
여기서, - \mathbf{p}_i는 관찰된 이미지 상의 점, - \hat{\mathbf{p}}_i는 추정된 이미지 상의 점, - N은 총 관측된 점의 개수이다.
이와 같은 최적화를 통해 카메라 간의 상대적인 위치 및 방향을 정밀하게 결정할 수 있다.