참고자료 : 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를 정의할 수 있음
- 3개의 collinear하지 않은 점
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개의 자유도를 가짐
'Computer Vision > Multiple View Geometry' 카테고리의 다른 글
[Multiple View Geometry] 이미지에서 아핀변환과 거리 속성의 복원 (0) | 2022.10.02 |
---|---|
Epipolar Geometry (0) | 2022.08.28 |
[Multiple View Geometry] Conics, Quadrics (0) | 2022.08.28 |
[Multiple View Geometry] Chapter 2 (Part 1/2) (0) | 2022.07.17 |
[Multiple View Geometry] Chapter 2,3 (Part 1/2) (0) | 2022.07.09 |
댓글