論文 "Fast bilateral-space stereo for synthetic defocus" ④
論文"Fast bilateral-space stereo for synthetic defocus. "を読む。
背景
前回まで
低品質のセグメンテーション結果から高品質のセグメンテーション結果を生成するバイラテラルソルバーについて調査中、実際にプログラミングするため引用文献から本論文にたどり着いた。
疑問点
- バイラテラルソルバーを計算するために必要な行列、ベクトルの作り方。
- 親和性行列の作り方(二重確率化とは?)
- 信頼度の作り方
論文を読む
論文"Fast bilateral-space stereo for synthetic defocus. "の2. FAST BILATERAL FILTERINGを読みはじめた。
論文はデフォーカスレンダリングを目的とするデプスマップ作成のために、バイラテラル空間で行なわれる新しい最適化フレームワークを提案し、高速に視差図を求める。
コアの技術はバイラテラルフィルタをピクセル空間からバイラテラル空間へとリサンプリングするというもの。まずは"2. FAST BILATERAL FILTERING"において、バイラテラルフィルタの基本式が紹介されている。
2. FAST BILATERAL FILTERING-2
論文は同じことを言葉を変えて何度も繰り返していたり、理解が逆に難しくなるような説明があったりで冗長で長く感じる。
以下、2. FAST BILATERAL FILTERINGの2から4段落を、全訳するのではなく適当に意訳、切り貼りする。そのため、重要な記述の抜け漏れがあるかもしれない。
バイラテラル表現
バイラテラルフィルタリングの高速化技術は多く提案されている [1, 2, 5, 8]が、本論文ではバイラテラルフィルタリングをスプラット/ブラー/スライス(splat/blur/slice)手順で表す、「バイラテラル表現」に焦点を当てる。
「バイラテラル表現」とは、
- ピクセル値は、グリッドまたはラティスの小さな頂点に「スプラット」(soft histogramming operation)され、
- 次にそれらの頂点の値をブラー処理が行われ、
- 最後に、ブラー処理された頂点の値の「スライス」(補間)を介して、各ピクセルのフィルタされた値が生成される、
というもの。
一般にピクセル空間のピクセルの数は非常に大きいため、バイラテラル空間の頂点において計算することではるかに効率的に処理が可能になる。
本論文は、ピクセルとバイラテラル類似性尺度で表現されたある種の大域的最適化問題を、どのように「バイラテラル表現」に埋め込むか、を示す。
バイラテラルフィルタリングの高速化手法の一つ、スプラット/ブラー/スライス(splat/blur/slice)手順を本論文では「バイラテラル表現」と呼ぶ。
「バイラテラル表現」とは、ピクセル空間で表されている画像の各画素をバイラテラル空間にリサンプリングし(これをスプラットと呼ぶ)、バイラテラル空間上でピクセル空間でのフィルタリングを近似する処理を行い(ブラーと呼ぶ)、バイラテラル空間からピクセル空間に戻す(スライス)という処理である。
バイラテラル表現の式
バイラテラル表現では、次式の行列因数分解でを近似する:
この式において、による乗算が「スプラット」、による乗算が「ブラー」、さらにによる乗算が「スライス」である。が大きくて高密度の場合でも、構成上は行数が小さく列数が大きいスパース行列で、は行と列共に小さなスパース行列である。また、は実際はいくつかのスパース行列の積である(ただし、便宜上単一の行列として扱う)。
これらのバイラテラル表現を行列分解としての視覚化は、補足資料を参照。
バイラテラル表現を用いたバイラテラルフィルタリング
バイラテラルフィルタの式(1)のを式(3)で置き換えることで次の式(4)が得られる。
バイラテラル表現の効果と原理
式(1)を用いたナイーブなフィルタリングはしばしば手に負えないほど低速だが、バイラテラル表現を用いた式(4)は高速フィルタリングを可能にする。
式(1)に比較して式(4)が非常に高速なのは、
- スプラット/スライス行列、 ブラー行列のスパース性
- ピクセル空間におけるピクセル数よりバイラテラル空間における頂点数が非常に少ないこと
- たとえば、4メガピクセル画像において、パラメータをおよび に設定した場合、バイラテラル表現では10から200倍変数の数が削減され、通常4〜20万の頂点数になる。
- が大きくなるにつれて、バイラテラル表現に必要な頂点の数は少なくなる。
に起因する。
この論文を読みはじめた目的の一つはこの行列、を具体的にどうやって構築するかだが、ここまでではまだ分からない。
パーミュテヘドラルラティス(permutohedral lattice)[1]とバイラテラルグリッド[5]
我々は二つのバイラテラル表現に焦点を当てます:
- パーミュテヘドラルラティス
点をより高次元の空間に持ち上げ、重心補間を使用することによって[1]、高価ですが、を正確に近似したモデル化が可能です。
- 単純化されたバイラテラルグリッド
文献[5]のバイラテラルグリッドに基づいており、ここで補間は「ハード」代入に置き換えられており、「ブラー処理」は積ではなくフィルターの合計です。mean-shift 画像セグメンテーション[6、22]にも同様のデータ構造が使用されています。構築や使用は安価ですが、パーミュテヘドラルラティスより近似精度が劣ります。
どちらも、ピクセル空間からの信号を「バイラテラル空間」にリサンプリングすることによって機能します。バイラテラル空間内の隣接する頂点間の小さなブラー処理は、ピクセル空間内の大きな局所的でないエッジアウェアなブラー処理と同じものです。
これらのバイラテラル表現のより直感的な理解が必要であれば、図2と3、または補足資料を参照してください。
行列、を具体的にどうやって構築するかは、これらのどちらを選択するかによって変わると考えられる。精度を求めるならパーミュテヘドラルラティス、速度を求めるならバイラテラルグリッドであり、それぞれでスプラットの仕方が異なるはずなので、それによって行列が決まると理解する。