ステレオビジョン:主にSemi Global Matchingによる推定について

0

1. 概要

(パッシブな)ステレオビジョン(Stereo Vision)とは,隣り合って平行配置した2台のカメラで同一シーンを撮影し,画像間マッチングおよびステレオ幾何により3次元復元を行うことを指す.2画像間での3D空間上における同一点ペアの対応づけを,画像全体で最適化(ステレオマッチング)したのち,対応づけの結果である視差(Disparity)から三角測量により各点の3D座標を復元を行う.投影光の情報も活用する「アクティブステレオビジョン」とは違い,(パッシブ)ステレオビジョンではシーンからの受動的に受け取った画像情報しか用いない.

この記事では伝統的な2台のカメラを平行配置する設定で行う「平行ステレオ」を用いた,2枚のステレオ画像ペアから3次元点座標を復元する処理手順を紹介する.伝統的な解放にのみ焦点を当てて読みやすくする意味で,この記事では,「Semi-global matching [Hirschmuller, TPAMI 2008]」のみにステレオマッチング推定手法の紹介を絞ることにした.Graph Cutを用いたGlobal手法や,Filteringを用いたLocalパッチ手法など他の代表的なDeepLearning以前の手法については述べない.

以降は,2節で平行ステレオの処理設定を順に述べる.まず2節の冒頭にて,平行ステレオのカメラ配置について確認する.その後,2.1節では2画像間の対応点ペアが求まったのちに三角測量でどのように3次元点に投影できるかのステレオ幾何関係を先に説明する.その後,2.2節と2.3節で,SGMを用いたステレオマッチング処理を説明する.

2. 平行ステレオ

「平行ステレオ」は『2カメラに同じ縦横の画素数のものを用いて平行に同じ高さで少しだけ左右に離して固定配置し,エピポーラ線のy座標(高さ)を2カメラ間で一致させておく』カメラ配置で行う.ステレオカメラでは2つのカメラの撮像平面が,3次元空間上で同一平面上に(すわなち平行に)配置されていることを仮定する.

ステレオビジョンでは,3次元空間上で2カメラの光学中心間を結んだ直線を基線(baseline)と呼ぶ,各種のステレオカメラでは10cm~30cm程度の基線長で2カメラ間を配置することが多い.

ステレオマッチングの結果として各座標の視差が推定されたのちは,ステレオカメラ特有の画像座標と3次元座標の変換式を用いて(2.1節),求まった視差とカメラの内部パラメータを元に,各対応点ペアをすぐに3次元点に投影することができる.

2.1 対応した座標ペアの3次元座標への変換

この節では,SGMなどのステレオマッチング処理の結果,2カメラ間での対応点ペアが推定された後に,それらの画像上の点がどのようにして3次元座標に変換できるかについて述べる.

まず,ステレオマッチングの結果,左カメラ画像上の点$\mathit{\bf{p_L}} = (u_L, v_L)$が,右カメラ画像上の$\mathit{\bf{p_R}} = (u_R, v_R)$と対応づいており,その2点が共通して指し示す3次元点座標が$\mathit{\bf{P}} = (X, Y, Z)$であるとする.ここで,$u_R < u_L$および$v_L = v_R$を満たす.

これらの3点と2カメラの画像平面の3次元空間上における位置関係を,2点$\mathit{\bf{p_L}}$,$\mathit{\bf{p_R}}$を通る水平断面上でみると,以下の図1のようになる(※ステレオ設定の場合,この断面はエピポーラ平面に相当する):

図1 平行ステレオの三角測量を行うための3点関係.

この空間関係を元に考えると,マッチング結果の視差$d = p_L – p_R$,焦点距離$f$および基線長$b$を用いて(※$d$と$b$はステレオカメラキャリブレーションであらかじめ取得済み),$\mathit{\bf{P}}$の座標は以下の関係式により求まる:

$$X = \frac{b \cdot u_L}{d}, Y = \frac{b \cdot v_L}{d}, Z = \frac{b \cdot f}{\sigma d}$$

これにより,ステレオマッチング処理で各座標の視差さえ推定し終われば,実質3次元座標まで推定できたも同然であることがわかったと思う.

2.2 一般的なステレオ推定

まずステレオ全般の一般的な定式化を行う.画素$p$における視差のラベル$l_p \in d_{max}$($d_{max}$は最大視差)を,画像全体の最適化により推定するために,以下のような「(画素ごとの)データ項」と「(隣接画素間の)平滑化項」の和を,目的関数$E$として用意すする:

$$E = \sum_{p} E_{data}(l_p; W) + \sum_{p}\sum_{q \in N_{p}} E_{smooth}(l_p,l_q)$$

