鉴于图割方法的明显优势,白雪冰及其团队采用Graph Cuts算法和Grab Cut算法分别对木材表面的单目标和多目标缺陷图像进行分割试验,以总结传统图割方法的不足和改进算法的优点。
针对传统Graph Cuts算法只能针对灰度图像进行分割、运行时参数的选择比较复杂,并且存在该算法效率和精度较低的缺陷,采用这两种方法分别对3种木材表面缺陷活节、虫眼和死节图像进行分割实验。为了验证Grab Cuts方法的适用性,用含有多个缺陷目标的木质板材图像做了图像分割验证。
结果表明:缺陷图像的目标和背景的种子点选取直接影响Graph Cuts算法的分割结果,Graph Cuts算法的计算效率较低,分割时间较长,对相邻像素间的区分度较差,分割结果不理想。改进后的Grab Cut算法是迭代的Graph Cuts,该方法虽然在图像分割前也需要人工画定初始化矩形框,但操作相对简单,分割结果能够得到完整的闭合缺陷区域边界,且不受木材表面缺陷的类型、数量、尺寸和缺陷形状的影响,分割效果好,分割速度快,抗噪性强,对灰度图像和彩色图像都可使用。
图割算法
1.1 Graph Cuts 算法的原理
图割(Graph Cuts)交互式图像分割算法是一种基于图论的组合最优化方法,其基础是最大流算法,将图像分割问题转化成能量函数的最小化问题,通过最小化能量函数,从而实现图像的最优分割。首先,建立能量函数:
E(L) = R(L) + λB(L) (1)
式中:R(L)是区域项,表示区域属性;B(L)是边界项,表示边界属性;λ 为平衡因子,当λ 较小时,边界项可忽略,当λ 较大时,图像的所有点被赋予相同标记。
设P={p1,p22,…,pN2 } 是像素集合,L={0,1}是像素标记集合,0表示背景,1表示目标;像素的标记可以表示为从P到L的映射, 记作fp={fp| fp ∈L}。
因此,式(1)中的区域项表示为R(f)=Rp(fp ),p ∈ P,用Rp(fp) 来进行判定像素p分配给某种标记的可能性。通常对能量函数中的区域项取概率的负对数,且将预定义的种子点作为目标和背景的采样,以此估计目标和背景的灰度直方图分布,对于目标/背景的二值分割,区域项可表示为:
式(2)代表了像素p分配给目标区域的可能性,式(3)代表像素p分配给背景区域的可能性,随着可能性的增大, Rp(•) 的值会减小,从而可通过最小化能量函数来实现对图像的准确分割。式(1)的边界项可表示为:
式中: p和q为相邻像素,边界项体现图像边界像素值的不连续性; N为4邻域或8邻域系统。通过变分模型可以将式(4)写为:
其中, T(fp ,fq ) 为指标函数,满足 :
B p,q > 为对像素p 、q不连续性的惩罚值:
式中:Ip 、Iq为像素p、q的灰度值; dist(p,q)是p和q的距离; δ为图像噪声。p和q越相近,则B p,q >越大;若p和q相差较大,则B p,q >趋近于0 。当B p,q >的值较小时,两个像素会更易于分给不同的区域,这时图像分割得到最小的能量值。
Graph Cuts算法源于图论,通过最小化能量函数实现图像分割 。首先要对(1)的能量函数公式来构造网络图,把表示带有非负边权的无向图G= (V,E)作为图像,其中V为顶点集,与其相对应图像的边集为像素点集P