1. 引言
图像分割是计算机视觉领域的基础,所谓图像分割就是把图像分成若干个特定的、具有独特性质的区域并分割出感兴趣目标区域的技术和过程。目前有很多图像分割算法,常用的图像分割方法有基于图论的分割方法、基于区域的分割方法、基于阈值的分割方法、基于边缘的分割方法等。
其中图割是一种利用图像中纹理信息和边界反差信息的图像分割算法,2001年,Boykov等 [1] 提出了GraphCut算法,该算法以灰度图像为主,用户交互标注出图像中的目标和背景区域,针对目标及背景区域建立灰度直方图模型,该算法最后通过一次最小估计完成能量最小化达到目标分割。2004年,Rother等 [2] 提出了GrabCut算法,该算法是以GraphCut为基础通过用户交互,对目标及背景区域建立高斯混合模型,即预先用矩形框标记处背景区域。对高斯混合参数进行更新学习,用估计过程中可进化的迭代算法取代GraphCut算法中的一次最小估计来完成能量最小化从而达到目标分割。从GraphCut到GrabCut算法,图割算法受到越来越多的重视,在军事、遥感、气象等场景应用中需求不断增大。目前GrabCut算法的应用非常广泛,许多学者对其进行了改进。Chen等 [3] 通过优化混合高斯模型,提高了GrabCut算法的性能。Wooi-Nee Tan等 [4] 提出了一种基于blob分析的GrabCut分割算法,该算法应用于将已开放的花朵从图像中分割出来,结果证明该算法分割效果优于原始算法。Adrià A等 [5] 就GrabCut算法做了本质上的改进,结合多种方法对前景进行初始提取,将得到的前景初始估计作为GrabCut算法的输入,避免了交互的需要。王凯等 [6] 通过结合GrabCut算法和颜色空间变换应用于超声相控阵图像中,对目标进行交互式图像分割,实验结果克服了背景噪声,保留了目标图像细节。Li Hong等 [7] 提出了一种基于图割的立体匹配算法,将立体匹配问题描述为分段域中的能量最小化问题,快速逼近最优解,该算法在视差不连续和遮挡部分的效果有所提高。Shuo Deng等 [8] 先对图像进行粗化预处理,得到不同比例的低分辨率图像,分别对其建立混合高斯模型进行分割,最终分割结果精度更高,时间消耗更低。周良芬等 [9] 就GrabCut算法对于局部噪声敏感、耗时且提取边缘不理想等缺点,采用多尺度分水岭对梯度图像平滑去噪,优化分割能量函数,抑制了目标信息的损失。C. Guo等 [10] 利用显著性信息初始化GrabCut算法的掩码,对GrabCut算法进行迭代,克服了背景噪声的干扰,保留了目标图像的细节,提高了算法精度。Hua S.等 [11] 为了加快GrabCut算法中能量函数的收敛速度,提出了一种基于感兴趣区域的GrabCut彩色图像分割方法,同时提高了分割精度。Seetharani Murugaiyan Jaisakthi等 [12] 将GrabCut算法结合K均值算法应用脑瘤图像分割。
本文将GrabCut算法应用于容器目标分割中,通过用户交互在彩色图像中用矩形框标记出存在容器的目标区域,通过GrabCut算法分割出目标容器,针对GrabCut算法分割出的目标容器边缘区域存在大量的凹陷、突刺问题,结合改进的引导滤波算法,将GrabCut算法预分割出的目标容器图像二值化,将二值化图像作为引导滤波算法的引导图像,结合原图像一起通过引导滤波器优化得到分割结果。
2. GrabCut算法
如图1是GrabCut算法示意图,其主要思想是将待分割图像构建为一个包含两个端点的无向图,源点s、汇点t,即s-t图,源点s和汇点t分别表示图像中的目标和背景。GrabCut算法是对GraphCut算法的改进,GraphCut中的目标和背景的模型是灰度直方图,需要用户指定目标和背景的一些种子点并且其能量最小化分割是一次达到的,相较于GraphCut算法,GrabCut算法取代为RGB三通道的混合高斯模型GMM(Gaussian Mixture Model),用户只需要提供背景区域的像素集并且GrabCut算法取代为一个交互的迭代过程,即不断进行分割估计和模型参数学习。GrabCut算法过程首先输入图像,用户交互标记矩形框,用来标记背景像素区域,矩形框内即为可能存在的目标对象,其次来对目标和背景进行建模,分别用一个含k个高斯分量的全协方差高斯混合模型GMM来对目标和背景进行建模,用来表示目标和背景像素的分布情况,由此引入了一个向量
,
,其中kn就表示第n个像素对应的高斯分量,该像素来自于目标或背景GMM中的某个高斯分量。GrabCut中的能量函数公式计算如下:
(1)
其中,
为目标、背景标记,E为图像总能量,U是区域项,表示某个像素属于目标背景概率的负对数,即该像素被归类为目标或背景的惩罚。结合欧几里德距离计算出边界能量项V。
(2)
(3)
(4)
(5)
上述公式中,GMM的参数
有3个,即每个高斯分量的权重
、均值向量
和协方差矩阵
(RGB三通道,即3 × 3矩阵)。上述的参数
由图像的对比度决定,通常
取50,
、
分别为图像区域的像素,
、
分别为像素
、
的属性。
GrabCut算法不断分割顶点与端点间的边、相邻顶点间的边,使每个像素仅与源点s或汇点t相连,此时图像的总能量可由公式(1)计算,示意图如图1(a)所示;当图像总能量达到最小时即实现目标分割,示意图如图1(b)所示。
下面是GrabCut算法示意图:

