本文根据超像素和背景连接先验,提出两阶段的 GrabCut 方法实现图像的显著性对象分割
步骤:
- 使用线性迭代分簇算法提取图像的超像素
- 基于超像素图像,使用背景连接先验,在相对于图像边界的颜色空间上表征每个超像素的空间布局
- 根据显著性和背景连接值,标记4类 superpixel-level seeds,使用 seeds 进行 superpixel-level GrabCut 完成第一次图像分割
- 在超像素水平的 GrabCut 的分割结果中裁剪一个矩形区域,进行像素级水平的 GrabCut 以生成最终分割结果
论文: Salient Object Segmentation Based on Superpixel and Background Connectivity Prior
The Method
使用 SLIC 28 提取超像素集
基于显著性和背景连接先验来标记4类超像素水平的 seeds 得到 labeling result
使用 labeling result 和 GrabCut 方法得到
superpixel-level result
,并且强化 labeling result 上的 probable foreground 和 probable background 作为 未知区域 得到 re-labeling result,在 re-labeling result 上截取一个(仅包含分割前景区域和不一致区域的)矩形区域
在 re-labeling result 的矩形区域上进行 dilation 和 erosion 操作,得到 new-labeling result
使用 new-labeling result 进行像素水平上的 GrabCut 来细化
superpixel-level result
,得到pixel-level result
background connectivity prior (BCP) computation
BCP 用于量化一个区域连接到图像边界的程度。本文使用 SO 15 来计算 BCP。
SO method:
使用 SLIC 提取 $N_s=400$ 个超像素,作为 patches,以 CIELAB 颜色空间上,邻居超像素 $(p,q)$ 的平均颜色欧几里得距离为权重,连接邻居超像素,构造无向带权图。
计算任意两个超像素 $(p,p_i)$ 之间的几何距离 $d_{geo}(p,p_i)$
定义超像素 $(p,p_i)$ 之间的连接性范围 $S(p,p_i)$ 为一个高斯分布
其中 $\sigma_{clr}$ 为高斯分布参数,通过实验取值为 10,$S(p,p_i) \in [0,1]$ 可以视为像素 $p_i$ 到 $p$ 的贡献范围
记 $Area(p) =\sum_i S(p,p_i)$ 为超像素 $p$ 的区域空间
当超像素 $p$ 和 $p_i$ 在一个颜色空间上的
flat region
时,$d_{geo}(p,p_i) = 0, S(p,p_i) = 1$ ,表示 $p_i$ 为 $Area(p)$ 的一个贡献单位区域。当超像素 $p$ 和 $p_i$ 在
different region
时,将有 $S(p,p_i) \to 0$ ,表示 $p_i$ 对 $Area(p)$ 几乎无贡献。记 $Len_{bnd}(p) = \sum_i S(p,p’_i)$ 为超像素 $p$ 的区域的周长,其中 $p’_i$ 为任意边界超像素。
若超像素 $p$ 属于
background region
,则其 $Len_{bnd}(p) $ 将远大于object region
的超像素的该值。定义 BCP 为 $BndCon(p)$
超像素 $p$ 属于
background region
,$p^*$ 属于object region
,则有 $BndCon(p)$ 大于 $BndCon(p^*)$将 $BndCon$ 小于 2 的值修改为 0, 再将 $BndCon(p) =0$ 的超像素作为伪前景区
将 $BndCon$ 的值规范法到 $[0,1]$,以表示每个超像素属于背景区域的可能性。
superpixel-level labeling
- 根据伪前景图,使用 Otsu 27 算法计算自适应阈值 $t_m$
- 移除伪前景图中平均显著性值小于 $t_m$ 的超像素(即认为这些超像素属于(伪)背景区域),得到粗糙前景图
- 进一步优化 Otsu 5,计算阈值 $t_h$ 用于将
粗糙前超像素
分为确定前景超像素
和可能前景超像素
- 根据经验,设置阈值 $t_b$,将BCP大于 $t_b$ 的超像素标记为
确定背景超像素
,标记其他粗糙背景超像素
为可能背景超像素
得到具有四类 labeling seeds
two-phase GrabCut
定义无向带权图:
- 超像素 GrabCut :
将超像素作为节点,连接任意两个邻居节点,构成无向图
- 局部像素 GrabCut :
通过连接任意邻居像素,构成无向图
在计算过程中限定了一个局部的矩形范围,以提高计算效率
定义边界平滑项:
其中 $\gamma$ 为相关系数,取常数 0.5 。$Cut$ 是邻居节点集合。$x$ 是表示分割结果的向量,$z$ 是图像的每个像素组成的数据集。$z_i$ 是节点 $i$ 的颜色值(超像素中取均值),$x_i$ 是节点 $i$ 对应的分割 label。$\beta$ 为衰变因子及其 $<\cdot>$ 代表一个彩色图像的期望(用作权重值,由图像对比度决定)。
这里面的参数β由图像的对比度决定,可以想象,如果图像的对比度较低,也就是说本身有差别的像素m和n,它们的差||zi-zj||还是比较低,那么我们需要乘以一个比较大的β来放大这种差别,而对于对比度高的图像,那么也许本身属于同一目标的像素m和n的差||zi-zj||还是比较高,那么我们就需要乘以一个比较小的β来缩小这种差别,使得V项能在对比度高或者低的情况下都可以正常工作
高斯混合模型 GMM:
本文使用颜色量化技术 32 构建 GMM。
GMM 用所有颜色样本初始化单个组件,并且迭代的使用协方差矩阵的特征值和特征向量去计算 划分组件(the component to split)及其分割点(split point)
GMM定义为:
其中 $\pi(\cdot)$、$\mu(\cdot)$ 和$\sum(\cdot)$ 分别为 GMM 的混合加权系数、均值、协方差矩阵。$K=5$ 表示有 5 个组件存在于前景、背景 GMM 模型中。每个超像素\像素 $p_i$ 都有其对应的分割标签 $x_i$ 和 GMM 组件索引 $k_i$
在超像素水平的 GrabCut 中,将确定前景种子
和可能前景种子
反馈到前景GMM中,将确定背景种子
和可能背景种子
反馈到背景GMM中;在像素水平的 GrabCut 中,则将确定前景种子
和非确定种子
(即可能前景种子
和可能背景种子
)反馈到前景GMM中,确定背景种子
和非确定种子
反馈到背景GMM中。
一旦 GMM 模型建立,就可以使用通过每个超像素\像素 $p_i$ 得到 $\theta$,然后得到区域项 $U$
$N$ 为颜色样本数量,$\det(\cdot)$ 为行列式。区域项 $U$ 表示每个节点属于前景或背景区域的的可能性
区域项 U,表示一个像素被归类为前景或者背景的惩罚,也就是某个像素属于目标或者背景的概率的负对数
GrabCut求解:
定义能量函数 $E$ 。
使用 EM (Expectation Maximization) 算法训练求解 GMM 模型后,再使用求解最小割(min-cut)算法求得能使能量函数最小化的分割集合 $\hat x$,完成图像的分割
$\hat{x}_i = 1$ 表示超像素\像素 $p_i$ 属于前景区域,否则为0,表示属于背景区域
超像素水平 GrabCut 的不一致性:
- 某些由
可能前景种子
标记的区域被分割为背景区域 - 某些由
可能背景种子
标记的区域被分割为前景区域
为此需要进行像素水平的 GrabCut 来进行细化结果。
像素水平 GrabCut:
- 计算一个矩形区域,其包含了所有潜在对象区域 (即超像素水平分割结果中的前景区域以及于种子标记不符的区域)
- 将该区域的每个边界向外衍生20个像素,以包含更多的背景信息
- 将潜在对象区域的边界向外进行扩张,将超像素分割结果中的前景区域进行侵蚀操作(操作程度多少?),以此来扩大不确定区域(即 origin 表示的区域)的范围,且缩小确定前景区域范围。
- 潜在对象区域以外的区域用背景种子标记,前景区域侵蚀以内的区域前景种子标记,其他区域使用未知种子标记
- 使用像素水平 GrabCut 对该矩形区域进行分割,得到最终分割结果
Experiment
数据集:MSRA1K , MSRA10K , DUT-OMRON , PASCAL-S , MSRA-B , ECSSD , HKU-IS 和 SOD
比较对象: FT , CB , MA 和 SalCut
评估标准:F-measure,MAE(平均误差),IoU(intersection over union)
本文使用 4 中显著性模型(RC , MDC , MST , DSS ,)生成显著性图用于 MA 和 SalCut 和本文方法的输入。
labeling comparison
通过于 MA 和SalCut 的对比,本文算法的 labeling method 具有一下优点 :
- 无论输入的显著性图精度如何,只要其处于 BCP 产生的伪前景区域,均可以用于分割过程
- labeling method 3 对潜在前景区域的标记具有高的recall。然而当显著性图中存在相互分离的显著性对象时,该方法不能标记出所有显著性对象(即只能标记出单个显著性对象)。而本文方法不会出现漏标记情况。
segmentation comparison
SalCut 由于其 labeling 方法只能标记一个,其分割结果只能是一个连通的区域。而其他方法能够分割出所有区域,可与 ground-truth 的相似度不如本文方法高。
通过对比 F-Measure 、MAE、IoU,本文的方法在数值上表现总的来说优于其他算法。
其中 $\beta^2$ 设置为 0.3 , $W$ ,MAE 中 $H$ 为是 ground-truth $G$ 和 分割结果 $S$ 的宽高 , IoU 中 $G$ 和 $S$ 分别是ground-truth 和 分割结果的掩图
ablation analysis
通过进行不同迭代次数(1-3)的超像素 GrabCut 和 不同迭代次数(0-2)像素 GrabCut 的组合实验,从以上三种评价指标的数值上看:
- 仅含有超像素 GrabCut 的分割结果也是比较良好的,且随着迭代次数的增加,可以略微的提高分割效果,且几乎不会增加时间成本,即验证了超像素 GrabCut 的有效性。
- 当进行像素水平的 GrabCut 时,分割结果可以有明显的改善,而其迭代次数的增加,仅导致时间成本提高,却不会改善分割效果。
从消融实验中看,本文的两阶段 GrabCut 方法,不仅达到一个较好的分割效果,且在计算效率上也比较高。
execution time
通过对比 SalCut、MA 和本文方法的执行时间,验证本文方法的计算效率。这三种方法均含有 GrabCut 计算过程。
通过使用不同分辨率 (400 x 300、800 x 600 和 1600 x 1200)图像进行实验,得到一下结论:
本文的超像素水平 GrabCut 时间大致小于 MA 和 SalCut 的 2/3 ,文本的两阶段 GrabCut 时间几乎是 SalCut 的一半,且比 MA 快。验证了本文方法的计算高效性。
failure case
显著性值较大的非前景区域(即背景与前景的比较相似的区域)被标记为确定前景区种子,且该区域足够大,以至于在 Erosion 操作阶段不能将其划入非确定区域,将导致该区域最终被分割为前景区。
Annotation
- superpixel - 请问超像素(Superpixel)的大致原理以及State-of-the-art? - 知乎 可用于图像降维和去噪
- GrabCut - 图像分割之(三)从Graph Cut到Grab Cut - zouxy09的专栏 - CSDN博客
3. Global Contrast Based Salient Region Detection ↩
5. Saliency cuts based on adaptive triple thresholding ↩
15. Saliency optimization from robust background detection ↩
27. A Threshold Selection Method from Gray-Level Histograms ↩
28. SLIC superpixels compared to state-of-the-art superpixel methods ↩
32. Color quantization of images ↩