エピポーラ幾何

0

1概要

エピポーラ幾何(Epipolar geometry)とは,ステレオビジョンにおける2カメラ間での幾何である.2つの視点で同一物体・シーンを異なる2箇所/方向から撮影した際に必ず発生する幾何的拘束があり,これを利用することでステレオ3次元復元が便利になる.

シーン上の同一点を指し示す画像上のペアは同一平面(co-planer)上に存在することを拘束条件として利用し,その同一平面が画像上を横切る線(エピポーラ線)の上にしか,対応点が存在しないことを,反対側のカメラの対応点を探す際の幾何拘束に用いることができる.また,エピポーラ幾何に特有の行列(基礎行列 or 基本行列)を推定することで,その行列を用いた公式により三角測量を用いて対応点ペアの3次元座標を求めることができる.つまりはステレオビジョンにおいて,「画像間対応づけ」と「3次元復元」の双方に活用されるのがエピポーラ幾何である.従って,Structure from MotionやMultiview Stereoなど,多数のカメラ位置視点からシーンを撮影して,それらの画像群から三次元座標を推定したい問題においては必須の道具となる.

以降,2節では,カメラ間の各三次元点で生じる幾何拘束(エピポーラ拘束)について,まず導入する.次に3節では,エピポーラ拘束を用いる際にあらかじめ準備が必要となるパラメータ(基礎行列・基本行列)の紹介をする.4節でまとめを行う.

2 エピポーラ幾何

エピポーラ幾何は,ステレオ2カメラ視点の間に成り立つ画像上の点間の3次元位置関係の幾何である.

最初に,ステレオの問題設定の定義から始める.シーン中の注目点$\mathit{\bf{P}}$が,2つの視点の画像上の座標$\mathit{\bf{p}}$および$\mathit{\bf{p^{\prime}}}$にそれぞれ投影されているとする.

(以降,3次元幾何の都合上,これ以降の式中においては,同時座標の3次元ベクトルとして$\mathit{\bf{p}} = (x,t,1)^T$および$\mathit{\bf{p}}^{\prime} = (x^{\prime},y^{\prime},1)^T$として扱う)

エピポーラ幾何では,それら3点とカメラ中心の座標の間に成立する幾何的拘束から必ず成立する位置関係をモデル化しておき,画像2枚のみ与えらた際の3次元復元の道具として利用することができる.

例えば図1のように左カメラ画像上の点 $\mathit{\bf{p}}$に対応する点を,右画像で探索する場合を考える.

図1 エピポーラ幾何の拘束を用いた対応点探索

ここで,エピポーラ幾何を知っておくと,「右カメラ画像上ではエピポーラ線(epipolar line)上にしか対応点$\mathit{\bf{p^{\prime}}}$が存在しない」というエピポーラ拘束(epipolar constraint)が成立する.これにより,右側像上のエポピポーラ線上の点のみを探索候補として,$\mathit{\bf{p^{\prime}}}$の対応点探索を(ブロックマッチングなど画像特徴量などを用いて)行えばよいことになる.

それでは,ここで,以下の図2を元に,エピポーラ幾何における各構成要素を整理していこう.

図2 エピポーラ幾何の構成要素
  • 基線(baseline) : 2台のカメラ中心を結んだ青色の線分$mathit{\bf{C}},\mathit{\bf{C^{\prime}}}$.
  • エピポール(epipole): 基線が,画像平面を通る点をエピポール(epipole)と呼ぶ.$\mathit{\bf{e}}$が左画像のエピポールで$\mathit{\bf{e^{\prime}}}$が右画像のエピポール.
  • エピポーラ平面(epipolar plane):シーン中の注目点$\mathit{\bf{P}}$と,2台のカメラ中心$\mathit{\bf{C}}$および$\mathit{\bf{C^{\prime}}}$が形成する平面.
  • エピポーラ線(epipolar line): エピポーラ平面が画像平面と交差する断面が,画像上に作る線(図2中の赤線).

$\mathit{\bf{P}}$は,画像上に投影される限り空間上の任意の点を取りうるわけだが,常に3点$\{\mathit{\bf{P}},\mathit{\bf{C}},\mathit{\bf{C^{\prime}}}\}$は同一平面上に存在し,エピポーラ平面を形成する.既に,2節冒頭でも述べたように,画像中のエピポーラ線上のどこかに必ず$\mathit{\bf{P}}$の投影点$\mathit{\bf{p}}$が存在するので,左画像上の対応点を右画像上で探索する場合は,右画像上のエピポーラ線上のみ探索すれば良いことになる(3節で,この拘束を具体的に定式化し,画像上の点から三次元点に変換できるようにする).

ちなみに,平行ステレオ設定(【用語】ステレオビジョン)では,エピポーラ線は画像のx軸と平行となり,左右の画像で同じ高さに配置される.

3 エピポーラ拘束と三角測量

3.1 基本行列

2カメラ間がステレオキャリブレーション済みの場合に,エピポーラ幾何によるエピポーラ拘束を表現するのが基本行列(Essential Matrix)である.

図3 基本行列:対応点ペアpp‘の幾何関係を表す行列

図3は,左カメラのカメラ座標系を基準とした2カメラのカメラ座標系間の変換関係を回転行列$\mathit{\bf{R}}$と並進ベクトル$\mathit{\bf{t}}$で示している.

基本行列は以下のように与えられる2つの座標系の対応点の変換を,回転行列$\mathit{\bf{R}}$と,$\mathit{\bf{t}}$を歪対称行列(skew symmetry matrxi)表現に変換した$\left[ \mathit{\bf{t}} \right]_{x}$の積で計算される

