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

83
Guided Filterとその周辺 名古屋工業大学 福嶋慶繁 2012/7/21 18名古屋CVPRML勉強会

Upload: norishige-fukushima

Post on 25-Jun-2015

8.561 views

Category:

Technology


9 download

TRANSCRIPT

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

Guided Filterとその周辺

名古屋工業大学

福嶋慶繁

2012/7/21 第18回 名古屋CV・PRML勉強会

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

紹介論文

• J. Lu, K. Shi, D. Min, L. Lin, and M. N. Do, “Cross-Based Local Multipoint Filtering,” CVPR2012.

• 内容:

高速なエッジキープ型のフィルタの 拡張とアプリケーション例

–注)細かいところはカットしています

– なかなか本題にはいりません.

Page 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.

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

エッジキープ型のフィルタって何?

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

ぼけないフィルタ

ボケすぎないフィルタ

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

エッジキープ型のフィルタの例

• Median Filter

• (joint/cross) Bilateral Filter

• Non-local Means Filter

• BM3D

• Guided Filter

• (Cross-Orthogonal integral Image)

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

エッジキープ型のフィルタの応用

• ノイズ除去

• 輪郭強調

–上記組み合わせの画像処理

• HDR

• 超解像

• MRFによる奥行き推定,背景差分,オプティカルフローの最適化の近似

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

Bilateral Filter

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

Joint/Cross Bilateral Filter

image

IR image/Flash image

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

Joint/Cross Bilateral Filter

image

IR image/Flash image

Page 11: ガイデットフィルタとその周辺
Page 12: ガイデットフィルタとその周辺
Page 13: ガイデットフィルタとその周辺
Page 14: ガイデットフィルタとその周辺

median

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

• 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.

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

Joint/cross filterの使い方

• 結果にフィルタ

–~ map refinement/enhancement

–計算結果のポストフィルタとして利用

• 尤度にフィルタ

– Cost volume filtering

–尤度を量子化してその尤度mapを各量子化ステップでフィルタしてその最小値・最大値を取る

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

Joint/Cross Filtering for BF Map

+ thresholdingで背景差分のrefinementにもなります.

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

Joint/Cross Filtering for Depth Map

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

Joint/Cross Filtering for Haze Map

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

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フィルタをかけているのに近い.

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

Cost-Volume Filtering

• マルチラベル問題全般に使用可能 – ステレオ,背景差分オプティカルフロー,アルファマッティング,顕著性マップ,xx map, etc…すべてに使用可能

• ステレオマッチングを例に説明

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=0

d=0 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=1

d=1 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=2

d=2 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=3

d=3 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=4

d=4 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=5

d=5 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=6

d=6 -

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

Cost-Volume Filtering

• マッチングコストの計算

• COST(p,d) = L(p) – R(p-d) :d=0

d=7 -

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

Cost-Volume Filtering

d=0 d=1 d=2 d=3 d=4 d=5 d=6

マッチングスコアボリューム 別名: Disparity Space Volume DSV

マッチングスコア,尤度マップ

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

Cost-Volume Filtering

d=0 d=1 d=2 d=3 d=4 d=5 d=6

安定度が低い

もっともスコアの低いもしくは尤度の高いものをその値として採用

DMAP(p) = argmindCOST(p,d)

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

Cost-Volume Filtering

d=0 d=1 d=2 d=3 d=4 d=5 d=6

マッチングスコアにフィルタする (Box Filterで→Block Matching) 安定するが境界がおかしい

argmin: もっちもスコアの低いもしくは尤度の高いものをその値として採用

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

Cost-Volume Filtering

d=0 d=1 d=2 d=3 d=4 d=5 d=6

マッチングスコアにフィルタする (Joint Bilateral Filterで) エッジもきれいに!

argmin: もっちもスコアの低いもしくは尤度の高いものをその値として採用

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

フィルタの欠点

• フィルタって,基本的なものだけど大きなカーネルだと計算は重たい.

• カーネルサイズ分の計算コスト!O(K)

• 特にバイラテラルフィルタは重たいことで有名

• ただし,いろいろ高速化方法はある!

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

本題の一歩手前

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

Guided Filter

• エッジ保持型のO(1)フィルタ

• バイラテラルフィルタに似た効果

• FullHDの画像をCore i7を使って30fpsでフィルタ可能

• GPUならさらにその十倍!?

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

Guided Filter詳細

• 入力画像pはガイド画像Iのカーネル内の適当な係数の線形変換であると仮定

– カーネル内にエッジは一つ

– ∇q = a∇I

– マッティングや超解像などに使われる

