- 画像処理 #まとめ編
Index
グラフカット / GrabCut
各画素を対象と背景に分割する問題を各画素のラベル付け問題として解く方法を扱う.
ある画像において、あらかじめ対象 (object: "obj")と背景 (background: "bkg")の一部の位置が与えられている条件下で、 対象と背景が隣接する画像には画素値に違いがあるという仮定の元で、全画素を「対象」と「背景」の2種類にラベル付けする問題を考える. 適切にラベル付けされたときに、最小となるコスト関数を与え、コスト最小となるラベルの組み合わせを効率よく求める方法がグラフカットである.
コスト関数
コスト関数 を以下に定義する.
第1項 (領域項 / データ項) について.
: 画素の全集合
:
の要素、ある画素
: ある画素
のラベル
: ある画素
が
でない度合い
第2項 (境界項 / 平滑化項) について.
: 隣接する画素どうしの組の全集合
: 隣接するある画素の組
: ある画素
のラベル
: ある画素
のラベル
: ある画素の組
が異ならない度合い
コスト関数の例
指定された対象と背景の領域からそれぞれ画素値のヒストグラム を作成する.
になるように正規化すると、
は背景に属する画素の画素値
が観測される確率となる.
その確率密度関数を用いて、領域項 を以下のようなコスト関数とする.
次に、境界項を以下のコスト関数にする.
参考
Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images
"GrabCut": interactive foreground extraction using iterated graph cuts
書籍
- ディジタル画像処理
- 10 領域処理
- 10.2 領域分割処理
- 10.2.6 グラフカットを用いた領域分割処理
- 10.2 領域分割処理
- 10 領域処理
Web サイト
OpenCVのGrabCut使ってみた
GrabCutを使った対話的前景領域抽出
動画
- 【数分解説】GrabCut(GraphCut): 指定された領域やヒントで画像から物体を切出したい【画像処理/グラブカット】