Your SlideShare is downloading. ×
ガイデットフィルタとその周辺
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ガイデットフィルタとその周辺

7,843
views

Published on

Published in: Technology

0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,843
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
119
Comments
0
Likes
14
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Guided Filterとその周辺 名古屋工業大学 福嶋慶繁 2012/7/21 第18回 名古屋CV・PRML勉強会
  • 2. 紹介論文• J. Lu, K. Shi, D. Min, L. Lin, and M. N. Do, “Cross-Based Local Multipoint Filtering,” CVPR2012.• 内容: 高速なエッジキープ型のフィルタの 拡張とアプリケーション例 – 注)細かいところはカットしています – なかなか本題にはいりません.
  • 3. 関連論文• Bilateral Filterの論文 – C. Tomasi and R. Manduchi, “Bilateral Filtering for Gray and Color Images,” ICCV’98.• Joint/Cross Bilarater Filterによるデノイズ – G. Petschnigg, M. Agrawala, H. Hoppe, R. Szeliski, M. Cohen, K. Toyama, “Digital Photography with Fash and No-flash Image Pairs,” SIGGRAPH’04. – E. Eisemann and F. Durand, “Flash Photography Enhancement via Intrinsic Relighting,” SIGGRAPH’04.• Joint Bilateral Filterを~mapに適用して解像度やノイズ除去 – J. Kopf,M. F. Cohen,D. Lischinski and M. Uyttendaele, “Joint bilateral upsampling,” SIGGRAPH’07• NLFによるデノイズ – A. Buades, B. Coll, J.M. Morel, “A Non-local Algorithm for Image Denoising,” CVPR’05.• Guided Filterの論文 – K. He, J. Sun and X. Tang, “Guided Image Filtering,” ECCV’10.• Guided Filterをコストボリュームに適用することによる応用の拡張 – C. Rhemann, A. Hosni, M. Bleyer, C. Rother, and M. Gelautz, ”Fast Cost-volume Filtering for Visual Correspondence and Beyond,” CVPR’11.• クロススケルトンによる適用的インテグラルイメージ – K. Zhang, J. Lu, and G. Lafruit, “Cross-Based Local Stereo Matching Using Orthogonal Integral Images,” IEEE Trans. CSVT’09.
  • 4. エッジキープ型のフィルタって 何?
  • 5. ぼけないフィルタボケすぎないフィルタ
  • 6. エッジキープ型のフィルタの例• Median Filter• (joint/cross) Bilateral Filter• Non-local Means Filter• BM3D• Guided Filter• (Cross-Orthogonal integral Image)
  • 7. エッジキープ型のフィルタの応用• ノイズ除去• 輪郭強調 – 上記組み合わせの画像処理• HDR• 超解像• MRFによる奥行き推定,背景差分,オプティカ ルフローの最適化の近似
  • 8. Bilateral Filter
  • 9. Joint/Cross Bilateral Filterimage IR image/Flash image
  • 10. Joint/Cross Bilateral Filterimage IR image/Flash image
  • 11. median
  • 12. • Joint/Cross Filterの本当の効果 – ノイズ除去...それだけ?Graph cut ? Belief Propagation ? そんな重たいもの使わなくても!? – Ex: C. Rhemann, A. Hosni, M. Bleyer, C. Rother, and M. Gelautz, ”Fast Cost-volume Filtering for Visual Correspondence and Beyond,” CVPR’11.
  • 13. Joint/cross filterの使い方• 結果にフィルタ – ~ map refinement/enhancement – 計算結果のポストフィルタとして利用• 尤度にフィルタ – Cost volume filtering – 尤度を量子化してその尤度mapを各量子化ス テップでフィルタしてその最小値・最大値を取る
  • 14. Joint/Cross Filtering for BF Map + thresholdingで背景差分のrefinementにもなります.
  • 15. Joint/Cross Filtering for Depth Map
  • 16. Joint/Cross Filtering for Haze Map
  • 17. Cost-Volume Filtering• Markov Random Field(MRF)などのエネルギー関数は, データ項とスムース項が,有る値(ただし量子化ステップ内 の離散値)を取るときの値を最小化,最大化する(p:画素 位置,l:ラベルor階調値) E(p,l) = Ed(p,l) + λEs(p,l)• これをスムース項の代わりにフィルタとしてほぼ同じ意味 になるように表現(w:重み) E(p,l) = ΣW(p,q) Ed(p,l)• つまり,データ項が滑らかに変化するように&参照画像の エッジをキープするように平滑化する.• どちらかというとCRFに近い結果• もうちょっと抽象的に説明すると,MRF最適化はコストボ リュームにIIRフィルタをかけているのに近い.
  • 18. Cost-Volume Filtering• マルチラベル問題全般に使用可能 – ステレオ,背景差分オプティカルフロー,アルファマッティング,顕著 性マップ,xx map, etc…すべてに使用可能• ステレオマッチングを例に説明
  • 19. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=0 d=0 -
  • 20. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=1 d=1 -
  • 21. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=2 d=2 -
  • 22. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=3 d=3 -
  • 23. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=4 d=4 -
  • 24. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=5 d=5 -
  • 25. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=6 d=6 -
  • 26. Cost-Volume Filtering• マッチングコストの計算• COST(p,d) = L(p) – R(p-d) :d=0 d=7 -
  • 27. Cost-Volume Filtering マッチングスコア,尤度マップ d=6 d=5 d=4 マッチングスコアボリューム d=3 d=2 別名: Disparity Space Volume DSV d=1 d=0
  • 28. Cost-Volume Filteringもっともスコアの低いもしくは尤度の高いものをその値として採用 d=6 d=5 d=4 安定度が低い d=3 d=2 d=1 d=0 DMAP(p) = argmindCOST(p,d)
  • 29. Cost-Volume Filteringargmin: もっちもスコアの低いもしくは尤度の高いものをその値として採用 d=6 d=5 d=4 マッチングスコアにフィルタする d=3 d=2 (Box Filterで→Block Matching) d=1 d=0 安定するが境界がおかしい
  • 30. Cost-Volume Filteringargmin: もっちもスコアの低いもしくは尤度の高いものをその値として採用 d=6 d=5 d=4 マッチングスコアにフィルタする d=3 d=2 (Joint Bilateral Filterで) d=1 エッジもきれいに! d=0
  • 31. フィルタの欠点• フィルタって,基本的なものだけど大きなカー ネルだと計算は重たい.• カーネルサイズ分の計算コスト!O(K)• 特にバイラテラルフィルタは重たいことで有名• ただし,いろいろ高速化方法はある!
  • 32. 本題の一歩手前
  • 33. Guided Filter• エッジ保持型のO(1)フィルタ• バイラテラルフィルタに似た効果• FullHDの画像をCore i7を使って30fpsでフィル タ可能• GPUならさらにその十倍!?
  • 34. Guided Filter詳細• 入力画像pはガイド画像Iのカーネル内の適当な 係数の線形変換であると仮定 – カーネル内にエッジは一つ – ∇q = a∇I – マッティングや超解像などに使われる – (係数a,bに入力画像pを用いる) qi  ak I i  bk , i  k ある画像を線形変換(ax+b)すると目的の画像へ変わる
  • 35. qi  ak I i  bk , i  k の図解 ak カーネル k qi = coefficient Image: a ・ Ii bkOutput Image: q Guidance Image: I coefficient Image: b
  • 36. qi  ak I i  bk , i  k の図解 ak カーネル k qi = coefficient Image: a ・ Ii bkOutput Image: q Guidance Image: I coefficient Image: b
  • 37. qi  ak I i  bk , i  k の図解 ak カーネル k qi = coefficient Image: a ・ Ii bkOutput Image: q Guidance Image: I coefficient Image: b
  • 38. qi  ak I i  bk , i  k の図解 ak カーネル k qi = coefficient Image: a ・ Ii bkOutput Image: q Guidance Image: I coefficient Image: b
  • 39. qi  ak I i  bk , i  k の図解 カーネル k ak qi = coefficient Image: a ・ IiOutput Image: q Guidance Image: I bk coefficient Image: b
  • 40. qi  ak I i  bk , i  k の図解 カーネル k ak qi = coefficient Image: a ・ IiOutput Image: q Guidance Image: I bk coefficient Image: b
  • 41. カーネル内の全ての係数で,q=aI+bが成り立つように係数を決定つまり,あるカーネル内での線形最小二乗 qi   a1 I i  b1   a1 b1   I i 1 q   a I  b   a b2   I i 1  i  2 i 2   2    qi          Ii 1         qi  ak 1 I i  bk   ak 1 bk 1   I i 1 qi   ak I i  bk   ak      bk   I i   1 
  • 42. 線形回帰入力画素値pと出力qを誤差εのもとに線形回帰 μ:Iのカーネル内平均 σ:Iのカーネル内分散上の解析解
  • 43. 元の式に戻ると,a,bはもちろんノイズを含み,どのkを選ぶかによって出力が違う qi  ak I i  bk , i  kこういうときはとりあえず平均!
  • 44. バイラテラルフィルタのように変形Ex:バイラテラルフィルタの場合 赤点中心のカーネル. 左:参照画像 中:guided kernel 右:bilateral kernel 白いほど重みが大きい
  • 45. カーネルの意味 エッジが1つしかないと仮定しているため左の図解となる. 画素iをフィルタ位置としたときの参照画素jの重み: 右辺は,概ね,I,jの画素値が同じなら1をとり, 逆ならー1を取る.つまり重みは大体0~2. εの値が大きいと重みはほぼ1になる.※この変形した様子から天下り的に理解したほうが分かりやすいかも
  • 46. このフィルタ実は非常に高速• フィルタ計算が全てボックスフィルタと1画素 同士の加減算,乗算で出来ている.• つまり,全てO(1)計算.• イメージ:下のような処理を何回かやるだけ – 画像1と画像2を掛ける – それをボックスフィルタ – それを画像1と画像2のボックスフィルタをしたも のどうしをかけたものから引く
  • 47. 復習:インテグラルイメージ(1/2)• フィルタとは? カーネルのたたみこみ 普通,O(k)(kはカーネルサイズ)だけ計算時 間が必要
  • 48. 復習:インテグラルイメージ(1/2)• フィルタとは? カーネルのたたみこみ 普通,O(k)(kはカーネルサイズ)だけ計算時 間が必要
  • 49. 復習:インテグラルイメージ(1/2)• フィルタとは? カーネルのたたみこみ 普通,O(k)(kはカーネルサイズ)だけ計算時 間が必要
  • 50. 復習:インテグラルイメージ(1/2)• フィルタとは? カーネルのたたみこみ 普通,O(k)(kはカーネルサイズ)だけ計算時 間が必要 5x5のカーネルの場合1画素ごとに25回の演算が必要 ただし,ボックスフィルタのカーネルは全て1. (バイラテラルフィルタなどは画素ごとに違う) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  • 51. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 52. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 53. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 54. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 55. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 56. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 57. 復習:インテグラルイメージ(2/2)1.積分画像を作成(サイズは(x+1,y+1)で左上を0でパディング積分画像とは?左上から注目画素までの矩形の値の総和を保持した画像左上から順々に足していくだけ 積分値2.4つの値の加減算で矩形の面積を求める
  • 58. やっと本題
  • 59. Guided Filterの制限• フラットな平滑化が出来ない(L0のような) – つまりエッジと勾配を維持するフィルタ• 勾配はほとんどないと仮定できるときはエッジの み維持したフィルタにしたい – BFやNLFはエッジ保持のみのフィルタで勾配は保持さ れない• ハイコントラストエッジ周辺は実はうまくいかない
  • 60. ハイコントラストエッジ周辺の問題
  • 61. 今回の論文の拡張部分!• とりあえず平均が気に食わない!全領域で線形回帰 はあり得ない! – 係数a,bはオブジェクトの属する領域によって大きく変化す るはず!• Cross-Based Local Multipoint Filtering(CLMF) と名付けよう• 同一領域以外は平均に使わないようにしたい• でも同一領域を決めるために,セグメンテーションした ら,このフィルタの高速性が生きない...
  • 62. カーネル内の全ての係数で,q=aI+bが成り立つように係数を決定 条件を満たす場所だけであるカーネル内での重み付き線形最小二乗重みwik(画素位置iの時のカーネル位置kの時の重み)※厳密に調べていないが,ほぼWLSと同じ式?A. Levin, D. Lischinski, Y. Weiss, “Colorization using optimization,” SIGGRAPH’04.Z. Farbman, R. Fattal, D. Lischinski, R. Szeliski, “Edge-preserving decompositions for multi-scale tone and detail manipulation,” SIGGRAPH’08. qi   a1 I i  b1   wi1 wi1   a1 b1   I i 1 q   a I  b   i i   a2 b2   I i 1  i  2 i 2   w 2 w2      qi           Ii 1      i      qi  ak 1 I i  bk    w k 1 i w k 1  ak 1 bk 1   I i 1 qi   ak I i  bk   wi k      wi k   a k   bk   I i   1 
  • 63. • 1画素ごとに重み付き最小二乗を解いていた らとてもじゃないけど計算が複雑.• 重みを0/1にしたら簡単な解法が!
  • 64. カーネル内の全ての係数で,q=aI+bが成り立つように係数を決定 条件を満たす場所だけであるカーネル内での重み付き線形最小二乗※重みwik(画素位置iの時のカーネル位置kの時の重み) は,0 or 1のhard thresholding qi   a1 I i  b1   wi1 wi1   a1 b1   I i 1 q   a I  b   i i   a2 b2   I i 1  i  2 i 2   w 2 w2      qi           Ii 1      i      qi  ak 1 I i  bk    w k 1 i w k 1  ak 1 bk 1   I i 1 qi   ak I i  bk   wi k      wi k   a k   bk   I i   1 
  • 65. Cross based local filter (CLF)• 形が適応的なジョイントボックスフィルタ Integral Imageを使用 普通のボックスフィルタ 重みが一定の矩形フィルタ Integral image によりO(1)で計算可能 p
  • 66. Cross based local filter (CLF)• 形が適応的なジョイントボックスフィルタ – Cross Based Orthogonal Integral Imageを使用 OIIを使った適応的ボックスフィルタ 重みが0or1と適応的に変化するフィルタ 通常ならフィルタ半径内の係数を 計算しなければならないが...
  • 67. Cross based local filter (CLF)• 形が適応的なジョイントボックスフィルタ – Cross Based Orthogonal Integral Imageを使用 下記手順でO(1)化 フィルタターゲットのエッジなどの情報を 用いてクロス(十字)を作成 まず,水平にインテグラルイメージ作成 各画素のクロスの水平成分に沿った 積分値を計算. 最後に縦方向に同様の処理 セパレータブルフィルタと同じような原理
  • 68. クロスの計算方法• argmax r• for r = 0:max r V(p) < V(p-r)
  • 69. クロスとカーネルの例(a) クロス(b) 積分領域拡大図(c) さまざまな積分区間の例
  • 70. GF→CLMFへの式変形• Σの係数の平均・分散の計算(つまりボックスフィ ルタ)を全部COIIに変換するだけの簡単なお仕 事.• 最後の係数a,bについては有効な画素の多さに 応じて重み付き平均 – Weighted averageもO(1)で計算可能 – ex) 重み画像W,入力画像Iとしてその重み付き平均 – W-Average(W,I) = 1/ΣW * ΣI*W• 計算コストはO(1)のまま
  • 71. GF→CLMFへの式変形• ついでにGuided Filterをより一般化 – aX+bで変換する1次変換 – X+bで変換する0次変換 に拡張
  • 72. フィルタの効果まとめバイラテラル: 点ベースでエッジのみを保持. 速度は遅い.かなり遅い.CLF: 点ベースでエッジのみを保持. 速度は最高速.ただし,クロスの計算がO(W+H)CLMF-0(提案): 多点ベースでエッジのみを保持. 速度は最高速(2番目)GF(従来): 多点ベースでエッジと勾配を保持. 速度はそこそこ高速(3番目)core i7FulHD→30fpsCLMF-1(提案): 多点ベースでエッジと勾配みを保持. 速度はそこそこ高速(4番目)おそらくGFの2倍以内
  • 73. 結果• 平滑化結果• ノイズリダクション• ステレオ• Flash-no-flashイメージ
  • 74. エッジ保持平滑化結果
  • 75. ノイズリダクション
  • 76. Depth estimation over CVF
  • 77. Depth upsampling(x8) & Depth noise reduntion
  • 78. Flash/No-Flash
  • 79. まとめ• エッジ保持型のフィルタBilateral FilterのJoint bilateral filterへの拡張とその応用例の解説• 高速なエッジ保持フィルタGuided Filter(GF) の解説• GFの拡張CLMFの解説(ここが主題)

×