6.145 카메라 내부 파라미터 행렬

카메라는 로봇 비전 시스템에서 가장 널리 사용되는 센서 중 하나이며, 3차원 세계의 점이 2차원 이미지 평면에 투영되는 과정을 수학적으로 모델링하려면 카메라 내부 파라미터 행렬(intrinsic parameter matrix)에 대한 정확한 이해가 필수적이다. 본 절에서는 카메라 내부 파라미터 행렬의 구성 요소, 물리적 의미, 그리고 선형대수학적 성질을 체계적으로 다룬다.

1. 핀홀 카메라 모델과 투영 과정

핀홀 카메라 모델(pinhole camera model)에서 3차원 공간의 점 \mathbf{P} = [X, Y, Z]^\top은 카메라 좌표계를 기준으로 이미지 평면 위의 점 \mathbf{p}로 투영된다. 이상적인 핀홀 모델에서 투영은 다음과 같이 표현된다.

x = f \frac{X}{Z}, \quad y = f \frac{Y}{Z}

여기서 f는 초점 거리(focal length)이고, (x, y)는 이미지 평면 위의 좌표이다. 그러나 실제 카메라에서는 이미지 센서의 물리적 특성을 반영해야 하므로, 보다 일반적인 내부 파라미터 행렬이 필요하다.

2. 카메라 내부 파라미터 행렬의 정의

카메라 내부 파라미터 행렬(camera intrinsic matrix) K는 다음과 같이 정의된다.

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

각 파라미터의 의미는 다음과 같다.

파라미터의미단위
f_xx 방향 초점 거리(픽셀 단위)pixel
f_yy 방향 초점 거리(픽셀 단위)pixel
c_x주점(principal point)의 x 좌표pixel
c_y주점의 y 좌표pixel
s비대칭 계수(skew coefficient)pixel

3. 초점 거리의 물리적 해석

물리적 초점 거리 f와 픽셀 단위 초점 거리 f_x, f_y의 관계는 다음과 같다.

f_x = f \cdot m_x, \quad f_y = f \cdot m_y

여기서 m_xm_y는 각각 x 방향과 y 방향의 픽셀 밀도(pixels per unit length)이다. 정사각형 픽셀을 가진 센서에서는 m_x = m_y이므로 f_x = f_y가 성립하지만, 직사각형 픽셀인 경우에는 f_x \neq f_y이다. 종횡비(aspect ratio)는 다음과 같이 정의된다.

\alpha = \frac{f_x}{f_y} = \frac{m_x}{m_y}

4. 주점의 의미

주점(principal point) (c_x, c_y)는 카메라 광축(optical axis)이 이미지 평면과 만나는 점의 픽셀 좌표이다. 이상적인 카메라에서 주점은 이미지 중심에 위치하지만, 실제 카메라에서는 렌즈 정렬 오차 등에 의해 이미지 중심에서 벗어나는 경우가 많다.

카메라 좌표계에서 광축 방향의 점 \mathbf{P} = [0, 0, Z]^\top을 투영하면 다음과 같다.

\mathbf{p} = K \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} = \begin{bmatrix} c_x \\ c_y \\ 1 \end{bmatrix}

이는 주점의 좌표가 정확히 (c_x, c_y)임을 확인해 준다.

5. 비대칭 계수

비대칭 계수(skew coefficient) s는 이미지 센서의 x축과 y축이 직교하지 않을 때 나타나는 파라미터이다. 비대칭 각도 \theta와의 관계는 다음과 같다.

s = f_x \cot\theta

대부분의 현대 카메라에서 이미지 센서 축은 정확하게 직교하므로 \theta = 90°이고 s = 0이다. 이 경우 K는 다음과 같이 단순화된다.

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

6. 동차 좌표에서의 투영 관계

3차원 점 \mathbf{P}_c = [X, Y, Z]^\top이 카메라 좌표계에서 주어질 때, 동차 좌표(homogeneous coordinates)를 사용한 투영 관계는 다음과 같다.

\lambda \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \begin{bmatrix} X \\ Y \\ Z \end{bmatrix}

여기서 \lambda = Z는 깊이(depth) 값이고, (u, v)는 픽셀 좌표이다. 이를 전개하면 다음과 같다.

u = f_x \frac{X}{Z} + s \frac{Y}{Z} + c_x

v = f_y \frac{Y}{Z} + c_y

7. K 행렬의 선형대수학적 성질

카메라 내부 파라미터 행렬 K는 다음과 같은 중요한 성질을 가진다.

상삼각 행렬 구조: K3 \times 3 상삼각 행렬(upper triangular matrix)이다. 이 구조는 QR 분해와 밀접한 관련이 있다.

행렬식: K의 행렬식은 다음과 같다.

\det(K) = f_x \cdot f_y \cdot 1 = f_x f_y

f_x > 0이고 f_y > 0이므로 \det(K) > 0이며, K는 항상 가역(invertible)이다.

역행렬: K의 역행렬은 다음과 같이 닫힌 형태(closed form)로 구할 수 있다.

