数学がわからない

日々の勉強をアウトプットする。

論文 "Fast bilateral-space stereo for synthetic defocus" ③

論文"Fast bilateral-space stereo for synthetic defocus. "を読む。

背景

前回まで

低品質のセグメンテーション結果から高品質のセグメンテーション結果を生成するバイラテラルソルバーを実際にプログラミングするために、行列S^TA^{-1}Aを構成する\lambda, D_m, D_n, \bar{B}, S、信頼度画像\textbf{c})、ベクトル\textbf{b}の具体的な作り方を調べている。

疑問点

  • バイラテラルソルバーを計算するために必要な行列、ベクトルの作り方。
  • 親和性行列\hat{W}_{i,j}の作り方(二重確率化とは?)
  • 信頼度c_iの作り方

論文を読む

文献[2]のAbstractと1.Introductionまで読んだ。

文献はデフォーカスレンダリングを目的とするデプスマップ作成のために、バイラテラル空間で行なわれる新しい最適化フレームワークを提案し、高速に視差図を求める。

コアの技術はバイラテラルフィルタをピクセル空間からバイラテラル空間へとリサンプリングするというもの。今日はその"2. FAST BILATERAL FILTERING"について読み進める。

2. FAST BILATERAL FILTERING-1

バイラテラルフィルタ[28]は、エッジ保存フィルタであり、局所的にフィルタを画像内容に適応させることによって、エッジに沿ったぼかしは行うが、エッジを横切るぼかしは行わない効果がある。

バイラテラルフィルタを考えるのに便利な方法は、正規化された行列 - ベクトル乗算である:

\begin{align}
\bf{y}=(A\bf{x})/(A1)
\tag{1}
\end{align}

ここで、A_{i,j}ピクセルijの間の重み、\bf{x}は(ベクトル化された)入力画像、\bf{y}はフィルター処理された出力画像、/ は要素ごとの割り算、そして1はすべて1のベクトルです。

一般に画像は2次元データだが、ここで入力画像\bf{x}と出力画像\bf{y}はそれぞれ1次元にベクトル化されている。式(1)を書き下すと次のようになる。

f:id:rettouseinosugakubenkyo:20190429064141p:plain

つまり、出力画像\bf{y}の1画素を計算するために、入力画像\bf{x}の全ての画素に、フィルタ係数を表す行列Aのある行の全ての値をかけて総和をとり、フィルタ係数の総和で割るのが式(1)である。

では行列Aは? という話が続く。

正式には、Aは次のように定義されます。

\begin{align}
A_{i,j}=\exp \left(-\frac{\| [x_i, y_i] - [x_j, y_j] \|^2}{2\sigma^2_{xy}} - \frac{\| [r_i,g_i,b_i] - [r_j,g_j,b_j] \|^2}{2\sigma^2_{rgb}} \right)
\tag{2}
\end{align}

ここでパラメータ\sigma_{x,y}\sigma_{r,g,b}はそれぞれ、フィルタの空間と範囲帯域幅を制御する。

式(2)は、\| [x_i, y_i] - [x_j, y_j] \|が画素iと画素jとの空間的な距離を、\| [r_i,g_i,b_i] - [r_j,g_j,b_j] \|が画素iと画素jとの画素値の差を表している。距離や差が大きくなればなるほどフィルタ係数であるA_{i,j}は小さくなる。

式(1)(2)では、出力画像の画素ひとつを計算するのに入力画像の画素すべてを用いて係数を求めることになっているので、真面目に計算すると非常に計算コストが高い。ただ、例えば\sigma_{x,y}=1として\exp \left(-\frac{\| [x_i, y_i] - [x_j, y_j] \|^2}{2\sigma^2_{xy}}\right)を計算すると、距離が0の時最大値1、距離が1で0.607、距離が2で0.135、距離が3で0.011、距離が4で0.0003と、どんどん小さくなる(図1)。

f:id:rettouseinosugakubenkyo:20190430070021p:plain
図1 距離に関する重み係数

したがって求める出力画像に実用上問題の生じる差がないのであれば、適当な範囲で計算を打ち切るようにすることはできそうである。なお、\sigma_{x,y}=1と係数との関係は図2のようになる。つまり、\sigma_{x,y}=1に応じて計算範囲を定める必要がある。

f:id:rettouseinosugakubenkyo:20190430071147p:plain
図2 σxyと係数

まとめ

2. FAST BILATERAL FILTERING を読みはじめる。

まずはバイラテラルフィルタの式そのものについて。