Camera Calibration

haeryong·2023년 2월 2일
0

Camera Model


Camera Model 출처

Pinhole Camera Model


Pinhole Camera model 출처

물체에 맞고 난반사되는 빛을 포함한 모든 빛을 받아들이게 되면 형체를 알아볼 수 없는 이미지를 얻게 된다. 해결책 중 하나로 Pinhole을 이용해서 난반사 된 빛이 들어오지 못하도록 하는 방법이 있다.


Pinhole Camera model 출처

object와 pinhole 사이의 수평거리 x3, pinhole과 상이 맺히는 image plane 사이의 수평거리 f(focal length, 초점거리)라 할 때. 닮음 관계를 이용해 object의 크기(x1)를 알아낼 수 있다.


Projection Matrix 출처
object의 절대좌표계의 좌표와 Image plane 상의 object의 좌표는 위 식과 같고, 이는 s(scale factor), Intrinsic parameters, Extrinsic parameters에 의해 결정된다.

Fisheye Camera Model


Fisheye Camera model 출처

Weak Perspective Camera Model


perspective projection, weak perspective projection 출처


Camera Calibration : 카메라의 교유한 특성을 파악하는 과정.

  • Intrinsic : 렌즈와 이미지 센서와의 관계로부터 파생되는 특성.
  • Extrinsic : 카메라가 대상을 촬영한 시점의 위치와 pose에 관한 특성.

Intrinsic Calibration

  • focal length fxf_x, fyf_y와 principal point cxc_x, cyc_y.(optional : skew cf)
  • Intrinsic Matrix와 Distortion Coefficients를 계산한다.

Focal Length

  • Pinhole부터 이미지가 맺히는 Image plane까지의 수평거리를 의미한다.
  • 이상적인 camera의 경우 fx=fyf_x = f_y가 된다.
  • 초점거리가 클수록 상이 맺히는 크기가 커진다.
  • computer vision에서는 focal length를 Pixel 단위로 표현한다.
  • 광학에서는 focal length를 mm 단위로 표현한다.
  • 이미지 센서의 cell 크기가 0.1 mm이고, f = 500 pixel이라면 f = 50 mm으로 환산이 가능하다.

Principal Point

  • Pinhole Point에서 Image Plane에 내린 수선의 발.
  • 이상적인 경우 cx=width/2c_x = width/2, cy=height/2c_y = height/2 즉 image의 중심이 된다.

Camera Coordinate

  • World Coordinate(절대좌표계) : (XW,YW,ZW)(X_W, Y_W, Z_W)
  • Camera Coordinate(카메라좌표계) : (XC,YC,ZC)(X_C, Y_C, Z_C)
  • Image Coordinate(이미지좌표계, 픽셀 좌표계) : (x,y)(x, y) 또는 (u,v)(u, v)
  • Normalized Image Coordinate(정규 좌표계) : 초점거리가 1이 되도록 정규화. (u,v)(u, v) 또는 (un,vn)(u_n, v_n)

Image Normalization

  • 실제로 존재하지 않지만 computer vision 해석을 위해 정의한 가상의 좌표계.

un=(ucx)/fxu_n = (u-c_x)/f_x
vn=(vcy)/fyv_n = (v-c_y)/f_y

  • normalized image는 촬영한 카메라 종류에 independent 하다.

Distortion

    1. 빛이 렌즈를 통과하면서 굴절되는 과정에서 왜곡이 발생한다.
    1. 렌즈와 이미지센서의 관계에 의해 왜곡이 발생한다.

Radial distortion

  • 렌즈 왜곡의 대표적인 예. 렌즈 형상이 곡률을 가지는 구면이기 때문에 발생한다.
  • Principal Point에서 멀수록 왜곡이 크다.

radial distortion 출처

Tangential distortion

  • 렌즈와 이미지센서의 관계에 의해 발생하는 왜곡.
  • 렌즈와 이미지 센서의 수평이 맞지 않는 경우 발생한다.
  • 이미지 중심으로부터 멀수록 왜곡이 크다.

Perspective distortion

  • 보정이 불가능하다.
  • 3차원 공간을 2차원 공간으로 투영하면서 발생하는 왜곡.(원근감 손실)

Epipolar Geometry

  • 손실된 원근감을 복구하는데 2개 이상의 camera로 동시에 촬영한 이미지를 사용할 수 있다.


이미지 출처

Distortion Model

[un,dvn,d]=(1+k1ru2+k2ru4+k3ru6)[un,uvn,u]+[2p1un,uvn,u+p2(ru2+2un,u2)p1(ru2+2vu,n2)+2p2un,uvn,u]\begin{bmatrix} u_{n, d} \\ v_{n, d} \end{bmatrix}=(1+k_1r_u^2+k_2r_u^4+k_3r_u^6)\begin{bmatrix} u_{n, u} \\ v_{n, u} \end{bmatrix} + \begin{bmatrix} 2p_1u_{n,u}v_{n,u}+p_2(r_u^2+2u_{n,u}^2) \\ p_1(r_u^2 + 2v_{u,n}^2)+2p_2u_{n,u}v_{n,u} \end{bmatrix}
이 때 ru2=un,u2+vn,u2r_u^2=u_{n,u}^2+v_{n,u}^2.
u는 undistorded, d는 distorted를 의마한다.

  • k1,k2,k3,p1,p2k_1, k_2, k_3, p_1, p_2의 값을 알아내면 Image를 Undistort할 수 있다.

  • OpenCV의 undistort함수 또는 initUndistortRectifyMap & remap 함수를 사용해 Image를 Undistort할 수 있다.

Extrinsic Calibration

  • 자율주행 분야에서 extrinsic calibration을 사용하는 방법.
    1. Sensor Fusion을 위한 정보로 활용. 각 센서의 좌표계가 다르기 때문에 이를 통합하기 위해 활용함.
    1. Perception Application을 위한 정보로 활용.

Vehicle Coordinate system (ISO8855)

이미지 출처

ret, rvec, tvec = cv.solvePnP(objpoints, imgpoints, cameraMatrix, distCoeffs)

0개의 댓글