⑴ 線形代数分野:行列演算・ガウシアンフィルタ
画像の正規化:
デジタル画像データは0~255の明るさを表す輝度値を格納した2次元配列である。
2枚の画像の類似度を求める際、撮影した場所での明るさが異なる場合でも正確に類似度の比較を行うために入力画像の平均値を0に整える必要がある。
具体的に画像配列の全要素の平均値を格納した配列を作成し、元の入力画像配列から行列の差を取ることで画素値の平均値を0にした。
ガウシアンフィルタ :
画像には「局所性」と呼ばれる特徴があり、近い距離にある画素は近い輝度値を持つ傾向にある。
正規化相互相関係数を求める演算に「局所性」考慮した処理を加えることでをステレオマッチングの精度が向上した。
注目画素に近い画素ほど相関係数に与える影響を大きくし、ガウス(正規)分布の関数(2次元正規分布の確率密度関数)を用いて重み付け平均を計算した。
この実装にはガウシアンフィルタ関数を利用した
⑵ 統計・確率分野:正規化相互相関係数(ZNCC):
2枚の画像の画素値パターンの類似度を計算するための指標として正規化相互相関係数を用いた。
画像の隣り合った画素値の連続を波形として考えると、統計学における相関係数のように画素値パターン同士の類似度を計算することができる。
ここで、2枚の画像の画素値のパターンをそれぞれ信号x(n)とy(n+m)とする。
相互相関関数は2つの信号x(n)とy(n+m)の積信号の平均値であるが、これを相関解析の指標にすると次の2つの問題がある。
① 相互相関関数は直流成分(平均値)の大きさに影響を受ける。
② 2つの信号の実効値が大きくなるほど相互相関関数の大きさも大きくなる。
よって①と②にたいして次の処理を行った。
① 2つのデジタル信号x(n)とy(n)からそれぞれの振幅の大きさの平均値を引いた(2つの信号から直流成分を除去した)後に相互相関関数を求める。この演算結果は相互共分散関数と同じ。
② 相互相関関数を元信号のパワー(実効値)で正規化した相互相関係数を用いる。
→ 実効値とは具体的には二乗平均平方根(RMS: root mean square)のことで、標本点数Nの信号の場合、次の式で表せる。
→ RMS = Ax = √1/N*Σ{n=0,N-1}(x^2(n))
①・②から、正規化相互相関係数は相互共分散関数を2つの画素値パターンの標準偏差の積で割った正規化相互相関係数で表せる。
これをステレオマッチングで注目画素の周辺の画素値類似度を比較する指標に用いた。
⑶ テンソル解析:3次元配列の利用 → テンソル解析は載せない方がいいかもしれない
入力配列の全要素に対して正規化相互相関係数を格納した2次元配列を、推定した距離の大きさごとに生成した。
距離方向の次元を考えるとこの配列は3次元になる。
2次元配列の各要素に対して、正規化相互相関係数が最大値をとる距離方向の要素値が推定距離であると実装し、対応する距離方向の要素を改めて入力配列の要素に格納して深度マップを完成させた。
この部分はargmax()関数を使って実装した。
続きを読む