コンピュータビジョン特論B - Graph Cuts - 永橋知行 はじめに エネルギー最小化問題 – ラベリング問題 • • • • Image Restoration Stereo Image Segmentation Multi-camera reconstruction Min-Cut/Max-Flow Algorithms エネルギー関数の最小とする解 → Graph Cuts Algorithm ラベリング問題 ラベリング対象 – Depth – 物体(領域) etc.. エネルギー関数の定義 E( L) Dp ( Lp ) pP V p ,qN p ,q ( Lp , Lq ) エネルギー最小化モデル Potts Interaction Energy Model E( L) || I p I p || pP K ( p , q )N ( p ,q ) T (I p I q ) Liner Interaction Energy Model E( L) || I p I || pP p A ( p , q )N ( p,q ) T (I p I q ) Min-Cut/Max-Flow Algorithmsとは グラフ理論でのネットワーク流問題の解法 → Min-Cut/Max-Flow Algorithms – ネットワーク流問題(最大流問題) • 与えられたネットワークに対して,最大の流れを求める問題 – Ford-Fulkerson's method – Push-Relabel method グラフの基礎 Flow:流れ Capacity:そのEdgeに流すことができるFlowの容量 Source:Flowが発生する場所 Sink:Flowが到着する場所 Network Edge Node Flow 1/1 Source Capacity 4/4 2/6 Sink 1/3 S 2/5 0/2 t 1/3 2/2 2/2 s-t cut エッジを切断してsとtを分割 → s-t cut s-t cutの際に,sの集合からtの集合へ向かうエッジの容量 → カットの容量 1+5+3=9 6+2=8 1+3+2+2=8 1+3+2=6 1 4 6 3 S 5 2 t 3 2 2 ・カットの容量が最小となるs-t cutを求める → 最小カット問題 最小カットと最大フロー 目的 – 最小のエネルギーとなるように分割したい → 最小カット問題 最大フロー・最小カットの定理 – 最大フローの値 = 最小カットの値 → 最大フロー問題と最小カット問題は同じ (最大フローが求まれば最小カットも求められる) Ford-Fulkerson's method フローが最大のときの条件 – 残余ネットワーク上で s-t path が存在しない → s-t pathが存在すればフローは増加可能 Step1:全ての枝のフローを0で初期化 Step2:現在のフローに関する残余ネットワークを作成 Step3:残余ネットワークにs-t pathが存在場合は終了 Step4:残余ネットワークのs-t pathをひとつ求め、 それを用いて現在のフローを更新 Step5:Step2へ戻る 残余ネットワーク フローが流れているネットワークがあとどれだけのフロー を流せるかを表したネットワーク 1/1 4/4 2/6 1/3 S 2/5 0/2 1/3 2/2 2/2 1 2 S 0 4 0 4 残余ネットワーク ネットワーク t 2 2 0 1 3 0 2 t 2 2 2 1 0 Ford-Fulkerson‘s methodの例 0/4 0/3 0/2 S 0/3 t 0/2 4 ネットワーク 3 0 0 0 S 0 2 t 0 3 2 残余ネットワーク Ford-Fulkerson‘s methodの例 3/4 3/3 0/2 S 0/3 t 0/2 1 ネットワーク 0 3 3 0 S 0 2 t 0 3 2 残余ネットワーク Ford-Fulkerson‘s methodの例 4/4 3/3 1/2 S 0/3 t 1/2 0 ネットワーク 0 3 4 1 S 0 1 t 1 3 1 残余ネットワーク Ford-Fulkerson‘s methodの例 4/4 3/3 1/2 S 1/3 t 2/2 0 ネットワーク 0 3 4 1 S 1 残余ネットワークにs-t pathが存在しない → 最大フロー 5 1 t 2 2 0 残余ネットワーク Graph Cuts Segmentation 係数領域(Region)の関数 境界(Boundary)の関数 E ( L) R( L) B( L) L ( L1 , , L p , , L|P| ) " obj" L " bkg" Object or Background ラベル R ( L) R p ( L p ) Object or Backgroundでない確率 pP B ( L) B { p , q}N { p , q} ( L p , Lq ) 1 if L p Lq ( L p , Lq ) 0 otherwise. 近傍との差 大: B{p,q}=小 近傍との差 小: B{p,q}=大 グラフの作成(n-link) n-links Edge Weight Condition n-link {p, q} B{p, q} {p, q}∈N t-link {p, s} λ ∙ Rp(“bkg”) p∈P, p∈OUB K p ∈O 0 p ∈B λ ∙ Rp (“obj”) p∈P, p∈OUB 0 p ∈O K p ∈B t-link {p, t} (I p I q )2 1 B{ p ,q} exp dist( p, q) 2 グラフの作成(t-link) t n-links Edge Weight Condition n-link {p, q} B{p, q} {p, q}∈N t-link {p, s} λ ∙ Rp(“bkg”) p∈P, p∈OUB K p ∈O 0 p ∈B λ ∙ Rp (“obj”) p∈P, p∈OUB 0 p ∈O K p ∈B t-link {p, t} s K 1 max pP B { p ,q}N { p , q} グラフの作成(t-link) t n-links s Edge Weight Condition n-link {p, q} B{p, q} {p, q}∈N t-link {p, s} λ ∙ Rp(“bkg”) p∈P, p∈OUB R (" obj " ) ln Pr( I p | O ) K p ∈O 0 p ∈B R (" bkg " ) ln Pr( I p | B ) λ ∙ Rp (“obj”) p∈P, p∈OUB 0 p ∈O K p ∈B t-link {p, t} グラフの分割 t background n-links cut Edge Weight Condition n-link {p, q} B{p, q} {p, q}∈N t-link {p, s} λ ∙ Rp(“bkg”) p∈P, p∈OUB K p ∈O 0 p ∈B λ ∙ Rp (“obj”) p∈P, p∈OUB 0 p ∈O K p ∈B t-link {p, t} s object Graph Cuts Segmentation 結果(2D) Graph Cuts Segmentation 結果(3D) Graph Cuts Stereo ステレオ – ピクセル間の対応付け → ラベリング問題 E( L) Edata ( L) Eocc ( L) Es ( L) Edata ( L) Eocc ( L) Es ( L) D l ( p , q ) 1 C pP1 P2 ( p ,q ) p K T ( p is occluded) {( p , q ),( p ', q ')} {( p , q ),( p ', q ')}N T (l( p ,q ) l( p ',q ') ) グラフの作成 Graph Cuts Stereo 結果 まとめ Graph Cuts Algorithm – Min-Cut/Max-Flow Algorithms を用いて,エネルギー関数を 最小化 – セグメンテーションやステレオなど幅広く利用 おしまい
© Copyright 2024 ExpyDoc