LoginSignup
1
3

More than 3 years have passed since last update.

【StereoDepth】stereo matchingまとめ

Last updated at Posted at 2020-09-16

処理手順

  1. Undistortionする(画像の歪みを消す)
  2. Stereo Rectificationする(右と左の画像が高さが同じになるように調整)
  3. 平滑化する(Noiseのフィルタリングや輝度値を左右で合わせるなど)
  4. costの計算方法
  5. matching方法

4.costの計算方法

SAD(Sum of Absolute Difference)

1pixel毎のintensityの差を画像全体で足し合わせたもの
image.png

SSIM(Structure Similarity)


intensityの平均値と標準編が右の画像と左の画像が同じであれば、SSIMは1になる。もし平均値または標準偏差が左右で近くなければ、SSIMは0に近づく。
image.png

Cost = α*SSIM + (1-α)SAD
*α(0~1)

5.matching方法

BM(Block Matching)

ある右の画像のblock(WxH)を抜き取る。0からMaxDisparity(任意の値)まで1pixelずつblockをずらしながら、左の画像の対応箇所と比べてマッチングコストを計算する(SAD,SSIMなど)。一番コストの低かったDisparityを最終的なDisparityとして用いる。
image.png

SGM(Semi-Global-Matching)

  1. pixel毎のコストを計算する
    右の画像と左の画像の対応するwindow(block)のマッチングコスト(SAD,SSMI,ハミング距離etc)を計算する。
    右の画像を横にshiftさせながら同じくマッチングコストを計算する。これを画像全体で行う。出力はWxHxDの3
    次元になる(すべてのpixelはMaxDisparity個の値を保持している)
    *ここで最小のマッチングコストを出力した場合Block Matchingと同じ結果になる

  2. smoothing
    一つ前(隣)のpixelとのdisparityは同じであると仮定する。
    d=d => Penalty=0
    d=d+1 => Penalty=P1
    d=d-1 => Penalty=P1
    d=i => Penalty=P2
    基本的に周辺(隣り合う)pixelのDisparityは同じはず。

  3. 動的計画法により8方向からスキャンする
    2を8方向から行い足すことによってsmoothingしながら、WxHxDのコストマップが完成する

  4. Disparityを求める
    コストが一番小さいDisparityを最終結果として用いる(winner-takes-all)

image.png

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3