6.146 투영 행렬과 핀홀 카메라 모델

핀홀 카메라 모델(pinhole camera model)은 3차원 세계 좌표를 2차원 이미지 좌표로 변환하는 가장 기본적인 투영 모델이며, 이 변환을 하나의 행렬로 표현한 것이 투영 행렬(projection matrix)이다. 본 절에서는 투영 행렬의 구조, 유도 과정, 그리고 선형대수학적 성질을 체계적으로 다룬다.

1. 세계 좌표에서 이미지 좌표로의 변환 과정

3차원 세계 좌표계(world frame)의 점 \mathbf{P}_w = [X_w, Y_w, Z_w]^\top이 이미지 평면의 픽셀 좌표 (u, v)로 변환되는 과정은 세 단계로 구성된다.

1단계: 외부 파라미터 변환 (세계 좌표 \to 카메라 좌표)

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

여기서 R \in SO(3)은 회전 행렬, \mathbf{t} \in \mathbb{R}^3는 병진 벡터이다. 동차 좌표로 표현하면 다음과 같다.

\begin{bmatrix} \mathbf{P}_c \\ 1 \end{bmatrix} = \begin{bmatrix} R & \mathbf{t} \\ \mathbf{0}^\top & 1 \end{bmatrix} \begin{bmatrix} \mathbf{P}_w \\ 1 \end{bmatrix}

2단계: 투시 투영 (카메라 좌표 \to 정규화 이미지 좌표)

\bar{x} = \frac{X_c}{Z_c}, \quad \bar{y} = \frac{Y_c}{Z_c}

3단계: 내부 파라미터 변환 (정규화 좌표 \to 픽셀 좌표)

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

2. 투영 행렬의 유도

위의 세 단계를 하나의 행렬 연산으로 통합하면 다음과 같다. 동차 좌표를 사용하여 비선형 투시 투영을 스케일 인수(scale factor)를 도입한 선형 관계로 표현한다.

\lambda \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K \begin{bmatrix} R & \mathbf{t} \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix}

여기서 \lambda = Z_c는 카메라 좌표계에서의 깊이 값이다. 투영 행렬 P는 다음과 같이 정의된다.

P = K \begin{bmatrix} R & \mathbf{t} \end{bmatrix}

P3 \times 4 행렬이며, 투영 관계는 다음과 같이 간결하게 표현된다.

\lambda \tilde{\mathbf{p}} = P \tilde{\mathbf{P}}_w

여기서 \tilde{\mathbf{p}} = [u, v, 1]^\top은 이미지 점의 동차 좌표, \tilde{\mathbf{P}}_w = [X_w, Y_w, Z_w, 1]^\top은 세계 점의 동차 좌표이다.

3. 투영 행렬의 구조

투영 행렬 P를 열 벡터로 분해하면 다음과 같다.

P = [\mathbf{p}_1, \mathbf{p}_2, \mathbf{p}_3, \mathbf{p}_4]

여기서 \mathbf{p}_i \in \mathbb{R}^3이다. 또한 P3 \times 3 부분 행렬과 나머지 열로 분할하면 다음과 같다.

P = [M \vert \mathbf{p}_4]

여기서 M = KR3 \times 3 행렬이다. K가 가역이고 R이 직교 행렬이므로, M도 가역이며 \det(M) \neq 0이다.

4. 카메라 중심의 결정

카메라 중심(camera center) \mathbf{C}는 투영 행렬의 영공간(null space)에 해당하는 점이다. 즉, 다음이 성립한다.

P \tilde{\mathbf{C}} = \mathbf{0}

P = [M \vert \mathbf{p}_4]에서 \tilde{\mathbf{C}} = [\mathbf{C}^\top, 1]^\top으로 놓으면 다음과 같다.

M \mathbf{C} + \mathbf{p}_4 = \mathbf{0}

따라서 카메라 중심은 다음과 같다.

\mathbf{C} = -M^{-1} \mathbf{p}_4

외부 파라미터로 표현하면 \mathbf{p}_4 = K\mathbf{t}이므로 다음과 같다.

\mathbf{C} = -R^{-1} K^{-1} K \mathbf{t} = -R^\top \mathbf{t}

이는 카메라 중심이 세계 좌표계에서 -R^\top \mathbf{t}에 위치함을 의미한다.

5. 투영 행렬의 자유도

투영 행렬 P3 \times 4 = 12개의 요소를 가지지만, 동차 좌표의 스케일 자유도에 의해 전체 스케일이 임의적이므로 독립적인 자유도는 11이다. 이를 분해하면 다음과 같다.

파라미터자유도
내부 파라미터 (f_x, f_y, c_x, c_y, s)5
회전 (R)3
병진 (\mathbf{t})3
합계11

6. P 행렬로부터 K, R, \mathbf{t}의 복원

투영 행렬 P가 주어졌을 때, 이를 K, R, \mathbf{t}로 분해하는 것이 가능하다. M = KR에 RQ 분해(RQ decomposition)를 적용한다. RQ 분해는 M을 상삼각 행렬 K'와 직교 행렬 R'의 곱으로 분해하는 것이다.

M = K' R'

K'의 대각 요소가 모두 양수가 되도록 부호를 조정하면, K = K', R = R'이 된다. 병진 벡터는 다음과 같이 복원한다.

\mathbf{t} = K^{-1} \mathbf{p}_4

