論文 "The Fast Bilateral Solver" ①
論文"The fast bilateral solver. "[1]を読む。
例えばDNNで画像のセグメンテーションを行うと十分な解像度の結果が得られず、特に境界が粗くなったりする。[1]は、この問題を解決する手法の一つであるバイラテラルフィルタを高速化した、「バイラテラルソルバー」の提案を目的としている。
[1]がやろうとしていること
DNNが出力した粗いセグメンテーション結果から、精度の高い(境界が滑らかになった)セグメンテーション結果を得ることが目的。
この目的のために、次の最適化問題を解くのが「バイラテラルソルバー」。
\begin{align}
\underset {x}{minimize} \ \displaystyle \frac{\lambda}{2} \displaystyle \sum_{i,j} \hat{W}_{i,j}(x_i-x_j)^2 + \displaystyle \sum_{i} c_i (x_i - t_i)^2
\tag{1}
\end{align}
式(1)に用いられている記号について説明する。
- :出力画像 x(精密なセグメンテーション結果)の番目の画素の値。
- :出力画像 xの番目の画素の値。
- :番目の画素と番目の画素にかかる重み。
- :信頼度画像cの番目の画素の値。
- :ターゲット画像tの番目の画素の値。
ターゲット画像、信頼度画像、出力画像について説明する。
- ターゲット画像t:例えばDNNが出力した粗いセグメンテーション結果。抽出したい領域を1、それ以外の領域を0で表す2値画像。境界付近の精度が低い。
- 信頼度画像(confidence image)c:ターゲット画像中、セグメンテーション精度(信頼性)が高い領域を1、低い領域を0で表した画像と思われる。[1]のセクション2Problem Formulationまで読んだ時点では具体的にどうやって作ればよいか分からない。
- 出力画像x :ターゲット画像が改善され、境界付近の精度が向上したもの。
式(1)の解釈
式(1)を解くとは、式(1)の値を最小化する出力画像xを取得することである。
ターゲット画像t、信頼度画像cは固定の状態で、出力画像xを様々な値に変化させ、式(1)を最小化する出力画像xを求めることを実際には行う。
式(1)は画像依存の平滑化項(image-dependent smoothness term)とデータ忠実項(data-fidelity term)との二つで構成されている。
画像依存の平滑化項(image-dependent smoothness term)
式(1)の一つ目の項は、画素値と画素値の差が大きくなれば大きくなる値を、重みで制御している。
つまり、最小化するためには、画素値と画素値の差を小さくすればよい。すべての値が同じになれば最小化を達成できる。
しかし、すべての値を同じにするなどして、出力画像xがターゲット画像tと違い過ぎると、二つ目の項であるデータ忠実項が大きくなってしまい、式(1)全体としての最小化は達成されなくなる。
そこで重要なのは重みで、差を小さくしたい画素の組で大きく、差が大きくても問題ない画素の組で小さくなるような重みとなっていることが期待される。
データ忠実項(data-fidelity term)
式(1)の二つ目の項は、出力画素値と入力画素値の差が大きくなれば大きくなる値を、信頼度で制御している。
この項はを入出力の差を小さくしようとするもの。入力の値を保ちたい画素で大きく、入力の値から変わってもよい画素で小さくなるように信頼度が生成されていれば良い。
まとめ
論文[1]を読み、解こうとしている最適化問題の式について考えてみた。
ここまでで分からないのは、
- 重みの作り方
参照画像を使って作る。論文では式(2)において説明されている。次回はここを勉強する予定。
- 信頼度の作り方
ざっと見たところ、この論文では具体的な作り方が示されていないような・・・。
- 式(1)の具体的な解き方。
この論文の本題。まだまだ先は長い。
参考文献
[1] Jonathan T Barron and Ben Poole. 2016. The fast bilateral solver. ECCV (2016).https://arxiv.org/pdf/1511.03296.pdf