카메라 모델

카메라 모델은 실제 3차원 세계의 점을 이미지 평면 상의 2차원 점으로 변환하는 과정을 설명하는 수학적 모델이다. 이 과정은 일반적으로 투영(Projection)이라고 불리며, 이를 표현하는 가장 기본적인 수학적 도구가 투영 행렬(Projection Matrix)이다.

투영 변환의 기초

투영은 3차원 점이 카메라의 중심으로부터 시작하여 이미지 평면에 매핑되는 과정을 포함한다. 3차원 점 \mathbf{X} = (X, Y, Z, 1)^T가 주어졌을 때, 이 점은 카메라 좌표계에서 다음과 같이 표현된다.

\mathbf{x} = \mathbf{P} \mathbf{X}

여기서: - \mathbf{X}는 3차원 공간의 동차 좌표 (Homogeneous coordinates)로 표현된 점이다. - \mathbf{x}는 이미지 평면 상의 2차원 점이다. - \mathbf{P}투영 행렬이다.

카메라 매트릭스의 구성

투영 행렬 \mathbf{P}는 내부 파라미터와 외부 파라미터로 구성된다. 이 두 파라미터는 카메라의 물리적 특성과 위치, 방향을 결정짓는다.

외부 파라미터

외부 파라미터는 3차원 공간 내에서의 카메라의 위치와 방향을 나타낸다. 이는 회전 행렬 \mathbf{R}이동 벡터 \mathbf{t}로 표현된다.

\mathbf{P}_{ext} = [\mathbf{R} \ | \ \mathbf{t}]

여기서: - \mathbf{R}은 3x3 회전 행렬로, 카메라가 월드 좌표계에서 어떻게 회전하고 있는지를 나타낸다. - \mathbf{t}는 3x1 이동 벡터로, 카메라의 위치를 나타낸다.

따라서, 외부 파라미터는 3차원 점을 월드 좌표계에서 카메라 좌표계로 변환하는 역할을 한다.

내부 파라미터

내부 파라미터는 카메라의 초점 거리, 픽셀 크기, 그리고 이미지 좌표계에서의 중심 좌표와 같은 카메라 자체의 특성을 포함한다. 이를 수학적으로 표현한 행렬을 카메라 캘리브레이션 행렬(Calibration Matrix) 또는 내부 파라미터 행렬이라고 한다. 이 행렬은 다음과 같은 3x3 행렬로 표현된다.

\mathbf{K} = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}

여기서: - f_xf_y는 x축과 y축 방향의 초점 거리를 나타내며, 이는 카메라의 렌즈와 이미지 센서 간의 거리에 의해 결정된다. - c_xc_y이미지 중심(Principal point)의 좌표이다. - 1은 동차 좌표계를 유지하기 위한 값이다.

내부 파라미터 행렬 \mathbf{K}는 카메라 좌표계를 픽셀 좌표계로 변환하는 역할을 한다. 즉, 3차원 점이 이미지 평면에 매핑될 때의 스케일링 및 이동을 담당한다.

전체 투영 행렬

이제 카메라의 내부 파라미터와 외부 파라미터를 결합하여 전체 투영 행렬 \mathbf{P}를 정의할 수 있다. 카메라 좌표계에서의 3차원 점 \mathbf{X}_{cam}을 이미지 평면의 2차원 좌표 \mathbf{x}로 변환하는 과정은 다음과 같이 표현된다.

\mathbf{P} = \mathbf{K} [\mathbf{R} \ | \ \mathbf{t}]

여기서: - \mathbf{K}는 내부 파라미터 행렬 - [\mathbf{R} \ | \ \mathbf{t}]는 외부 파라미터 행렬

따라서, 3차원 동차 좌표로 표현된 점 \mathbf{X}는 다음과 같이 투영된다.

\mathbf{x} = \mathbf{P} \mathbf{X}

이 수식을 풀어 쓰면:

\begin{bmatrix} x \\ y \\ w \end{bmatrix} = \mathbf{K} \begin{bmatrix} \mathbf{R} & \mathbf{t} \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix}

이 결과로 얻은 \mathbf{x} = (x, y, w)^T는 동차 좌표로 표현된 이미지 평면 상의 점이다. 이를 일반적인 좌표계로 변환하려면, 다음과 같이 정규화한다.

x_{img} = \frac{x}{w}, \quad y_{img} = \frac{y}{w}

여기서 x_{img}y_{img}는 이미지 좌표계에서의 실제 2차원 점 좌표이다.

투영 행렬의 특성

투영 행렬 \mathbf{P}는 3x4 크기의 행렬로, 3차원 좌표를 2차원 이미지 좌표로 변환하는 비선형 과정을 선형 변환으로 나타낸다. 중요한 특성 중 하나는, 이 변환 과정에서 3차원 점들이 이미지 평면 상에 사영되며, 이 과정에서 깊이 정보가 소실된다는 것이다. 즉, 카메라의 투영 과정에서 깊이는 사라지고, 우리는 2차원 정보만 얻게 된다.

투영 행렬은 이러한 변환 과정의 기초를 제공하며, 카메라 보정이나 다중 뷰 기하학에서 중요한 역할을 한다.