수학/Multiple View Geometry

[Geometry] 선과 점의 동치좌표 표현(Homogeneous representation fo lines and points)

AI 꿈나무 2021. 6. 17. 16:01
반응형

선의 동치 표현(Homogeneous representation of lines)

 평면에 존재하는 선은 ax + by + c = 0 과 같은 방정식으로 표현될 수 있습니다. 이를 직선의 방정식이라고 하는데, 어떤 a,b,c를 선택하느냐에 따라 다른 선이 됩니다. 따라서, 선은 일방적으로 벡터 (a,b,c)^T로 표현합니다. 이는 열벡터를 의미합니다. 선과 벡터 (a,b,c)^T는 one-to-one 대응이 아닙니다. 동치 좌표(homogeneous coordinates)에 의해서 선 ax + by + c = 0은 선 (ka)x + (kb)y + (kc) = 0와 동일합니다. 따라서, 벡터 (a,b,c)^T와 k(a,b,c)^T는 동일한 선을 나타냅니다. 그리고 이러한 관계에 있는 벡터들을 동치류(equivalence class of vector)라고 부르며, homogeneous vector로 알려져 있습니다.

 

 유클리디안 3차원 공간 R^3에 존재하는 벡터들의 동치류(equivalence class)의 집합은 사영 공간(projective space) P^2를 형성합니다. (0,0,0)^T는 어떤 선을 나타내지 않습니다.

 

점의 동치 표현(Homogeneous representation of points)

 선 l = (a,b,c)^T에 점 x = (x,y)^T 가 놓여있다고 하겠습니다. 점 x를 동치 좌표(homogeneous coordinate)로 x = (x,y,1)T로 표현할 수 있습니다. 선l과 점x를 내적의 관점으로 표현하면 (x,y,1)(a,b,c)T = (x,y,1)l = 0 이 됩니다. 2차원 공간에 존재하는 점 (x,y)는 마지막 좌표 1을 추가하여 3차원 벡터로 표현되었는데, homogeneous coordinate에 의해서 (kx, ky, k)와 동일한 점을 나타냅니다. 즉, (x,y,k)l=0이면 (kx,ky,k)l=0을 만족합니다.

 

 임의의 점이 homogeneous vector 표현에 의해 x=(x1,x2,x3)T로 나타내진 경우, 이는 2차원 공간에서 (x1/x3, x2/x3)T인 점과 동일합니다. 그리고 x=(x1,x2,x3)T는 2차원 사영 공간의 원소입니다.

 

 점이 직선에 놓여있는지 판단하는 간단한 방정식은 xT= 0 을 만족하는지 확인하는 것입니다. xT은 두 벡터 l과 x의 내적 또는 scalar product 입니다. 또한 이 책에서는 3-vector인 homogeneous coordinates x = (x1,x2,x3)T 와 2-vector인  inhomogeneous coordinate (x,y)T를 구분합니다.

 

선들의 교점(Intersection of lines)

 두 개의 선 l = (a,b,c)T, l' = (a', b', c')T 가 주어진 경우에 두 선의 교점은 다음과 같이 찾을 수 있습니다. 벡터 x = l $\times$ l' 로 정의하겠습니다. 여기서 $\times$는 외적(cross product)를 의미합니다. 점 x가 선 ll'에 놓여져 있는 경우에 l$\cdot$(l$\times$l') = l'$\cdot$(l$\times$l') = 0을 만족합니다. 즉, lTx = l'Tx = 0을 만족하는 점 x는 선 ll'에 놓여져 있다는 의미이므로 이 점이 두 선의 교점이 됩니다. 

 

 

 이 결과는 선들과 점들이 homogeneous vector을 사용한 결과로부터 도출됩니다.

 

 두 선의 교점을 찾는 예시 문제를 풀어보겠습니다.

 

 

점들을 지나는 직선(Line joining points)

 두 점 x와 x'를 지나는 직선은 다음과 같이 계산합니다. 직선 l = x $\times$ x'를 만족하는 선 l이 두 점을 지나는 직선입니다. 

 


참고자료

[1] Multiple View Geometry in Computer Vision

반응형