카메라 모델

카메라 모델은 3D 공간에서의 점을 2D 이미지 평면으로 변환하는 과정을 수학적으로 설명하는 역할을 한다. 이 과정은 여러 가지 변수와 매트릭스를 통해 정의되며, 실제 물리적 카메라에서 발생하는 왜곡 현상을 고려해 수정할 수 있다.

가장 기본적인 카메라 모델은 핀홀 카메라 모델이다. 핀홀 카메라 모델은 렌즈를 무시하고, 작은 구멍을 통해 빛이 들어와 이미지를 형성하는 단순한 구조로 정의된다. 이 모델은 실제 카메라를 수학적으로 이상화한 모델이지만, 카메라 캘리브레이션의 기본적인 개념을 설명하는 데 매우 유용하다.

3D 점과 이미지 평면의 변환

카메라 캘리브레이션의 핵심은 3D 공간의 점 \mathbf{X} = (X, Y, Z)^T를 2D 이미지 좌표 \mathbf{x} = (x, y)^T로 변환하는 것이다. 이 변환은 프로젝션이라는 과정으로 정의되며, 이 과정은 카메라의 내부 파라미터와 외부 파라미터에 의해 제어된다.

카메라 모델은 크게 두 가지 매트릭스로 나뉜다: 1. 외부 파라미터(Extrinsic Parameters): 카메라 좌표계를 월드 좌표계로 변환하는 매트릭스로, 회전 매트릭스 \mathbf{R}와 변환 벡터 \mathbf{t}로 표현된다.

월드 좌표계에서의 3D 점 \mathbf{X}_w를 카메라 좌표계에서의 3D 점 \mathbf{X}_c로 변환하는 식은 다음과 같다:

\mathbf{X}_c = \mathbf{R}\mathbf{X}_w + \mathbf{t}

여기서 \mathbf{R}3 \times 3 회전 매트릭스이고, \mathbf{t}3 \times 1 변환 벡터이다.

  1. 내부 파라미터(Intrinsic Parameters): 카메라 내부의 특성을 정의하는 매트릭스로, 초점 거리(focal length), 주점(principal point), 픽셀 비율 등의 요소로 구성된다.

카메라 내부 파라미터를 나타내는 매트릭스 \mathbf{K}는 다음과 같은 형태를 갖는다:

\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는 주점 좌표이다.

투영

투영은 3D 공간에서의 점을 2D 이미지 평면으로 변환하는 과정을 말한다. 이 과정에서, 먼저 3D 점은 카메라 좌표계로 변환되고, 이후에 2D 이미지 평면으로 투영된다.

3D 점 \mathbf{X}_w = (X_w, Y_w, Z_w)^T를 카메라 좌표계로 변환한 후, 이를 이미지 좌표로 변환하는 과정을 설명하는 투영 공식은 다음과 같다:

\mathbf{x} = \mathbf{K} [\mathbf{R} | \mathbf{t}] \mathbf{X}_w

여기서, - \mathbf{K}는 카메라의 내부 파라미터 매트릭스, - \mathbf{R}\mathbf{t}는 외부 파라미터 (회전 및 변환), - \mathbf{X}_w는 월드 좌표계에서의 3D 점이다.

이 투영 공식을 사용하면, 3D 좌표를 2D 이미지 평면으로 변환할 수 있다. 2D 이미지 평면에서의 최종 좌표 \mathbf{x}는 다음과 같은 비례 관계에 따라 계산된다:

x = \frac{f_x X_c}{Z_c} + c_x
y = \frac{f_y Y_c}{Z_c} + c_y

여기서, (X_c, Y_c, Z_c)는 카메라 좌표계에서의 3D 점 좌표이며, f_x, f_y는 초점 거리, c_x, c_y는 주점이다.

이렇게 얻어진 2D 좌표는 이미지 평면에서의 좌표이며, 이 좌표는 실제 카메라의 픽셀 좌표와 일치하게 된다.

비선형 왜곡의 고려

