grabcut图像分割的原理简单介绍.pdfVIP

  • 6
  • 0
  • 约2.19千字
  • 约 3页
  • 2023-09-27 发布于湖北
  • 举报
grabcut图像分割的原理简单介绍 grabcut采⽤graph cut图分割和最⼤流技术的⼀种 互式图像分割技术,不吹⽜逼了,接触opencv 10来天,就这点墨⽔了,直接⾔归正 传,在学习了,⼤⽜的⽂章后,有点感悟,所以记录下来,若有⼈看见了,就当做好玩的吧。 ⾸先来介绍⼀下Graph cut ,图(graph)的分割模型图下图所⽰ (⼤家肯定都见过了),以能量公式为基准,采⽤max flow算法,⼀次全局 求解最⼩能量割边,能量公式为 E(L)=aR(L)+B(L) S与各个像素点之间的虚线就是R(L),各像素点之间的实线是B(L),系数a是⼀个权重系数,决定了哪个因素影响更⼤⼀些。 区域项R(L)的计算⽅法如下所⽰,表⽰像素点lp归属于前景obj的概率Pr,或者归属于背景‘bkg’的概率Pr,同时为了采⽤最⼤ 流⽅法计算割边 (cuts),所以负对数,这样得到的若该像素点归属于前景的概率越⼤,则R (1) 能量越⼩,符合最⼤流max p low算法理论 (啥是最⼤流?),Graph cut 算法是根据该像素点 (lp)灰度值,在前景和背景[这个前景和背景需要事先进 ⾏标记的,你需要提前告诉Graph,哪个是背景?哪个是前景]中的灰度值直⽅图所 占的⽐例来计算前景和背景概率的,但是 Grab cut是根据搞死混合模型来计算的 (等会细讲) R (1) = -ln Pr(I |’obj’) ; R (0) = -ln Pr(I |’bkg’) p p p p 边界项B(L)的计算⽅法 : 这个是Graph cut的计算⽅法,⽐较简单,B 就是计算某个像素点lp与相邻像素点lq之间的 (灰度值)得差异,lp-lq的值越 ⼤,两个像素之间的边越是应该是割边 (cuts),Bp,q的值越⼩,整体能量越⼩,符合最⼤流算法,在Grab cut 中,不是 以灰度为基准,⽽是以BGR三通道衡量两像素的相似性,采⽤欧式距离 (⼆范数)计算两个像素之间的差异。 最⼤流算法 (max low) ⽤于处理如何去切这个权值图 (graph),切过之后累加得到能量E(L)值最⼩,切边 (割边)就是上 图中的⿊线 (各像素点之间的边)。 以上就是Graph cut的计算流程,Grab cut同样采⽤图框架理论,以及最⼤流算法求解割边,但是不同的是Grab cut 采⽤了 BGR三通道 (graph 是灰度图),在计算区域项R(L)时,采⽤了⾼斯混合模型。 /// grabcut的主要思路 : (也只主要参考了上门⾯那位⼤⽜的代码解释) ⾼斯混合模型,就是多个单⾼斯模型,如何评价⼀个像素集合呢?⼜如何判断某⼀个像素点属于该像素集合的概率呢?这时 可以构建⾼斯模型来反映该像素集合的特征,在grabcut 中,对应于前景和背景分别有5个⾼斯模型,例如若前景只有⼀个⾼ 斯模型,某个前景像素点lp在计算归属于前景的概率时,只有⼀种样本库模型,计算的归属概率有可能会很低,最后在最⼤ 流分割时,会被误判到背景⾥,所以有多个模型计算式,选取概率最⼤的⼀个,⾼斯模型越多,前景像素集的种类越多,越 能够包容范围的像素点,过多的话计算量也会很⼤。 区域项R(L)的计算⽅法: 混合⾼斯概率计算公式如下 : 这⾥⾯的x 是BGR三通道向量,如下所⽰ : B G R 第1个像素点p1 200 100 50 第2个像素点p2 220 110 60 第3个像素点p3 100 150 80 πi表⽰,第i个⾼斯模型的样本数量Ni在总的样本数量N⾥⾯的⽐值, gi的是第i个⾼斯模型的概率模型公式,其中有两个参数,均值 (ub,ug,ur)和协⽅差矩阵 (协⽅差矩阵计算参照), 这样⼀共有三个参数需要初始化 (πi,均值u,协⽅差)

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档