[Perception Application] 2. Camera Intrinsic Calibration

happy_quokka·2024년 1월 10일
0

자율주행 Perception

목록 보기
13/19

Camera calibration

  • 카메라가 가지고 있는 고유한 특성을 파악하는 과정
  • 카메라는 camera projection matrix에 의해 2가지 종류의 고유한 특성을 가진다
    • intrinsic : 카메라의 내부적인 특성(렌즈, 이미지 센서와의 관계로부터 파생되는 초점거리 등)
    • extrinsic : 카메라가 대상을 촬영했을 당시의 위치와 자세에 관한 특성

intrinsic

  • 동일한 위치에서 서로 다른 카메라로 동일한 피사체를 촬영하면 그 결과가 다르다
  • 초점거리가 클수록 피사체를 크게 촬영할 수 있다
    • 초점거리 : 이미지 평면과 카메라 렌즈 사이의 거리

extrinsic

  • 같은 카메라로 서로 다른 위치에서 동일한 피사체를 촬영하면 그 결과가 다르다
  • 거리가 가까울수록 피사체를 크게 촬영할 수 있다


Intrinsic calibration

  • Intrinsic Calibration은 초점거리 (fx,fyf_x, f_y)와 주점(cx,cyc_x, c_y)을 의미한다
  • 초점 거리 : focal length
  • 주점 : principal point, center point

초점 거리 (focal length)

  • pinhole camera model에서 말하는 초점거리는 pinhole로부터 이미지가 맺히는 벽까지의 거리를 의미한다
  • 즉, 카메라 렌즈 중심에서 이미지 센서까지의 거리를 의미한다
  • 초점거리, 렌즈 초점이 잘 맞아야 이미지가 선명하게 찍힌다
  • 이상적인 카메라는 fx=fyf_x = f_y 이다

  • 초점 거리에 따라 피사체를 축소, 확대한 것과 같이 촬영할 수 있다
  • 카메라에서는 초점거리를 실제 물리 단위인 mm로 표현한다

    • 이미지 센서(CCD, CMOS)와 렌즈 중심과의 거리
  • 하지만 computer vision에서 초점거리는 이미지 센서의 cell 크기에 대한 상대적인 pixel 단위로 표현한다

    • 이미지 센서 cell의 크기가 0.1mm이고 초점거리 f=500(pixel)이라면 이미지 센서와 렌즈 중심과의 거리는 cell 크기의 500(pixel)배 = 50mm를 의미한다
  • 이미지의 cell 크기는 변하지 않는다. 따라서 이미지 해상도에 따라 초점거리가 달라지기도 한다

    • 예를들어
    • 100x100 cell size(0.1mm)
    • 100x100 image 해상도
      -> 1x1 cell이 하나의 pixel을 표현한다
      -> 따라서 0.1mm x focal length(pixel) = focal length(mm)
    • 100x100 cell size(0.1mm)
    • 50x50 image 해상도
      -> 2x2 cell이 하나의 pixel을 표현한다
      -> 따라서 0.2mm x focal_length(pixel) = focal_length(mm)
      => 물리적인 초점거리는 동일하기 때문에 pixel 단위의 초점거리는 절반으로 줄어든다

주점 (principal point)

  • 주점은 렌즈의 중심이 이미지 센서에 직교하는 위치를 의미한다
  • 이상적으로 cx=width2,cy=height2c_x = \frac{width}{2}, c_y = \frac{height}{2} 이지만 카메라 제조 공정에서 발생하는 다양한 이슈로 일치하지 않는 경우가 있다
  • 주점과 이미지 중심점은 다른 의미이다

intrinsic parameter

  • intrinsic calibration은 카메라의 intrinsic에 해당하는 정보를 파악하는 과정이고 그 결과 intrinsic parameter를 얻을 수 있다
intrinsic=[fxskew_cfxcx0fycy001]intrinsic = \begin{bmatrix}f_x & skew\_cf_x & c_x \\ 0&f_y&c_y\\0&0&1 \end{bmatrix}
  • fx,fyf_x, f_y : focal length
  • cx,cyc_x, c_y : principal point
  • skew_cfxskew\_cf_x
    • image의 비대칭 계수 (skew coefficient)
    • 이미지 센서의 cell array의 y축이 기울어진 정도를 의미한다
    • 카메라 제조 과정 발생하는 문제인데 요즘은 발생하는 일이 드물다
    • 따라서 0으로 사용하는 경우가 많다

카메라 좌표계

  • 3차원 공간에 존재하는 한 물체가 2차원 이미지 공간에 투영되는 과정을 설명하려면 좌표계가 정의되어야 한다
  • computer vision에서는 4개의 좌표계를 사용한다
    • world coordinate : XW,YW,ZWX_W, Y_W, Z_W
    • camera coordinate : XC,YC,ZCX_C, Y_C, Z_C
    • image coordinate : u,vu, v 또는 x,yx, y
    • normalized image coordinate : un,vnu_n, v_n

world coordinate

  • 우리가 살고 있는 3차원 공간에 존재하는 좌표계
  • 임의의 한점을 기준으로 좌표계를 설정할 수 있다
  • 월드 좌표계를 기준으로 어떤 물체의 위치를 표현할 수 있다
    : PW=(XWO,YWO,ZWO)P_W = (X_{WO}, Y_{WO}, Z_{WO})
  • 월드 좌표계를 기준으로 카메라의 위치를 표현할 수 있다

camera coordinate

  • 카메라를 기준으로 하는 좌표계
  • 월드 좌표계 상에 존재한다
  • ZCZ_C : 카메라 렌즈가 바라보는 방향
  • XCX_C : 카메라 아래쪽 방향
  • YCY_C : 카메라 오른쪽 방향
  • 카메라 좌표계를 월드 좌표계로 변환할 때 ZCZ_CXWX_W로 변환한다

image coordinate

  • 실제 이미지로 표출되는 데이터를 표현하는 좌표계
    카메라 원점으로부터 초점거리 만큼 떨어져있는 이미지 평면
  • 원점 : 이미지의 왼쪽 상단
  • xx 또는 uu : column, 이미지의 오른쪽 방향
  • yy 또는 vv : row, 이미지의 아래쪽 방향

normalized image coordinate

  • 정규 이미지 좌표계
  • 실제로 존재하지 않는 좌표계로 computer vision에서 해석을 위해 정의한 가상의 좌표계이다
  • 초점거리를 1로 정규화한 가상의 이미지 좌표계 -> 초점거리에 대한 영향을 제거한다

normalized image coordinate와 image coordinate의 변환 관계

  • 카메라의 intrinsic calibration 정보를 알면 즉, intrinsic parameter(f,cf, c)를 알면 이미지 좌표계를 정규 이미지 좌표계로 변환이 가능하다
  • 반대의 경우도 가능하다
  • x,yx, y : 이미지 좌표계
  • u,vu, v : 정규 이미지 좌표계
[xy1]=[fx0cx0fycy001][uv1]\begin{bmatrix}x\\y\\1 \end{bmatrix}= \begin{bmatrix}f_x & 0 & c_x \\ 0&f_y&c_y\\0&0&1 \end{bmatrix} \begin{bmatrix} u\\v\\1 \end{bmatrix}
x=ufx+cxx = uf_x+ c_x
y=vfy+cyy = vf_y + c_y
u=xcxfxu = \frac{x - c_x}{f_x}
v=ycyfyv = \frac{y - c_y}{f_y}

0개의 댓글