본문 바로가기
Computer Vision/Multiple View Geometry

[Multiple View Geometry] Chapter 2,3 (Part 2/2)

by sk_victoria 2022. 7. 10.

참고자료 : https://www.youtube.com/watch?v=wpqTPTQcNAM&list=PLxg0CGqViygP47ERvqHw_v7FVnUovJeaz&index=4


Homogeneous Coordinate 에서의 2D Space & 3D Space

  • 대부분의 3D space 상에서의 특징들은 2D Space 특징의 generalization 형태이다.
  • (예) 2D Space notation : [x1, x2, 1] -> 3D Space notation : [x1, x2, x3, 1]
  • 3D Space만의 특징 존재 (직선간 위치 관계에서 꼬인 위치 정의)

 

Homoegeneous Coordinates

  • (x,y)를 (wx, wy, w)로 표현하는 방식
  • affine 변환이나 projective 변환을 하나의 단일 행렬로 표현할 수 있음
  • 무한대의 점을 유한 좌표로 표현할 수 있음 (예 : (u,v) 방향으로 무한대의 점은 (u,v,0)으로 표현)

 

Points in 3D Space

  • 3D space상에서의 점은 4차원 Homogeneous Coordinates로 표현될 수 있다. 즉, X = (X1, X2, X3, X4)
  • Inhomogeneous Coordinate으로는 다음과 같이 표현 : X = (X1/X4, X2/X4, X3/X4)
  • 무한대에 존재하는 점 X = (X1, X2, X3, 0)

 

Projective Transformation of Points in P^3

  • Projective Transformation X' = H*X (단, X, X'는 모두 Homogeoneous Coordinate로 표현)
  • H Matrix
    • 4x4 Matrix
    • Non-singular
    • 15 degrees of freedom (16 elements less one for scaling)
  • Collinear한 점들을 H Transformation 해도 Collinear하다. (lines are mapped to lines)
  • 기하학적인 관계성 보존
    • 평면과 선 사이의 교차점 보존
    • Order of contact 보존

 

Plane in 3D Space (2D Space에서의 선의 특징과 비슷함)

  • Inhomogeneous Notation
    • n*X + d = 0
    • ax + by + cz + d = 0
    • plane과 원점 사이의 거리 : d / ||n||
  • aX1 + bX2 + cX3 + dX4 = 0 (Homogeneous Notation)
  • 즉 pi * X = 0 (Plane - Point Duality)
  • 정의 : plane pi = (a, b, c, d) 위에 점 X = (x, y, z)가 포함되어 있다.
  • 3 Degrees of Freedom (a : b, b:c,  c:d라는 비율관계가 중요함)
  • Point Transformation <=> Plane Transformation
    • X' = H*X  <=>  pi' = H^(-T) * pi
    • pi' * X'^T = 0
  • 결정조건
    • 3개의 collinear하지 않은 점
      • X = [X1, X2, X3] 의 rank = 3일 경우 : 1-dimensional null-space pi 정의 가능
      • X = [X1, X2, X3] 의 rank = 2일 경우 : 2-dimensional null-space pi 정의 가능
    • 1개의 선과 1개의 점
      • M := [A, B, X] (단, 1개의 선 위에 위치한 2개 점 A, B, 1개의 점 X)
      • M의 null-space 2차원일 경우 X는 선 위에 위치함
      • M의 null-space 1차원일 경우 M*pi = 0 인 한개의 평면 pi를 정의할 수 있음
    • 2개의 평면은 1개의 unique line을 결정함
    • 3개의 평면은 1개의 unique point을 결정함
      • Point-Plane Duality
      • 평면 pi 의 rank = 3일 경우 : 1개의 점
      • 평면 pi 의 rank = 2일 경우 : 선, 혹은 면, 혹은 없을 경우도 존재 (평행한 세 면)
      • 비슷하게, 1개의 평면과 교차하는 선은 하나의 점을 형성함
        • M := [P, Q, pi] (단, P, Q는 1개의 선을 결정하는 두 평면이며, pi는 선이 통과하는 평면)
        • M의 null-space 2차원일 경우에는 pi 위에 선이 존재하는 경우
        • M의 null-space 1차원일 경우에는 M*X = 0 인 한개의 점 X를 정의할 수 있음

 

Parametrized Points on a Plane

  • 임의의 평면 pi 위의 점은 다음과 같이 매개화 될 수 있다.
  • X = M * x
  • Matrix M
    • M = [ -b/a, -c/a, -d/a | I ]
    • rank(M) = 3
    • 값은 고유하게 하나로 정해지진 않음
    • pi * M = 0 을 만족

 

Lines in 3D Space

  • 결정조건
    • 2개의 점
    • 2개의 평면
      • 평면 P, Q, line위 두 점 A,B 에서 A*P=0, B*P = 0 성립
      • W = [A, B] 라 하면, W*P = 0, W*Q = 0이므로 W는 plane intersection 위에 있음
      • 즉 두 평면이 이루는 선은 다음과 같이 표현 가능 : aP + bQ
  • 3D space에서 4 degrees of freedom 을 가짐
    • 증명 : 직선이 통과되는 2개의 직교평면을 생각해보자. 한 직교평면에서 만나는 점은 2 Degrees of Freedom을 가지고, 총 2개의 직교평면이 존재하므로 총합 4 degrees of freedom을 가짐
    • 4 자유도를 가지는 벡터를 homogeneous 로 표현하면 5-vector가 된다 (직선은 5-vector로 표현된다)
    • 이렇게 된다면 4-vector로 표현되는 점 또는 평면과의 관계식을 정의하기 어렵다.
    • 따라서 아래 두가지 표현 방식이 제안되었다.
  • Null-space and Span Representation
    • 직선은 두 점의 span representation 으로 표현가능하다.
    • 점 A, B (각각 모두 4-vector)  => 직선 W = [ A | B]
  • Plucker Line Coordinates
    • 직선의 방향벡터 d와, 외적벡터 (모멘트 벡터) m을 사용하여 직선을 표현하는 방법
    • 직선이 원점에서 떨어진 거리 = || m || / || d || ( ||외적벡터|| / ||방향벡터|| )
    • L = (d : m) = (d_x, d_y, d_z, m_x, m_y, m_z)
      • 6자유도를 가짐
      • 모멘트 벡터가 0 <=> 직선이 원점을 포함하고 있다는 의미
    • Up to Scale Uniqueness
      • 기존에 정의하였던 직선위의 점 P1, P2 가 아닌 다른 직선 위의 점 P1', P2' 가 존재할 때, 이는 기존 점들을 통해 표현이 가능하다.
      • 새로운 방향벡터 d' 와 모멘트 벡터 m' 또한 기존의 점들을 스케일하여 표현 할 수 있다.
    • Dual Representation of Plucker Coordinate
    • 서로 교차하는 두 직선 표현
      • (L | L') = det[ P, Q, P', Q'] = 0 (단, 평면 P,Q -> 직선 L / 평면 P', Q' -> 직선 L')
      • (L | L') = P'A * Q'B - Q'A * P'B = 0
  • Quadrics and Dual Quadrics
    • 2D space의 conic을 확장한 버전
    • X^T * Q * X  = 0
    • 10-1 = 9개의 자유도를 가짐

댓글