ステレオマッチング
読み: すてれおまっちんぐ
左右 2 台のカメラで撮影した画像ペアから、対応する画素を見つけて奥行き情報を復元する技術。自動運転やロボットビジョンにおける 3D 計測の基盤手法である。
ステレオマッチング (Stereo Matching) は、異なる視点から撮影された 2 枚の画像 (ステレオペア) において、同一の 3D 点に対応する画素の組を特定する処理である。対応点間の水平方向のずれ (視差) から三角測量の原理で奥行きを算出し、シーンの 3D 構造を復元する。
ステレオマッチングの前提として、2 台のカメラはキャリブレーション済みで、エピポーラ幾何に基づく平行化 (レクティフィケーション) が適用されている必要がある。平行化後は対応点探索が同一水平ライン上に限定され、計算量が大幅に削減される。
- 局所マッチング: 各画素の周辺ブロック (例: 9x9) の輝度パターンを左右画像間で比較する。SAD (Sum of Absolute Differences) や NCC (Normalized Cross-Correlation) がコスト関数として使われる。高速だがテクスチャの乏しい領域で精度が低下する
- 大域マッチング: 画像全体の整合性を考慮してコスト最小化を行う。SGM (Semi-Global Matching) は 8〜16 方向からのコスト集約で局所法と大域法の中間的な精度と速度を実現する
- 深層学習ベース: GC-Net、PSMNet、RAFT-Stereo などの CNN ベース手法が精度で古典手法を上回る。4D コストボリュームを構築し、3D 畳み込みで視差を回帰する
OpenCV では cv2.StereoBM_create() や cv2.StereoSGBM_create() で実装されている。視差の探索範囲 (numDisparities) とブロックサイズが主要パラメータであり、対象シーンの奥行き範囲に応じて調整する。