[MVG] Lecture 5-1 ~ 5-2: Camera models and calibration
Camera models and calibration
Learning Outcomes
What is a Camera?
카메라 모델
카메라 모델
- 중심 사영(Central Projection) : 한 점에서 모든 광선이 나와서 평면에 맺히는 방식입니다.
- Finite Centre(유한한 중심) : 카메라의 중심이 유한한 위치에 존재하며 일반적인 projective 카메라가 이에 해당합니다.
- Centre at infinity (무한대에 있는 중심) : 카메라의 중심이 무한대에 위치한 경우이며 affine 카메라가 이에 해당합니다. 원근투영이 적용되지 않습니다.
기본적인 pinhole모델
- Image plane은 x,y평면에 평행합니다.
- projection의 중심 C를 유클리드 좌표계의 원점이라고 합니다. 또한 C와 p사이의 실제 거리는 초점거리 f가 됩니다.
오른쪽 그림의 두 삼각형의 닮음을 이용하면 이미지 평면에 사영된 포인트의 좌표는 $({fX\over z}, {fY\over z}, f)$가 됩니다. 하지만 3D에서 2D로의 사영이므로 세번째 좌표는 무시할 수 있게 됩니다.

용어들
기존에 유클리드 좌표계를 homogeneous 좌표계로 변환한다면
- 3d point $\vec X$ : $(X, Y, Z) \to (X, Y, Z, 1)$
- 2d point $\vec x$ : $({fx\over z}, {fx\over z}) \to (fx, fy, z)$
- 이러한 3d point에서 2d point로의 변환을 matrix 곱의 형태로 나타낸다면 $\vec x = P\vec X$입니다.
- 이때 $P$는 $\begin{bmatrix} {f} & 0 & 0&0 \ 0&f&0&0\0&0&1&0 \end{bmatrix} = \begin{bmatrix} {f} & 0 & 0 \ 0&f&0\0&0&1 \end{bmatrix}\begin{bmatrix} {1} & 0 & 0&0 \ 0&1&0&0\0&0&1&0 \end{bmatrix}$의 형태로 나타낼 수 있습니다.
- 실제 3d point가 사영되었을때 원점은 principal point가 아닐 수도 있고 그것은 정의하기 나름입니다. 이러한 점을 보상하기 위해 2d 이미지의 원점과 principal plane의 차이로 $p_x, p_y$를 정의하고 $P$ matrix에 추가합니다.
- camera to image의 선형변환을 나타내는 matrix를 calibration matrix 혹은 intrinsic matrix라고 부릅니다.
- 지금 까지는 $X_{cam}$에서 이미지 평면으로의 사영을 알아보았습니다. 하지만 일반적으로 3d point는 world 좌표계라는 카메라 좌표계와는 다른 유클리드 좌표계로 표현됩니다.
world 좌표계에서 카메라 좌표계로의 변환은 $[R t]$라는 회전과 평행이동의 특성을 가지는 강체 변환입니다.
카메라 좌표계의 중심을 world 좌표계를 기준으로 $C$로 나타낼 수 있습니다.
- $X_{cam} = \begin{bmatrix} R&-RC\0&1\end{bmatrix}X_{world}$로 표현할 수 있습니다. 이때 모든 좌표는 homogeneous 좌표계로 표현되므로 $R$은 회전변환을 나타내고 $-RC$는 평행이동을 나타낸다고 볼 수 있습니다.
$x_{image} = K\begin{bmatrix}I 0 \end{bmatrix}\begin{bmatrix}R&-RC\0&1 \end{bmatrix}X_{world}$입니다. 이떄 $x_{image} = K\begin{bmatrix}R&-RC \end{bmatrix}X_{world}$ 로 나타낼 수 있습니다. $P = KR\begin{bmatrix}I -C \end{bmatrix}$로 표현할때 $\begin{bmatrix} R -RC \end{bmatrix}$를 extrinsic matrix라고 합니다. 이때 $P$는 9의 자유도를 가지게 됩니다.
- Rotation matrix $R$은 yaw, pitch, roll (YPR)의 Z,Y,X축 각도변환 회전행렬을 순서대로 적용한 행렬입니다.
- 2D space에서의 회전행렬은 yaw 변환밖에 없기 떄문에 1의 자유도를 가지고 3D space에서의 회전행렬은 3의 자유도를 가집니다.
- Orthonormal한 회전행렬의 특성 덕분에 다음과 같은 특성을 가지게 됩니다.
- Intrinsic matrix에 대해 더 자세하게 살펴본다면 x축의 초점거리과 y축의 초점거리는 다를 수 있습니다. 따라서 이미지 pixel은 정사각형이 아닐 수 있고 심지어 skew 될 수 도 있습니다. 이러한 x축에 대한 skew값을 파라미터 s로 나타낼 수 있습니다.
- 결론적으로 projection matrix $P$는 11의 자유도를 가지게 됩니다.
- 또한 pinhole 카메라 모델은 finite projective camera model이고 $P = KR[I|-C] = M[I|M^{-1}P_4] =$$\begin{bmatrix} P_1&P_2&P_3&P_4 \end{bmatrix}$ 로 나타낼 수 있습니다. 이떄 $C$값이 존재해야 하므로 3 by 3 matrix인 $M(KR)$ 은 non singular합니다.

