카메라 캘리브레이션은 컴퓨터 비전 및 영상 처리에서 필수적인 과정 중 하나이다. 특히, 3차원 공간 정보를 2차원 이미지로 변환하는 카메라의 특성상, 정확한 물체의 위치나 모양을 파악하기 위해서는 카메라 자체의 특성에 대한 정보가 필요하다. 이러한 정보를 얻는 과정이 바로 캘리브레이션이다. 카메라가 어떻게 공간 정보를 투영하고, 이를 이미지로 변환하는지에 대한 이해 없이는 정밀한 분석이 어렵다. 이 과정에서 나오는 주요한 정보는 카메라의 내부 파라미터외부 파라미터이다.

1. 왜 카메라 캘리브레이션이 필요한가?

카메라 캘리브레이션의 필요성을 이해하려면 먼저 카메라 모델을 살펴볼 필요가 있다. 일반적으로, 이상적인 카메라는 핀홀 모델로 가정된다. 하지만 실제로는 여러 가지 왜곡과 오차가 발생하게 마련이다. 카메라 캘리브레이션은 이러한 비이상적인 요소를 보정하여 정확한 3차원 정보를 얻는 데 목적이 있다.

카메라 모델과 3차원 복원

컴퓨터 비전에서 3차원 복원(reconstruction)은 매우 중요한 주제이다. 예를 들어, 하나의 물체를 다양한 각도에서 촬영한 이미지들을 이용하여 물체의 3차원 모델을 복원할 수 있다. 그러나 이러한 3차원 복원을 위해서는 촬영된 이미지가 정확히 어디서, 어떤 각도로 촬영되었는지를 알아야 한다. 이때 필요한 것이 바로 카메라의 내부 파라미터외부 파라미터이다.

내부 파라미터는 카메라 렌즈 자체의 특성을 나타내며, 이는 카메라의 초점 거리, 주점(principal point), 왜곡 계수 등으로 구성된다. 반면에, 외부 파라미터는 카메라의 위치와 방향을 설명한다. 이를 통해 카메라가 월드 좌표계에서 어디에 위치하고, 어느 방향을 바라보고 있는지를 알 수 있다.

수학적으로, 3차원 좌표계에서 한 점 \mathbf{P} = (X, Y, Z)가 2차원 이미지 평면으로 투영되는 과정은 다음과 같이 표현된다:

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

여기서: - \mathbf{p}는 이미지 평면에서의 2차원 좌표, - \mathbf{K}는 카메라의 내부 파라미터 행렬, - \mathbf{R}은 카메라의 회전 행렬 (외부 파라미터), - \mathbf{t}는 카메라의 이동 벡터 (외부 파라미터), - \mathbf{P}는 월드 좌표계에서의 3차원 점을 의미한다.

이때, \mathbf{K}는 다음과 같이 정의된다:

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

여기서: - f_x, f_y는 각각 x축과 y축 방향의 초점 거리, - c_x, c_y는 이미지의 주점(principal point) 좌표이다.

이 수식에서 알 수 있듯이, 카메라 캘리브레이션은 \mathbf{K}, \mathbf{R}, \mathbf{t}를 정확히 추정하는 과정을 포함한다. 이를 통해 물체의 정확한 3차원 위치를 계산할 수 있다.

2. 왜곡의 보정

카메라 캘리브레이션의 또 다른 중요한 필요성은 렌즈 왜곡을 보정하는 데 있다. 대부분의 카메라 렌즈는 특히 이미지의 가장자리에서 왜곡을 발생시키며, 이를 수정하지 않으면 이미지 분석 과정에서 오류가 발생할 수 있다. 렌즈 왜곡에는 크게 Radial 왜곡Tangential 왜곡의 두 가지 주요 형태가 있다.

Radial 왜곡

Radial 왜곡은 이미지의 중심에서 멀어질수록 픽셀이 왜곡되는 현상이다. 이는 렌즈의 곡률 때문에 발생하며, 직선이 곡선으로 보이는 효과를 나타낸다. 특히, 배럴 왜곡(barrel distortion)핀쿠션 왜곡(pincushion distortion)이 대표적인 Radial 왜곡의 예이다.

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은 이미지 중심에서 픽셀까지의 거리로, r = \sqrt{x_d^2 + y_d^2}, - k_1, k_2, k_3는 Radial 왜곡 계수이다.

Tangential 왜곡

Tangential 왜곡은 렌즈가 완벽하게 평행하지 않거나, 이미지 센서가 비스듬히 장착된 경우 발생하는 왜곡이다. 이로 인해 이미지의 직선이 구부러지거나 비틀린 것처럼 보일 수 있다.

Tangential 왜곡을 보정하는 수식은 다음과 같다:

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

여기서: - p_1, p_2는 Tangential 왜곡 계수이다.

위의 두 가지 왜곡 보정 수식을 통해, 왜곡된 이미지 좌표를 실제 이미지 좌표로 변환할 수 있다. 이 보정 과정은 카메라 캘리브레이션의 필수적인 부분으로, 이미지에서 얻은 정보가 왜곡 없이 정확히 처리되도록 보장한다.

3. 실제 응용 분야

카메라 캘리브레이션의 필요성은 여러 응용 분야에서 특히 두드러진다. 예를 들어, 자율 주행 차량에서의 비전 시스템, 로봇 공학에서의 3차원 공간 인식, 그리고 증강 현실(AR)과 가상 현실(VR)과 같은 기술들 모두 카메라 캘리브레이션을 통해 더 정밀한 정보를 제공받는다.