(画像処理での)グラフカットとは

  • 画像処理にグラフ理論での最大流/最小カットを適用したもの。
  • エネルギーを定義して、それを最小化をする「エネルギー最小化問題」。(ここで、最小カットが有用)。
  • 作るグラフは、画素を頂点としてその画素の隣接画素と辺をつないだものに、頂点s,tを加え、「sからすべての画素」と「すべての画素からt」への辺を加えたもの、がよく使われてるっぽい。

  • グラフの作り方は上記以外にもありえる。(関連として、Normalized Cutsとかは、画素を頂点とした完全グラフっぽいし)
  • 離れたピクセルピクセル以外を頂点(サイト)とすることもある。
  • 使われている(研究されている)用途
    • 画像復元(ノイズ除去とか)
    • ステレオ(カメラ2つ以上でのなんか)
    • セグメンテーション
    • 動画像解析
    • テクスチャ合成
    • フォトモンタージュ、など

エネルギーの表現

E(X)=\sum_{v\in V} g_{v}(X_v) + \sum_{(u,v)\in E} h_{uv}(X_u,X_v)

  • g:データ項。その画素(サイト)とつけるラベル(新しくつけた画素)のみに依存する。
  • h:平滑化項。隣接するサイト間でXに与えられるラベルがどのような関係にあるべきか。
  • X:ラベルをつけられた配置(新しい画像)。
  • Xの組み合わせはすごく多い。(64x64の白黒画像で2^(64*64)通りの画像がありえる)
  • NP困難(無茶振り)
  • gとhをいろいろ変えることでいろいろ応用するぽい(ノイズ除去やセグメンテーションとかに)
  • エネルギーを最小化する方法は、
    • グラフカット(GC)
    • 信念伝播法(Belief Propagation(BP), ニューラルとかのBack Propagationとは違う!)
    • ツリー重み再配分メッセージ伝達法(TRW)
    • など
  • GCでは、エネルギーの形に制限があるが、大域最小値を比較的高速に求められる。
  • グラフカットへ適用するため、頂点u,vを切断するときのコストc(u,v)に上記g,hを適用し、切断する。
  • 最小のコストとなる切断の仕方は、最大流/最小カットのお話。

参考にした(ちゃんと読むべき)ページ、論文

最大流/最小カットのアルゴリズム

wikipedia(http://en.wikipedia.org/wiki/Maximum_flow_problem)に載ってた解法アルゴリズムは、