점 집합의 3D 위치와 카메라에 투영된 위치를 알고 있을 경우 카메라의 포즈를 구하는 문제를 말한다.

직접 선형 변환

$\mathbf{p} = (X, Y, Z, 1)^T$의 동차 좌표를 가지고 있는 3D 공간에서의 한 점이 이미지 $I_1$에서 $\mathbf{x}_i = (u_i, v_i, 1)^T$에 투영된다. 이 시점에서는 카메라 포즈 $\mathbf{R, t}$를 알 수 없다.

$$ \begin{equation} s\begin{bmatrix} u_1 \\ v_1 \\ 1 \end{bmatrix} = \begin{bmatrix} t_1 & t_2 & t_3 & t_4 \\ t_5 & t_6 & t_7 & t_8 \\ t_9 & t_{10} & t_{11} & t_{12} \\ t_{13} & t_{14} & t_{15} & t_{16} \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} \end{equation} $$

마지막 줄로 $s$ 를 제거하고 두 가지 제약 조건을 가져온다.

$$ \begin{aligned} u_i = \frac{t_1X + t_2Y + t_3Z + t_4}{t_9X + t_{10}Y + t_{11}Z + t_{12}}, && v_i = \frac{t_5X + t_6Y + t_7Z + t_8}{t_9X + t_{10}Y + t_{11}Z + t_{12}}, \end{aligned} $$

$\mathbf{T}$의 row vector를 정의하여 식을 간단히 할 수 있다. ($\mathbf{t}_1, \mathbf{t}_2 ,\mathbf{t}_3$ )

$$ \begin{equation} \begin{aligned} \mathbf{t}_1^T\mathbf{P} - \mathbf{t}_3^T\mathbf{P}u_1 &= 0 \\ \mathbf{t}_2^T\mathbf{P} - \mathbf{t}_3^T\mathbf{P}v_1 &= 0 \end{aligned} \end{equation} $$

$\mathbf{t}$는 결정되야하는 변수이며, $N$개의 특징점이 있다고 가정하면 다음과 같은 선형 방정식 시스템을 구성할 수 있다.

$$ \begin{equation} \begin{bmatrix} \mathbf{P}^T_1 & 0 & -u_1\mathbf{P}^T_1 \\ 0 & \mathbf{P}^T_1 & -v_1\mathbf{P}^T_1 \\ \vdots & \vdots & \vdots \\ \mathbf{P}^T_N & 0 & -u_N\mathbf{P}^T_N \\ 0 & \mathbf{P}^T_N & -v_N\mathbf{P}^T_N \\ \end{bmatrix} \begin{bmatrix} \mathbf{t}_1 \\ \mathbf{t}_2 \\ \mathbf{t}_3 \\ \end{bmatrix} = 0 \end{equation} $$

$\mathbf{T}$의 선형 솔루션은 적어도 6쌍의 매칭 포인트를 통해 달성할 수 있다. (미지수가 12개이기 때문) 6쌍 보다 많으면 SVD와 같은 방식으로 over-determined system에 대한 최소 제곱 솔루션을 구할 수 있다. $\mathbf{T}$ 행렬은 미지수로 직접 보고 상관관계를 무시했다. 즉 $\mathbf{R} \in SO(3)$로 인해 $SE(3)$에 충족하지 않을 수도 있다. 따라서 $3 \times 3$ 행렬 블록을 근사화하기 위해 최상의 회전 행렬을 찾아야 한다. 이것은 QR 분해에 의해 수행될 수 있거나 다음과 같이 계산 가능하다.

$$ \begin{equation} \mathbf{R} \leftarrow (\mathbf{RR}^T)^{-\frac{1}{2}}\mathbf{R} \end{equation} $$