エピポーラ幾何 (Epipolar Geometry)

1Epipolar Geometryの概要

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

エピポーラ幾何を活用すると「シーン上の同一点Pを指し示す両カメラ画像上の点のペア(p, p’)は,同一平面 (co-planer) 上に存在する」ということを拘束条件 (エピポーラ拘束) として利用できる.この拘束を用いると,点Pを指しているカメラ画像上の点pに対応している,反対側カメラにおける対応点p’の画像座標は,その同一平面が反対側カメラの画像平面上を横切る線 (エピポーラ線)の上にしか存在しないので,対応点探索がエピポーラ線上の点のみで済む利点が出てくる.

また,探索して得られた同一点Pを表す両カメラ画像間の対応点ペア(p, p’)をもとに,エピポーラ幾何に特有の行列(基礎行列 or 基本行列)を推定することで,それらの行列を用いた公式により,三角測量を用いて対応点ペアの3次元座標Pを算出することができる.つまりはステレオビジョンにおいて,「画像間の点ペア対応づけ」と「3次元復元」の双方に活用されるのがエピポーラ幾何である.従って,Structure from Motion や Multiview Stereo などの,「多視点から同一シーンを撮影して,それらの画像群から三次元座標を推定したい問題」においては,エピポーラ幾何が必須の道具となる.

1.1 この記事の構成

2節以降は,以下の構成でエピポーラ幾何について説明する.

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

2 エピポーラ幾何 (epipolar geometry)

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

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

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

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

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

図1 エピポーラ幾何の拘束を用いた,ステレオ対応点の探索.

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

先に,以下の図2を元に,エピポーラ幾何における各構成要素を整理しておきたい:

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

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

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

3 エピポーラ拘束 (epipolar constraint)と三角測量

3.1 基本行列

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

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

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

基本行列は以下のように与えられる2つの座標系の対応点の変換を,回転行列$\mathit{\bf{R}}$と,$\mathit{\bf{t}}$を歪対称行列 (skew symmetry matrix) 表現に変換した$\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^{\prime}$が既知である場合を想定している.ここで,3.1節では$\mathit{\bf{P}}$が画像平面に投影された点$\bm{p}$および$\bm{p}^{\prime}$は内部パラメータから求められていたが,元画像上の座標$\bm{m}$と$\bm{m}^{\prime}$を用いたエピポーラ拘束の表現に変えて定式化したい.

ここで$\bm{m}_c = K \bm{p}$であり$\bm{m}^{\prime}_c = K^{\prime} \bm{p}^{\prime}$である.従って内部パラメータがキャリブレーションされていない場合は,式(1)の基本行列版のエピポーラ拘束の式を以下のように書き換えることができる:

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

$$\bm{m} ^{\prime T} \bm{F} \bm{m}= 0 $$

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

$$ \bm{F} = K^{\prime -T} \bm{E} K^{-1} = K^{\prime -T} \left[ \bm{t} \right]_{x} \bm{R} K^{-1} \tag{2}$$

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

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

実シーンの画像において

とはいえ,上記の各努力を行っても,2画像間の特徴点対応づけで基礎行列を求めようとすると,ほとんどのシーン画像では,基礎行列の推定値はそれほど安定しない.なぜなら実シーンの画像では,なかなか理想的に正しい対応点ペアを正確かつ大量に取得できるとは限らないからである.

従って,確実に2カメラ間の相対姿勢を求めたいのであれば,手間は出るものの,きちんとステレオカメラキャリブレーションを行ったり,SfM (Structure-from-Motion) や MVS(Multi-view Stereo) などで,同一シーンを撮影する大量の画像群間の対応づけからの最適化を行う方が,カメラ間幾何の推定値は安定する.SfMやMVSの問題設定の方が,拘束数(点のマッチング数)を増加できて基礎行列の推定値も安定する上,誤対応の悪影響も避けやすくなる意味でも好ましい.

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

4 まとめ

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

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

一方で,対応点は実シーンでは安定する場合としない場合があり,2カメラ間だけでは安定したカメラ間キャリブレーションはいつも成立するわけではない.そこで,SfMやVisual SLAM, MVSなどで,計算に用いる画像(視点)数を大量に増やすと,対応点ペアも大量に得られ,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.

関連記事