Computer Vision

1-1. Pinhole Camera Model

dhpark 2022. 2. 6. 00:51

1. Camera Model & Calibration

1-1. Pinhole Camera Projection Model

- '3차원 물체'와 그것을 '관찰하는 카메라', 그리고 '카메라 센서에 투영된 2차원의 물체'는 일반적으로 Pinhole Camera Model과 Homogeneous Coordinatate(동차 좌표계)를 이용해서 표현을 합니다.

- 또한, 3차원의 물체와 카메라 센서에 투영된 2차원 물체 관계를 행렬 변환 관계로 설명이 가능합니다.

- 위의 두가지를 종합하여 그림으로 나타내면 아래와 같습니다.

Pinhole Camera Model & Matrix Conversion

 

- 3차원 물체의 위치는 [X, Y, Z, 1] 인 Homogeneous Coordinates 좌표계로 표현을 합니다.

- 3차원 물체와 카메라 좌표계 간의 관계는 Rotation과 Translation 행렬 변환으로 표현이 가능합니다. R[ I | T] 로 나타내며 외부  행렬(Extrinsic Camera Matrix / Extrinsic Matrix)로 부릅니다. 총 3Dof(R) + 3Dof(T) = 6Dof 을 가집니다.

- 카메라 좌표계(3D)에서 픽셀 좌표계(2D)로의 변환 또한 행렬 변환으로 표현이 가능하며 내부 행렬(K)(Intrinsic Camera Matrix / Intrinsic Matrix, 5DoF)로 부릅니다.

- 내부 행렬(Intrinsic Matrix) 과 외부 행렬(Extrinsic Matrix)를 합하여 카메라 행렬(KR[I | T]) (≈ Homography Matrix) 로 부르기도 합니다.

- 카메라 행렬(K)은 같은 공장에서 생산된 카메라라 하더라도 조금씩 다른 값을 가집니다. 따라서, 카메라 행렬에 독립적인 가상의(Virtual) 2차원 행렬을 두기도 하는데 이를 정규 좌표계(Normalized Image Plane)으로 부릅니다. 정규 좌표계 설명을 생략하는 강의 노트도 종종 있습니다.

※ 카메라 좌표계의 점을 픽셀 좌표계로 투영을 하면, 이상적으로는 픽셀 좌표계의 중앙에 와야 합니다. 그리고, 이 투영된 점과 픽셀 좌표계의 기준점(위의 그림상으로는 우측 상단)과의 관계를 표현하는 것이 카메라 행렬입니다. 즉, 투영점에 카메라 행렬을 곱해주면 픽셀 좌표계의 기준점이 됩니다. 하지만, 카메라 마다의 조금씩 뒤틀림으로 인해서 투영 점이 픽셀 좌표계의 중앙이 되지 못하기 때문에 카메라 마다 카메라 행렬(K)이 조금씩 다른 값을 가지게 되는 것입니다. 자세한 설명은 아래의 출처[1] 를 참고해 주시기 바랍니다.

 

추가 질문에 답해보기)

Q. 카메라 내부 행렬(Intrinsic Matrix)은 5Dof를 가지는데 그중 하나의 인자가 Skew Parameter(S)이다. 해당 인자가 내부 행렬에 들어가는 이유는 무엇인가?

Q. 픽셀 좌표계의 기준점을 일반적으로 좌측 상단으로 잡는 이유는 무엇인가?

 

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


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