Grabcut

1 导语

 

想跟偶像合影,但是一直没有机会,怎么办?PS,太复杂,不太会。美图秀秀,只能增白磨皮。最后还是编程靠谱


这里用的技术就是GrabcutGrabcut主要是一种交互式分割算法,用户需要圈出自己想要分割的东西,grabcut会迭代地将其分割出来,并且迭代过程中用户可以交互。下图实验中只是圈出矩形,并未交互,可以看出算法效果还是非常鲁棒的。

 

 


 

 

下图由于部分背景跟我们想要分割的前景比较相似,因此做了一些交互


 

 

Grabcut主要涉及了Mincut/Maxflow问题,Mincut/Maxflowgraphcutgrabcut等利用能量最小割做图像分割算法的核心,在之前的帖子中已经详细介绍。因此本节中先简单带过GMM,然后再进入GrabCut

 

2 小谈GMM

高斯混合模型听起来听高端大气上档次了,然后感觉有些太数学,好多人就有点发怵,其实很简单,大多数人在日常生活中可能都用过这个技术。比如说某个人在炒股,最近股市动荡非常,自己又不懂金融股市,又想赚点小钱,那找到两个懂点的人预测下下个月的A股。A预测了一个在4000点左右的高斯分布,B预测了一个在3000点左右的高斯分布,如下图。但是A的水平要高些,预测的准确率80%B的水平相对弱些,预测的准确率20%,因此我们把两者乘以相应的系数叠加得到了一个高斯混合模型,也就是第三幅图。


 

但是一般情况下大部分的用法是我们知道第三幅图,去推测第一第二图,这就是GMMEM的核心,可以用在固定摄像头下的运动物体(前景)检测。

 

假设我们在监控一个房间,我们的图片就呈现了这个房间的样子,这时来了一个人,我们怎么找到这个运动前景的位置呢。我们对图片的每个像素建一个高斯混合模型,比如图片的某个像素是一个一闪一闪的灯,闪的时候像素是255,不闪的时候是0。我们取连续的100帧作为背景图像,由于不闪的时间更多和相机成相的原因,80帧左右的像素都在0左右,20帧左右都在255左右,因此我们的高斯混合模型由均值在2550的高斯分布构成,均值255的权重为0.2,均值为0的权重我0.8.现在我们有一个前景刚好覆盖了这个像素,新的像素值为100,如果这个值都不在刚刚的哪个高斯分布的2.5sigma(方差)范围内,我们就认为它是前景。

 

3 GrabCut

 


这里从简单理解的角度去分析Grabcut.既然我们已经介绍了mincutGMM,那么,grabcut是怎么和上面的两个问题联系起来的的呢?

如上图,除了灰色的图像像素外,我们和mincut问题一样也有两个顶点ST。不过这两个点是虚拟的,最开始ST跟所有的像素都有联系(边),当最后完成分割后,和S还有联系的就作为前景,跟T还有联系的就作为背景。

如果GrabCut要用到mincut,唯一我们要做的就是怎么定义边和这些边的权重,使得最后的最小割就是我们想要的分割。ST的边我们已经定义了,然后我们规定像素只跟旁边4连通或者8连通的像素有联系(这里我们采用8连通),这样我们就定义好了边,接着我们来定义权重。当一个点跟S有联系时,如果它是前景,我们希望它的权重越大越大,反之越小越好。那问题来了,我们一开始就不知道哪个是前景还是背景,那怎么办呢。我们可以为前景和背景建模,一开始我们不是框出了一个框么,我们可以把框内的都当做前景,框外的都当做前景,然后分别用GMM去建模(Graph Cuts中用直方图建模)



 

那么像素点跟ST的权重定义如下。一个点PS T的权重就是找他们在FB混合高斯模型中的概率,概率越大,我们的权重应该越大,因为我们越不希望它分割开来。如果一个点在F中,那么它跟S点的连接权重为lemda,T的连接权重为-log(pf)。这里我自己也有个问题,为什么跟S的连接权重为lemda.

 

像素点跟连通像素点的权重与距离和它们的像素差有关。像素值相差越小,距离相差越小,权重也越大。


 

如果我们现在就分割的话会不准确,因为我们把框内所有的都当成前景,很显然其中有一些不是。因此我们需要按照高斯混合模型的解法去迭代,迭代的过程中可以有交互。参考论文中的流程算法。


 

[1]“GrabCut” — Interactive Foreground Extraction using Iterated GraphCuts

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值