王 茜,何小海,吴晓红,吴小强,滕奇志
(四川大学 电子信息学院 图像信息研究所,四川 成都 610065)
图像分割是图像处理的重要手段之一[1],是将图像分为不同的区域, 区域内具有一定的相似性,不同区域之间的特征差异较为明显。 2001 年,Boykov 等[2]提出 GraphCut 算法,用户在待分割图像背景和前景上画线,指明少量前景像素和背景像素,算法建立s-t 图,利用最小割最大流实现图像分割。 GraphCut 算法采用灰度直方图,无法分割彩色图像。针对该问题,Rother 等[3]提出 GrabCut 算法,用户用矩形框标记前景位置,通过k-means 将像素聚类为 k 类,初始化 k 个 GMM 模型,构建能量函数并利用该函数对图像进行分割。 由于 GrabCut 算法操作简单,分割精度较高而被广泛关注和应用,国内外的许多学者对该算法进行了改进。 周良芬等[4]采用二次分水岭对梯度图像做预处理,增强图像边缘点,再利用熵的特性优化能量分割函数,提高图像分割精度,但是增加了算法的复杂程度。 董茜等[5]通过SLIC 超像素算法对图像进行分割,利用分割的超像素图建立加权图,减少节点数,提高分割效率,但传统SLIC 在纹理明显处会出现不规则超像素块。 白雪冰等[6]将图像从 RGB 空间转化到 Lab 空间, 再利用 SLICO 算法对图像进行预处理, 改善GMM 模型参数,使分割不受背景凹凸纹理的干扰,可优化分割,但是仍然存在少部分过分割的问题。杨小鹏等[7]采用 Faster R-CNN[8]减少用户交互,融入图像位置信息提高GrabCut 分割效果,但对纹理复杂的图像分割效果无明显改善。 刘静等[9]针对背景复杂、细节丰富的皮影提取问题,采用相对总变差平滑的方法优化GrabCut 分割,由于算法具有交互性,主观的选取会影响分割结果。 詹琦梁等[10]利用Mask RCNN 算法对待分割图像进行初步分割,再结合SLIC 超像素分割得到的超像素块,获得初始三元图,最后利用GrabCut 算法对其进行分割,客观上提高了分割精确度,却消耗了更多的运行时间。
针对以上对特征不明显、纹理复杂图像分割效果不好且用户操作过多等问题,本文提出一种结合图像增强、目标检测和改进k-means 聚类的GrabCut 算法。
GrabCut 是对 GraphCut 的改进,是交互式分割,其定义了吉布斯能量函数,通过求解能量函数中的min-cut,对图像进行分割。 下式是能量函数表达式:
GrabCut 需要用户用矩形框标注感兴趣的区域,框外的图像定义为背景,框内的像素被定义为可能的背景和可能的前景。 通过k-means 算法将矩形框内的像素聚类为 k 类,初始化 GMM 中 k 个模型。 按式(2)计算矩形框中像素的RGB 值,判断像素属于哪个高斯分量模型:
式中,θ=(μ,δ2),其中,μ 为均值,δ2为方差。
区域数据项表示某个像素属于背景或者前景的概率的负对数,按式(3)进行计算:
确定每个像素属于前景和背景的概率之后,按式(4)计算平滑项:
式中,m,n 表示像素坐标;C 表示相邻颜色对的集合;dis(m,n)-1表示相邻像素之间的欧几里得距离,此 处取 1;β=(2〈(zm-zn)2〉)-1,〈·〉表 示图像样 本 的期望。
根据吉布斯能量项,构建 s-t 图,通过式(5)最大流/最小割对图像进行分割:
图像上某个像素的纹理特征是指该像素与其领域内点的关系,不同的物体具有不同的纹理特征,根据纹理特征能对图像进行更好的分类。 本文采用Ojala 提出来的描述图像纹理特征的 LBP 算子[11],该算子具有旋转不变性和灰度不变性等优点。
下式为LBP 的特征定义:
式 中,gc表 示中心 点 像 素 值 ;g1~g8表 示 八 领 域 像素值。
以 3×3 模板为单位,将中间像素 gc作为阈值,若八领域的像素值大于gc,标记该像素点为 1,否则标记为 0。 经过比较可产生一个 8 位二进制数,转化为十进制则得到中间像素 LBP 值,LBP 值反映该点的纹理信息。 按下式计算:
由于GrabCut 是用户交互式图像分割算法,为减少操作,本文利用YOLOv4[12]进行目标检测,输出前景。 YOLOv4 是 YOLO3 的 提升。 图 1 是前景目 标检测的组成部分。
图1 YOLOv4 网络结构
在输入端中加入Mosaic 数据增强等,进而丰富检测数据集,提高网络鲁棒性。 主干网络中则运用了各种各样的新方式,包括 CSPDarknet53、Mish 激活函数和 Dropblock。 CSPDarknet53 是 CSPNet 的借鉴,包含 5 个 CSP 模块,目的是增强 CNN 学习能力,降低计算和内存成本。 Dropblock 是为了缓解过拟合。Neck 模块采用 SPP 模 块 、FPN+PAN 结构。 SSP 能增加主干特征接收范围,融合多尺度特征。 FPN+PAN结构能够从不同主干聚合不同检测层的参数。Prediction 中采用 CIOU_Loss 作为目标检测任务的损失函数,使预测框更精准。
本文采用COCO2017 数据集,包含人、鸟、车、飞机、交通灯等90 类待识别物体,实验选用人、花、鸟、飞机、树、叶六类作为训练集。 采用 MSRA10K 作为测试集,利用 YOLOv4 检测前景目标,标注其矩形框,从而减少了用户操作。
在 GrabCut 原始算法中,k-means 算法只对图像的颜色信息进行了聚类,下式是原始像素特征:
式中,zR,zG,zB表示像素点 xi的 RGB 分量值。
该特征单一,容易导致图像在初始分类像素分类错误。 考虑到图像整体信息,在聚类时融合图像的位置信息和纹理特征信息,优化GMM 模型参数,下式是优化后的特征:
式中,W,H 表示图像的宽和高;zx,zy表示像素点 xi在图像中的位置;zLBP表示像素点 xi的 LBP 纹理特征值。
图2 是图像聚类效果对比,在第一幅对比图中,原始算法中花瓣边缘处和花瓣中心大部分被分为两个高斯分量, 改进后花朵整体基本处于一个高斯分量。在第二幅对比图中,原始算法枫叶整体分布杂乱,在改进后,像素分配的高斯分量更合理了。 从对比中可以看出, 添加像素位置信息和纹理特征信息之后,能合理分配像素高斯分量,有效减少算法迭代次数。
图2 聚类效果对比
本文算法首先使用基于奇异值分解和引导滤波的图像增强法[13]对特征不明显的图像进行改善。 然后,采用YOLOv4 模型标记前景图像矩形框位置。 将图像像素位置信息和LBP 算子提取的像素纹理特征信息融入 k-means 算法,优化 GMM 模型参数,改进GrabCut 算法。利用分割图像掩膜获得原始分割图像,并做边缘平滑处理。 本文算法框图如图3 所示。
图3 GrabCut 改进后的算法框图
本文算法首先对特征不明显的图像进行图像增强,再利用YOLOv4 输出待分割图像前景所在位置矩形框,将图像中像素的位置信息和由LBP 算子提取的像素纹理信息融入k-means 聚类中,优化GMM 模型参数,完成对图像的分割。
本文实验步骤如下:
(1)通过 Max-RGB 模型[14]得到图像初始光照分量,以 3×3 为模板,对图像进行奇异值分解,取最大奇异值作为中心点光照。 再利用初始光照分量进行引导滤波,得到增强图像Len。
(2)将图像 Len送入 YOLOv4 模型中,输出目标矩形框位置。
(3)在 k-means 聚类中融入图像 Len的像素位置信息和纹理特征信息,利用已经确定的背景像素、可能的前景和可能的背景像素初始化GMM 模型参数。
(4)利用 max-flow 算法求得 min-cut,迭代优化GMM 模型参数,分割图像 Len,得到前景图像 Lf。
(5)对图像 Lf进行阈值分割,获取前景图像掩膜Lmask。
(6)掩膜图像 Lmask与原始图像 L 结合,得到分割图像 Lse。
(7)对图像 Lse做平滑处理,改善图像质量。
3.3.1 实验结果分析
从 MSRA10K 数据集中选取 YOLOv4 训练类别的图像,用 GrabCut 原始算法、文献[15]算法和本文算法对图像进行分割, 并对本文算法进行评估。 图4是不同算法分割对比图。
图4 不同算法分割对比
第一组是将由花朵组成的爱心从背景木板分割开,图像前景背景的纹理都较为复杂,GrabCut 原始算法和文献[15]都误将模板上的缺陷划为了背景,而本文算法则较为完整地分割出前景图像。 第二组是分割棒球手和球场,GrabCut 原始算法将棒球员的手错误地划分为背景,文献[15]对手的细节部位处理不到位,相比之下,本文算法对棒球手的部位手分割更为细致。第三组是区分鹰和海面,GrabCut 原始算法、文献[15]和本文算法都获得了很好的分割效果,但是本文算法对鹰边缘的分割效果胜于对比文献。
3.3.2 在岩石分割中的应用
图5 是将本文算法应用于岩石的分割。 由于本文算法考虑了岩石纹理和背景纹理的区别,避免了分割之后空洞的产生,但是本文算法仍然需要进一步的改进,以提升分割效果。
图5 实际应用对比图
分割是图像处理中重要的一部分,精确分割感兴趣的区域有利于后续工作的开展,例如将分割运用于岩石的识别和三维重建,有利于岩石标本图谱的构建和数字化存储岩石标本。
针对GrabCut 算法对特征不明显、纹理复杂的图像分割效果不佳的问题,本文提出了基于GrabCut的改进分割算法。 首先,对待分割的图像进行预处理图像增强,增强图像对比度,避免图像在分割时出现空洞;然后,利用YOLOv4 对图像前景目标所在位置进行标记,降低用户交互复杂度;其次,对GrabCut 算法进行改进,从图像整体信息考虑,融合图像位置信息和纹理特征信息,分割图像;经处理获得前景图像的掩膜,再与原图融合,得到原始前景图像;最后对图像边缘进行平滑处理。 经实验表明,本文算法能够有效地提高图像分割的准确度和可靠性。