<aside> 💡 이번 글에서는 "Perspec

</aside>

2. 그래서, Projective Geometry란?


https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5888eba9-3431-40f5-a98a-3eadf6fa1f65/Untitled.png

일단 'Projective'라는 단어는 '투영' 또는 '사영'을 뜻한다. 원래 수학적인 의미만 파면, '어떠한 n+1 차원의 공간 관계를 n 차원의 hyperplane에 투영시킬 때 자주 사용되는 공간 맵핑에 대한 수학적 개념'이다...라고 (필자의 마음대로) 정의가 되기도 하지만, 수학적인 정의를 벌써부터 가져오면 괜히 복잡하기만 하니 좀 더 쉬운 방식으로 이해하는게 좋을 것 같다.

Projective라는 단어는 (3D→2D 한정으로) 우리가 3D 세상의 정보를 2D 이미지에 투영하여 본다는 의미로, '시야'라는 뜻을 가진 Perspective라는 단어와 함께 쓰일 수 있다. Perspective transformation이라는 단어는 컴퓨터 비전이나 그래픽스 강의를 들었다면 꼭 한번쯤은 들어봤을 것이다. Perspective transformation은 3D→2D Projective transformation 방법 중 하나인데, 원근법을 가지고 3D 세상 → 2D 이미지 투영을 할 때 사용할 수 있다. 카메라 모델링에서는 Perspective transformation을 주로 고려하기 때문에, Projective~ 로 시작하면 일단 간단하게 '어떤 물체를 바라보는 시야를 표현하는 방법' 이라고 생각하면 굉장히 쉽게 생각할 수 있다.

그리고 자연스럽게, Projective geometry는 '어떤 물체를 바라보는 시야를 수학적/기하학적으로 표현하는 방법' 이 되겠으며, 컴퓨터 비전에서 가장 많이 사용되는 projective transformation 방식이 되겠다. (Orthography, scaled orthography, para-perspective 같이 parallel relationship도 유지하는 방법들은 추후 공부해서 추가 작성할 예정이다.)

여러가지 projection 방법들이 존재하지만, 대부분 설계/그래픽스 쪽에서 필요로 하는 지식들이다. 컴퓨터 비전 쪽에서는 대체적으로 perspective만 사용하는 것 같다.
[출처] Szeliski - Computer Vision 책 p43.

여러가지 projection 방법들이 존재하지만, 대부분 설계/그래픽스 쪽에서 필요로 하는 지식들이다. 컴퓨터 비전 쪽에서는 대체적으로 perspective만 사용하는 것 같다. [출처] Szeliski - Computer Vision 책 p43.

우리는 방금 전에 Euclidean geometry는 3D→2D 공간맵핑을 거치면 사용할 수 없기 때문에 Projective geometry를 사용한다고 하였다. 그러면 Euclidean geometry와 Projective geometry가 다른점은 무엇일까?

  1. 첫째로 Projective geometry는 Euclidean geometry와 다르게 무한대의 거리의 점을 수학적으로 표현할 수 있다.

Euclidean geometry를 따르면, 3D Euclidean space에서 평행한 두 직선은 무한대의 거리에서 교차하지만 이 교차점을 수학적으로 표현할 방법이 없다. 이 3D Euclidean space를 2D 이미지에 투영시켰을 때 두 직선은 사다리꼴 모양을 하며 교차점을 가지게 되는데 (이 교차점을 Vanishing point라고 한다), 2차원에서 이 직선들의 벡터를 구해내면 우리는 이 교차점의 2D 위치를 수학적으로 표현할 수 있다 (즉, pixel 위치를 구할 수 있다). 즉, 3D→2D 변환을 Euclidean geometry를 통해 mapping하기 위해서는 무한대 거리의 점→유한한 거리의 점으로의 mapping이 가능해야한다는건데, 이 중 3D Euclidean space에서 무한대의 거리에 위치한 점을 수로 표현할 수 없으니 mapping을 할 방법이 없는 것이다.

Projective geometry는 이 무한대의 거리에 있는 교차점을 수로 표현할 수 있다. 3D space에서 무한대의 거리에 있는 교차점도 표현할 수 있고, 2D 이미지에서 사다리꼴 모양의 직선들의 교차점도 표현할 수 있다. 3D→2D mapping에 필요한 두 위치를 모두 수로 표현할 수 있는게 Projective geometry의 특징이다.

  1. (조금 당연하게 들릴 수 있어도) 둘째로 Projective geometry는 Euclidean geometry와 다르게 Projective / perpsective transformation을 거쳐도 기하학적 관계를 유지한다.

Euclidean geometry는 이미 몇번이나 언급했듯이 3D→2D에 대한 mapping이 불가능하다. 하지만 Projective geometry는 3D→2D mapping이 가능하다. 근데 그냥 가능한게 아니라 그 mapping 관계를 선형으로 표현할 수 있다. 즉, 매트릭스 연산 한번만으로 정확한 perspective transformation이 가능하다.