Figure 1. GrabCut algorithm diagram
图1. GrabCut算法示意图
图2是GrabCut算法流程图。

Figure 2. GrabCut algorithm diagram
图2. GrabCut算法示意图
GrabCut算法的实现步骤为:
Step1:输入图像,用户交互矩形框标记目标及背景区域。
Step2:分别对目标及背景区域构建高斯函数混合模型,即构建S-T图。
Step3:定义节点到源点和汇点间边的权值及节点间边的权值。
Step4:构建能量函数及求解能量函数。
Step5:重复Step4,更新GMM参数至收敛能量函数最小化,即分割目标图像。
3. 改进的引导滤波器
3.1. 引导滤波器
引导滤波是一种图像滤波技术,通过一张引导图G,结合目标输入图像P进行滤波处理,输出图像与输入图像P大致相似,但纹理不同,纹理部分与引导图G相似。引导图可以是单独的图像或输入图像P,选取的引导图不同则输出图像存在差别。当引导图G是输入图像P时,该引导滤波器的输出效果与双边滤波器的输出效果类似,此时引导滤波即保持边缘特征,不同于双边滤波的是引导滤波保持了双边滤波的优势,既有效保持边缘,非迭代计算,又克服了双边滤波的缺点,即设计一种时间复杂度为
的快速滤波器,而且在主要边缘附近没有梯度的变形。引导滤波可以很容易设计一个与滤波半径无关的优化算法。其中串口半径为平滑半径,参数
为平滑项参数,其值越大平滑的越明显。
引导滤波算法原理:
(6)
其中,i、k是像素索引,a、b是当窗口中心位于k时该线性函数的系数,I是输入像素的值,即q是进行计算后输出像素的值。如上面所述即当
时,引导图像为输入图像,引导滤波保持边缘特征。对公式(1)中两边取梯度可得:
(7)
当输入图像I有梯度时,输出图像q也有类似的梯度:
(8)
q为p去除噪声或纹理之后的图像,
表示噪声。
(9)
、
为常数项系数,
为正则化参数,避免
过大,k为中心位置,
是所有包含像素的窗口。正则化参数的变化影响滤波效果。当
为0,即上述公式中最小解a为1,b为0,此时输出图像与原图像一样,不做滤波操作;当
,在像素强度变化小的区域,a趋近于0,b趋近于
;相反在像素强度变化大的区域,a近似为1,b近似为0,此时滤波效果较弱,有利于保持边缘特征,即随着
的增大,滤波效果越明显。
(10)
(11)
是图像I在窗口
中的平均值,
是窗口
中的像素的数量。
是待滤波图像p在窗口
中的均值,
是I在窗口
中的方差。
(12)
由公式(7)建立每个像素点从I到q的映射。图3是引导滤波示意图。
3.2. 改进的引导滤波
通过实验对比,改进后的引导滤波在锐化边缘效果上更好。改进后的算法步骤如下:
利用GrabCut算法对图像进行分割,先进行用户交互矩形框标记目标、背景区域,用高斯混合模型分别对目标和背景进行建模,通过迭代方式计算得到初始分割结果;然后对分割结果进行二值化处理,二值化后的分割图像作为引导滤波的引导图像掩膜,最后通过引导滤波器结合原图像和引导图像优化GrabCut算法分割后的边缘凹陷突刺结果。
4. 结合引导滤波的GrabCut前景分割
图4是结合引导滤波和GrabCut算法的流程图:

