[Computer Vision] Camera Model, Space Change

SYiee·2023년 11월 8일
0

Computer Vision

목록 보기
8/11
post-thumbnail
post-custom-banner

Imaging Geometry

World Coordinates (U,V,W)

Camera Coordinates (X,Y,Z)

Image(film) Coordinates (x,y)

pixel coordinates (u,v)

✔ Forward projection

✔ Backward projection

우리는 사진으로 주어지는 pixel coordinate를 가지고 world coordinate를 구하고 싶다. 즉 Backward projection의 과정을 하고 싶으나 이를 하기 위해서는 일단 Forward projection의 과정을 이해해야 한다.

Forward Projection

✅ Rigid Transform

World coords → Camera Coords

  • Rigid Transform은 rotationtranslation 으로 이루어져 있다.
  • 왜곡 발생하지 않고 data의 이동과 회전만 발생한다.

벡터의 형태로 나타내면 다음과 같다.

이때 중요한것은 world coords에 TranslationRotation 순으로 매트릭스 연산을 해주어야 한다. 축에서 멀어지면 rotation이 달라지기 때문이다.

TranslationRotation 하는 매트릭스를 하나의 매트릭스 MM으로 만들어 world coords PWP_W에 곱해 camera coords PCP_C를 구한다.

✅ 3D to 2D Projection

Camera coords → Film coords

  • perspective
  • 닮은 삼각형을 이용해 식을 세우면 다음과 같다
    • Large XYZ : 실제 존재하는 world coordinate 값
    • Z가 클수록 멀리 떨어져 있는 것을 의미한다. 즉, Z값이 크면 원래 값을 죽이는 역할을 한다. 멀리 있는 기찻길일수록 소실점이 발생하는 것처럼 말이다.

Perspective Matrix Equation

➕ ) Weak Perspective Approximation

물체와의 거리가 충분히 먼 것과 같은 특정 상황에서는 Z 를 위와 같은 방식으로 적용하는 것이 큰 의미가 없을 수 있다. 이런 상황에서 Z값을 상수로 정하고 Z가 움직이는 것을 그냥 구분하지 않고 편하게 계산하고자 할 때 사용할 수 있다.

⇒ 모든 Z값을 하나의 값으로 통일

그런데 이러한 approximation은 오류가 생겨 실제로는 잘 사용하지 않는다.

✅ Affine Transformation

Film Coord → Pixel Coords

profile
게임 개발자
post-custom-banner

0개의 댓글