– (係数a,bに入力画像pを用いる)

ある画像を線形変換(ax+b)すると目的の画像へ変わる

kkiki ibIaq ,

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

kkiki ibIaq ,

Output Image: q

iq coefficient Image: a

coefficient Image: b

k

Guidance Image: I

iI

カーネル

kb

ka

= ・

の図解

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

kkiki ibIaq ,

Output Image: q

iq coefficient Image: a

coefficient Image: b

k

Guidance Image: I

iI

カーネル

kb

ka

= ・

の図解

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

kkiki ibIaq ,

Output Image: q

iq coefficient Image: a

coefficient Image: b

k

Guidance Image: I

iI

カーネル

kb

ka

= ・

の図解

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

kkiki ibIaq ,

Output Image: q

iq coefficient Image: a

coefficient Image: b

k

Guidance Image: I

iI

カーネル

kb

ka

= ・

の図解

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

kkiki ibIaq ,

Output Image: q

iq coefficient Image: a

coefficient Image: b

k

Guidance Image: I

iI

カーネル

kb

ka

= ・

の図解

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

kkiki ibIaq ,

Output Image: q

iq coefficient Image: a

coefficient Image: b

k

Guidance Image: I

iI

カーネル

kb

ka

= ・

の図解

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

1

1

1

1

1

11

22

11

1

22

11

i

i

i

i

i

kk

kk

kik

kik

i

i

i

i

i

i

i

I

I

I

I

I

ba

ba

ba

ba

bIa

bIa

bIa

bIa

q

q

q

q

q

カーネル内の全ての係数で,q=aI+bが成り立つように係数を決定

つまり,あるカーネル内での線形最小二乗

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

線形回帰

入力画素値pと出力qを誤差εのもとに線形回帰

上の解析解

μ:Iのカーネル内平均 σ:Iのカーネル内分散

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

kkiki ibIaq ,

元の式に戻ると,a,bはもちろんノイズを含み,どのkを選ぶかによって出力が違う

こういうときはとりあえず平均!

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

バイラテラルフィルタのように変形

Ex:バイラテラルフィルタの場合

赤点中心のカーネル. 左:参照画像 中:guided kernel 右:bilateral kernel 白いほど重みが大きい

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

カーネルの意味

※この変形した様子から天下り的に理解したほうが分かりやすいかも

エッジが1つしかないと仮定しているため左の図解となる. 画素iをフィルタ位置としたときの参照画素jの重み: 右辺は,概ね,I,jの画素値が同じなら1をとり, 逆ならー1を取る.つまり重みは大体0~2. εの値が大きいと重みはほぼ1になる.

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

このフィルタ実は非常に高速

• フィルタ計算が全てボックスフィルタと1画素同士の加減算,乗算で出来ている.

• つまり,全てO(1)計算.

• イメージ:下のような処理を何回かやるだけ

–画像1と画像2を掛ける

–それをボックスフィルタ

–それを画像1と画像2のボックスフィルタをしたものどうしをかけたものから引く

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

復習:インテグラルイメージ(1/2)

• フィルタとは?

カーネルのたたみこみ

普通,O(k)(kはカーネルサイズ)だけ計算時間が必要

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

復習:インテグラルイメージ(1/2)

• フィルタとは?

カーネルのたたみこみ

普通,O(k)(kはカーネルサイズ)だけ計算時間が必要

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

復習:インテグラルイメージ(1/2)

• フィルタとは?

カーネルのたたみこみ

普通,O(k)(kはカーネルサイズ)だけ計算時間が必要

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

