论文阅读5----“GrabCut” — Interactive Foreground Extraction using Iterated Graph Cuts

目录

0.Abstract

1.Introduction

1.1 以往的方法

1.2  Proposed system:GrabCut

2.Image segmentation by graph cut

2.1 Image segmentation

2.2 Segmentation by energy minimisation

3.The GrabCut segmentation algorithm

3.1 Colour data modelling

3.2 Segmentation by iterative energy minimization

3.2.1 初始化

3.2.2 迭代最小化

3.2.3 用户编辑

 3.3 User Interaction and incomplete trimaps

4.Transparency

4.1 Border Matting

4.2 Foreground estimation

5 Results and Conclusions


0.Abstract

      静态图像的高效、交互式前景/背景分割问题在图像编辑中具有重要的现实意义。经典的图像分割工具使用纹理(颜色)信息,如魔棒,或边缘(对比度)信息,如智能剪刀。最近,一种基于图割优化的方法成功地将这两种信息结合起来。本文从三个方面对图切方法进行了扩展。首先,我们开发了一个更强大的迭代优化版本。其次,迭代算法的力量被用来大大简化给定质量的结果所需的用户交互。第三,提出了一种鲁棒的“边界抠图”算法,可以同时估计物体边界周围的 alpha-抠图和前景像素的颜色。我们表明,对于中等难度的例子,所提出的方法优于竞争工具。

1.Introduction

     本文研究了在复杂的背景不能简单减除的环境中高效、交互式地提取前景目标的问题。最后的前景对象是 alpha-matte,它反映了前景和背景的比例。这样做的目的是在用户的交互努力有限的情况下实现高性能。该任务的高性能包括:目标与背景的精确分割;主观可信的 alpha 值,以响应模糊,混合像素和透明度;干净的前景颜色,源背景无颜色渗出。一般来说,交互工作的程度从编辑单个像素(在劳动密集的极端情况下)到仅仅触摸几个位置的前景和/或背景。

1.1 以往的方法

    

1.2  Proposed system:GrabCut

    理想情况下,一个Matting工具在不需要硬约束的情况下,能在trimap的Tu区域产生连续的alpha值,alpha值只能是0或1。然而,在前背景很好分离时,能有效解决matting问题,但是camouflage时就不行了。这正是我们想决解的问题。

    首先我们使用迭代图割得到硬分割(在第二节和第三节)。然后(第四节)在Tu区域计算alpha的值。最后实现边缘以外的背景透明。
    相对于Graph cuts我们有两个增强:迭代估计和更少的用户交互,不用标记前景,只需要用一个矩形框标记。我们还提出了border matting使边缘更加自然、平滑。

2.Image segmentation by graph cut

      先用graph cut来生成我们算法的前景。也就是先做一次粗分割,然后扩张分割边界为一个分隔带,带内就是前景区,带外就是背景区,带中就是不确定区域。