K^{-1} = \begin{bmatrix} \frac{1}{f_x} & -\frac{s}{f_x f_y} & \frac{s c_y - f_y c_x}{f_x f_y} \\ 0 & \frac{1}{f_y} & -\frac{c_y}{f_y} \\ 0 & 0 & 1 \end{bmatrix}

s = 0인 경우에는 다음과 같이 단순화된다.

K^{-1} = \begin{bmatrix} \frac{1}{f_x} & 0 & -\frac{c_x}{f_x} \\ 0 & \frac{1}{f_y} & -\frac{c_y}{f_y} \\ 0 & 0 & 1 \end{bmatrix}

역행렬 K^{-1}은 픽셀 좌표를 정규화 이미지 좌표(normalized image coordinates)로 변환하는 데 사용된다.

\begin{bmatrix} \bar{x} \\ \bar{y} \\ 1 \end{bmatrix} = K^{-1} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}

여기서 (\bar{x}, \bar{y})는 정규화 이미지 좌표로, 초점 거리가 1이고 주점이 원점인 이상적 카메라에서의 좌표에 해당한다.

8. K 행렬의 분해

K 행렬은 다음과 같이 기본적인 변환 행렬들의 곱으로 분해할 수 있다.

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

첫 번째 행렬은 주점 이동(translation), 두 번째 행렬은 초점 거리에 의한 스케일링(scaling), 세 번째 행렬은 비대칭 전단(shear) 변환에 해당한다. 각 변환은 명확한 기하학적 의미를 가지며, 이들의 합성이 전체 내부 파라미터 변환을 구성한다.

9. 이미지 좌표와 IAC

내부 파라미터 행렬과 관련된 중요한 개념으로 절대 원뿔 곡선의 이미지(Image of the Absolute Conic, IAC)가 있다. IAC는 다음과 같이 정의된다.

\omega = (K K^\top)^{-1} = K^{-\top} K^{-1}

\omega는 대칭 양정치 행렬이며, 카메라의 내부 파라미터만으로 결정된다. \omega의 요소를 알면 K를 촐레스키 분해를 통해 복원할 수 있다. 구체적으로, \omega^{-1} = K K^\top이므로, \omega^{-1}에 촐레스키 분해를 적용하면 다음과 같다.

\omega^{-1} = L L^\top

여기서 L은 하삼각 행렬이고, K = L이다(대각 요소의 부호 조건 하에서).

10. 카메라 캘리브레이션에서의 활용

카메라 내부 파라미터 행렬을 추정하는 과정이 카메라 캘리브레이션(camera calibration)이다. 장(Zhang)의 방법에서는 평면 패턴의 여러 이미지로부터 호모그래피 행렬 H_i를 추정한 후, IAC에 대한 제약 조건을 이용한다.

각 호모그래피 H_i = [h_1, h_2, h_3]에 대하여 다음 두 가지 제약 조건이 성립한다.

h_1^\top \omega \, h_2 = 0

h_1^\top \omega \, h_1 = h_2^\top \omega \, h_2

\omega는 대칭이므로 6개의 독립 요소를 가지며, 스케일 자유도를 제거하면 5개의 미지수가 남는다. 따라서 최소 3개의 호모그래피(3개의 평면 패턴 이미지)로부터 \omega를 결정할 수 있고, 촐레스키 분해를 통해 K를 복원한다.

11. 렌즈 왜곡과 보정

실제 카메라에서는 렌즈 왜곡(lens distortion)이 존재하므로, 선형 내부 파라미터 행렬 K만으로는 투영 과정을 완전히 기술할 수 없다. 방사 왜곡(radial distortion)과 접선 왜곡(tangential distortion)을 포함한 왜곡 모델은 다음과 같다.

\bar{x}_d = \bar{x}(1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + 2p_1 \bar{x}\bar{y} + p_2(r^2 + 2\bar{x}^2)

\bar{y}_d = \bar{y}(1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + p_1(r^2 + 2\bar{y}^2) + 2p_2 \bar{x}\bar{y}

여기서 r^2 = \bar{x}^2 + \bar{y}^2이고, k_1, k_2, k_3는 방사 왜곡 계수, p_1, p_2는 접선 왜곡 계수이다. 왜곡된 정규화 좌표 (\bar{x}_d, \bar{y}_d)K를 적용하면 최종 픽셀 좌표를 얻는다.

\begin{bmatrix} u_d \\ v_d \\ 1 \end{bmatrix} = K \begin{bmatrix} \bar{x}_d \\ \bar{y}_d \\ 1 \end{bmatrix}


참고 문헌

  • Hartley, R., & Zisserman, A. (2004). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge University Press.
  • Zhang, Z. (2000). A Flexible New Technique for Camera Calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11), 1330-1334.
  • Ma, Y., Soatto, S., Kosecka, J., & Sastry, S. S. (2004). An Invitation to 3-D Vision. Springer.
  • Szeliski, R. (2022). Computer Vision: Algorithms and Applications (2nd ed.). Springer.

v 0.1