3D 월드좌표에서 2D 픽셀좌표로의 변환을 통해 이미지가 형성되는 과정에 대한 정리

이미지 투영 (Image Projection)

월드좌표계의 임의의 점 가 이미지(픽셀)좌표계의 점 로 투영되는 것

좌표계 참고: (Image Geometry) 1. 영상 좌표계

+full

1. 카메라 좌표계에서 투영

1.1. 정규 좌표계 투영

  • 3차원 상의 점 가 카메라좌표계를 기준으로 표현되었을 때 ()라 하고, 를 축으로 Depth 라고 볼 때, 정규 이미지 평면에 투영하는 것은 ()/ 로 표현 가능

2. 원근 투영 변환 (Perspective Projection Transformation)

2.1. 변환 행렬

  • 월드 좌표계 상의 한 점 ()를 이미지 평면(픽셀 좌표계) 상의 점 ()로 변환시키는 행렬을 라 하면, 그 관계식은 다음과 같음 (homogeneous 좌표를 사용)
  • 이 때, 는 3 x 4 행렬로서 다음과 같이 분해하여 표현함
  • : 월드 좌표계를 카메라 좌표계로 바꾸는 Rigid 변환 행렬
  • : 카메라 좌표계 상의 3D 좌표를 정규 이미지평면에 투영 시키는 투영 행렬
  • : 카메라 내부(intrinsic) 파라미터 행렬로써 정규 이미지 좌표를 픽셀 좌표로 바꾸어줌
  • 식에서 투영 행렬 와 변환 행렬 을 하나로 합치면 다음과 같이 표현할 수 있음

2.2. opencv method

  • calibrateCamera(): 평면물체(planar object) 상의 점들에 대한 3D 월드좌표와 2D 이미지 픽셀 좌표 쌍들을 입력으로 주면 camera matrix K와 왜곡계수, 그리고 행렬을 반환해 줌. 최소 2개 이상의 서로 다른 시점(view point)에서 입력 데이터를 획득해야 하며, 는 각 시점별로 계산되어 반환됨
  • decomposeProjectionMatrix(): 3D 월드좌표를 2D 픽셀 좌표로 변환시켜주는 3 × 4 변환행렬을 입력으로 주면, 이 행렬을 카메라 행렬 K와 행렬로 분해해 줌
  • solvePnP() / solvePnPRansac(): 카메라 내부 파라미터 행렬 K와 3D 월드좌표 - 2D 픽셀좌표 매칭쌍들을 입력으로 주면, 카메라 외부 파라미터인 행렬을 계산해 줌. 최소 4개의 좌표쌍을 필요로 함

참고


Prev: (Image Geometry) 4. 3D 변환

Next: (Image Geometry) 6. Epipolar Geometry