Graph cut入门学习

作者:WARRIOR
Graphcut,让人欢喜让人忧
2007-09-06 21:50

终于和陈贤弟,进入Graphcut得学习了,只是这一块一直为我所难以啃掉得硬骨头,在我毕业之前能不能咬下来,希望可以,只是近日再度回首,发现其涉及得理论,有一点前沿,虽然三四年前提出得东西,但由于作者交代得简单,含糊,使得这一技术得应用受到了严重得限制,几乎很多人都知道 Graphcut可是又有多少人可以实现这个Graphcut呢,寥寥无几吧,一年前我不懂,一年后得今天,还在为这个而愁眉不展,不忘早点解决这个问题,当然,还得于陈贤弟好好交流合作了。

Graphcut是一座大山,可是翻过了这座大山,后面还有一座更大得,不过更激发我兴趣得大山要去翻越。真实永无止境啊!

上次××问我Graphcut怎么实现 我不知道,估计他也不一定懂,过段时间我实现了,就可以比上次有更大得进步了。自信也会提高很多得

 

Graph cut

Graph cut是一种energy minimization的方法,用来解first-order markov Random Field比用Belief Propagation感觉更好,比用dynamic programming(只用1D求解), gradient decedent, simulated annealing, etc 要好得更多;特别是使用a-b-swap, 和 a-expansion的时候。刚开始看graph cut的时候不着门道,走了很多弯路,现在总结起来可以这样学习:

1。学习algorithm课本里的关于graph那一节,或者google maxflow/mincut相关的内容,有介绍mincut的两种解法;
2。然后就开始看用graphcut解决computer vision里的问题,首先要看的是《Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images》iccv 01。这篇paper讲怎么用graphcut来做image segmentation;
3。看
Fast Approximate Energy Minimization via Graph Cuts (Boykov, Veksler and Zabih, PAMI '01),这篇paper系统介绍了如何构造graph和energy term来解stereo disparity, motion等问题,也比较直观的介绍了a-expansion。后面的关于graphcut的TPAMI的文章都没有介绍如何构造graph来解问题,这篇比较关键;

看了以上几个文章后,基本就可以看懂关于graphcut的论文了,就可以深入下去了。

http://www.cs.cornell.edu/~rdz/graphcuts.html

 

关于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 SnappingGrabCut

Trackback: http://blog.csdn.net/hebby06/archive/2010/03/03/5341228.aspx

[论文笔记] CUDA Cuts: Fast Graph Cuts on the GPU    http://lincccc.blogbus.com/logs/107588061.html


你可能感兴趣的:(Graph cut入门学习)