Skip to main content

Epipolar Geometry

Epipolar Geometry は、二つの camera view の間に成り立つ幾何学的制約です。Feature matching、pose estimation、triangulation、SfM、SLAM の基礎になります。

Epipolar constraint

一つの 3D point が二つの camera view に投影され、それぞれの image point を x\mathbf{x}x\mathbf{x}' とします。このとき、二つの点は fundamental matrix F\mathbf{F} によって次の constraint を満たします。

xFx=0{\mathbf{x}'}^\top \mathbf{F}\mathbf{x} = 0

これは、片方の image の点 x\mathbf{x} が、もう片方の image 上では epipolar line l=Fx\mathbf{l}' = \mathbf{F}\mathbf{x} の上に対応点を持つことを意味します。

Fundamental matrix

Fundamental matrix F\mathbf{F} は、uncalibrated camera の二 view geometry を表します。Camera intrinsics が未知でも、対応点の集合から推定できます。

実用上は、RANSAC と 8-point algorithm などを組み合わせて、outlier を除きながら F\mathbf{F} を推定します。

Essential matrix

Camera intrinsics が既知である場合、normalized coordinate 上では essential matrix E\mathbf{E} を使います。

xnExn=0{\mathbf{x}'_n}^\top \mathbf{E}\mathbf{x}_n = 0

Essential matrix は relative pose、つまり rotation R\mathbf{R} と translation direction t\mathbf{t} によって次のように書けます。

E=[t]×R\mathbf{E} = [\mathbf{t}]_\times \mathbf{R}

E\mathbf{E} を分解することで、二つの view 間の relative camera pose を推定できます。ただし、translation の scale は単眼画像だけでは決まりません。

なぜ重要か

Epipolar Geometry によって、次のような処理が可能になります。

  • Matching の outlier 除去
  • Relative pose estimation
  • Triangulation の前処理
  • Stereo rectification
  • SfM / SLAM の初期化

関連ページ

主なソース