카테고리 없음

OpenCV Calibration parameter 이해하기

DualQuaternion 2023. 8. 23. 11:13

opencv를 이용한 작업을 하나 진행 중인데 camera calibration parameter가 잘 이해가 안되어서 공부

 

https://docs.opencv.org/4.x/d4/d94/tutorial_camera_calibration.html

 

OpenCV: Camera calibration With OpenCV

Prev Tutorial: Camera calibration with square chessboard Next Tutorial: Real Time pose estimation of a textured object Original author Bernát Gábor Compatibility OpenCV >= 4.0 Cameras have been around for a long-long time. However, with the introduction

docs.opencv.org

 

원문은 위와 같다.

 

요지만 정리해보자면, 

 

핀홀 카메라는 디스토션이라는 단점이 있다. 그런데 이 디스토션은 상수로 처리되어서 한번 캘리브레이션 작업을 거친 후 사용하면 보정이 가능하다.

 

 

I. 디스토션 파라미터

 디스토션을 위해 OpenCV는 radial factor와 tangential factor를 고려한다.

 

  1. radial factor는 다음 식을 사용한다. 

 그래서 x,y 좌표계 상의 변형되지 않은 포인트는 변형된 이미지 상에서 x_distorted, y_distorted 상에 위치하게 된다. radial distortion의 존재는 barrel 혹은 fish-eye effect의 형태를 제공한다.

 

 2. Tangential factor는 렌즈가 이미지 평면에 정렬되지 않을 상태로 이미지를 촬영할 때 발생한다. 이는 다음 식으로 보정된다.

지금까지 OpenCV는 다섯개의 distortion parameter를 생성하였고, 그 형상은 다음과 같다. 

 

II. 카메라 행렬

자 그럼 이제 어느정도 익숙한 아래 식을 사용할 차례다.

w는 호모그라피 코디네이트 시스템을 설명하기 위해서 쓰였다. 미지의 파라미터 는 두가지다. 

  (f_x, f_y)는 카메라 포컬 길이이다.

  (c_x, c_y) 는 픽셀 좌표계에서 표현된 중심이다. 

 

위 행렬은 카메라 행렬이라고 부르는 4개의 파라미터로 구성된다. 디스토션 coefficients들은 카메라의 해상도에 관계없이 동일하지만, 그 값들은 calibrated resolution으로 부터 제공되는 현재 resolution을 따라서  scaled되어야 한다. 

 

III. undistorted image 생성해보기

 

이 부분은 

https://darkpgmr.tistory.com/31

 

카메라 왜곡보정 - 이론 및 실제

저번 카메라 캘리브레이션에 대한 포스팅에 이어 오늘은 카메라 렌즈 왜곡 보정에 대해 이론에서 실제까지 전반적인 내용을 포스팅합니다. 카메라 캘리브레이션 및 왜곡 보정은 영상처리 분야

darkpgmr.tistory.com

위 링크를 통해서 확인해보자.