- projection matrix $P$는 rank 3이고 Null space에 속하는 4차원 벡터는 카메라의 중심을 의미합니다. 이 카메라 중심은 사영공간에서는 존재하지만 이미지 평면에서의 대응점이 존재하지 않습니다. $PC = 0$
- 증명
- 사영공간에서의 점 $A$와 $C$사이의 점 $X$를 이미지 평면에 사영시킬때 이 점 $X$를 사영시킨 점과 $A$를 사영시킨 점은 동일합니다. 따라서 $PC = 0$
카메라 projection matrix $P = [\vec p_1,\vec p_2, \vec p_3,\vec p_4]$라고 할때 각 $\vec p_1, \vec p_2, \vec p_3$는 world 좌표계에서 x, y, z축의 무한대의 점이 이미지 plane에 사영된 값과 같습니다.
EX) : $[\vec p_1,\vec p_2, \vec p_3,\vec p_4]\begin{bmatrix} 0\0\1\0\end{bmatrix} = p_3$
$\vec p_4$는 $\begin{bmatrix} 0\0\0\1 \end{bmatrix}$인 world 좌표계의 원점이 이미지 평면으로 사영된 값입니다.
- $P$ matrix의 row vector를 볼때 각 row는 특정 Plane을 나타낼 수 있습니다.
- $X$를 principal plane 위의 점이라고 생각할때 카메라 센터 $C$와 $X$사이에 선을 그으면 이미지 평면에서의 무한대의 점에서 만나게 됩니다. 따라서$\begin{bmatrix} P_1^T\P_2^T\P_3^T \end{bmatrix}X = \begin{bmatrix} X\Y\0\end{bmatrix}$입니다. 이때 항상 $P_3^TX = 0$이므로 $P_3$는 principal plane을 의미하게 됩니다.
- $PX = (x, 0, w)^T$일때 $(x, 0, w)^T$는 이미지 평면에서 $y=0$인 선이고 $PC = 0$이므로 그 선과 카메라 원점을 지나는 평면 $p_2$는 $P_2^TX = 0$의 식으로 나타낼 수 있습니다.
- Principal axis는 principal plane($P_3)$에 normal vecotor이므로 $m^3$vector입니다. 하지만 이 $m^3$벡터의 방향이 카메라의 방향인지 카메라 반대방향인지 모르기 때문에 $det(M)$을 구하여 방향을 지정해 줍니다.
- $det(M)$이 양수이면 오른손 좌표계, 음수이면 왼손 좌표계입니다. 이때$det(M)\vec m^3$는 항상 카메라의 방향을 띄게 됩니다.
Summary
Action of a Projective Camera on Points
- forward projection : 앞서 본 일반적인 projective camera는 3D에서 2D로의 매핑을 나타냈습니다. 3차원에서의 무한대의 점은 2차원 상에서 vanishing point로 표현되며 이는 오직 3 by 3 matrix인 $M$의 영향을 받습니다.
- backward projection : projection matrix $P$는 3 by 4 matrix이므로 non invertible하고 따라서 관측된 이미지 상의 $x$를 통해 원본 $X$의 정확한 위치를 복원할 수 는 없습니다. 하지만$X$는 $C$와 $x$를 이은 선 위에 존재하므로 $X(\lambda) = P^+x + \lambda C$로 나타낼 수 있습니다. ($P^+$ = pesudo inverse)
- finite camera center일때 $M$은 Invertible하고 $\begin{bmatrix} M^{-1}x\0 \end{bmatrix}$은 무한대 방향의 ideal한 점(방향)을 나타내게 됩니다. 또한 Camera center는 $\begin{bmatrix} -M^{-1}p_4\1 \end{bmatrix}$이므로 카메라 원점 $C$로부터 $M^{-1}x$방향에 있는 점을 표현 할 수 있습니다.
- $X$ : 3d point
- $C$ : camera center
- $P\vec X = \vec x = w(x, y, 1)^T$일때 $P^{3T}\vec X=w$입니다. 이때 $det(M)$은 $m3$가 카메라의 방향을 향하도록 해주고 $m^3$와 $X-C$의 내적은 $w$이므로 depth를 내적으로 표현할 수 있게 됩니다.
Decomposition of the camera matrix
| 이제부터 카메라 matrix $P$를 $KR[I | -RC]$로 변환하는 법을 알아보겠습니다. |
camera centre $C$ : $P$ matrix의 각 row vector는 두개의 axis plane과 하나의 principal plane을 나타내고 이 세 평면의 접점이 카메라 센터 이므로 $P$를 SVD를 통해 나누고 $\sum$의 singular value를 구하므로써 $C$를 구할 수 있습니다.
$M = KR$이고 $K$가 upper triangle matrix이기 때문에 RQ decompostion을 통해 분해하여 $M = RQ = KR$로 나타낼 수 있습니다.
이때 $MR^T=K$이고 $K = \begin{bmatrix}&&\0&&*\0&0&1 \end{bmatrix}$이기 때문에 4개의 equation이 나오게 되고 Rotation matrix는 3개의 자유도를 가지기 때문에 해를 확정할 수 있게 됩니다.
camera 는 필연적으로 projective하며 3차원에서 2차원으로 매핑시킨다.
Affine camera : cameras at infinity
카메라 중심이 무한대의 평면 위에 있다는 점을 확인할 수 있는 2가지 방법
- 카메라 센터는 $P$의 null space이므로 $(\vec d, 0)$으로 표현할 수 있고$M\vec d = 0$을 만족하므로 $d$는 $M$의 null vector이다.
- $P$의 세번째 row는 카메라 센터가 존재하는 principal plane인데 (0,0,0,1)이므로 무한대의 평면을 의미한다.

