您的位置:首页 > 移动开发 > Objective-C

Interactive Graph Cuts for Optimal Boundary and Region Segmentation of Objects in N-D ImageS

2017-02-23 09:28 302 查看
    摘要:在本篇文章中,将对N维图像的分割提出一个新的交互式方法。用户标记部分像素作为“目标”或“背景”,为图像分割提供硬约束。此外,利用图像的边缘信息和区域信息作为软约束。图割方法是一种全局最优的N维图像分割方法。解决方案中给出最优平衡区域与边缘信息约束,从而得到分割结果。我们分割的拓扑结构不受限制而且“目标”和“背景”分割可能由几个孤立部分组成。并附有实验。

    1介绍:交互式分割有很多优势,因此很受欢迎。我们的目标是通过交互式分割技术将图像分割成“目标”和“背景”。用户对分割给出硬约束,指定部分归于目标的像素点作为目标种子点,指定部分归于背景的像素点作为背景像素点。直观上来说,硬约束提供了图像分割的线索。剩下的图像根据硬约束线索,通过全局最优得出分割结果。花费函数由边界项和区域项给出。上述两个属性可以看为图像分割的软约束。当用户加入或删除部分硬约束(种子)时,全局最优分割可以高效的计算。通过交互,用户可以快速得到分割结果。我们的方法适用于N维图像。

    本文方法一个主要优势在于我们的方法提供了全局最优的结果。同样重要的是,我们使用的成本函数作为分割的软约束,一般足以包括区域和边界信息。考虑一个任意数据元素集合P和集合P中元素相邻的元素所形成的无向边{p,q}的集合N。(其意思即为P为图像中的像素,而N为P中像素与其相邻像素形成的像素对,对2维图像来说,是8邻域;对3维图像来说,是26邻域)。令A=(A1,…,Ap,…,AP)为2值向量。给P集合中的元素p赋值,每个Ap可赋值为“obj”或者“bkg”。向量A定义为分割。这样,结合软约束的两个性质我们可以给出花费函数E(A):

                                              


    这里

                                                         


                                                 


                                                                   


    式(1)中的系数

,用来权衡区域项和边界项的重要性。区域项R(A):像素p分配给“obj”或“bkg”的惩罚项,分别对应于Rp(“obj”)和Rp(“bkg”),求和后即R(A)。反映了像素p的强度更适合于哪个已知的区域强度模型(柱状图)(柱状图,区域强度模型是怎么给出的?)。

    B(A)项表达了分割结果A产生的边界属性。B{p,q}>=0可解释为p,q不连续性的惩罚。当像素p和q非常相似时,B的值非常大;当像素p和q不同时,B的值趋近于0。

    我们的方法要满足用户给出的硬约束的前提下实现全局最优分割。我们认为硬约束表明的是分割区域而不是边界。我们给某些像素标记为目标内部像素,某些像素标记为目标外部像素,上述的标记像素集合分别为前景种子点和背景种子点。这些种子点可以分散的分布在目标或背景区域。这种分割方法的分割结果非常稳定,不会因种子点的更改而出现较大的变化。

    明显的是,只有硬分割无法得到理想的分割结果,我们将硬分割与式(1)相结合,将未标记的像素进行分割。

    在本篇文章中,我们概括软约束和硬约束,并且给出硬约束改变后如何快速有效的重新计算最优分割。

    我们的技术是在图割算法基础上加入优化,在下面的部分中,将介绍图割中的术语,并提供一些计算机视觉的在图割方面的背景信息。第三部分中,将详细介绍分割过程。第四部分中将给出几个应用例子。

                                                                  


    2 Graph Cuts and Computer Vision:首先,我们先介绍关于图割图像分割的几个术语。

    无向图:

定义为节点与无向边的集合。举例说明,在图1(b)中, 每个边

在图中都分配一个非负权值(cost)we。这里有两个特别的节点成为终端,一个割的集合为

,当终端被分开后,使得图变为

用组合优化定义割的成本是正常的,用割边的和做为割的cost

                                                                                                  


    图割适合图像分割。图中的顶点代表图像的像素,边代表相邻像素之间的关系。在图中,节点的割的分区可由图1(c-d)说明,分区对应于图像潜在的分割,我们的方法基于著名的组合最优,这种方法可以有效地得到图和两个终端的全局最小割。在第三部分中,我们给出如何设置一个含有两个终端图,从而使式(1)最小时满足所给的硬约束条件下完成分割。

    理论上多项式的快速实现图割算法是一个问题。这部分问题见参考文献[2]。

    3.Segmentation Technique:在这一部分,我们提供了我们图像分割算法的分割细节,假设O和B表示被标记的像素子集“object”和“background”种子点,因此集合



我们的目标是计算全局最小的式(1)并且A要满足硬约束:

                                                                                


    一般的工作流程如图1所示,给定一个图像(如图1(a)),我们建立了一个图并包括两个终端(如图1(b)所示)。边的权值反映了区域项和边界项的花费函数。同时,图像中的种子点位置已知。下一步试计算全局最优最小割(如图1(c)所示)将终端分开。割将图像分割(如图1(d)所示)。

    下面我们将描述图的细节并证明得到的分割结果是最优的。我们根据所给图像建立图,图中的节点对应于图像中的像素p

