问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

grabcut算法

发布网友 发布时间:2022-12-17 14:41

我来回答

1个回答

热心网友 时间:2023-09-16 12:14

本文转自 《图像分割之(三)从 Graph Cut 到 Grab Cut》

GrabCut是Graph Cut的改进版,是迭代的Graph Cut。OpenCV中的GrabCut算法是依据《"GrabCut" - Interactive Foreground Extraction using Iterated Graph Cuts》这篇文章来实现的。该算法利用了图像中的纹理(颜色)信息和边界(反差)信息,只要少量的用户交互操作即可得到比较好的分割结果。

OK,那看了效果,我们会想,上面这些效果是怎么达到的呢?它和Graph Cut有何不同?

(1)Graph Cut的目标和背景的模型是灰度直方图,Grab Cut取代为RGB三通道的混合高斯模型GMM;

(2)Graph Cut的能量最小化(分割)是一次达到的,而Grab Cut取代为一个不断进行分割估计和模型参数学习的交互迭代过程;

(3)Graph Cut需要用户指定目标和背景的一些种子点,但是Grab Cut只需要提供背景区域的像素集就可以了。也就是说你只需要框选目标,那么在方框外的像素全部当成背景,这时候就可以对GMM进行建模和完成良好的分割了。即Grab Cut允许不完全的标注(incomplete labelling)。

我们采用RGB颜色空间,分别用一个K个高斯分量(一取般K=5)的全协方差GMM(混合高斯模型)来对目标和背景进行建模。于是就存在一个额外的向量k = {k1, . . ., kn, . . ., kN},其中kn就是第n个像素对应于哪个高斯分量,kn∈ {1, . . . K}。对于每个像素,要不来自于目标GMM的某个高斯分量,要不就来自于背景GMM的某个高斯分量。

Graph Cut的算法是一次性最小化的,而Grab Cut是迭代最小的,每次迭代过程都使得对目标和背景建模的GMM的参数更优,使得图像分割更优。我们直接通过算法来说明。

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

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

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

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

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

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

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

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

总的来说,其中关键在于目标和背景的概率密度函数模型和图像分割可以交替迭代优化的过程。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
被培训机构骗了,他们耍无赖不退钱,如果我把他公司砸到他们骗走我的钱... 木地板的类型以及可以使用的拖把 冯小刚脸有红斑!可以去东北步行街特产店买百草之王人参!吃段时间就好... Empires & Allies – 社交网络 UID 是什么?我如何找到它? Empires & Allies – Regarder pour gagner (RG) – FAQ Empires & Allies – 如何建造并升级基地营地? 男领导是喜欢这个女人吗? 地雷战纪念馆的主要展览 我想问一下打火机爆炸能伤人吗 万能焊条可以用打火机烧吗? 绿幕抠图SDK技术对比 烤鸭面皮能放冰箱保鲜吗 烤鸭面皮可以放冰箱保鲜吗 形容拼命努力了还是失败的诗句 棉花白是米白吗 棉铃是什么意思 428是什么原棉种类 《鲁迅徐志摩朱自清文学经典大合集》读后感500字 photomath逗号怎么打 罗顺远的个性签名怎么写 罗家俊签名怎样写好看? 罗廷兴的个性签名怎么写? 哪些花不能放在卧室养 水ph值是什么 更换汽车机油时,空滤汽油滤机油滤,这三样师傅是不是免费更换的? 怎样把一个微信的内容转到另一个上 怎么把的数据转到另一个的数据 脱脂和全脂牛奶哪个好 我会照样子写词语。例:荡秋千()() 陶最热点是不是停了 淘最热点app怎么赚钱快 从拼图游戏到人类基因组计划 以父亲为题的600字议论文 关于打折火车票的问题 怎样买到折扣火车票 折叠火车票没事不? … 临沂阳光沙滩浴场的介绍 鱼缸里的水可以放自来水吗,刚买来的鱼缸可以直接放自来水吗 红米2A手机通话时,不开扬声器对方听不到声音 为什么小米2A打电话时对方听不到我说话的声音,我却听得到她们说的声音 红米2a通话有杂音'有时听不到对方的声音或对方听不到自己的声音.一个月的新机 厦门康美舒新材料有限公司怎么样? 梵净山翠峰的泡法,水温把握在多少度,一般用什么茶具冲泡 梵净山翠峰茶生长周期 为什么我的魅族手机连不上网络? 奥特曼传奇英雄暗黑圣剑怎么解锁不了 怎么画欧布奥特曼原生形态拿到欧布圣剑黑暗伽古拉 逃跑吧少年,欧布圣剑怎么获得 逃跑吧少年欧布圣剑怎么获得 水晶为什么能防腐 去世三天的人在水晶棺里面突然打开有尸毒么 电死的人装在水晶棺内能冻好吗