Manduss life

[MVG] Epipolar Geometry 본문

전산/MVG

[MVG] Epipolar Geometry

만두쓰 2022. 2. 7. 11:11

Epipolar geometry는 두 개의 시점 관계의 projective geometry이다. 

$${x^{'}}^{T}Fx = 0$$

$F$ : fundamental matrix로 intrinsic geometry, 3x3 matrix, rank 2 (rank : 행렬이 나타낼 수 있는 기저 공간의 개수, 서로 독립적인 행과 열의 개수(행과 열의 랭크는 같은 값을 가짐))

$x$ : 첫번째 시점의 투영 2차원 점
$x^{'}$ : 두번째 시점의 투영 2차원 점

base line : 두 시점의 카메라 센터를 연결한 선

epipolar plane : base line과 3차원 점 $X$ 가 만나는 평면

epipole : base line과 각 시점의 image plane과 만나는 점, 다른 시점의 카메라 센터를 해당 시점에 투영한 점

epipolar line : epiplar plane 과 image plane의 교차선, epipole이 그 위에 존재.

 

Geometric derivation

$$x \mapsto x' : H_{\pi}$$

$$x \mapsto l' : F $$

이는 시점 1의 2차원 좌표가 시점 2의 epipolar line으로 mapping된다는 의미이다. 이 관계식은 fundamental matrix로 표현된다.

1. 시점 1의 2차원 좌표 $x$는 독립적인 3D plane의 한 점 $X$위에 있는 점이고, $X$는 시점 2로 투영되어 얻은 점 $x'$ 획득

$$x' = H_{\pi }x$$

2. $x'$은 epipole 점 $e'$과 잇는 선 $l'$ 획득 

$$l' = e' \times x' = [e']_{\times }x'$$

$$l' =[e']_{\times }H_{\pi }x = Fx$$

$$ F = [e']_{\times }H_{\pi } $$

$[e']_{\times }$이 rank 2이기 때문에 $F$ matrix 또한 rank2 행렬이다. 

 

Algebraic derivation

앞서 geometric하게 Fundamental matrix를 증명하였다면, 수학적 증명도 가능하다. 

3차원 점 $X$를 다음과 같이 정의할 수 있다.

$$X(\lambda) = P^{+}x + \lambda C$$

$ P^{+}$는 matrix P(3x4)의 pseudo inverse 4x3 행렬이다.

2차원 점 point1과 point2를 정의한다.

point1 : 3차원 점 X를 두번째 시점으로 투영한 점

$$P'P^{+}x$$

point2 : 첫번째 시점의 카메라 센터($C$)를 두번째 시점으로 투영한 점(epipole)

$$P'C$$

두번째 시점의 epipolar line($l'$)을 정의한다.

$l'=(P'C)\times (P'P^{+}x)$가 되는데 이를 전개하면 

$$\begin{align} &l'=(P'C)\times (P'P^{+}x) \\

&= \left [ e' \right ]_{\times}(P'P^{+}x) \\
&= Fx \end{align} $$

그러므로 
$$\therefore F = \left [ e' \right ]_{\times}P'P^{+}  $$

의 Fundamental 식을 얻을 수 있다. 

여기서 $P'P^{+}$는 앞 절의 $H_{\pi } $ 와 동일하여 앞 절의 식과 같은 식을 얻었다.

$P$식을 좀더 파고들자면, 다음과 같은 증명도 가능하다.

 $$ P = K[I|0] \quad P' = K'[R|t]$$

$$ P^{+} =    \begin{bmatrix}K^{-1} \\ 0^{T} \end{bmatrix}  \quad C = \begin{pmatrix}
 0\\
0 \\
 0\\
1\end{pmatrix} $$

$$\begin{align}
&F = [P'C]_{\times}P'P^{+} \\
&= \left [K'[R|t]\binom{\textbf{0}}{1}\right ]_{\times}K'[R|t]\begin{bmatrix}
K^{-1} \\
0^{T}\end{bmatrix}\\
&=[K't]_{\times} K'RK^{-1}\\
&= K'^{-T}[t]_{\times} RK^{-1}\\
&= K'^{-T}R[R^{T}t]_{\times}K^{-1}\\
&= K'^{-T}RK^{T}[KR^{T}t]_{\times}
\end{align}$$

Appendix

** Cross products

벡터 a의 외적 계산 시 $[a]_{\times }$ matrix로 표현 

$$a = (a_{1}, a_{2}, a_{3})^{T}$$

$$[a]_{\times } = \begin{bmatrix}
0 & -a_{3} & a_{2}\\ 
a_{3} &  0&-a_{1} \\ 
-a_{2} &a_{1}  &0 
\end{bmatrix}$$

$$a \times b = [a]_{\times }b$$

 

'전산 > MVG' 카테고리의 다른 글

[MVG] Extrinsic Matrix and its Inverse / Camera Center  (2) 2022.04.12
Comments