Figure 4. Combining guided filtering and GrabCut flowchart
图4. 结合引导滤波和GrabCut流程图
Step1:用户交互标记目标及背景区域。首先输入具有目标容器的图像,通过用户交互用矩形框标记出背景、目标区域,即矩形框外的像素区域为背景区域,矩形框内的区域为目标区域和部分需要剔除的背景区域。
Step2:GrabCut算法对目标容器区域进行分割。对目标及背景像素区域分别建立高斯混合模型,迭代更新求取高斯函数中的各参数,迭代到能量函数收敛完成能量函数最小化即分割出目标容器图像。
Step3:获得掩码图像,即引导滤波的引导图。将GrabCut算法分割出的目标容器图像进行二值化处理,二值化处理后的目标容器图像作为引导滤波器中的引导图。
Step4:通过引导滤波算法优化分割结果。将二值化后的分割图像作为引导图结合原图像作为引导滤波器的输入,通过引导滤波器得到优化后的目标容器图像分割结果,优化后的目标容器图像效果更好。
5. 实验与分析
如图6(a)为具有前景瓷杯容器的图像,其RGB直方图如图5所示,需要通过用户交互对图像a中的目标容器用矩形框进行标记,如图6(b)所示,用蓝色矩形框标记出目标容器区域,即矩形框外的像素区域为背景区域,矩形框标记的区域如图6(c)所示,图像c中的像素区域存在目标容器,同时也存在需要剔除的背景区域。通过GrabCut算法过程中对目标和背景像素区域分别建立高斯混合模型,迭代更新其能量函数最小化即分割出目标容器图像,如图6(d)所示。

Figure 6. Interactive segmentation process
图6. 交互分割过程
通过GrabCut算法分割出的目标容器图像边缘存在凹陷、突刺问题,结合改进的引导滤波算法,将GrabCut算法预分割出的目标容器图像二值化,将二值化图像作为引导滤波算法的引导图像,结合原图像一起通过引导滤波器优化得到分割结果。图7为GrabCut算法结合不同的去噪算法实验结果。

Figure 7. Combined with the experimental results of different filtering algorithms
图7. 结合不同去噪算法实验结果
为了证明所提算法的有效性,将GrabCut算法分别于本文算法、双边滤波算法、中值滤波算法、高斯滤波算法和均值偏移滤波算法结合的实验效果进行比较,比较结果如表1所示。以上几种方法在Intel(R)Core(TM)i5-3210M CPU@2.5 Hz处理器、4G内存、Windows7 64位操作系统和Pycharm2017的环境中运行。

Table 1. Comparision of GrabCut with different noise reduction algorithms
表1. GrabCut结合不同的降噪算法比较
从表1中结合不同降噪算法比较结果可以看出:本文算法取得了最高的PSNR指标、均值偏移滤波算法次高。本文算法取得了最高的SSIM指标且平均时间较快,均值偏移滤波算法的SSIM指标稍小,其平均时间最慢。其他对比算法的PSNR、SSIM均小于本文算法,平均时间相近,本文算法在解决GrabCut算法目标分割后边缘凹陷、突刺问题上具有最优的特性,效果较其他方法效果更好。
6. 结语
本文所提出的方法非常简单,基于GrabCut算法进行用户交互后得到的目标容器分割结果存在的边缘凹陷、突刺问题,结合引导滤波算法进行去噪、边缘细化,对比其他几种方法,其在PSNR、SSIM指标上均具有最优的特性,对于前景目标容器与单一背景区别相对明显的图片有着高效的处理速度和良好的处理效果,能够有效解决传统GrabCut算法用户交互后分割前景目标容器造成的边缘凹陷、突刺问题。但是对于前景目标和背景像素区域区分不大的图片,还需要优化GrabCut算法,影响后续操作准确性,本文算法及其他的对比算法PSNR指标都偏低,这也是未来需要改进的地方。
基金项目
广东省重点领域研发计划项目(2019B010150002)。