-
[19] Epipolar Geometry and the Fundamental MatrixMultiple View Geometry 2021. 6. 8. 17:30
본 포스트는 학습한 것을 정리할 목적으로 작성되었습니다.
해당 포스트의 내용 및 그림, 수식 등은 'Multiple View Geometry in Computer Vision' 책을 참고하였습니다.
(1) Epipolar geometry
3D 공간상의 한 점 $\textbf{X}$가 서로 다른 위치에 있는 두 카메라 $\textbf{C}, \textbf{C}'$의 이미지 평면(image plane)에 투영(projection)될 때 $\textbf{X}, \textbf{C}, \textbf{C}'$은 epipolar plane $\boldsymbol{\pi}$를 형성한다.
이 때 그림 1의 (b)에서와 같이 카메라 $\textbf{C}, \textbf{C}'$을 연결한 직선을 base line이라고 하며 각 카메라의 이미지 평면과 base line의 교점을 epipole 이라고 한다.
(2) Fundamental matrix
Epipolar geometry로 부터 두 카메라 이미지의 대응점 쌍 사이의 transform인 fundamental matrix $F$를 구할 수 있다. Fundamental matrix를 구하는 방법은 geometric derivation과 algebraic derivation의 두 가지 방법이 있다.
(2-1) Geometric devirvation of fundamental matrix
그림 2에서와 같이 두 카메라 중심을 지나지 않는 어떤 평면 $\boldsymbol{\pi}$가 존재할 때 $\textbf{C}'$의 이미지 상의 점 $\textbf{x}'$와 그 대응점 $\textbf{x}$사이에는 homography $H_{\pi}$가 존재하고 따라서 다음이 성립한다.
$$ \textbf{l}'=\textbf{e}\times \textbf{x}' = [\textbf{e}']_\times \textbf{x}'$$
$$ \textbf{x}' = H_{\pi} \textbf{x}$$
$$ \textbf{l}'=[\textbf{e}']_\times H_{\pi} \textbf{x} = F\textbf{x} $$
$$ F =[\textbf{e}']_\times H_{\pi} $$
이 때 $[\textbf{e}']_\times$와 $H_{\pi}$가 각각 rank 2와 3 이므로 $F$는 rank 2 matrix이다.
(2-2) Algebraic derivation of fundamental matrix
Algebraic derivation에서는 평면에 대한 가정이 필요하지 않다. $\textbf{x}$의 back-projection을 ray $\textbf{X}(\lambda)=P^+\textbf{x}+\lambda C$ 라고 할 때 다음이 성립한다.
$$ \textbf{l}' = (P'C)\times(P'P^+\textbf{x}) $$
이는 카메라 중심 $C$의 $P'$에 의한 epipole $\textbf{e}'$이기 때문이다.
따라서 $ \textbf{l}' = [\textbf{e}']_\times (P'P^+\textbf{x}) $이고 $F=[\textbf{e}']_\times P' P^+$이다.
(3) Example of algebric derivation of fundamental matrix
첫 번째 카메라의 중심을 world coordinate의 중심과 같다고 가정하고 두 카메라 간의 변환이 $R$과 $\textbf{t}$로 표현된다고 가정하면 다음이 성립한다.
$$ P=K[I|\textbf{0}] \ \ P'=K'[R|\textbf{t}] $$
$$ P^+ = \begin{bmatrix} K^{-1} \\ \textbf{0}^T \end{bmatrix} \ \ C=\begin{bmatrix} \textbf{0} \\ 1 \end{bmatrix}$$
$$ F=[P'C]_\times P'P^+ $$
$$ F=[K' \textbf{t}]_\times K'RK^{-1} = K'^{-T}[\textbf{t}]_\times R K^{-1} = K'^{-T} R[R^T \textbf{t}]_\times K^{-1} = K'^{-T} R K^T [KR^T \textbf{t}]_\times $$
이 때 epipole은 다른 카메라 중심의 이미지 이므로 다음과 같이 정의된다.
$$ \textbf{e} = P \begin{bmatrix} R^T \textbf{t} \\ 1 \end{bmatrix} = KR^T \textbf{t} $$
$$ \textbf{e}' = P' \begin{bmatrix} \textbf{0} \\ 1 \end{bmatrix} = K' \textbf{t} $$
따라서 아래과 같이 fundamental matrix를 표현할 수 있다.
$$ F = [\textbf{e}']_\times K' R K^{-1} = K'^{-T}[\textbf{t}]_\times R K^{-1} = K'^{-T} R [R^T \textbf{t}]_\times K^{-1} = K'^{-T}RK^T[\textbf{e}]_\times $$
'Multiple View Geometry' 카테고리의 다른 글
[21] The Essential Matrix (0) 2021.06.09 [20] Epipolar Geometry and the Fundamental Matrix (2) (0) 2021.06.09 [18] Camera Calibration (2) (0) 2021.04.21 [17] Camera Calibration (1) (0) 2021.04.21 [16] Back Projection and Depth Estimation (0) 2021.04.14