Affine camera의 특이한 점은 3차원에 2차원으로 투영해주는 3 by 4 matrix에서 세번째 column이 0이고 orthographic projection 이 이루어 진다는 점입니다.
affine camera에서는 왜곡이 없기 때문에 $p_x, p_y$를 관습적으로 0으로 두는 경향이 있습니다.
- 따라서 affine camera matrix는 8의 자유도를 가집니다.
- instrinsic에서 3, rotation에서3, traslation에서
왜 rotation에서 3인가?
$r^{1T},r^{2T},r^{3T}$가 외적관계로 dependent하기 때문에 $r^{1T},r^{2T}$가 결정되기 위해 $r^{3T}$가 결정되어야 함
- instrinsic에서 3, rotation에서3, traslation에서
- $P_A$는 3의 rank를 가지는 $P_p$와 달리 2의 rank를 가지게 됩니다.
Affine camera의 특징
- 3차원 상의 무한대점이 2차원의 무한대점에 매핑됩니다. 3rd row가 $(0,0,0,1)$이기 때문입니다.
- 3차원에서 평행한 두선이 사영 후에도 평행을 유지합니다. affine 특성을 유지합니다. 원근 왜곡이 없습니다.
Orthographic projection
- 카메라 캘리브레이션 matrix가 identity matrix입니다. (스케일링 효과가 없습니다)
- depth정보를 없앱니다.
- 카메라센터가 infinity에 있습니다.
- instrinsic parameter가 없으므로 5의 자유도를 가집니다.
- $P$ matrix의 마지막 row는 항상 $(0,0,0,1)$입니다.






















































