이미지 형성의 기하학

3D의 한 점이 이미지 평면(image plane)에 투영되는 방법에 관하여

가정

방 안에 3차원 점 가 있을 때, 카메라가 촬영한 이미지에서 점()가 어느 픽셀 좌표 에 나타낼 때 네 가지 좌표계가 사용됨.

  1. World Coordinate System /
    • 실제 공간 기준 좌표계
  2. Camera Coordinate System /
    • 카메라 중심 3차원 좌표계
  3. Normalized Image Coordinate System /
    • 카메라 내부 파라미터의 영향을 제거한 정규화된 2차원 좌표계
  4. Pixel Image Coordinate System /
    • 실제 이미지 파일에서 사용하는 2차원 픽셀 좌표계

전체 흐름은 다음과 같음.


World Coordinate System

월드 좌표계와 카메라 좌표계는 회전과 이동에 의해 서로 연결됨. 회전을 위한 3개의 파라미터와 이동을 위한 3개의 파라미터, 총 6개의 파라미터를 카메라의 외부 파라미터라고 함.

방의 모서리처럼 임의의 한 점을 원점으로 정하고 그 원점을 기준으로 점 의 위치를 좌표로 표현.


Camera Coordinate System

이미지는 카메라가 보는 장면이기에 변환이 필요. 실제 공간 기준 좌표계에서 카메라 중심 좌표계로의 변환.

e.g)

  • : 실제 세계의 원점에서 오른쪽으로 3m, 앞쪽으로 2m, 위로 1m
  • : 카메라 기준으로 오른쪽으로 1m, 위/아래 방향으로 0.5m, 카메라 앞쪽으로 4m

카메라가 방의 축 방향과 다르게 돌아가 있으면 회전 이 필요. 카메라가 방의 원점과 다른 위치에 있으면 이동 이 필요.

행렬 표현:

  • : 회전 행렬

  • : 이동 벡터 를 합쳐서 외부 파라미터라고 함. (카메라가 실제 공간에서 어디에 있고 어느 방향을 바라보는지)

회전과 이동을 하나의 행렬로 합친 것이 외부 행렬. 외부 행렬의 크기

  • 앞의 부분: 회전 행렬
  • 마지막 부분: 이동 벡터

3차원 좌표 뒤에 을 붙이면 동차 좌표로 표현할 수 있음. 동차 좌표를 사용하면 회전과 이동을 하나의 행렬 곱으로 계산할 수 있음.

  • 동차 좌표 표현: 마지막의 은 실제 좌표값이 아니라, 이동 벡터 를 행렬 곱 안에 포함시키기 위한 보조값. t는 월드 좌표계의 원점이 카메라 좌표계에서 어디에 보이는지를 나타내는 이동 벡터

Image Coordinate System

이미지 좌표계는 카메라 기준 3차원 점 를 이미지 평면 위의 좌표와 최종 2차원 픽셀 좌표 로 바꾸는 과정과 관련된 좌표계.

앞 단계까지는 월드 좌표를 카메라 좌표로 변환함.

이제 해야 할 일은 카메라 기준 3차원 좌표를 이미지 위의 2차원 좌표로 변환하는 것.

즉,

카메라 좌표계에서 점 는 다음과 같이 표현됨.

  • : 카메라 기준 좌우 방향 위치
  • : 카메라 기준 위아래 방향 위치
  • : 카메라 앞쪽 깊이 방향 거리

이미지에 찍히는 위치는 , 만으로 결정되지 않음. 깊이 가 함께 고려되어야 함. 가까운 물체는 크게 보이고, 먼 물체는 작게 보이기 때문.

핀홀 카메라 모델에서는 카메라 기준 3차원 점을 이미지 평면 위의 좌표 로 투영함.

  • : 초점거리
  • : 카메라에서 봤을 때 점이 좌우로 얼마나 벌어져 보이는지를 나타내는 정규화 좌표 성분
  • : 카메라에서 봤을 때 점이 위아래로 얼마나 벌어져 보이는지를 나타내는 정규화 좌표 성분

