Graph Cuts学习笔记2014.5.16----1
进行了一段时间的论文学习后,现在下载了一些代码,准备从OpenCV跟matlab两个方面着手搭建自己的图像分割平台,计划耗时一个月左右的时间!
昨天去西工大,听了一场Graph Asia的报告,里面有个Microsoft的人讲述自己怎么写paper。纠正了我一直以来的一个误区:就是做完实验再写paper,这个是不对的,应该像软件工程的开发流程一样,文档先行才对,一遍写文档一边写代码。
还有一点感悟就是,关于图像分割这块的内容,大家都做的比较多了,怎么样让自己的工作出彩,还有原创性的idea很重要。
图论方法的主要思想是将图像映射成加权图,把图像像素看作图的顶点, 邻接像素之间的关系看作图的边, 邻接像素之间的相似性看作边的权值, 根据边的权值设计能量函数,
通过最小化能量函数完成对图的分割, 从而实现图像分割. 基于图论的分割方法对图像进行分割时优点明显:
1) 图论是一门研究比较早而且已经发展成熟的学科, 具有较好的数学基础. 针对某个问题, 图论中有多个方法可以解决;
2) 图像和图之间非常相似. 在图像映射为图之后, 便可以利用图论中的各种理论和数学工具进行图像分割.
目前常用的基于图论的分割方法包括最小割 (通常称为图割)、归一化割等. 和图割相比, 归一化割存在以下几点不足:
1) 没有嵌入一元 (Unary) 项, 如各自图结点的先验, 相当于对所有结点都是零先验;
2) 需要计算大矩阵的广义特征向量, 尽管采取了复杂度抑制措施, 计算量仍很大;
3) 只能逼近全局最优解;
4) 倾向于分割出的类具有相同的类内相似度.
因此, 尽管图割容易分离出小目标, 但图割方法的优点更加明显:
1) 在全局最优的框架下进行分割, 保证了能量函数的全局最优解;
2) 同时利用了图像的像素灰度信息和区域边界信息, 分割效果好;
3) 用户交互简单且方便, 只需在目标内部和背景区域标记少量的种子点, 对种子点的具体位置也没有严格要求, 而且通过预处理方法自动确定种子点, 也可让图割方法自动化.
因此, 近 10 年来, 基于图割的图像分割方法的发展和应用尤为广泛. 经典的图割只能精确求解特定的能量函数, 而对其他能量函数需要用线性规划松弛方法来求解, 有两个思路可实现:
1) 基于移动制造的方法, 包括 α 扩展和 α−β 交换等, 不试图精确地求解松弛问题;
2) 基于消息传递的方法, 包括信念传播 (Belief propagation) 和 TRW (Tree-reweightedmessage-passing) 等, 试图精确地求解松弛问题.
参考文献[7]中证明了,最小割等价于能量函数最小化:

