Camera Calibration

Stereo Reconstruction

Stereo Reconstruction은 두 장 이상의 2D 이미지를 이용해서 이를 3D상에서 재건하는 것인데, 단계는 다음과 같다.

  1. 카메라 변수 찾기
  2. 이미지 바로잡기
  3. 차이 계산
  4. 깊이 예측

가장 간단한 케이스는 평행한 두 지점에서 찍힌 이미지를 이용해 재건하는 것이다. 이미지 $I’$가 이미지 $I$보다 $x$축으로 $T$만큼 이동했다면, $R = I$(identity)이고 $t=(T, 0, 0)$이 된다. 따라서

이 된다.

Stereo Image Rectification

두 카메라가 평행하면 한 좌표를 보는 두 이미지 평면이 평행하지 않을 수 있는데, 이렇게 얻은 이미지 평면을 두 카메라를 잇는 선에 평행한 평면에 옮겨주는 것을 image rectification이라고 한다. 이것을 하고 나면 위에서 쓴 essential 행렬을 사용할 수 있다.

Homography

3D평면에 있는 점을 image 평면으로 변환시킬 때 사용하는 행렬을 homography ($H$)라고 한다.

이 두 시점 변환에 translation이 없으므로 rotation만이 존재하게 되고, $P_r = RP_l$라고 쓸 수 있다. ($P_r$은 첫번째, $P_l$은 두번째 각도의 projection 행렬) $P_l = K[I\mid0]$이므로

이고, $P_r = K[R\mid0]$이므로

이다. 따라서, $x_r = KRK^{-1}x_l$이고, $H = KRK^{-1}$이 된다.

이미지의 원점이 같은 평면의 다른 각도에서 촬영되었을 때만 homography가 서로 연관될 수 있다. (translation이 없어야 한다.) 그리고, 같은 카메라로 촬영되었을 때만 연관될 수 있다.

만약 rotation 행렬 $R$을 모른다면, $x_r^TFx_l = 0$에서 $F$를 알아낼 때 썼던 방법을 이용해 찾을 수 있다. 사실, $K^{-T}K^{-1}$의 가장 작은 eigenvalue에 대응하는 eigenvector를 찾으면 된다.

2D Checkerboard Pattern

Source

2D 체스판을 생각해 보자. 체스판의 모든 좌표는 하나의 평면에 있다. 따라서, 모든 점의 $z$좌표는 모두 $0$이다.

($(u, v, 1)$은 image plane위의 점이고, $(x, y, 1)$은 체스판 위의 점이다.)

$H$는 변수가 8개이므로, 8개의 식을 알면 풀 수 있다. 각 점들은 2개의 관계식을 주기 때문에, 우리는 4개의 점만 알면 $H$를 알아낼 수 있다.


Terms

rectify : 바로잡기
disparity : 차이, 이격
anaglyph : 애너글리프. 인간의 두 눈의 시차를 이용하여 3D영상을 보는 것처럼 하는 것.
tripod : 삼각대