$$ \mathit{\bf{E}} = \mathit{\bf{R}} \left[ \mathit{\bf{t}} \right]_{x}$$

ここでエピポーラ拘束により$\mathit{\bf{C}}\mathit{\bf{p}}$,$\mathit{\bf{C^{\prime}}}\mathit{\bf{p^{\prime}}}$および$\mathit{\bf{t}}$の3つのベクトルは同一平面上に存在するので,基礎行列$E$を用いて2画像間のエピポーラ拘束を表現できる:

$$\mathit{\bf{p’}}^{T} \mathit{\bf{E}} \mathit{\bf{p}} = 0 \tag{1}$$

ここで,2カメラ間の外部パラメータ(相対的な回転と並進)がキャリブレーション済みであれば,基本行列$\mathit{\bf{E}}$が求まる.キャリブレーションボードを用いて2カメラ間を先にキャリブレーションしておけば,基本行列が手に入り,この拘束式が画像間での対応点探索や三角測量に使用できる.

3.2 基礎行列

2カメラがキャリブレーションされていない場合も,複数の点対応を集めてそれらを拘束条件化し,最小自乗やSample Consensus(RANSACなど)を用いて,対応点間の幾何関係を基礎行列(Fundamental Matrix)として推定して使用することができる.

基本行列では,2個のカメラともキャリブレーション済みで,内部カメラパラメータ$K$および$K’$が既知である場合を想定している.よって$\mathit{\bf{P}}$が画像平面に投影された点である$\mathit{\bf{p}}$および$\mathit{\bf{p’}}$は内部パラメータから求められていたが,元画像上の座標$\mathit{\bf{m}}$と$\mathit{\bf{m}}^{\prime}$を用いたエピポーラ拘束の表現に変えて定式化したい.

ここで$\mathit{\bf{m}}_c = K \mathit{\bf{p}}$であり$\mathit{\bf{m}}^{\prime}_c = K^{\prime} \mathit{\bf{p}}^{\prime}$であることから,(1)の基本行列版のエピポーラ拘束の式は,以下のように書き換えることができる:

$$ \mathit{\bf{m}}^{\prime T} K^{\prime -T} \mathit{\bf{E}} \mathit{\bf{m}}^{\prime T} K^{-1} \mathit{\bf{m}} = 0$$

$$\mathit{\bf{m}} ^{\prime T} \mathit{\bf{F}} \mathit{\bf{m}}= 0 $$

したがって,基礎行列$\mathit{\bf{F}}$は以下のようになる:

$$ \mathit{\bf{F}} = K^{\prime -T} \mathit{\bf{E}} K^{-1} = K^{\prime -T} \left[ \mathit{\bf{t}} \right]_{x} \mathit{\bf{R}} K^{-1} $$ (2)

基礎行列は,画像間の対応ペアN個を拘束としたモデル当てはめにより求める.古典的な方法として,8点の対応ペアを元にSVDで基礎行列を推定する8点アルゴリズム(eight point algorithm) が挙げられる.その後,必要な点の数は減っていき5点アルゴリズムなどが登場した.

ただ,特徴検出器と特徴マッチング(SIFTやSURF,近年だとORBなど)を用いた対応だと誤対応や特徴点誤差も出てきてしまう.そこで,SampleConsesusアルゴリズムやロバスト推定手法を用いて,より多くの点(例えば10~30点ほど)の対応点ペアから対応を用いるようにする.(※8点アルゴリズムにおいても,古典的な最小自乗解法ではなく,RANSACなどにより基礎行列を求めても良い).

とはいえこれらの努力を行っても,2画像間で特徴点対応づけで基礎行列を求め用とすると,ほとんどの条件で推定する基礎行列はあまり安定しない.確実に2カメラ間の相対姿勢を求めたいのであれば,手間があるもののカメラキャリブレーションを行ったり,SfMやMVSになど大量の画像群からの対応づけからの最適化を行う方が,拘束も多くでき誤対応の悪影響も避けやすく好ましい.

また,特徴マッチングという観点から考えると,「精度よく幾何情報を推定できる対象物体」をシーン上に配置し,なるべく誤差なく取得した対応点ペアを用いたほうが,それらがない自然なシーンから得た特徴点対応を用いるよりも.精度よく基礎行列を求めやすい.しかし実験室環境ならさておき,現実のシーンにおいては,キャリブレーション物体を配置しながらの撮影はなかなかできないので,自然なシーンにおける特徴点検出からエピポーラ幾何を行わざるを得ないので,基礎行列の推定誤差に苦労することは多くなる.

4 まとめ

この記事では,2カメラ間の幾何拘束である「エピポーラ幾何」の基礎を紹介した.

要点:対応点探索はエピポーラ線上のみで行えばよく,基本行列や基礎行列が求まれば,2画像間の拘束として成立し,反対側のカメラでの対応点がそれらの行列からすぐに求めることができる.また,三角測量により画像上に投影された点を,3次元点にも投影できる.

References

  • N. Pears, L. Yonghuai, and B. Peter, 3D Imaging, Analysis and Applications (Chapter 2, Passive 3D Imaging), Springer, 2012
  • S. Ling, et al., Computer vision and machine learning with RGB-D sensors. Vol. 20. Heidelberg: Springer, 2014.
  • R. Kletter. Concise Computer Vision: An Introduction into Theory and Algorithms. 1st edition, Springer, 2014.
  • デジタル画像処理[改訂新版], 画像情報教育振興協会, 2015.
0