計算機視覺:關於Graph cuts的簡介及相關資源
【簡介】
Graph Cuts 不等於 graph cut(如 min cut、normalized cut、RatioCut), 是最近在計算機視覺中研究和應用比較多的energy minimization(能量函數最小化)優化算法,典型的用於stereo matching, image restortion, texture synthesis等應用。
這個優化算法用來解 markov Random Field. 有實驗<Comparison of Graph Cuts with Belief Propagation for Stereo, using Identical MRF Parameters>顯示,Graph Cuts比用Belief Propagation更好,比用dynamic programming(只用1D求解), gradient decedent, simulated annealing, etc 要好得更多;特別是使用a-b-swap, 和 a-expansion的時候。
【原理】
- <Fast Approximate Energy Minimization via Graph Cuts> (Boykov, Veksler and Zabih, PAMI '01),這篇paper是graph cuts的開山之作,系統介紹瞭如何構造graph和energy term來解stereo disparity, motion等問題,也比較直觀的介紹了a-expansion。
- <GRAPH BASED ALGORITHMS FOR SCENE RECONSTRUCTION FROM TWO OR MORE VIEWS> (Kolmogorov's PhD thesis 04), 這篇論文是Kolmogorov的博士論文,實現了Graph CUT用於立體視覺的匹配,它改善了傳統GRAPH CUT計算耗時的缺點,他還因此稱爲微軟一員,專門從事GRAPH CUT在圖像處理上的應用。
- <What energy functions can be minimized via graph cuts> (Kolmogorov PAMI '04). 本文首先介紹了需要通過graph cut最小化的能量函數的特性。雖然是二進制變量但是很容易推廣到其他方面。詳細描述了通過graphcut最小化的能量函數。並提供了最小化能量函數的通用構建。最後給出了最小化二進制能量函數的必要條件。
- <Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images> (Boykov iccv01) 這篇paper講怎麼用graphcut來做image segmentation。
【應用】
Graph cuts最主要的應用是圖像分割。
在Boykov 和 Kolmogorov 倆人的主頁上就有大量的code。包括maxflow/min-cut、stereo algorithms等算法:
http://vision.csd.uwo.ca/code/
http://www.cs.ucl.ac.uk/staff/V.Kolmogorov/software.html
以及olga. Veksler的
http://www.csd.uwo.ca/faculty/olga/code.html
【toolkit】
- Lazy Snapping
- GrabCut