RQ 분해는 QR 분해를 변형하여 수행한다. M의 행과 열을 뒤집은 행렬 \hat{M}에 QR 분해를 적용한 후, 결과를 다시 뒤집으면 RQ 분해를 얻는다.

7. 정규화 투영 행렬

카메라 좌표계와 세계 좌표계가 일치하는 경우(R = I, \mathbf{t} = \mathbf{0}), 투영 행렬은 다음과 같이 단순화된다.

P = K [I \vert \mathbf{0}]

내부 파라미터도 이상적인 경우(K = I)에는 정규 투영 행렬(canonical projection matrix)이 된다.

P_0 = [I \vert \mathbf{0}] = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix}

이 행렬은 \mathbb{R}^4에서 \mathbb{R}^3으로의 사영으로, 동차 4차원 좌표의 첫 세 성분을 선택하는 역할을 한다.

8. 투영의 사영 기하학적 해석

투영 행렬 P는 사영 공간 \mathbb{P}^3에서 \mathbb{P}^2로의 사영 사상(projective map)을 정의한다. 사영 기하학의 관점에서, P는 다음과 같은 성질을 만족한다.

직선의 보존: 3차원 공간의 직선은 이미지 평면의 직선으로 투영된다. 세계 좌표에서 직선 위의 두 점 \mathbf{A}, \mathbf{B}가 주어지면, 이미지에서의 직선은 다음과 같다.

\mathbf{l} = (P\mathbf{A}) \times (P\mathbf{B})

여기서 \times는 외적(cross product)이다.

평면의 투영: 세계 좌표의 평면 \boldsymbol{\pi} = [\mathbf{n}^\top, d]^\top은 이미지에서 직선으로 투영되지 않고, 투영 행렬과 다음의 관계를 가진다. 평면 위의 모든 점은 이미지 위의 영역으로 투영된다.

반투영(back-projection): 이미지 점 \tilde{\mathbf{p}}를 세계 좌표로 역투영하면, 카메라 중심 \mathbf{C}를 지나는 광선(ray)이 된다.

\mathbf{P}(\lambda) = \mathbf{C} + \lambda M^{-1} \tilde{\mathbf{p}}, \quad \lambda \in \mathbb{R}

M^{-1} \tilde{\mathbf{p}}는 광선의 방향 벡터를 나타낸다.

9. 유한 및 무한 투영 행렬

투영 행렬의 3 \times 3 부분 행렬 M이 가역인 경우를 유한 카메라(finite camera)라 하고, M이 특이(singular)인 경우를 무한 카메라(infinite camera)라 한다.

유한 카메라에서 \text{rank}(P) = 3이며, 영공간의 차원은 1이다. 이 영공간은 카메라 중심에 해당하는 단일 점을 정의한다.

아핀 카메라(affine camera)는 투영 행렬의 세 번째 행이 [0, 0, 0, 1]인 특수한 경우이며, 직교 투영(orthographic projection)과 약투시 투영(weak perspective projection)을 포함한다.

P_{\text{affine}} = \begin{bmatrix} p_{11} & p_{12} & p_{13} & p_{14} \\ p_{21} & p_{22} & p_{23} & p_{24} \\ 0 & 0 & 0 & 1 \end{bmatrix}

10. 투영 행렬의 직접 선형 변환 추정

N개의 3차원-2차원 점 대응 (\mathbf{P}_i, \mathbf{p}_i)가 주어졌을 때, 투영 행렬 P를 추정하는 직접 선형 변환(Direct Linear Transform, DLT) 방법을 적용할 수 있다. 각 대응으로부터 다음의 두 방정식이 도출된다.

\begin{bmatrix} \mathbf{0}^\top & -\tilde{\mathbf{P}}_i^\top & v_i \tilde{\mathbf{P}}_i^\top \\ \tilde{\mathbf{P}}_i^\top & \mathbf{0}^\top & -u_i \tilde{\mathbf{P}}_i^\top \end{bmatrix} \begin{bmatrix} \mathbf{p}_1^\top \\ \mathbf{p}_2^\top \\ \mathbf{p}_3^\top \end{bmatrix} = \mathbf{0}

여기서 \mathbf{p}_j^\topPj번째 행이다. N개의 대응을 적층하면 2N \times 12 크기의 행렬 A를 구성한다.

A \mathbf{p} = \mathbf{0}

\mathbf{p}P의 12개 요소를 벡터화한 것이다. \lVert \mathbf{p} \rVert = 1 조건 하에서 \lVert A\mathbf{p} \rVert를 최소화하는 해는 A의 특이값 분해(SVD)에서 최소 특이값에 대응하는 오른쪽 특이 벡터이다. 최소 N = 6개의 대응이 필요하지만(5.5개의 제약 조건이 필요하므로), 실제로는 과결정 시스템으로 구성하여 잡음에 대한 강건성을 높인다.


참고 문헌

  • Hartley, R., & Zisserman, A. (2004). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge University Press.
  • Ma, Y., Soatto, S., Kosecka, J., & Sastry, S. S. (2004). An Invitation to 3-D Vision. Springer.
  • Forsyth, D. A., & Ponce, J. (2012). Computer Vision: A Modern Approach (2nd ed.). Pearson.
  • Szeliski, R. (2022). Computer Vision: Algorithms and Applications (2nd ed.). Springer.

v 0.1