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




   初めてのグラフカット
                                      平川 翼
                       広島大学 大学院工学研究科	
  




                              2012/11/17	
  @	
  中部大学
グラフカットを勉強することになり…




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


         チュートリアルなんだから…
         分かりやすく書いてありそう
実際に読んでみた
l  GCの元論文を読んだり
l  SlideshareからGCのスライドを探したり




そして,ようやく
この発表は…


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



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



         ご了承ください
コンセプト

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


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


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

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




最小切断問題 (st-mincut)



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




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


                  Segmentation                            GrabCut




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




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


                 Segmentation                             GrabCut




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




最小切断問題 (st-mincut)



グラフカットの適用例
(セグメンテーション)
最小切断問題 (st-mincut) ~準備~


           source
                             頂点とそれをつなぐエッジを持つ
       2            8        ようなグラフをイメージする
             2
                             1.  頂点に名前をつける
  v1                    v2
             1               2.  エッジに重みをつける
       5            4
                                有向グラフ
           target
有向グラフの形は…
有向グラフの形は…




    st-mincutの時点では
      どんな形でもOK!
最小切断問題 (st-mincut)


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

      5            4         これをst-cutという
          target
じゃあ,何が最小(min)なの?
最小切断問題 (st-mincut)


          source
                            sourceからtargetへ流れ込む
      2            8        エッジの重みの和
            2                  st-cutのコスト
 v1                    v2
            1
                             この場合は…
      5            4
                                8 + 2 + 5 = 15
          target
最小切断問題 (st-mincut)


         source                     source                     source                     source

     2            8             2            8             2            8             2            8
           2                          2                          2                          2
v1                    v2   v1                    v2   v1                    v2   v1                    v2
           1                          1                          1                          1
     5            4             5            4             5            4             5            4

         target                     target                     target                     target


          15                          7                         10                          9
                            最小!
最小切断問題 (st-mincut)


         source                     source                     source                     source

     2            8             2            8             2            8             2            8
           2                          2                          2                          2
v1                    v2   v1                    v2   v1                    v2   v1                    v2
           1                          1                          1                          1
     5            4             5            4             5            4             5            4

         target                     target                     target                     target


          15                          7                         10                          9
                            最小!
最小切断問題 (st-mincut)


         source                     source                     source                     source

     2            8             2            8             2            8             2            8
           2      コストの最も小さいst-cut
                     2    2                                                                 2
v1                    v2   v1                    v2   v1                    v2   v1                    v2
           1                          1                          1                          1
     5            4             5         st-mincut
                                            4    5                      4             5            4

         target                     target                     target                     target


          15                          7                         10                          9
                            最小!
st-mincutはどうやるの?

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


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


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

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


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


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

ü 使えるツールは何でも使う!
GC・st-mincutを行うツールは
             たくさん用意されています!




http://vision.csd.uwo.ca/code/   http://igraph.sourceforge.net/
グラフカットでやっているのは…

         source

     2            8
                           st-mincutによって要素が
           2
v1                    v2
                           sourceのグループなのか,
                           targetのグループなのか
           1
                           を決めているだけ
     5            4

         target
用途




最小切断問題 (st-mincut)



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




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

                [Kumar et al ., ECCV 2008]
グラフカット   ~準備~


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




 前景     前景らしい
らしくない
グラフカット   ~準備~


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




色差が      色差が
大きい      小さい
グラフカット   ~グラフの作成~

               source




               target

   sourceとtargetの頂点を追加する
グラフカット   ~エッジの重み付け~



     前景




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




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



     前景

           背景らしい
            コスト




           前景らしい
            コスト

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



      前景




  色差のコスト



      背景
グラフカット ~segmentation~
                前景




                背景


   このグラフをst-mincutするだけ
完成!
完成!
まとめ

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


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


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

初めてのグラフカット