基于图的快速图像分割算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Efficient graph-based image segmentation
2.相关工作
G=(V ,E),每个节点V i v 对应图像中一个像素点,E 是连接相邻节点的边,每个边有对应有一个权重,这个权重与像素点的特性相关。
最后,我们将提出一类基于图的查找最小割的分割方法。这个最小割准则是最小化那些被分开像素之间的相似度。【18】原文中叫Component,实质上是一个MST,单独的一个像素点也可以看成一个区域。
预备知识:
图是由顶点集(vertices )和边集(edges )组成,表示为,顶点,在本文中即为单个的像素点,连接一对顶点的边具有权重,本文中的意义为顶点之间的不相似度,所用的是无向图。
树:特殊的图,图中任意两个顶点,都有路径相连接,但是没有回路。如上图中加粗的边所连接而成的图。如果看成一团乱连的珠子,只保留树中的珠子和连线,那么随便选个珠子,都能把这棵树中所有的珠子都提起来。如果,i 和h 这条边也保留下来,那么h,I,c,f,g 就构成了一个回路。
最小生成树(MST, minimum spanning tree ):特殊的树,给定需要连接的顶点,选择边权之和最小的树。上图即是一棵MST 。
本文中,初始化时每一个像素点都是一个顶点,然后逐渐合并得到一个区域,确切地说是连接这个区域中的像素点的一个MST 。如图,棕色圆圈为顶点,线段为边,合并棕色顶点所生成的MST ,对应的就是一个分割区域。分割后的结果其实就是森林。
边的权值:
对于孤立的两个像素点,所不同的是颜色,自然就用颜色的距离来衡量两点
的相似性,本文中是使用RGB 的距离,即
3 图割
3.1 我们定义D,衡量分割区域之间是否有明显边界。D是通过测量沿着两个区域边界元素的不相似度对比测量两个区域内部各自内部元素之间不相似度。
我们用C表示一个部分的内在差异,是该区域最小生成树上的最大权值。
我们定义两个区域间的不同是两个区域连接边的最小权值,
如果C1,C2之间不想连,则Dif(C1,C2)=无穷大,
使用下面的阈值函数来控制两个区域之间的差异性必须大于最小内在差异,我们定义如下函数:
其中MInt是:
阈值函数τ控制着两个区域之间的差异性必须大于他们内在差异性,以便它们之间有明显的边界(D为true)。对于小的区域,Int(C)是对局部数据的特性的一个好的估计。在一些极端情况下,如果|C|=1,Int(C)=0。因此我们的阈值函数为
τ
k
(C
C=
)
|
|/
这里的|C|是C的大小,K是某个特定常量参数。对于小的区域我们需要明显的边界。实际上k设置为一系列值.
说明:
当二者都是孤立的像素值时,,所有像素都是"零容忍"只有像素值
完全一样才能合并,自然会导致过分割。所以刚开始的时候,应该给每个像素点设定一个可以容忍的范围,当生长到一定程度时,就应该去掉该初始容忍值的作用。原文条件如下
增加项:
τ
(C
C=
k
|
|/
)
其中为区域所包含的像素点的个数,如此,随着区域逐渐扩大,这一项的作
用就越来越小,最后几乎可以忽略不计。那么就是一个可以控制所形成的的区
域的大小,如果,那么,几乎每个像素都成为了一个独立的区域,如果
,
显然整张图片都会聚成一块。所以,越大,分割后的图片也就越大
4算法和它的特性
定义1 分得太细。
定义2 分得太粗
特性1
相近的算法【6】
算法1 分割算法
输入:图 ),(E V G =,有n 个顶点和M 条边。
输出:对V 的分割为 ),......
,(1r C C S =
0. 首先将边E 按照权重大小由小到大排列为)...,(,1m o o =π;
1. 开始一个分割0S ,每一个顶点i v 是它自己的区域;
2. 重复步骤3,q=1,....,m
3. 按照如下方法,通过1-q S 构建q S :按顺序,i v 和j v 表示第q 次相连的两个顶点,比如,),(o q j i v v =。如果i v 和j v 在1-q S 的不相交的两个区域中,并且)(w q o 是较小的相对于这些区域的内在差异性,那么合并这两个区域除非什么也不做。
1-q i C 包含i v 成为1-q S 的一部分,让1-q
j C 包含j v 成为一部分(let Ci q −
1 be the component of Sq −1 containing vi and Cj q −1 the component containing vj )。如果
),()(1111i ----≤≠q j q i q q j q C C MInt o w and C C ,将1-q i
C 和1-q j C 合并到1-q S 中成为q S 。否则q S =1-q S
4. 返回 m S S =
算法分析:具有全局特性,既不会分得太细也不会分得太粗。该算法是贪心决策
引理1 上述算法中的步骤3,如果i v 和j v 没有合并,那么1-q i C 和1-q
j C 中至少有一
个最后会在分类的区域中。证明见paper
4.1 实施问题和运行时间
实施主要是包括并查集结合排序和路径压缩(a disjoint-set forest with union by rank and path compression),参考《算法导论》(Introduction to Algorithms. The MIT Press(麻省理工出版社), McGraw-Hill Book Company, 1990.)。运行时间分为两个部分:1.按照从小到大给权值排序。整数权重使用计数排序(counting sort)可在线性时间内完成。
/dm_vincent/article/details/7655764
/TonyNeal/p/bingchaji.html
/structure/union-find-set/
/info-detail-610308.html
说明:并查集+排序+路径压缩
动态联通性
假设我们输入了一组整数对,即上图中的(4, 3) (3, 8)等等,每对整数代表这两个points/sites是连通的。那么随着数据的不断输入,整个图的连通性也会发生变化,从上图中可以很清晰的发现这一点。同时,对于已经处于连通状态的points/sites,直接忽略,比如上图中的(8, 9)。
在对问题进行建模的时候,我们应该尽量想清楚需要解决的问题是什么。因为模型中选择的数据结构和算法显然会根据问题的不同而不同,就动态连通性这个场景而言,我们需要解决的问题可能是:
给出两个节点,判断它们是否连通,如果连通,不需要给出具体的路径
给出两个节点,判断它们是否连通,如果连通,需要给出具体的路径