즉, , 를 깊이 로 나누는 과정이 3D 점을 2D 방향 정보로 바꾸는 핵심이고, 여기에 초점거리 가 반영되어 이미지 평면 좌표 가 정해짐.

위 식으로 얻은 는 이상적인 이미지 평면 좌표. 하지만 실제 이미지에서 필요한 값은 픽셀 좌표.

  • : 카메라의 광학 중심을 기준으로 한 이미지 평면 위의 좌표
  • : 실제 이미지 파일에서의 픽셀 좌표
  • 실제 이미지 좌표계는 보통 왼쪽 위를 원점 으로 사용

따라서 이미지 평면 좌표 를 실제 픽셀 좌표 로 바꾸는 과정이 필요함. 이때 카메라의 초점거리, 주점, 센서 특성을 반영하기 위해 내부 행렬 를 사용함.

내부 행렬은 카메라 기준 3차원 좌표를 이미지에 투영하고 실제 픽셀 좌표로 변환하는 데 필요한 카메라 내부 파라미터를 모은 행렬. 즉, 카메라의 렌즈와 센서 특성을 나타냄.

  • : x축 방향 초점거리
  • : y축 방향 초점거리
  • : 이미지에서 광학 중심의 x좌표
  • : 이미지에서 광학 중심의 y좌표
  • : 센서 x축과 y축 사이의 비틀림

대부분의 경우 는 거의 으로 둠. 따라서 일반적으로는 다음과 같이 단순화하여 사용함.

카메라 좌표 를 깊이 로 나누면 정규화 이미지 좌표가 됨.

정규화 이미지 좌표를 동차 좌표로 표현하면 다음과 같다.

여기에 내부 행렬 를 적용하면 픽셀 좌표를 얻을 수 있다.

따라서 일 때는 다음과 같다.

여기에 정규화 이미지 좌표를 대입하면 최종식은 다음과 같다.

같은 과정을 카메라 좌표에서 바로 동차 좌표 형태로 쓰면 다음과 같이 표현할 수도 있다.

이때 이면 내부 행렬 는 다음과 같다.

따라서 계산 결과는 다음과 같다.

동차 좌표를 실제 픽셀 좌표로 바꾸기 위해 마지막 성분 로 나누면 된다.

따라서 다음과 같다.

이를 정리하면 다음과 같다.

결국 카메라 기준 3차원 점을 이미지 픽셀 좌표로 바꾸는 전체 과정은 다음과 같다.

즉, 먼저 깊이 로 나누어 정규화 이미지 좌표를 만들고, 이후 내부 행렬 를 통해 초점거리와 주점 위치를 반영하여 실제 픽셀 좌표 를 얻는다.

따라서 Image Coordinate System은 카메라 기준 3D 좌표를 정규화 이미지 좌표로 바꾸고, 내부 행렬 를 적용하여 실제 이미지 픽셀 좌표 로 변환하는 과정.


Normalized Image Coordinate System

정규화된 이미지 좌표계는 카메라 내부 파라미터의 영향을 제거한 가상의 이미지 좌표계. 카메라 좌표계에서 점 가 다음과 같다고 하자.

이 점을 깊이 로 나누면 정규 이미지 좌표가 됨.

따라서 정규 이미지 좌표는 다음과 같음.

정규화된 이미지 좌표계는 초점거리, 주점, 픽셀 크기, 해상도 같은 카메라 내부 특성이 아직 반영되지 않은 좌표계.

즉, 카메라가 보는 방향 정보만 남긴 좌표계.

  • : 카메라 정면 기준으로 좌우 방향으로 얼마나 벗어나 보이는지
  • : 카메라 정면 기준으로 위아래 방향으로 얼마나 벗어나 보이는지

정규 이미지 좌표계는 초점거리 인 가상의 이미지 평면으로 볼 수 있음. 즉, 카메라 초점에서 거리 1만큼 떨어진 가상의 이미지 평면에 점을 투영한 좌표. 이 좌표계는 실제 픽셀 좌표가 아니며 단위도 pixel이 아님.