멀티 카메라 배열은 여러 대의 카메라를 사용하여 하나의 장면을 다양한 각도에서 촬영하고, 각 카메라의 위치 및 방향을 정확히 파악하여 통합된 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} = \mathbf{K} [ \mathbf{R} | \mathbf{T} ] \mathbf{P}

여기서, - \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).

  1. 기본 행렬: 두 카메라 간의 대응점 사이의 기하학적 관계는 기본 행렬 \mathbf{F}로 표현된다. 기본 행렬은 두 이미지 사이의 대응점이 반드시 에피폴라 선(epipolar line) 위에 놓이도록 강제한다. 이를 수식으로 나타내면:
\mathbf{p}_2^\top \mathbf{F} \mathbf{p}_1 = 0

여기서, - \mathbf{p}_1, \mathbf{p}_2는 각각 두 카메라에서의 대응점이다.

  1. 에피폴라 기하학: 에피폴라 기하학은 두 개의 카메라가 동일한 물체를 관측할 때, 한 이미지에서의 점이 다른 이미지에서 에피폴라 선 위에 대응하는 점을 가져야 한다는 원리를 따른다. 이를 통해 이미지 간의 상호 관계를 파악할 수 있다.

동기화와 정렬

멀티 카메라 시스템에서 각 카메라는 동일한 시간에 장면을 캡처해야 한다. 이를 위해 카메라 간의 동기화가 필수적이다. 동기화되지 않은 카메라는 서로 다른 시간대의 장면을 캡처할 수 있으며, 이는 정확한 3D 정보 추정에 방해가 된다. 동기화 외에도 각 카메라의 정확한 정렬이 필요하다. 정렬이 맞지 않을 경우, 이미지 상의 왜곡이 발생할 수 있다.

깊이 정보 추정

멀티 카메라 배열의 주요 목표 중 하나는 3D 공간 내의 깊이 정보를 추정하는 것이다. 이를 위해서는 두 가지 주요 기법이 사용된다: 삼각측량(Triangulation)스테레오 매칭(Stereo Matching).

  1. 삼각측량: 삼각측량은 두 개 이상의 카메라에서 동일한 물체를 관측할 때, 해당 물체의 3D 좌표를 추정하는 방법이다. 두 카메라의 관찰 각도와 거리를 이용하여 물체의 깊이를 계산한다. 삼각측량의 수식은 다음과 같이 표현된다:
\mathbf{P} = \mathbf{A}^{-1} \mathbf{b}

여기서, - \mathbf{A}는 관측된 2D 좌표와 카메라 파라미터 행렬로 구성된 행렬이다. - \mathbf{b}는 카메라의 외부 파라미터로부터 계산된 벡터이다.

스테레오 매칭

스테레오 매칭은 멀티 카메라 배열에서 매우 중요한 기법으로, 두 개 이상의 카메라에서 동일한 물체의 대응점을 찾는 과정이다. 스테레오 매칭을 통해 각 카메라에서 관측된 물체의 위치 차이를 기반으로 깊이를 추정할 수 있다. 이 과정은 주로 다음의 단계를 거친다:

  1. 이미지 정렬: 먼저, 각 카메라의 이미지가 동일한 평면에서 비교될 수 있도록 정렬한다. 이를 위해 에피폴라 기하학을 이용하여 이미지 상의 대응점들이 에피폴라 선 위에 위치하도록 변환한다.

  2. 특징점 추출: 각 카메라의 이미지에서 눈에 띄는 특징점을 추출한다. 이는 코너(corners), 엣지(edges), 또는 특정 패턴 등이 될 수 있다.

  3. 특징점 매칭: 두 이미지 간의 특징점을 비교하여 동일한 물체의 특징을 찾는다. 이 때, 에피폴라 제약을 사용하여 검색 범위를 좁힐 수 있다.

  4. 깊이 계산: 대응점을 찾으면, 두 카메라 간의 거리 및 시차(Disparity)를 이용하여 깊이를 계산한다. 시차는 물체가 두 카메라 이미지에서 서로 다른 위치에 나타나는 차이를 의미한다. 깊이 Z는 다음 수식으로 표현된다:

Z = \frac{f \cdot B}{d}

여기서, - Z는 추정된 깊이, - f는 카메라의 초점 거리, - B는 두 카메라 사이의 베이스라인(baseline), - d는 시차(disparity)를 나타낸다.

에피폴라 제약을 활용한 정합

스테레오 매칭에서 두 이미지 간의 대응점을 찾는 과정에서, 에피폴라 제약(epipolar constraint)을 사용하여 검색 공간을 줄일 수 있다. 에피폴라 제약은 다음과 같이 정의된다:

\mathbf{p}_2^\top \mathbf{F} \mathbf{p}_1 = 0

이 제약 조건은 한 이미지에서의 점이 다른 이미지에서 에피폴라 선 위에 존재해야 한다는 의미로, 이를 통해 각 카메라에서 관찰된 점들이 동일한 물체에 해당하는지를 빠르게 확인할 수 있다.

멀티 카메라 배열의 캘리브레이션

멀티 카메라 배열에서 중요한 단계는 각 카메라의 정확한 캘리브레이션이다. 이를 통해 각 카메라의 내부 및 외부 파라미터를 결정하고, 카메라 간의 상대적인 위치와 방향을 파악할 수 있다. 멀티 카메라 캘리브레이션은 주로 전역 최적화(global optimization)를 통해 수행되며, 이를 통해 모든 카메라의 파라미터를 동시에 최적화한다.

전역 최적화 기법

멀티 카메라 배열의 캘리브레이션에서는 전역 최적화 기법을 사용하여 각 카메라의 위치와 방향을 동시에 최적화한다. 이 과정에서 각 카메라의 관찰된 이미지 좌표와 실제 3D 좌표 간의 오류를 최소화하는 방식으로 최적화가 이루어진다. 대표적인 전역 최적화 기법으로는 Levenberg-Marquardt 알고리즘이 사용된다. 최적화 과정에서의 목적 함수는 다음과 같다:

\min \sum_{i=1}^{N} \| \mathbf{p}_i - \hat{\mathbf{p}}_i \|^2

여기서, - \mathbf{p}_i는 관찰된 이미지 상의 점, - \hat{\mathbf{p}}_i는 추정된 이미지 상의 점, - N은 총 관측된 점의 개수이다.

이와 같은 최적화를 통해 카메라 간의 상대적인 위치 및 방향을 정밀하게 결정할 수 있다.