Computer Vision

1-2. Camera Calibration

dhpark 2022. 2. 6. 01:01

1-2. Camera Calibration

- 앞서 설명 하였 듯 같은 공장에서 생산된 카메라라 하더라도 같은 위치에서 3차원 물체를 찍을 때, 픽셀 좌표계에 투영된 지점은 조금씩 다를 수 있다고 하였습니다.

- 이를 보정하는 작업을 카메라 켈리브레이션(Camera Calibration)이라고 하며 즉, 카메라 행렬(KR[I | T])를 구하는 작업입니다.

- 즉, 카메라 켈리브레이션은 3차원 물체가 카메라의 픽셀 좌표계 올바른 지점에 투영될 수 있게 보정하는 작업이라 할 수 있습니다.

※ 이해가 잘 안되시는 분은 출처[1]을 다시 한번 참조 부탁드립니다.

 

- 카메라 행렬 K를 구하는 방법은 물체의 3차원 점(주로 Chess Board 이용)투영된 픽셀 상의 2차원 점 쌍을 여러개 구한 후 DLT(Direct Linear Transformation)과 SVD(Singular Value Decompostition)을 이용해 추정하는 방법이 있습니다

같은 위치를 나타내는 점쌍(노란색 월드 좌표계로 본 점의 위치와 같은 점의 픽셀상의 위치) 대응 관계로 카메라 행렬을 구할 수 있습니다

 

자세한 계산 방법은 출처[3] 을 참조 부탁드립니다.

※ 카메라 켈리브레이션은 엄밀하게는 왜곡계수(Radial Distortion Parameter, R') 를 포함하여 카메라 행렬 (K(R')R[I | T]) 을 구하는 것입니다. 왜곡계수 관련해서는 추후에 포스팅하도록 하겠습니다.

본 카메라 켈리브레이션 계산 방법은 추후 등장할 두 이미지 간의 변환 행렬인 Fundamental Matrix를 구하는 방법과 유사합니다.

 

추가 질문에 답해보기)

Q. 카메라 행렬을 구하기 위해서는 보정할 카메라로 찍은 체스보드 이미지가 몇장 필요한가?

Q. 카메라 행렬을 구하는 DLT(Direct Linear Transformation) 방법의 한계는 무엇인가?

Q. 카메라 켈리브레이션으로 카메라 행렬 값(KR[I | T])을 구할 수 있지만, 내부 행렬(K), 외부 행렬 요소(R, T)을 각각 구하는 방법이 존재하는가?

 

[1] https://ksimek.github.io/2013/08/13/intrinsic/

[2] https://www.youtube.com/watch?v=3NcQbZu6xt8 

[3] https://www.coursera.org/learn/visual-perception-self-driving-cars/lecture/EEu6i/lesson-2-camera-calibration


※ 틀린 부분 혹은 질문이 있으실 경우 댓글로 남겨주시면 감사하겠습니다.