この$E$は各画素をノードとし,隣接画素間をエッジで結んだグラフの最適化エネルギーに相当する.右辺第一項$E_{data}(l_p; W)$は画素ごとのコスト関数を示し,左右2パッチ間で類似しているほどコストの値が低い関数を用意する.右辺第2項$E_{smooth}(l_p,l_q)$は,$p$と4(or 8)近傍画素$q \in N_{p}$の間での平滑化制約である.グラフ全体をこの$E$を用いてExactな全体最適化を行ってしまうと,多めの計算時間がかかってしまうので,SGMは高速化を目指して別の方針を取る.

ステレオカメラによる3D推定の一般的な処理手順は以下の通りとなる:

  1. [Cost 計算] 各y座標において,左右のパッチ領域を用いてマッチングコスト(ある視差の値を仮定した時のパッチ同士の類似度)を,右画像の視差1から視差$d_{max}$の各画素において,それぞれ計算する.代表的なマッチングコストには「Census」がよく用いられる.これにより,各候補の視差において計算したマッチングコストを格納した,コストボリューム(Cost Volume)と呼ばれる$W \times H \times (d_{max} +1)$次元の3階のテンソルが手に入る.(3Dコストボリュームは,Disparity Space Image (DSI)と呼ばれることも多い)
  2. [Cost Aggregation(ステレオマッチング処理)]:手順1で算出したコストボリュームを元に画像全体のエネルギー関数を用いて,ステレオマッチング処理を行うことにより,全体的最適化された画素ごとの視差を推定する.
  3. [三次元測量(triangulation)による3D投影] 左画像の各画素$(\mathit{\bf{p_L}}$において,推定したその点の視差と焦点距離$f$を用いて,3次元座標点$(X,Y,Z)$に変換する.

以上の通りが,一般的なステレオの処理手順である.ここで平行ステレオ設定の主な利点をいくつか述べておく:

  • Rectificationによる画像変換を行わずに(撮影した画像を変形させないまま)直接元の撮影された2枚の画像を用いてステレオマッチングで3D化できる.
  • 平行カメラ配置により,三角化(Triangulation)も行いやすくカメラ配置幾何形状が単純化されており,視差(disparity)と基線長(baseline)の比例関係式のみで3次元点が簡潔に求められるのも嬉しい.

エピポーラ幾何でチェッカーボードを用いた一台のカメラに対して行うカメラキャリブレーションとは違い,2台のカメラ間の相対的位置姿勢の対応を求めるステレオカメラキャリブレーションが(パッシブでもアクティブでも)ステレオビジョンにおいては必要となる.従って,事前にステレオカメラペアに対してステレオキャリブレーションを行っておく.

2.3 SGMの処理手順と利点

この節ではSemi-global matching [Hirschmuller, 2008]の概要を紹介する.(SGMの詳しい手順は別の記事に書くので,ここでは概要のみを紹介.)

SGMでは注目点に対して45度ずつに分けた8方向「パス」の直線上に存在する点からだけCostを集めるので,上記の一般系のような全画素分のエネルギーは計算しない.各1方向パスの直線上で平滑化もペナルティとして加えながら,動的計画法的に視差$d$の最適パスを各直線上で求める.8方向の各パスは動的計画法的に視差を一画素ずつ(周辺での推定結果を頼りに)推定して確定させていくので,全体最適化で多くの候補の中から探すよりも短い点で済む.

SGMでは,このように8方向のパス上の平滑化項しかaggregationしない,「半グローバル」な最適化で済ませているが,そのわりにグローバル最適化と同等か少し劣る程度の精度で視差マップが取得できる.加えて,アルゴリズムの単純さで実装も容易なことも手伝って,産業界でもSGMは広くステレオカメラにおいて用いられるようになった(※ただし,2019年現在では,DeepNetを用いた学習ベースのステレオ手法も,一部移動ロボット向けなどで応用が始まりつつある).

本記事ではSemi-Globalな手法であるSGMについてのみステレオマッチング手法を紹介したが,以下のように,Localのコストのみを用いたフィルタリングベースの手法や,SGMと違って(処理時間もかけて)もう少しきちんとグラフ全体でGlobal最適化する手法もある:

  • Local 手法: エッジ-awareな局所フィルタにより,窓内のみでコストを集めてフィルタリングする推定手法([Cost Volume Filtering ,CVPR2012]など).
  • Global 手法:Belief Propagationなどで全体のコストを最適化([PatchMatch BP, IJCV2013]など).

3. まとめ

この記事では2台のカメラを平行に配置するステレオカメラからの3Dシーン復元について説明するために,代表例であるSemi-global matchingを用いた処理手順を,大まかに紹介した.

References

  1. R. Kletter. Concise Computer Vision: An Introduction into Theory and Algorithms. 1st edition, Springer, 2014.
  2. Pears, Nick, Yonghuai Liu, and Peter Bunting. 3D imaging, analysis and applications. Springer, 2012.
  3. H. Hirschmuller. Stereo processing by semiglobal matching and mutual information. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 30(2):328–341, feb 2008.
  4. デジタル画像処理[改訂新版], 画像情報教育振興協会, 2015.

外部リンク

0