,除此之外,这里还有两个特别的顶点,一个是“object”终端(S)和“background”终端(T),因此,顶点V的集合表示为:

                                                                                                             


    这里的边的集合有两种类型的边组成:n-links(邻域连接)和t-links(终端连接),每个像素p都有两个t-links{p,S}和{p,T}连接每个终端。每一对的相邻像素{p,q}在集合N中被n-link相连。没有任意的模棱两可,一个n-link连接一对相邻的像素p和q表示为{p,q},因此,边的集合可表示为:

                                                                                  


    下表中给出了边的权值计算:

                                                  


    (好好分析下上表的意思,

①首先{p,q}边表示相邻像素之间产生的边,边的权值为B{p,q},在上文中已经提到,当像素p和q相似时,产生的边的权值很大,反之产生的边的权值很小。当p,q为两个相似像素时,边的权值很大,为了使得到的能量函数最小,因此该边不适合作为割边,因此符合逻辑。

②{p,S}边,{p,S}边分为三种情况,首先先看第一种情况,

,需要注意的是这里的O和B都是种子点,可认为是交互式方法划定的像素点,这类像素点需要软约束决定像素的归属。因此,边的权值应由软约束公式给出λ · R p (“bkg”),注意这里求边{p,S}边的权值 ;第二种情况是p ∈ O,即p是O集合中的点,是交互式方法给定的前景像素点,这里我们可认为这个点就是前景的点,本文将前景种子点p与S的边的权值设为K。即前景点与前景相连的边的权值为K,K在这里是一个比1大的数。稍后再分析这个K;第三种情况是p
∈ B,即p是B集合中的点,是交互式方法给定的背景像素点,这里我们可以认为这个点就是背景点,本文将背景种子点与前景S的边的权值设为0.可认为这个边权值是最小的,是可以作为割边的,事实上,这个边也是必定需要被割开的。

③{p,T}边,同②

④K:

将图像中所有像素p的邻域边权值算出并求和,结果有像素个结果。选取最大结果再加1作为K。而最大和在这里可粗略认为是聚类中的中心点,因为像素p在此处邻域和最大,可认为p点在此处与周围相邻像素及其相似,从而确保权值K为最大权值)。

    通过上表,图的构造已经完全确定。我们通过对图的最小割确定图像中背景与前景的边界。

    通过上述,最小割C定义了一个图像分割A,并且证明分割是最优的。我们需要一个技术引理,假设F表示一个图中所有可行割C的集合:

C切断了所有像素p的一个t-link;

{p,q}属于C,当p,q的t-linked是不同的;

如果p∈O,则{p,T}∈C;

如果p∈B,则{p,S}∈C.

    引理1:图中的最小割是可行的。

    证明:C切断了每个像素的至少一个t-link且不能将两个t-link同时切断(就是每个像素切断且只切断一个t-link)(附:这点和N号理解,如果没有切断一个,则图还是联通的;如果全切断了,则这个点既不属于源也不属于汇,相当于没有这个节点)同样的,最小割应该将不属于同一终端的n-link切断,因为终端必须要断开,如果不属于同一终端的n-link没有被断开,则整个图还是相连的。如果p,q属于同一个终端,则这个边不该被断开,否则不是最小割。

    对于任意的可行割C,我们可定义相对应的A(C),如下式:

                                                                       


    因此,当C确定后,我们的分割结果A也就随之确定了。

    定理1:分割A=A(C)被最小割C定义(如式(6))但同时满足硬约束式(4)、式(5)。

    证明:利用上表中给出的边的权值计算方法和式(6)结合可给出割的花费:

                                                  


    根据上文提到的E的函数,

                                                                                                     


分析上式。

    首先分析第一部分,第一部分显然成立,,但需要注意的是

在这里表示的是{

}边的权值,即如果像素p属于O,则p与T的连接应该断开,割的权值应该是将{p,T}的权值相加,这里求的和也为

。这里有点绕,需要多想想。除此之外割边的权值相加即为割的花费,式中应该还有几个0没有加。

    再分析第二部分,







    将3个式子放在一起,可以很轻易地看出,

对于任意的C,均满足式(4)式(5)。因此可满足:

这个式子说明E取最小只和割C有关,因此当割最小时,能量函数即最小。

    结合上述部分的结论,我们给出的算法,可高效的调整分割时加入的种子点,具体来说,假设最大流算法被用来确定图G的最小割,最大流算法逐渐增加这个流从源开始沿着图中的边的权值到汇。在终端最大流达到饱和,这饱和边对应着最小割,即我们的最优分割。
    假设现在一个最优分割已经根据最早给出的种子点进行计算,一个用户又加入了几个新的“object”种子点,这几个点以前并不是种子点,我们需要改变终端连接t-link的花费:

                                                                       


并且重新计算这个新图的最大流最小割。事实上,我们可以从最初分割的结果开始,对新加入的种子点后的图进行计算,唯一的问题是需要重新分配部分边的权重。如果这里有一些流通过某些边,将这些边割断后将会打破流的一致性,则增加这个边的权重,否则不变,这样我们即可解决这个问题。

    为了适应这些新的“object”种子点,我们增加了t-links如表所示:

                                                   


    这是新的花费和上述是一致的,不会改变最优割,而且最大流可根据之前的结果有效的得到加入新种子点的图的割。

4.Examples:我们证明我们的分割方法用几个例子,包括图像和视频,并且给出了原始数据和种子点,我们的界面允许鼠标获取种子点,为了清晰地目的,我们采用了不同的方法。

    我们当前实现实际使用了两次用户输入的种子点。首先,提供硬约束,就像第三部分所描述的那样,然后我们使用标记为种子的像素强度,得到强度直方图和前景和背景的强度分布:Pr(I|O)和Pr(I|B)。之后,我们用直方图设置区域惩罚Rp:

                                                                                

 

    定义边缘惩罚项为:

                                                                                           


    显而易见,当相邻像素距离近且变化较大,B会产生较小的值,这样的边极有可能作为割边,反之,则不宜作为割边。    

    由于个人能力有限,且刚刚接触图割,最大流最小割和其他细节并未掌握,所以这篇文章就先翻译到这里,在后续的学习中,将不断补充这块的知识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