위의 기본 투영 공식은 이상적인 카메라 모델을 가정한 것이다. 하지만 실제 카메라에서는 다양한 형태의 비선형 왜곡이 발생한다. 이러한 왜곡은 렌즈 왜곡으로 인해 발생하며, 대표적으로 Radial 왜곡Tangential 왜곡이 있다.

Radial 왜곡

Radial 왜곡은 이미지의 중심에서 멀어질수록 직선이 곡선으로 보이는 현상이다. 이 왜곡은 렌즈의 곡률로 인해 발생하며, 렌즈가 볼록한 경우 배럴 왜곡(Barrel Distortion), 오목한 경우 핀쿠션 왜곡(Pincushion Distortion)이 발생한다.

Radial 왜곡을 수학적으로 표현하는 방식은 다항식 형태로 나타난다. 이미지 평면의 점 (x_d, y_d)가 왜곡된 좌표라고 할 때, 왜곡되지 않은 이상적인 좌표 (x_u, y_u)는 다음과 같은 관계식으로 나타낼 수 있다:

x_u = x_d (1 + k_1 r^2 + k_2 r^4 + k_3 r^6)
y_u = y_d (1 + k_1 r^2 + k_2 r^4 + k_3 r^6)

여기서, - r = \sqrt{x_d^2 + y_d^2}는 왜곡된 점의 반지름, - k_1, k_2, k_3는 Radial 왜곡 계수이다.

이 수식을 통해, Radial 왜곡으로 인해 왜곡된 이미지를 보정할 수 있다.

Tangential 왜곡

Tangential 왜곡은 렌즈와 센서의 정렬이 완벽하지 않을 때 발생하는 왜곡이다. 이는 이미지의 특정 부분이 비대칭적으로 왜곡되는 현상으로, 카메라 렌즈가 완전히 수직으로 정렬되지 않을 때 발생할 수 있다.

Tangential 왜곡을 보정하는 수식은 다음과 같이 나타낼 수 있다:

x_u = x_d + [2 p_1 x_d y_d + p_2 (r^2 + 2 x_d^2)]
y_u = y_d + [p_1 (r^2 + 2 y_d^2) + 2 p_2 x_d y_d]

여기서 p_1p_2는 Tangential 왜곡 계수이다. 이 수식을 통해 Tangential 왜곡도 보정할 수 있다.

투영 매트릭스

카메라 모델과 투영 과정을 종합하면, 3D 공간에서 2D 이미지 평면으로의 변환은 투영 매트릭스를 통해 이루어진다. 투영 매트릭스는 카메라의 내부 파라미터와 외부 파라미터를 모두 포함한 매트릭스이다. 이 매트릭스는 다음과 같이 표현된다:

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

여기서 \mathbf{P}3 \times 4 크기의 매트릭스로, 3D 점 \mathbf{X}_w = (X_w, Y_w, Z_w, 1)^T를 2D 이미지 평면으로 변환하는 역할을 한다. 이 투영 매트릭스를 통해 3D 좌표를 2D 이미지로 변환하는 모든 과정이 수학적으로 정의된다.

투영 과정의 예시

예를 들어, 월드 좌표계에서의 3D 점 \mathbf{X}_w = (X_w, Y_w, Z_w)^T가 주어졌다고 가정한다. 이 점을 카메라 좌표계로 변환하기 위해서는 외부 파라미터 매트릭스를 적용해야 하며, 이어서 카메라의 내부 파라미터를 적용하여 이미지 평면의 2D 좌표를 얻는다.

  1. 3D 점 \mathbf{X}_w를 카메라 좌표계로 변환:
\mathbf{X}_c = \mathbf{R} \mathbf{X}_w + \mathbf{t}
  1. 카메라 내부 파라미터를 적용하여 2D 이미지 좌표를 계산:
\mathbf{x} = \mathbf{K} \mathbf{X}_c

이 과정에서 Radial 왜곡과 Tangential 왜곡을 보정하려면, 위에서 설명한 왜곡 보정 수식을 추가로 적용해야 한다.