1.1 Introduction - the ubiquitous projective geometry#
우리는 모두 사영 변환에 익숙합니다. 실제로 세상의 모든 물체들을 볼 때, 우리는 사영 통해 바뀐 풍경으로 물체들을 바라보고 있습니다. 보는 시점에 따라 원이 원이 아니게 보이는 경우, 정사각형이 정사각형이 아니게 보는 경우가 사영 변환의 한 예시입니다.
Invariant properties by Projective Transformation
모양? → X
길이? → X
각도 → X
거리 → X
거리의 비율 → X
모두 보존되지 않고, 직진성(선의 곧음)만이 보존됩니다. 이 직진성이 매핑에 대한 가장 일반적인 요구 사항입니다. 따라서 우리는 평면의 사영 변환을 직선을 보존하는 평면의 점 매핑으로 정의할 수 있습니다.
Why Projection Geometry Is Needed
이를 알아보기 위해서는 유클리드 기하학에서부터 시작해야 합니다. 유클리드 기하학은 물체의 각도가 모양을 설명하는 기하학인데, 이 유클리드 기하학은 한 가지 주요한 문제가 있습니다. 이 문제로 인해 기하학의 몇몇 기본 개념들에 예외를 둘 필요가 생깁니다. 그 예시로 “두 선은 거의 항상 한 점에서 만난다. 하지만 그렇지 않는 선의 쌍(평행)이 존재한다” 를 들 수 있습니다. 이런 문제를 피하기 위해 평행선이 만나는 무한대에 점들을 추가함으로써 유클리드 평면을 확장합니다. 이 점들을 이상점(Ideal point)라 부르며, 이러한 점들을 무한대에 추가함으로써 유클리드 평면은 새로운 유형의 기하학적 물체인 사영 공간으로 변환됩니다. 이러한 과정을 통해 유클리드 기하학의 문제를 해결할 수 있습니다.
Coordinates
유클리드 2차원 공간의 점은 실수의 순서쌍 \((x,y)\)로 표현됩니다. 이 쌍에 추가 좌표를 추가해 동일한 점을 나타내는 3차원의 점 \((x,y,1)\)을 정의할 수 있습니다. 이를 통해 단순하게 마지막 좌표를 추가하거나 제거해 서로를 오갈 수 있습니다.
Homogeneous Coordinates
3차원 좌표 \((x,y,2)\)는 어떤가요? 모두 이미 알고 있다시피 \((x,y,2)\)와 \((x,y,1)\)은 다릅니다. 여기서 우리는 \((x, y, 1)\)과 \((2x, 2y, 2)\)가 같으며, 더 나아가 0이 아닌 \(k\)에 대해 \((kx, ky, k)\)가 같다고 정의합니다.
이러한 개념을 가진 그룹을 동치류(Equivalence classes)라고 합니다. 또한, 앞의 경우처럼 scale 값 k에 따라 값은 변하지만 비율은 동일한 좌표들을 동차 좌표(Homogeneous Coordinates) 라고 합니다. 이러한 동차 좌표들이 \((kx, ky, k)\)의 형태로 주어지면 \(k\)로 나눠 다시 \((x,y)\)로 변환할 수 있습니다.
마지막 좌표값이 0이라면 즉, \((x,y,0)\)이라면 어떨까요? 마지막 좌표값으로 나눠보면 \((x/0, y/0)\) 무한대가 되는데, 이것이 바로 이상점으로 결국 마지막 좌표가 0인 모든 점이라고 볼 수 있습니다.
우리는 위와 같은 방법을 통해 유클리드 공간 \(\mathbb{R}^n\)을 사영 공간 \(\mathbb{P}^n\)으로 확장했습니다. 2차원 사영 공간에서 무한대에 있는 점들을 이어 선을 만들 수 있고, 3차원에서는 면이 만들어지는데 이것들을 2차원에서는 무한선(Line at infinity), 3차원에서는 무한면(Plane at infinity) 라고 합니다. 이러한 좌표계 변환은 2차원 뿐 아니라 더 고차원에서도 똑같이 사용할 수 있습니다.
Homogeneity
고전적인 유클리드 기하학에서 모든 점은 동일하여 구별되지 않습니다. 따라서 공간 전체가 균일합니다. 이 공간을 이용하기 위해서 우리는 어떤 한 점을 원점으로 선택해, 상대적인 좌표를 이용하게 됩니다. 그러면 다른 점을 원점으로 선택하게 되면 기존에 보던 것이 다른 좌표로 나타나게 됩니다. 이것을 공간이 다른 위치로 이동(Translation) 또는 회전(Rotation) 한다고도 볼 수 있는데, 이러한 연산을 **유클리드 변환(Euclidean Transformation, Rigid Transformation)**이라 합니다.
또한, 우리는 **아핀 변환(Affine Transformation)**을 통해 유클리드 평면 \(\mathbb{R}^n\)을 보다 자유롭게 변환할 수 있습니다. 아핀 변환의 경우에는 유클리드 변환을 포함하며 추가로 크기(Scale)까지 변환 가능합니다. 이러한 유클리드, 아핀 변환의 결과는 변환하기 이전 평면의 이상점이 변환 이후에도 그대로 무한대에 존재한다는 특징이 있습니다.
사영 공간도 유클리드 공간과 같이 균일하기 때문에, 이상점 또한 0을 가지고 있을 뿐 다른 점들과 딱히 다르지 않습니다. 따라서 유클리드 공간에서의 유클리드, 아핀 변환과 같이, 사영 공간에서의 사영 변환(Projective Transformation)을 정의할 수 있습니다.
유클리드 공간 \(\mathbb{R}^n\)의 선형 변환은 점의 좌표에 적용되는 행렬 곱셈으로 표시됩니다. 같은 방법으로 사영 공간에서의 선형 변환은 좌표 벡터에 정칙 행렬(non-singular matrix)을 곱하는 동차 좌표의 매핑이 됩니다. 이 변환에서는 이상점 또한 유지되지 않고 다른 점에 매핑됩니다. 사영 공간 \(\mathbb{P}^n\)의 사영 변환의 수식은 아래와 같이 표현됩니다.
이후 챕터에서 각 변환에 대해 자세히 설명하고, 어떤 부분이 변하지 않고 왜 그런 것인지 알 수 있습니다.
사영 기하학을 정리해보겠습니다.
Projective Geometry
사영 기하학에서는 선형 변환이 이뤄졌을 때 직선의 성질이 보존되며, 평행성이나 크기 등은 유지되지 않습니다.
평행 개념이 없습니다. 사영 기하학에서는 이전 유클리드 기하학에서의 평행한 두 직선이 무한대에서 만난다는 개념이 추가됩니다.
그 만나는 점을 이상점이라 표현하며, 이를 통해 유한 공간 안에 표현이 가능해집니다.이러한 이상점들을 동차 좌표계에서는 마지막 좌표가 0인 것으로 표기합니다.
사영 기하학에서의 변환은 이상점이 유지되지 않습니다. 따라서 무한대의 선 또한 변환됩니다.
1.1.1 Affine and Euclidean Geometry#
지금까지 유클리드 공간에 이상점을 추가해 사영 공간을 얻을 수 있는 것을 보았습니다. 이제 반대로 가는 과정을 고려해봅시다. 아래에서는 주로 2차원과 3차원 사영 공간에 대한 이야기를 합니다.
Affine Geometry
아핀 기하학은 사영 기하학에 선의 평행에 대한 개념을 추가한 것이라고 볼 수 있습니다. 이 개념을 추가하는 방법으로 본 책에서는 어떤 특정 선을 임의로 생성하고 그 선을 **무한선(Line at infinity)**으로 정의하는 과정을 갖습니다. 이렇게 정의한 무한선과 교차하는 두 직선이 있다면 그 두 직선은 평행하다고 정의합니다.
예를 들자면, 위와 같은 철로를 생각해볼 수 있겠습니다. 이러한 이미지 평면에서 무한선은 수평선으로 나타납니다. 지금 보면 철로 양 쪽의 쭉 뻗어있는 부분들이 결국 수평선에서 만나는 것을 보실 수 있는데요, 이것이 무한점에서 만나는 두 직선이라는 것을 이해하실 수 있을 것입니다. 이렇게 무한선을 설정하면 평면에서 직선의 평행을 정의할 수 있습니다.
이렇게 무한선을 가진 사영 평면의 기하학을 아핀 기하학(Affine Geometry)라 하고, 한 공간의 무한선을 다른 공간의 무한선에 매핑하는 것을 아핀 변환이라고 합니다. 결국 아핀 기하학은 사영 기하학의 특정 형태라고 볼 수 있습니다.
정리하면 아래와 같습니다.
평행의 개념이 있습니다. 아핀 기하학은 사영 기하학에서 무한선을 구별함으로써, 평행성의 개념을 얻습니다.
아핀 변환은 한 공간의 무한선을 다른 공간의 무한선으로 변환하는 것을 아핀 변환이라 합니다.
아핀 기하학은 선형 변환이 이뤄졌을 때, 직진성과 더불어 선의 평행성이 유지됩니다.
Euclidean Geometry
유클리드 기하학은 아핀 기하학에서 무한대의 몇 가지 특별한 성질을 추출하면 유클리드 기하학이 됩니다. 이 과정에서 Absolute Conic을 소개합니다.
먼저 2차원에 존재하는 원을 생각해봅시다. 아핀 기하학에서는 평면을 임의로 확장할 수 있는데, 확장하게 되면 원이 타원이 될 수 있습니다. 따라서 아핀 기하학에서는 원과 타원을 구분하지 않습니다. 하지만 유클리드 기하학에서는 원과 타원이 구분됩니다.
등차 좌표 \((x,y,w)\)에서 원의 방정식은 아래와 같습니다.
\((x_0, y_0, w_0)^\intercal = (a,b,1)^\intercal\) 인 등차 좌표로 표시된 원입니다. 아시다시피 원의 방정식의 차수는 2로 x,y가 각각 2개씩의 값를 가져 4개 쌍의 해가 존재합니다. 하지만 생각해보면 원은 2개의 교차점 이상을 가질 수 없는데, 나머지 2개는 무엇일까요?
방정식을 보면 \((x, y, w)^\intercal = (1, \pm i, 0)^\intercal\)가 저 원에 속한다는 것을 알 수 있습니다. 또한, 모든 원은 \((1, \pm i, 0)\)을 지나기 때문에 이 두 점은 모든 원들의 교차점이 됩니다. 여기서 마지막 좌표가 0이기 때문에 이 두 점이 무한선 위에 존재하며, circular point이라 합니다. 두 개의 원형점은 아래의 방정식 쌍을 만족합니다.
이 때, 사영 기하에서 무한선을 하나 선택하고, 이 선 위에 두 개의 원형점을 놓으면 유클리드 기하가 나타나게 됩니다. 우리는 저희가 보는 시점과 이 원형점을 지나는 원을 이용해 원뿔을 정의하며, 이를 절대 원뿔이라 합니다.
이후 챕터에서 이 Absolute conic을 이용해서 무엇을 어떻게 하는지 자세히 설명합니다.
정리하자면 아래와 같습니다.
유클리드 기하학은 선형 변환이 이뤄졌을 때, 직선, 평행성과 더불어 거리의 비율이 유지됩니다.
유클리드 변환은 유클리드 공간에서 회전하고 이동하는 것인데, 그 이동은 어떤 원점을 다른 공간의 원점으로 이동시키는 것을 말합니다.
3D Euclidean Geometry
지금까지 무한선과 한 쌍의 원형 점을 지정하여 유클리드 평면이 사영 평면의 관점에서 어떻게 정의되는지 봤습니다. 3D geometry에도 동일한 아이디어가 적용될 수 있습니다. 원에서 구로 바뀌었을 뿐입니다. 따라서 등차 좌표 \(\mathbf{(X, Y, Z, T)^\intercal}\)에서 모든 구는 아래 수식을 만족하는 곡선에서 무한면과 교차합니다.
3차원에서도 이러한 곡선을 Absolute conic으로 정의하며, 이후 챕터에서 camera calibration과 연관하여 설명합니다.
절대 원뿔은 유클리드 좌표계에서만 위의 방정식으로 정의됩니다. 일반적으로 이 책에서는 사영공간에서 특정 평면을 무한면으로, 특정 원뿔을 절대 원뿔로 지정해 유도한 3차원 유클리드 공간을 가정합니다.
이후 챕터에서 절대 원뿔을 이용해 3차원 유클리드 기하를 결정하는 방법이 제시됩니다.
Reference#
Multiple view geometry in computer vision chapter 1.1
철로 그림 : https://pixabay.com/photos/railway-rocks-sunset-sun-sunlight-1555348/