좌표 정규화

투영

투영


카메라 parameter를 알고 있다고 가정하고, normalized 좌표는 다음 계산식을 통해 영상 좌표로 변환된다.

$$ x_{img} = x_{norm}*f_x + c_x \newline y_{img} = y_{norm}*f_y + c_y $$

반대로, 식을 바꿔 image plane 좌표 또한 normalized 좌표로 변환될 수 있다.

$$ x_{norm} = (x_{img}-c_x)/f_x \newline y_{norm} = (y_{img}-c_y)/f_y $$

fx, fy는 focal length, 초점거리, cx,cy는 principal point 즉, 주점이라고 부른다. 이 요소들을 3x3 행렬로 만든것을 camera matrix 혹은 intrinsic paramter라고 한다.

$$ \begin{bmatrix} f_x & 0 & c_x \newline 0 & f_y & c_y \newline 0 & 0 & 1 \end{bmatrix} $$

3D-2D Projection


위에서 설명한 좌표계를 바탕으로 3차원의 월드 좌표가 2차원의 이미지 평면으로 projection 되는것을 아래와 같이 표현할 수 있다.

$$ s {\begin{bmatrix} u \newline v \newline 1 \end{bmatrix}} = \begin{bmatrix} f_x & 0 & c_x \newline 0 & f_y & c_y \newline 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} r_{11} & r_{12} & r_{13} & t_{1}\newline r_{21} & r_{22} & r_{23} & t_{2}\newline r_{31} & r_{32} & r_{33} & t_{3}\ \end{bmatrix}\begin{bmatrix} X \newline Y \newline Z \newline 1 \end{bmatrix} \newline(s = scale factor) $$

위의 식을 간단히 표현하면 아래와 같다

$$ s {\begin{bmatrix} u \newline v \newline 1 \end{bmatrix}} = K[R | t]\begin{bmatrix} X \newline Y \newline Z \newline 1 \end{bmatrix} $$

여기서 K 행렬을 카메라 내부 파라미터인 intrinsic parameter 라고 부르고,
[R|t]를 행렬 카메라 외부 파라미터인 extrinsic parameter라고 부른다.

내부 파라미터 (intrinsic)


내부 파라미터는 카메라 focal length 를 나타내는 fx,fy  principal point를 나타내는 cx,cy 로 구성된다. 초점 거리는 렌즈의 중심과 이미지 센서 (CMOS)의 중심간의 거리를 뜻한다. 카메라 캘리브레이션에서 사용하는 초점 거리의 단위(unit)는 pixel 단위로 표현된다.

$$ Fx = f_x * W/w \newline Fy = f_y * H/h \newline $$ (F : mm단위, f : pixel 단위, W,H : 이미지 센서 너비,높이 , w,h : 이미지 센서 픽셀 너비,높이)

위의 관계식을 통해 실제 초점거리를 구할 수 있다.

Example

focal length 가 4.2mm 이고 image sensor의 크기가 1/2.9’ 일때, pixel 단위는?

1/2.9' 이미지 센서
- W: 4.96mm, H: 3.72mm
- w: 728pix, h: 544pix

f_x = (4.2mm * 728pix) / 4.96mm -> 약, 616pix
f_y = (4.2mm * 544pix) / 3.72mm -> 약, 614pix

주점을 나타내는 cx, cy 는 렌즈의 중심점이 이미지 센서로 투영된 점을 뜻한다. 언뜻 영상의 중심점으로 해석될 수 있으나, 카메라 조립 과정중 이미지 센서와 렌즈가 수평을 이루지 못하면, 영상 중심점과 주점은 서로 다른 값을 가질 수 있다. 이 외에 비대칭 계수(skew coefficients)가 있지만, 무시할 만큼 작은 값이고 현대의 카메라에서는 skew가 없기 때문에 고려하지 않는다.

외부 파라미터 (extrinsic)

카메라 좌표계와 월드 좌표계 사이의 변환 관계를 나타내는 파라미터로 두 가지 행렬로 구성된다.

  • Rotation matrix, 회전
  • Translation matrix, 평행이동

intrinsic parameter와는 달리 카메라의 position, posture의 변화에 따라 달라지는 값이므로, 고유한 값을 갖지 않는다.