ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [1] 2D Projective Plane
    Multiple View Geometry 2021. 3. 31. 16:35

    본 포스트는 학습한 것을 정리할 목적으로 작성되었습니다.

     

    해당 포스트의 내용 및 그림, 수식 등은 'Multiple View Geometry in Computer Vision' 책을 참고하였습니다. 

     

     

    (1) 2D projective space and homogeneous represenstation

     

    2D 평면상에서의 직선은 다음과 같은 방정식으로 표현된다.

    $$ax+by+c=0$$

    따라서 직선을 결정짓는것은 계수 $a, b, c$이므로 이 직선을 다음과 같이 벡터 형식으로 표현할 수 있다.

    $$ \textbf{l} = [a \ b \ c]^T $$

    직선의 방정식을 따져보았을 때 $\textbf{l}$ 실수배 $k\textbf{l}$$\textbf{l}$과 같은 직선을 표현하는 벡터임을 알 수 있다. 이러한 같은 직선들을 같은 class라고 표현하며 모든 class들의 집합을 투영 공간(projective space)라고 한다. 이 때 벡터 공간은 $\mathbb{R}^3$이고 투영 공간은 $\mathbb{P}^2$ 이다. 즉 $\mathbb{R}^3$의 class들의 집합은 $\mathbb{P}^2$이다.

     

    2D 평면상의 한 점 $ \textbf{x}=[x \ y]^T$가 직선 $ \textbf{l} = [a \ b \ c]^T $위에 존재할 필요 충분 조건과 이 조건의 벡터 표현은 다음과 같다.

     

    $$ ax+by+c = 0 \Leftrightarrow [x \ y \ 1][a \ b \ c]^T$$

     

    점의 벡터 표현 $[x \ y \ 1]$ 또한 실수배를 하더라도 같은 점이다. 따라서 이 벡터는 $\mathbb{P}^2$상의 점을 표현하는 벡터이다. 

     

    이렇게 여러 개의 직선 또는 점을 하나의 벡터로 표현하는것을 homogeneous representation 이라고 한다.

     

     

    (2) Camera and homogeneous represenstation

     

    아래의 그림과 같이 카메라는 3차원 공간상의 한 점(point)을 2차원 이미지 평면(image plane)상의 점(projected point)으로 투사(projective)한다. 이 때 ray(초록색 직선)상의 모든 점들은 이미지 평면 상의 하나의 점으로 투사되므로 투영 공간(projective space)에서는 이 ray를 하나의 점으로 취급하며 이를 표현하기 위하여 homogeneous representation이 이용된다.

     

    $\mathbb{P}^2$는 $\mathbb{R}^3$의 투영공간이며 $\mathbb{P}^2$에서 $\mathbb{R}^3$의 한 점 $[a \ b \ c]^T$은 homogeneous coordinate $[a/c \ b/c \ 1]^T$ = $[x \ y \ 1]^T$로 표현된다. 정리하자면, $\mathbb{R}^3$ 공간 상의 원점을 통과하는 한 직선(위 그림에서 ray에 해당)은 $\mathbb{P}^2$상의 한 점에 대응되기 때문에, 기하학적으로 $\mathbb{P}^2$는 $\mathbb{R}^3$에서 원점을 지나는 모든 직선들의 집합이며 따라서 여기에서는 모든 ray들의 집합이다. 이를 확장하면, $\mathbb{P}^2$공간상의 직선 $\textbf{l}$은 $\mathbb{R}^3$상의 원점을 포함하는 평면이다.

     

    (3) Vector equations of line and point

     

    앞서 설명한 바와 같이 점과 직선은 벡터로 표현할 때 몇몇 방정식들이 성립한다. 먼저, 직선과 그 위의 한점을 표현하는 벡터의 내적은 0이다. 이는 (1)에서 확인할 수 있다.

    $$ \textbf{x} \textbf{l}^T = 0 $$

     

    또한, 두 직선 $ \textbf{l} = [a \ b \ c]^T $와 $ \textbf{l}' = [a' \ b' \ c']^T $이 지나는 한 점 $\textbf{x}$의 벡터는 이 두 직선의 외적으로 표현할 수 있다.

     

    $$ \textbf{x} = \textbf{l} \times \textbf{l}' $$

     

    마지막으로 두 점 $ \textbf{x} $와 $ \textbf{x}' $를 지나는 한 직선 $ \textbf{l} $은 두 점의 외적으로 표현된다.

     

    $$ \textbf{l} = \textbf{x} \times \textbf{x}' $$

     

    이 세 방정식은 이후에 등장하는 여러 정리에 사용된다.

     

    (4) Ideal points and the line at infinity

     

    Homogenous representation을 사용하면 실제로는 존재하지 않는 점에 대한 표현이 가능하다. 예를 들어, 다음과 같은 두 평행한 직선을 생각해 보자.

     

    $$ \textbf{l} = [a \ b \ c]^T, \ \textbf{l}'=[a \ b \ c']^T $$

     

    이 두 직선이 만나는 점은 다음과 같다.

     

    $$  \textbf{l} \times \textbf{l}' = (c'-c) \times [b \ -a \ 0]^T  = [b \ -a \ 0]^T $$

     

    이 점은 $ [b/0 \ -a/0 \ 0]^T $ 과 같은 점이며 해당 점은 존재하지 않는 점이다. 이러한 점을 ideal point 또는 point at infinity라고 한다. 이러한 점은 직선 $ \textbf{l}_{\infty} = [0 \ 0 \ 1] $ 위에 존재하며 이러한 직선을 line at infinity라고 한다.

     

    Point at infinity와 line at infinity의 개념은 이후 소개될 removing perspective distortion에서 더 자세히 다루어 진다.

     

     

    'Multiple View Geometry' 카테고리의 다른 글

    [6] Absolute Conic  (0) 2021.04.04
    [5] Circular Point and Similarity  (0) 2021.04.04
    [4] Line at Infinity and Affine Rectification  (0) 2021.04.02
    [3] Projective Transformation(Homography)  (0) 2021.04.02
    [2] Duality and Conic  (0) 2021.04.01

    댓글

Designed by Tistory.