2.1 Image segmentation

   Graph cut解决黑白图像的分割,并能生成一个初始的trimap T。把图像设为一个灰度值数组Z=(z1,…,zn,….zN)(N个像素点)。图像由表示每个像素不透明度的数组α=(α1,…αN)分割。一般像素的α在0和1之间,但是对于用户标记的像素,背景是0,前景是1。参数θ是图像前景和背景的灰度等级直方图,由相应的灰度组成:

                           

     一个用于背景,一个用于前景。直方图直接从各自的 trimap 区域 TB,TF的标记像素组装而成。(直方图归一化后,在灰度级上求和为 1。

       一个前景,一个背景。直方图由用户标记的Tf和Tb得到,且直方图被归一化。

2.2 Segmentation by energy minimisation

    定义一个能量函数E,使其最小值应对应于良好的分割,在某种意义上,它是由观察到的前景和背景灰度直方图引导的,并且不透明度是“相干的”,反映了物体的一种稳定趋势。这是由形式的“吉布斯”能量捕获的。

   能量函数E的最小化对应要得到的分割,包括上边提到的三个参数。

                   

      数据项U在给定直方图模型θ的情况下评估不透明度分布α对数据z的拟合。

                      
     在边缘项V中,[φ]表示对于φ取值为0,1的指示符函数,C是相邻像素对的集合,dis(·)是相邻像素的欧几里得距离。这个能量函数使有相似灰度的区域合并。在实际当中,还需要和像素的8邻域结合起来。当β= 0时,平滑项就成了Ising prior,它实施全图的平滑,平滑程度由γ决定。然而,在Graph cut[Boykov和Jolly 2001]中表明,设置β>0更好:

                          

尖括号是图像样本的期望。这样设置β能使(4)中的指数项能适当的选择高或低的常数。γ由训练15张图确定为50。

                           

       用Graph cut[Boykov和Jolly 2001]中的最小割算法。这个算法是硬分割的基础,下一节讲了Grabcut的新的硬分割算法的三个改进点:

3.The GrabCut segmentation algorithm

      这部分介绍了迭代估计和不完全标记。

3.1 Colour data modelling

3.2 Segmentation by iterative energy minimization

     Graph Cut的算法是一次性最小化的,而Grab Cut是迭代最小的,每次迭代过程都使得对目标和背景建模的GMM的参数更优。GrabCut新的能量最小化使用迭代的方法,而不是一次分割的算法。这样能自动细化不透明度α,来自初始trimap的Tu区域的新标记的像素用于细化颜色GMM参数θ。我们直接通过算法来说明:

3.2.1 初始化

    (1)用户通过直接框选目标来得到一个初始的trimap T,即方框外的像素全部作为背景像素TB,而方框内TU的像素全部作为“可能是目标”的像素。

    (2)对TB内的每一像素n,初始化像素n的标签αn=0,即为背景像素;而对TU内的每个像素n,初始化像素n的标签αn=1,即作为“可能是目标”的像素。

    (3)经过上面两个步骤,我们就可以分别得到属于目标(αn=1)的一些像素,剩下的为属于背景(αn=0)的像素,这时候,我们就可以通过这个像素来估计目标和背景的GMM了。我们可以通过k-means算法分别把属于目标和背景的像素聚类为K类,即GMM中的K个高斯模型,这时候GMM中每个高斯模型就具有了一些像素样本集,这时候它的参数均值和协方差就可以通过他们的RGB值估计得到,而该高斯分量的权值可以通过属于该高斯分量的像素个数与总的像素个数的比值来确定。

3.2.2 迭代最小化

     (1)对每个像素分配GMM中的高斯分量(例如像素n是目标像素,那么把像素n的RGB值代入目标GMM中的每一个高斯分量中,概率最大的那个就是最有可能生成n的,也即像素n的第kn个高斯分量):

                    

     

   (2)对于给定的图像数据Z,学习优化GMM的参数(因为在步骤(1)中我们已经为每个像素归为哪个高斯分量做了归类,那么每个高斯模型就具有了一些像素样本集,这时候它的参数均值和协方差就可以通过这些像素样本的RGB值估计得到,而该高斯分量的权值可以通过属于该高斯分量的像素个数与总的像素个数的比值来确定:

                       

     (3)分割估计(通过1中分析的Gibbs能量项,建立一个图,并求出权值t-link和n-link,然后通过max flow/min cut算法来进行分割):

                  

     (4)重复步骤(1)到(3),直到收敛。经过(3)的分割后,每个像素属于目标GMM还是背景GMM就变了,所以每个像素的kn就变了,故GMM也变了,所以每次的迭代会交互地优化GMM模型和分割结果。另外,因为步骤(1)到(3)的过程都是能量递减的过程,所以可以保证迭代过程会收敛。

    (5)采用border matting对分割的边界进行平滑等等后期处理。

3.2.3 用户编辑

     (1)编辑:人为地固定一些像素是目标或者背景像素,然后再执行一次3.2.2中步骤(3);

     (2)重操作:重复整个迭代算法。(可选,实际上这里是程序或者软件抠图的撤销作用)

                 

       数据迭代最小化的收敛性。(a)llama例子的能量E在12次迭代后收敛。初始化时(b)和收敛后(c)的RGB颜色空间(侧视图显示R,G)中的GMM。背景(红色)和前景(蓝色)都使用K = 5的混合分量。最初(b)两个gmm都有相当大的重叠,但在收敛后(c),随着前景/背景标记变得准确,它们被更好地分离。

 3.3 User Interaction and incomplete trimaps

    不完全修剪:迭代最小化算法允许用户交互的改变。用户不用标记完全的trimap T,只需要标记出背景Tb,使Tf=0。不用标记前景。迭代最小化通过允许随时可撤回的临时标签来处理这种不完全标记,只有背景Tb是固定的,不会撤回。在我们的实现当中,Tb就是矩形框以为的像素。

                      

在最初的用户交互和细分(顶部行)之后,需要进一步的用户编辑。用前景色刷(白色)和背景刷(红色)做大致标记就可以得到想要的结果(下一行)。

      Further user editing:一般来说,初始的交互就能分割好,但是总有例外。这时就需要用户的进一步交互了。用户再标记确定的前景或背景,然后最小化能量(上图中的步骤3)。另外,随着用户的标记,上图也会更新颜色模型。注意,为了效率,通过Graph Cut计算的最佳流量可以在用户编辑期间重复使用。

4.Transparency

     考虑到matting工具应该能够产生连续的α值,我们现在描述一种机制,通过该机制,如上所述的硬分割可以通过“border matting”来增强,其中允许在硬分割边框周围的窄带中实现完全透明。 这足以处理光滑边缘的模糊和像素混合的问题。 技术的关键:估计条带的alphamap,而不生成伪像,并恢复前景色,背景完全透明。

4.1 Border Matting

     Border matting由一个闭合轮廓C开始,C由上一节迭代硬分割的分割边界经拟合一个折线后获得。然后trimap{Tb,Tu,Tf}就得到了,其中Tu是C±w大小的一个像素带的集合(w=6)。目标是计算map αn,n∈Tu,并且为了保证鲁棒性,为Tu内的α轮廓的形状设一个强模型。模型基于[Mortensen和Barrett 1999],但有两个不同:正则化,以提高估计的α-map的质量;在整个Tu中用动态规划法估计α。

    令t = 1,…,T是轮廓C的参数化,当曲线C闭合时,其周期为T。对Tu中的每个像素n分配一个索引t(n)。由软阶梯函数g确定 α轮廓

4.2 Foreground estimation

       这里的目的是估计前景像素的颜色,且没有背景颜色的流出。Bayes matting中会出现背景像素没有去除干净的情况,因为她所使用的概率算法是从混合像素中去除背景部分,不是很精确。我们通过从前景Tf本身借用像素来避免这种情况。首先,用the Bayes matte algorithm [Chuang et al. 2001, eq. (9)]获得对像素n∈Tu的前景色fn的估计。然后,对于如上定义的邻域Ft(n),最类似于fn的像素颜色来形成前景颜色。最后,由正则化的α和得到的前景像素组合得到border matting的最后结果。

5 Results and Conclusions

    综上所述,本文提出并演示了一种新的前景提取算法,该算法可以在用户不太费力的情况下,为中等难度的图像获得高质量的前景alpha图像。该系统结合了硬分割的迭代图切优化与边界抠图,以处理模糊和混合像素的对象边界。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值