38
初めてのグラフカット 平川 翼 広島大学 大学院工学研究科 2012/11/17 @ 中部大学 -21回 名古屋CVPRML勉強会-

Nagoya cv gc

Embed Size (px)

Citation preview

Page 1: Nagoya cv gc

初めてのグラフカット 平川 翼

広島大学 大学院工学研究科  

2012/11/17  @  中部大学

-第21回 名古屋CV・PRML勉強会-

Page 2: Nagoya cv gc

グラフカットを勉強することになり…

日本語で書いてあるし… GCの英語論文を読むより楽そう

チュートリアルなんだから… 分かりやすく書いてありそう

Page 3: Nagoya cv gc

実際に読んでみた

Page 4: Nagoya cv gc
Page 5: Nagoya cv gc

l  GCの元論文を読んだり l  SlideshareからGCのスライドを探したり

そして,ようやく

Page 6: Nagoya cv gc
Page 7: Nagoya cv gc

この発表は…

ü GCを知らない人・   使ってみたいけどよく分からない人が対象

ü 既にGCを知っている人・   より理解を深めたい人には簡単かもしれません.

ご了承ください

Page 8: Nagoya cv gc

コンセプト

ü 難しいことは考えない •  まずは二値で…

ü 難しい数式は使わない •  劣モジュラ条件 •  Quadratic Pseudo-Boolean optimization (QPBO) •  距離・半距離

ü まずは具体的なイメージを持つ

ü 使えるツールは何でも使う!

Page 9: Nagoya cv gc

用途

最小切断問題 (st-mincut)

グラフカットの適用例 (セグメンテーション)

Page 10: Nagoya cv gc

Image restoration

Segmentation

Stereo

GrabCut http://www.hukgroup.com/ [Ishikawa et al., CVPR 1999]

[Verbeek et al., IJCV 2010] [Rother et al., ACM 2004]

Page 11: Nagoya cv gc

Image restoration

Segmentation

Stereo

GrabCut http://www.hukgroup.com/ [Ishikawa et al., CVPR1999]

[Verbeek et al., IJCV2010] [Rother et al., ACM2004]

Page 12: Nagoya cv gc

用途

最小切断問題 (st-mincut)

グラフカットの適用例 (セグメンテーション)

Page 13: Nagoya cv gc

最小切断問題 (st-mincut) ~準備~

頂点とそれをつなぐエッジを持つ ようなグラフをイメージする

1.  頂点に名前をつける

target

v1 v2

source

2.  エッジに重みをつける

2 8

5 4

2

1

有向グラフ

Page 14: Nagoya cv gc

有向グラフの形は…

Page 15: Nagoya cv gc

有向グラフの形は…

st-mincutの時点では どんな形でもOK!

Page 16: Nagoya cv gc

最小切断問題 (st-mincut)

target

v1 v2

source

2 8

5 4

2

1

sourceとtargetを基準にして, 2つの領域に分けるように 境界線を引く

これをst-cutという

Page 17: Nagoya cv gc

じゃあ,何が最小(min)なの?

Page 18: Nagoya cv gc

最小切断問題 (st-mincut)

target

v1 v2

source

2 8

5 4

2

1

8 + 2 + 5 = 15 この場合は…

sourceからtargetへ流れ込む エッジの重みの和

st-cutのコスト

Page 19: Nagoya cv gc

最小切断問題 (st-mincut)

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

15 7 10 9 最小!

Page 20: Nagoya cv gc

最小切断問題 (st-mincut)

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

15 7 10 9 最小!

Page 21: Nagoya cv gc

最小切断問題 (st-mincut)

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

target

v1 v2

source

2 8

5 4

2

1

15 7 10 9 最小!

コストの最も小さいst-cut

st-mincut

Page 22: Nagoya cv gc

st-mincutはどうやるの?

ü 最大流(maxflow)アルゴリズム というものを用いています

ü  ただし… 今回は説明しません

ü  なぜなら… コンセプトを思い出してください

Page 23: Nagoya cv gc

コンセプト

ü 難しいことは考えない •  まずは二値で…

ü 難しい数式は(できるだけ)使わない •  劣モジュラ条件 •  Quadratic Pseudo-Boolean optimization (QPBO) •  距離・半距離

ü まずは具体的なイメージを持つ

ü 使えるツールは何でも使う!

Page 24: Nagoya cv gc

GC・st-mincutを行うツールは たくさん用意されています!

http://igraph.sourceforge.net/ http://vision.csd.uwo.ca/code/

Page 25: Nagoya cv gc

target

v1 v2

source

2 8

5 4

2

1

グラフカットでやっているのは…

st-mincutによって要素が

sourceのグループなのか, targetのグループなのか を決めているだけ

Page 26: Nagoya cv gc

用途

最小切断問題 (st-mincut)

グラフカットの適用例 (セグメンテーション)

Page 27: Nagoya cv gc

グラフカット ~目的~

前景と背景をセグメンテーションしたい!

[Kumar et al ., ECCV 2008]

Page 28: Nagoya cv gc

グラフカット ~準備~

各ピクセルが前景らしいか(背景らしいか) どうかのコストを持っている

前景 らしくない

前景らしい

Page 29: Nagoya cv gc

グラフカット ~準備~

近傍のピクセルとの色差(RGB, HSV…)を コストとして持っている

色差が 大きい

色差が 小さい

Page 30: Nagoya cv gc

グラフカット ~グラフの作成~

source

target

sourceとtargetの頂点を追加する

Page 31: Nagoya cv gc

グラフカット ~エッジの重み付け~

前景

背景

source→前景・target→背景 とする

Page 32: Nagoya cv gc

グラフカット ~エッジの重み付け~

前景

背景

前景らしい コスト

背景らしい コスト

Page 33: Nagoya cv gc

グラフカット ~エッジの重み付け~

前景

背景

色差のコスト

Page 34: Nagoya cv gc

前景

背景

グラフカット ~segmentation~

このグラフをst-mincutするだけ

Page 35: Nagoya cv gc

完成!

Page 36: Nagoya cv gc

完成!

Page 37: Nagoya cv gc

まとめ

•  グラフカットの応用例 – 画像復元,セグメンテーション,ステレオ,etc…

•  最小切断問題(st-mincut) –  GCはこれが基本であり,全てです

•  GCを用いた前景・背景セグメンテーション – 他にもいろいろなことができます – グラフの作り方・重みの付け方は自分次第

Page 38: Nagoya cv gc

ご清聴ありがとうございました