레이블이 Geometry인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Geometry인 게시물을 표시합니다. 모든 게시물 표시

2014년 9월 11일 목요일

The Image of the Absolute Conic


The Image of the Absolute Conic

절대 원뿔 곡선의 사영

 한글로 써보지 않은 용어들은 항상 어색합니다. '절대 원추 곡선의 사영' 역시 마음에 들지 않네요. IAC(Image of Absolute Conic)은 Geometry에서 무척 중요한 영역을 차지합니다. 한글로 쉽게 접근할 수 있는 문서는 없는 것 같아서 글을 적어봅니다. 개인적인 재 해석을 통해서 쓴 글들이니 감안하여 참고해 주시기 바랍니다.


1.     Conic section(원추 곡선)
Geometry에는 conic section이라는 것이 있습니다. 그림처럼 두 개의 원뿔을 마주보게 놓은 형태인데, 이것의 단면을 어떻게 자르는가에 따라 2차 곡선이 만들어집니다. Parabola, Circle, ellipse, Hyperbola가 그것입니다.
Conic sections with plane.svg
"Conic sections with plane" by Pbroks13 - Own work. Licensed under CC BY 3.0 via Wikimedia Commons.
 Projective geometry에서는 Conic section은 다음과 같이 정의됩니다.

\(ax^2+bxy+cy^2+dx+ey+f=0\) - ①

 Projective space, \(\mathbf{P}^2\)에서는 마지막 행에 비율에 관한 하나의 차원이 추가 되므로, \(x, y\)를 각각 \(x_1/x_3, x_2/x_3\)로 표현할 수 있습니다. 영상이라는 센서가 3차원 공간을 2차원 영상 평면에 투영 시키는 과정을 상기해보면 자연스럽습니다.

 하나의 카메라로 바라본 영상은 내부 변수를 알기 전까지는 작은 물체가 바로 앞에 있는 것인지, 커다란 물체가 저 멀리 있는 것인지 판단할 수 없습니다. 그러한 모호성을 해결해주는 항이 \(x_3\)이라고 보시면 될 것 같습니다.

 식 ①을 다시 써보면,

\(ax_1^2+bx_1x_2+cx_2^2+dx_1x_3+ex_2x_3+fx_3^2=0\) - ②

 식 ②와 같이 되고, Matrix form으로 만들어 보면

\(\mathbf{x^TCx} = 0, \mathbf{C} = \left[\begin{array}{ccc}a & \frac{b}{2} & \frac{d}{2} \\ \frac{b}{2} & c &\frac{e}{2} \\ \frac{d}{2} & \frac{e}{2} & f \end{array}\right]\) - ③

 식 ③과 같이 정리할 수 있습니다.

 이제 본론으로 들어갈 준비가 다 되었습니다.

2.     IAC(Image of Absolute Conic)
이제 AC(Absolute Conic)를 만날 시간입니다. AC는 무한대의 평면에 있는 conic입니다.
무한대의 평면에서 영상 좌표계로 투영된 AC와 IAC
우리 주변에서 찾을 수 있는 예를 들어보겠습니다. 자동차를 타고 달리면서 보름달을 보면 달의 위치는 변하지 않는 것처럼 보입니다. 차의 이동 거리(translation)보다 달의 위치가 절대적으로 멀리 있기 때문입니다. AC는 이보다 더 일반화된 개념입니다.

 이런 불변 특성은 아주 중요한 역할을 합니다. 무한대의 점(vanishing points) 2개를 알고 있으면 무한대의 직선(vanishing line)을 얻을 수 있고 무한대의 직선 2개가 이루는 평면이 무한대의 평면(plane at infinity)이기 때문에 영상에서 변하지 않는 특성을 가지는 무언가를 얻어낼 수 있다는 것을 암시하기 때문입니다. 잘 아시는 것처럼 무한대의 점은 평행한 두 직선이 만나는 점에서 얻을 수 있습니다.

 projective geometry에서 어떻게 활용되는지 보겠습니다. 직관적으로 움직임에 영향을 받지 않는 요소가 무엇인지 생각해보면 카메라 내부 변수(카메라 캘리브레이션)인 것을 떠올려 볼 수 있습니다.

 무한대의 평면은 projective geometry에서 다음과 같이 정의됩니다.

\(\mathbf{\pi}_{\infty} = {(0, 0, 0, 1)}^T\)

 그러면 무한대의 평면의 점 \(\mathbf{X_{\infty}}\)을 이미지 평면에 투영된 점, \(\mathbf{x}\)로 변환하는 projection matrix \(\mathbf{P}\)와 다음의 관계가 성립됩니다.

\( \mathbf{x} = \mathbf{PX_{\infty}} \)

 여기서 카메라 projection matrix는 카메라 외부 변수 \(\mathbf{R, t}\)와 내부 변수 \(\mathbf{K}\)로 나누어 쓸 수 있으므로 다음과 같이 쓸 수 있습니다.

\( \mathbf{PX_{\infty}} = \mathbf{KR[I|-\tilde{C}]}\left[\begin{array}{c}\mathbf{d} \\ 0 \end{array}\right] = \mathbf{KRd} \)

 여기까지 도출하고 나면 무한대의 평면과 이미지 평면의 관계는 homography인데 \(\mathbf{KR}\)과만 관계 있다는 것을 알 수 있습니다. 그런데 duality property로 부터 dual conic과의 관계를 이용하면 무한대 평면의 AC의 투영인 IAC는 \(\mathbf{K}\)하고만 관계가 있다는 것을 얻어낼 수 있습니다. 결국 IAC는 다음과 같이 정리됩니다.

\( \omega = \mathbf{(KR)^{-T}}\mathbf{I}\mathbf{(KR)}^{-1}=\mathbf{K^{-T}}\mathbf{RR}^{-1}\mathbf{K}^{-1}=(\mathbf{KK^T})^{-1} \).

 AC와 IAC의 실제 형상을 자꾸 떠올리는 것은 별로 의미가 없습니다. circular points와 같이 실제 하지 않는 가상의 것이기 때문입니다.