参考文献
[1] Y. Boykov, and M. P. Jolly, "Interactive graph cuts for optimal boundary and region segmentation of objects in N-D images",
Proceeding of IEEE International Conference on Computer Vision, 1:105~112, July 2001.
[2] C. Rother, A. Blake, and V. Kolmogorov, "Grabcut – interactive foreground extraction using iterated graph cuts",
Proceedings of ACM SIGGRAPH 2004, 23(3):307~312, August 2004.
[3] A. Agarwala, M. Dontcheva, M. Agrawala, et al, "Interactive digital photomontage",
Proceedings of ACM SIGGRAPH 2004, 23(3):294~302, August 2004.
[4] Y. Li, J. Sun, C. Tang, et al, "Interacting with images: Lazy snapping",
Proceedings of ACM SIGGRAPH 2004, 23(3):303~308, August 2004.
[5] A. Blake, C. Rother, M. Brown, et al, "Interactive Image Segmentation using an adaptive GMMRF model".
Proceedings of European Conference on Computer Vision, pp. 428~441, May 2004.
[6] V. Kwatra, A. Schodl, I. Essa, et al, "Graphcut Textures: Image and Video Synthesis Using Graph Cuts".
Proceedings of ACM Siggraph 2003, pp.277~286, Augst 2003.
[7] Song-Tao L I U, Fu-Liang Y I N. 基于图割的图像分割方法及其新进展[J]. 自动化学报, 2012, 38(6): 911-922.
Graph Cuts学习笔记2014.5.16----1的更多相关文章
- 《深入Java虚拟机学习笔记》- 第16章 控制流
<深入Java虚拟机学习笔记>- 第16章 控制流
- 自学python:python学习笔记之Ubuntu 16.04网络的配置
Ubuntu 作为一个Linux的发行版,在桌面环境的易用性上做了很多改善,对推动Linux的推广做了很大的贡献.同时,它作为服务器的操作系统也越来越多的被使用.当然,服务器端可能更多的人在使用Red ...
- 【c++ Prime 学习笔记】第16章 模板与泛型编程
面向对象编程(OOP)和泛型编程(GP)都能处理在编写程序时类型未知的情况 OOP能处理运行时获取类型的情况 GP能处理编译期可获取类型的情况 标准库的容器.迭代器.算法都是泛型编程 编写泛型程序时独 ...
- 使用Broadcast实现android组件之间的通信 分类: android 学习笔记 2015-07-09 14:16 110人阅读 评论(0) 收藏
android组件之间的通信有多种实现方式,Broadcast就是其中一种.在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例. 效果如图: 布局 ...
- ubuntu中安装samba 分类: linux 学习笔记 ubuntu 2015-07-07 16:14 46人阅读 评论(0) 收藏
为了方便的和Windows之间进行交互,samba必不可少. 当然,他的安装使用也很简单: 安装: sudo apt-get install samba sudo apt-get install sm ...
- Swift 2.0学习笔记(Day 16)——字典集合
Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成 ...
- java学习笔记—JDBC1(16)
1.数据持久化 l 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用,也称为“固化”.在大多数情况下,服务器或客户端应用中数据的持久化是通过关系型数据库来实现 l 存储 ...
- Django学习笔记-2018.11.16
知识储备: 1 Python基础 2 数据库SQL 3 HTTP协议 4 HTML&&CSS 5 正则表达式 Django启动 django-admin startproject pr ...
- python学习笔记:第16天 面向对象02--对象中的成员
目录 ⼀.类的成员介绍: 二.类的成员-变量 三.类的成员-方法 四.类的成员-属性 五.私有属性 ⼀.类的成员介绍: ⾸先, 什么是类的成员. 很简单. 我么能在类中写什么? 写的内容就是成员. 到 ...
随机推荐
- 浅谈hibernate+入门实例
Hibernate是对jdbc进一步的封装,随着项目的开展,小编开始接触到这个概念,一开始接触的时候并没有觉得hibernate有多神秘,没有进一步的研究,只是简单的知道她是对jdbc的进一步的封装, ...
- 2.Cocos2d-x-3.2编写3d打飞机,项目代码总结
1.AppDelete中applicationDidFinishLaunching代码示范 2.当电话来了时,停止恢复游戏声音的代码(在AppDelegate中加入下面代码) boolAppDel ...
- 13 获取外部数据库 以及数据库游标适配器(SimpleCursorAdapter)
获取外部数据库 API SQLiteDatabase db = SQLiteDatabase.openDatabase(path, factory, flags); 参数详解: path:数据库路径 ...
- 音乐API
博主在前几篇博客中介绍了小Q聊天机器人的源码及其包含的一些功能,并在应用市场上上线了一个版本,其中有一个功能是歌曲搜索,即输入格式为"歌曲#歌曲名#歌手"即可搜索出相应的歌曲并进行 ...
- sublime text的Ctrl+alt+up快捷键失效问题解决
上周一入职了新公司,安装了sublime text3 之后发现多行光标定位快捷键"Ctrl+alt+up|down"不能使用了.最后发现是快捷键冲突.我的电脑安装的是win7专业版 ...
- JEECG&Dubbo Demo
jeecg框架service与dao层类图 吴水成Dubbo Demo项目架构图
- Android进阶(十三)网络爬虫&json应用
刚开始接触网络爬虫,怎一个"菜"字了得!经过几次的折磨,对其原理以及其中用到的json技术有了大致的了解,故作一总结,供有同样迷惑的朋友参考学习. 自己爬取的网站内容为12306的 ...
- Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制
在Mybatis编程中我们经常会用到将某个bean作为参数类型parameterType或者结果返回值类型ResultType,所以很多时候我们需要把完成的Bean的包名在mapper文件中写上,如下 ...
- linux下使用异步通知
阻塞式I/O是一直等待直到设备可以访问,非阻塞式I/O是定期轮询设备是否可以访问. 异步通知则是当设备可以访问时才主动通知应用程序,有点像设备的硬中断. 并不是所有的设备都支持异步通知,应用程序通常假 ...
- C++ Primer 有感(标准库set类型)
set容器只是单纯的键的集合,键必须为一.set容器不支持下标操作,而且没有定义maped_type类型.在set容器中,value_type不是pair类型,而是与key_type类型相同的类型. ...