-
[6] Absolute ConicMultiple View Geometry 2021. 4. 4. 22:18
본 포스트는 학습한 것을 정리할 목적으로 작성되었습니다.
해당 포스트의 내용 및 그림, 수식 등은 'Multiple View Geometry in Computer Vision' 책을 참고하였습니다.
(1) Absolute dual conic
Absolute conic은 plane at infinity에 존재하는 conic이다. 이 conic의 dual $C_{\infty}*$는 metric rectification의 모든 정보를 포함한다.
2D projective space의 어떤 두 점 $\textbf{P}와 \textbf{Q}$를 통해 dual conic을 다음과 같이 매개화할 수 있다.
$$ C^* = \textbf{P}\textbf{Q}^T + \textbf{Q}\textbf{P}^T $$
즉 $C^*$는 $\textbf{P}$나 $\textbf{Q}$를 지나는 직선을 매개화 하는 dual conic이다.
비슷한 개념으로 absolute dual conic은 absolute points를 지나는 line을 매개화 하는 dual conic이다.
$$ C_{\infty}^* = \begin{bmatrix} 1 \\ i \\ 0 \end{bmatrix} \begin{bmatrix} 1 & -i & 0 \end{bmatrix}+\begin{bmatrix} 1 \\ -i \\ 0 \end{bmatrix} \begin{bmatrix} 1 & i & 0 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix} $$
(2) Similarity and absolute dual conic
Simirarity transform에 대하여 absolute dual conic은 invariant이다. 그 역도 성립한다.
$$ H(C_{\infty}^*) = C_{\infty}^* \ \ if \ and \ only \ if \ \ H=H_S$$
이는 간단하게 증명이 가능하므로 여기에서는 증명을 생략하도록 한다.
이 내용은 이후에 metric rectification을 위한 homograpy를 계산할 때 dof를 하나 줄이면서 up to similarity 해를 구하는데 활용된다.
간단히 먼저 소개하자면, 어떤 homography $H$에 대하여 $H(C)=HCH^T$일 때 $H=H_P H_A H_S$라면 다음이 성립함을 알 수 있다.
$$ {C_{\infty}^*}' = (H_P H_A H_S)C_{\infty}^*(H_P H_A H_S)^T = (H_P H_A)C_{\infty}^*(H_P H_A)^T $$
(3) Angles on the projectivity plane
Euclidean geometry에서는 어떤 두 직선사이의 각도에 대하여 다음과 같이 표현할 수 있다.
$$ cos\theta = \frac{l_1 m_1 + l_2 m_2}{\sqrt{(l_1^2 + m_1^2)(m_1^2 + m_2^2)}} $$
위 식을 기본좌표계에서 absolute dual conic을 이용하여 다음과 같이 표현할 수 있다.
$$ l_1 m_1 + l_2 m_2 = \textbf{l}^T C_{\infty}^* \textbf{m} $$
$$ l_1^2 + l_2^2 = \textbf{l}^T C_\infty^* \textbf{l} , \ m_1^2 + m_2^2 = \textbf{m}^T C_{\infty}^* \textbf{m} $$
$$ cos\theta = \frac{\textbf{l}^T C_{\infty}^* \textbf{m}}{\sqrt{(\textbf{l^T}C_\infty^* \textbf{l}) (\textbf{m}^T C_\infty \textbf{m}) }} $$
위 수식은 기본 좌표계에서 유도되었으나 임의의 좌표계에서도 성립한다. 즉, 위 수식은 좌표계에 의존하지 않고 항상 성립한다.
<Proof>
$$ H(C) = C' \rightarrow (H \textbf{x}^T)C'(H \textbf{x}) = 0 $$
$$ C' = H^{-T} C H^{-1} $$
$$ \textbf{l}^T C^* \textbf{l} = 0$$
$$ {C^*}' = HC^*H^T $$
$$ H(\textbf{l}^T C_{\infty}^* \textbf{m}) = (\textbf{l}^TH^{-1})(H C_{\infty}^* H^T)(H^{-T}\textbf{m}) = \textbf{l}^T C_{\infty}^* \textbf{m} $$
위 증명을 통해 $\textbf{l}^T C_{\infty}^* \textbf{m}$이 projective transformtation에 대하여 invariant라는것을 알 수 있다. 또한 이 값이 0일 경우 두 직선이 orthogonal이다.
'Multiple View Geometry' 카테고리의 다른 글
[8] 3D Projective Geometry (1) (0) 2021.04.08 [7] Metric Retification (0) 2021.04.07 [5] Circular Point and Similarity (0) 2021.04.04 [4] Line at Infinity and Affine Rectification (0) 2021.04.02 [3] Projective Transformation(Homography) (0) 2021.04.02