9.7 카메라 좌표계와 이미지 좌표계
1. 카메라 좌표계(Camera Frame)
1.1 정의
카메라 좌표계 \{C\}는 카메라의 광학 중심을 원점으로 하는 3차원 좌표계이다. 카메라에 고정되어 카메라와 함께 이동한다.
1.2 표준 관례 (OpenCV, 컴퓨터 비전)
- 원점: 광학 중심 (핀홀 모델의 초점 또는 렌즈의 주점)
- z축: 광축 방향 (카메라가 바라보는 방향, 장면으로 향함)
- x축: 영상의 오른쪽 방향
- y축: 영상의 아래쪽 방향 (오른손 법칙에 따라)
이 관례에서 카메라 앞 양의 z 방향에 있는 물체가 영상에 포착된다.
1.3 대안 관례
일부 그래픽스 시스템에서는 z축이 카메라의 뒤쪽, y축이 위쪽인 좌표계를 사용한다. 로봇 공학에서는 OpenCV 관례가 널리 채택된다.
2. 이미지 좌표계(Image Frame)
2.1 정의
이미지 좌표계는 2차원 영상 평면에서 픽셀의 위치를 지정하는 좌표계이다.
2.2 픽셀 좌표 (u, v)
- 원점: 영상의 왼쪽 상단 모서리
- u축: 오른쪽 (영상의 가로 방향, 픽셀)
- v축: 아래쪽 (영상의 세로 방향, 픽셀)
픽셀 좌표는 정수 또는 실수 값을 가지며, 단위는 픽셀이다.
2.3 정규화 영상 좌표
카메라의 내부 파라미터의 영향을 제거한 좌표로, 초점 거리가 1인 가상 영상 평면 위의 좌표이다.
\bar{x} = \frac{X_c}{Z_c}, \quad \bar{y} = \frac{Y_c}{Z_c}
여기서 (X_c, Y_c, Z_c)는 카메라 좌표계에서의 3차원 점이다. 정규화 좌표는 렌즈 왜곡 보정과 기하학적 계산에 편리하다.
3. 핀홀 카메라 모델
3.1 투영 방정식
3차원 점 \mathbf{P}_c = (X_c, Y_c, Z_c)의 영상 평면으로의 투영(이상적 핀홀 모델):
\begin{bmatrix}u \\ v\end{bmatrix} = \begin{bmatrix}f_x X_c/Z_c + c_x \\ f_y Y_c/Z_c + c_y\end{bmatrix}
여기서:
- f_x, f_y: 초점 거리 (픽셀 단위)
- c_x, c_y: 주점(principal point), 광축과 영상 평면의 교점
3.2 내부 파라미터 행렬
\mathbf{K} = \begin{bmatrix}f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1\end{bmatrix}
s는 비대칭 계수(skew)로, 대부분의 현대 카메라에서 s = 0이다.
동차 좌표 표현:
\begin{bmatrix}u \\ v \\ 1\end{bmatrix} \sim \mathbf{K}\begin{bmatrix}X_c/Z_c \\ Y_c/Z_c \\ 1\end{bmatrix} = \mathbf{K}\frac{1}{Z_c}\begin{bmatrix}X_c \\ Y_c \\ Z_c\end{bmatrix}
4. 렌즈 왜곡
실제 렌즈는 이상적 핀홀 모델로부터 벗어나며, 주된 왜곡 성분은 방사 왜곡(radial distortion)과 접선 왜곡(tangential distortion)이다.
4.1 방사 왜곡
광축으로부터의 거리에 의존하는 왜곡이다.
\begin{bmatrix}\bar{x}_{\text{dist}} \\ \bar{y}_{\text{dist}}\end{bmatrix} = (1 + k_1 r^2 + k_2 r^4 + k_3 r^6)\begin{bmatrix}\bar{x} \\ \bar{y}\end{bmatrix}
여기서 r^2 = \bar{x}^2 + \bar{y}^2이고, k_1, k_2, k_3은 방사 왜곡 계수이다. k_1 > 0이면 통형(barrel) 왜곡, k_1 < 0이면 바늘방석(pincushion) 왜곡이다.
4.2 접선 왜곡
렌즈와 영상 센서의 비평행성에 의한 왜곡이다.
\bar{x}_{\text{dist}} = \bar{x} + [2p_1\bar{x}\bar{y} + p_2(r^2 + 2\bar{x}^2)]
\bar{y}_{\text{dist}} = \bar{y} + [p_1(r^2 + 2\bar{y}^2) + 2p_2\bar{x}\bar{y}]
5. 외부 파라미터(Extrinsic Parameters)
카메라 좌표계와 월드 좌표계 사이의 변환을 외부 파라미터라 한다.
\mathbf{P}_c = \mathbf{R}\mathbf{P}_w + \mathbf{t}
여기서 (\mathbf{R}, \mathbf{t})가 외부 파라미터이다.
6. 전체 투영 모델
3차원 월드 좌표에서 픽셀 좌표로의 변환:
\begin{bmatrix}u \\ v \\ 1\end{bmatrix} \sim \mathbf{K}[\mathbf{R} \; \mathbf{t}]\begin{bmatrix}X_w \\ Y_w \\ Z_w \\ 1\end{bmatrix}
\mathbf{P} = \mathbf{K}[\mathbf{R} \; \mathbf{t}]는 3 \times 4 투영 행렬(projection matrix)이다.
7. 역투영
픽셀 좌표 (u, v)가 주어졌을 때, 3차원 공간에서 해당 광선(ray)의 방향은 역으로 계산된다.
\mathbf{d}_c = \mathbf{K}^{-1}\begin{bmatrix}u \\ v \\ 1\end{bmatrix}
이 광선은 카메라 원점에서 출발하여 \mathbf{d}_c 방향으로 향한다. 단일 영상에서는 깊이 정보가 없어 3차원 점을 유일하게 결정할 수 없다(단안 영상의 모호성). 스테레오나 깊이 카메라로 추가 정보를 얻는다.
8. 카메라 캘리브레이션
내부 파라미터 \mathbf{K}와 왜곡 계수를 결정하는 과정이다. Zhang(2000)의 방법이 표준적이며, 알려진 패턴(체커보드, 원 격자)을 여러 시점에서 촬영하여 파라미터를 최대 가능도로 추정한다.
9. 로봇 공학에서의 응용
시각 서보잉(Visual Servoing): 카메라 영상의 특징 위치를 제어 입력으로 사용하여 로봇을 이동시킨다.
시각 SLAM: 카메라 관측을 기반으로 로봇 자세와 지도를 동시에 추정한다.
객체 6D 자세 추정: 영상의 특징점과 물체 모델의 매칭으로 물체의 3차원 자세를 추정한다.
10. 참고 문헌
- Hartley, R., & Zisserman, A. (2003). 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.
- Forsyth, D. A., & Ponce, J. (2011). Computer Vision: A Modern Approach (2nd ed.). Pearson.
version: 1.0