交互式图像分割

来源:互联网 发布:jquery与javascript 编辑:程序博客网 时间:2024/05/17 22:58

  最近看了Yuri Y.Bpoykov的<<Interactive Graph Cuts for Optimal Boundary&Region Segmentation of Objects in N-D Image>>这篇文章,还是来写个总结吧。

  简而言之,就是通过用户来对图像的背景和目标作一些标记,利用这些已有的标签(“object”或"background")来给未知标签的像素分配其概率最大的标签,意思就是对于未知标签的像素,它若与已标记“object”的像素点的相似度大于与标记为“background”的像素点的相似度,则它就可以获得“object”标签,反之,为“background”标签,如此就可以产生一个二值图像,也就分割出来了图像的前景与背景。











  我们将利用图论中的知识,如上图所示,将每个像素点看成是图的一个顶点,其中T与S顶点是两个额外定义的点(可以看作T代表背景,S代表前景),图中有两种边,t-link(与T,S相连的边)和n-link(node与node相邻的边),这样就形成了一个有向图。若通过一个规则给每条边赋予一定的权值,然后利用s/t(最大流最小割)算法进行分割。s/t算法的输入是一个带权有向图,输出可以找到一条最小权值和的路径。这样就把所有的顶点分成了两部分,也就完成了所有像素点的标记,即完成了图像的分割。

  以上都是讲的很通俗,下面来说说理论上的东西。

  原理:

  Ap代表给像素点分配的标签(“object”或"background");E(A)为能量函数,R(A)是区域项,代表的意思是给像素p分配标签A(p)的代价,p分配标签Ap的概率越大,R(A)就越小;B(A)为边界项,代表相邻像素点p、q的不连续性的代价,p、q越相似,B(A)项就越大。我们的目标是最小化E(A),所以需要给像素p分配概率最大的标签,寻找分配不同标签的的相邻像素。

  

  寻找最小能量函数的分割,即寻找图的最小割,可利用s/t算法,所以下面我们主要来说说怎样建立起这个对应的图,其实最主要是在于怎样设置两种边的权值,下面这个图给出了权值的计算:





  步骤:

  1、构建图

  普通顶点由每个像素组成

  普通边由领域像素连接成边,权值由B(p,q)来决定

  建立两个终端结点S(前景),T(背景),每个普通顶点都要与终端结点建立边,权值如上表

  2、通过s/t算法找出最小割

  优点:可用于N-D图像中,有明确能量函数,加入了人工交互,可优化分割,能找到全局最优解。

  缺点:计算够复杂,每个像素点都要计算,后面应用了超像素会减小计算复杂度,另外需要人工交互,手动的初始化对分割的影响较大,用到图像中的信息也不够多。



0 0