復習:インテグラルイメージ(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

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

復習:インテグラルイメージ(2/2)

1.積分画像を作成 (サイズは(x+1,y+1)で左上を0でパディング 積分画像とは? 左上から注目画素までの矩形の値の 総和を保持した画像 左上から順々に足していくだけ 2.4つの値の加減算で矩形の面積を求める

積分値

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

やっと本題

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

Guided Filterの制限

• フラットな平滑化が出来ない(L0のような)

– つまりエッジと勾配を維持するフィルタ

• 勾配はほとんどないと仮定できるときはエッジのみ維持したフィルタにしたい

– BFやNLFはエッジ保持のみのフィルタで勾配は保持されない

• ハイコントラストエッジ周辺は実はうまくいかない

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

ハイコントラストエッジ周辺の問題

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

今回の論文の拡張部分!

• とりあえず平均が気に食わない!全領域で線形回帰はあり得ない! – 係数a,bはオブジェクトの属する領域によって大きく変化するはず!

• Cross-Based Local Multipoint Filtering(CLMF) と名付けよう

• 同一領域以外は平均に使わないようにしたい

• でも同一領域を決めるために,セグメンテーションしたら,このフィルタの高速性が生きない...

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

1

1

1

1

1

11

22

11

11

22

11

1

22

11

i

i

i

i

i

kk

kk

ki

ki

ki

ki

ii

ii

kik

kik

i

i

i

i

i

i

i

I

I

I

I

I

ba

ba

ba

ba

ww

ww

ww

ww

bIa

bIa

bIa

bIa

q

q

q

q

q

カーネル内の全ての係数で,q=aI+bが成り立つように係数を決定 条件を満たす場所だけで

あるカーネル内での重み付き線形最小二乗 重みwi

k(画素位置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.

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

• 1画素ごとに重み付き最小二乗を解いていたらとてもじゃないけど計算が複雑.

• 重みを0/1にしたら簡単な解法が!

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

1

1

1

1

1

11

22

11

11

22

11

1

22

11

i

i

i

i

i

kk

kk

ki

ki

ki

ki

ii

ii

kik

kik

i

i

i

i

i

i

i

I

I

I

I

I

ba

ba

ba

ba

ww

ww

ww

ww

bIa

bIa

bIa

bIa

q

q

q

q

q

カーネル内の全ての係数で,q=aI+bが成り立つように係数を決定 条件を満たす場所だけで

あるカーネル内での重み付き線形最小二乗 ※重みwi

k(画素位置iの時のカーネル位置kの時の重み) は,0 or 1のhard thresholding

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

Cross based local filter (CLF)

• 形が適応的なジョイントボックスフィルタ Integral Imageを使用

p

普通のボックスフィルタ 重みが一定の矩形フィルタ Integral image によりO(1)で計算可能

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

Cross based local filter (CLF)

• 形が適応的なジョイントボックスフィルタ – Cross Based Orthogonal Integral Imageを使用

OIIを使った適応的ボックスフィルタ 重みが0or1と適応的に変化するフィルタ 通常ならフィルタ半径内の係数を 計算しなければならないが...

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

Cross based local filter (CLF)

• 形が適応的なジョイントボックスフィルタ – Cross Based Orthogonal Integral Imageを使用

下記手順でO(1)化 フィルタターゲットのエッジなどの情報を 用いてクロス(十字)を作成 まず,水平にインテグラルイメージ作成 各画素のクロスの水平成分に沿った 積分値を計算. 最後に縦方向に同様の処理 セパレータブルフィルタと同じような原理

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

クロスの計算方法

• argmax r

• for r = 0:max r V(p) < V(p-r)

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

クロスとカーネルの例

(a) クロス (b) 積分領域拡大図 (c) さまざまな積分区間の例

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

GF→CLMFへの式変形

• Σの係数の平均・分散の計算(つまりボックスフィルタ)を全部COIIに変換するだけの簡単なお仕事.

• 最後の係数a,bについては有効な画素の多さに応じて重み付き平均

– Weighted averageもO(1)で計算可能

– ex) 重み画像W,入力画像Iとしてその重み付き平均

– W-Average(W,I) = 1/ΣW * ΣI*W

• 計算コストはO(1)のまま

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

GF→CLMFへの式変形

• ついでにGuided Filterをより一般化

– aX+bで変換する1次変換

– X+bで変換する0次変換

に拡張

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

フィルタの効果まとめ

バイラテラル: 点ベースでエッジのみを保持. 速度は遅い.かなり遅い. CLF: 点ベースでエッジのみを保持. 速度は最高速.ただし,クロスの計算がO(W+H) CLMF-0(提案): 多点ベースでエッジのみを保持. 速度は最高速(2番目) GF(従来): 多点ベースでエッジと勾配を保持. 速度はそこそこ高速(3番目)core i7FulHD→30fps CLMF-1(提案): 多点ベースでエッジと勾配みを保持. 速度はそこそこ高速(4番目)おそらくGFの2倍以内

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

結果

• 平滑化結果

• ノイズリダクション

• ステレオ

• Flash-no-flashイメージ

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

エッジ保持平滑化結果

Page 78: ガイデットフィルタとその周辺
Page 79: ガイデットフィルタとその周辺

ノイズリダクション

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

Depth estimation over CVF

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

Depth upsampling(x8) & Depth noise reduntion

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

Flash/No-Flash

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

まとめ

• エッジ保持型のフィルタBilateral FilterのJoint bilateral filterへの拡張とその応用例の解説

• 高速なエッジ保持フィルタGuided Filter(GF)の解説

• GFの拡張CLMFの解説(ここが主題)