ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Planar Geometry - 1
    AI/3D 인공지능 기하학 2024. 10. 24. 18:09

    부산대학교 박진선 교수님의 "3차원 인식을 위한 다중시점 기하학과 인공지능" K-MOOC 강의를 듣고 정리한 글입니다.

    https://www.kmooc.kr/view/course/detail/13676?tm=20241024172605

     

    K-MOOC 자료실

     

    www.kmooc.kr


    Planar Geometry

    Planar geometry (평면 기하학) 은 기하학의 한 분야로, 2차원 평면 위에서 점, 선, 각 도형 등을 다룬다. 평면 기하학은 주로 유클리드 기하학에 기반하여 도형의 길이, 각도, 면적 등의 성질을 연구한다. 이를 통해, 우리는 평면 내에서 모양의 변환(이동, 회전, 반사 및 크기 조정 등)을 다룰 수 있다. 이러한 변환은 perspective camera로 평면을 이미징할 때 발생하는 기하학적 왜곡을 모델링한다.

     

    이는 컴퓨터 비전 및 3D 인식에서 매우 중요한 역할을 한다. 3D 물체를 카메라 등으로 촬영한 결과는 2D 이미지로 나타나므로, 이러한 2D 정보는 3D 형태와 위치를 추론하는 데 평면기하학은 필수적이다. 특히 물체의 모서리나 면, 직선 등은 2D 이미지에서 평면기하학을 통해 인식된다.

     

    따라서 3D AI system에서는 3D 공간을 이해하고 처리하기 위해 평면기하학의 개념이 중요하게 작용하며, 이는 3D 객체를 분석하거나 생성하는 데 중요한 기반을 제공할 수 있다.

     

     

    앞서 평면기하학을 통해 perspectiv ecamera로 평면을 이미지 할 때 발생하는 기하학적 왜곡을 모델링할 수 있다고 하였다. 이제부터 이에 대해서 자세히 살펴보자.

    출처: 2002 Encyclopedia Britanica, Inc.

     

    위 그림에서 PP(Picture Plane)은 우리가 실제로 보는 평면이고, RP(Reality Plane)은 현실 세계에 실제로 존재하는 평면을 나타낸다. 이를 통해 시점에서 실제 물체의 위치와 크기가 어떻게 평면에 나타나는지 확인할 수 있다. 이는 카메라나 사람의 눈이 현실 세계를 어떻게 인식하는지와 관련이 있으며, 카메라나 눈의 위치에 따라 투영된 객체의 크기나 모양이 왜곡되어 보일 수 있음을 확인할 수 있다.


    Homogeneous Representation of Lines

    평면 에 있는 line 은 다음과 같은 수식으로 표현할 수 있다. "ax + by + c = 0"

    이는 직선의 방적식,  y = ax+b 를 일반화하여 얻은 식이다.

    이를 벡터로 (a, b, c)^T로 나타낼 수 있다.

     

    이때, 직선 ax+by+c=0 을 상수 k배 하면, kax+kby+kc=0 을 얻을 수 있는 데 이는 같은 직선상에 있다. 그러므로 여러개의 벡터가 하나의 직선을 나타낼 수 있는 것이다. 이러한 상수배를 했을 때 같아지는 벡터들을 우리는 homogeneous vector라고 부른다.

     

    이러한 homogeneous vector가 모인 공간을 우리는 projective space P^2라고 부르며, vectors in R^3 - (0,0,0)^T forms이다. (0, 0, 0)^T 는 직선이 아니기 때문에 제외된다.


    Homogeneous Representation of Point

    2D Space 에서는 Point x = (x, y)^T 이다. 그리고 이 점이 (a, b, c)^T 라는 직선 위에 있다면, ax+by+c=0 을 만족한다.

    이는 아래의 수식을 통해서 확인할 수 있다.

     

    즉, (x, y)^T를 우리는 (x, y, 1)^T homogeneous vector로 표현할 수 있다.

    그리고 Projective Space에서는 점을 나타낼 때 homogeneous vector로 표현한다는 것을 기억하고 있어야 한다.

     

    An arbitrary homogeneours vector는 아래와 같은 포인트:

    가 있을 때, x = (x1, x2, x3)^T로 나타낸다.

    점 x가 직선 l 위에 있는 경우는 x(^T) l = l(^T) x = 0 일 때이다. 최종적으로 우리는 coordinate x를 아래와 같이 표현할 수 있다.

     


     

    Intersection of Lines & Line joining Points

    Given two lines l = (a, b, c)^T and l' = (a', b', c')^T, define the vector x = l × l' 일때

    두 직선의 교점은 아래와 같이 정의할 수 있다.

     

    또한 two point x and x'을 지나는 직선은 l = x × x'으로 정의할 수 있다.


    Intersection of Parallel Lines

    두 직선 "ax + bx + c = 0" and "ax + by +c' = 0" 있다고 가정하자. 이때, l = (a, b, c)^T and l' = (a, b, c')^T로 나타낼 수 있다. 이때 두 직선의 기울기가 같으므로, 직선이 평행한 것을 알 수 있으며, 이때 두 선의 교점은 아래와 같은 수식으로 표현이 가능하다.

    이때, 해당 수식에서 (c' - c)는 상수이므로 무시가 가능하고, 그렇다면 Intersection point는 (b, -a, 0)^T  가 된다.

    이 point를 homogeneous represetation으로 나타내려 하면 아래와 같은 수식이 정의되어야 한다.

     

    하지만, 위의 수식은 좌표가 무한으로 가기 때문에 정의될 수 없다. 하지만, 우리가 정의만 한다고 했을 때는 평한 두 직선의 교점을 정의할 수는 있으므로 존재한다고 이야기할 수 있다. 즉, 평행하는 두 직선은 무한대에서 만난다라고 해석할 수 있는 것이다.


    Ideal Points and the Line at Infinity

    위에서 설명하였듯이 평행하는 두 직선은 무한대에서 만난다고 해석할 수 있으며, (x1, x2, 0)^T 인 x3 = 0 인 점들은 ideal point 또는 pint at infinity라고 부른다.

     

    직선의 정의가 ax + by + c = 0, 즉 (a, b, c)^T 임을 위에서 확인하였다. 이때, (0, 0, 1)^T 로 정의한 직선은 pint at infinity가 속한 직선이다.

    즉, l = (0, 0, 1)^T 란 직선은 무한대에 있는 직선으로 정의할 수 있게 된다.

     

    이를 그림으로 시각화 해보면 아래와 같다.

Designed by Tistory.