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 fx, fy와 principal point cx, cy.(optional : skew cf)
- Intrinsic Matrix와 Distortion Coefficients를 계산한다.
Focal Length
- Pinhole부터 이미지가 맺히는 Image plane까지의 수평거리를 의미한다.
- 이상적인 camera의 경우 fx=fy가 된다.
- 초점거리가 클수록 상이 맺히는 크기가 커진다.
- 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/2, cy=height/2 즉 image의 중심이 된다.
Camera Coordinate
- World Coordinate(절대좌표계) : (XW,YW,ZW)
- Camera Coordinate(카메라좌표계) : (XC,YC,ZC)
- Image Coordinate(이미지좌표계, 픽셀 좌표계) : (x,y) 또는 (u,v)
- Normalized Image Coordinate(정규 좌표계) : 초점거리가 1이 되도록 정규화. (u,v) 또는 (un,vn)
Image Normalization
- 실제로 존재하지 않지만 computer vision 해석을 위해 정의한 가상의 좌표계.
un=(u−cx)/fx
vn=(v−cy)/fy
- normalized image는 촬영한 카메라 종류에 independent 하다.
Distortion
- 빛이 렌즈를 통과하면서 굴절되는 과정에서 왜곡이 발생한다.
- 렌즈와 이미지센서의 관계에 의해 왜곡이 발생한다.
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]
이 때 ru2=un,u2+vn,u2.
u는 undistorded, d는 distorted를 의마한다.
-
k1,k2,k3,p1,p2의 값을 알아내면 Image를 Undistort할 수 있다.
-
OpenCV의 undistort함수 또는 initUndistortRectifyMap & remap 함수를 사용해 Image를 Undistort할 수 있다.
Extrinsic Calibration
- 자율주행 분야에서 extrinsic calibration을 사용하는 방법.
1. Sensor Fusion을 위한 정보로 활용. 각 센서의 좌표계가 다르기 때문에 이를 통합하기 위해 활용함.
- Perception Application을 위한 정보로 활용.
Vehicle Coordinate system (ISO8855)
이미지 출처
ret, rvec, tvec = cv.solvePnP(objpoints, imgpoints, cameraMatrix, distCoeffs)