基于概率神经网络改进的GrabCut算法 下载: 1099次
1 引言
图像分割根据图像的灰度、颜色、纹理、形状、语义等特征将图像划分为不同区域,使相同区域内的特征表现出相似性,不同区域间的特征表现出差异性[1]。图像分割是计算机视觉、图像处理等领域的基础性研究问题,也是目前的研究热点[2-3],精确的分割效果有利于提升图像分类、场景解析、目标检测、变化检测、三维(3D)重构等更高级别图像分类任务的精度。
常用的图像分割算法有基于阈值、聚类、能量和深度神经网络[4-6]的算法。其中,基于能量的图像分割算法是将图像分割问题转化为函数最小化问题,利用数学寻优方法求解函数的最小值,从而实现图像分割。GrabCut算法[7]是由Graph cuts[8-9]算法发展而来的一种基于能量的图像分割算法。Graph cuts算法根据图像灰度特征进行分割,忽略了彩色通道的大量信息;同时引入高斯混合模型(GMM),实现了基于彩色通道信息的图像分割,可提高图像的分割精度。但GrabCut算法耗时长,且图像的前景和背景相似时,边界处的分割误差较大。针对上述问题,人们对GrabCut算法进行了改进。在提高分割效率方面,徐秋平等[10]通过多尺度分析对图像进行分解,利用产生的多尺度图像替换迭代过程中固定尺寸的图像,降低了建立GMM的计算量;周良芬等[11]利用分水岭算法减少图像结点的数量;胡志立等[12-13]通过简单线性迭代聚类(SLIC)算法构建了精简图模型;陈鑫等[14]利用SLIC0(SLIC zero)算法将图像划分为内部颜色特征一致的超像素图像,然后用超像素图像构造图模型。上述方法均通过减少图像顶点数量的方式减少计算量,构建特征金字塔或超像素图对GrabCut算法进行改进,虽然提高了算法的效率,但图像分辨率的降低会影响算法的分割精度。在提高GrabCut算法的分割精度方面,刘辉等[15]利用融入深度信息的RGB-D(Red,Green,Blue-depth)图像进行分割,但深度信息的增加降低了算法的分割效率;孔显等[16]在构图时引入一类新结点Bin,但增加新节点同样会增加算法的计算量。
为了兼顾图像的分割精度和效率,本文对GrabCut算法进行改进,提出基于概率神经网络(PNN)的GrabCut(PNN_GrabCut)算法。用PNN[17]模型替换GMM进行t-links权值估计,以提升算法的效率。根据构建的前景/背景直方图,选取出现频率较高的像素值对应的像素,作为PNN模型的训练样本,以提升算法的分割精度。
2 GrabCut算法
GrabCut算法将图像分割问题转换为求解无向带权图像G
式中,V(·)为边界平滑项,表示切割边n-links所需的能量值,U(·)为数据项,表示切割边t-links所需的能量值,k={k1,k2,…,ki,…kn},ki为GMM中某一高斯分量模型,θ={wi,μi,Ci;i=1,2,…,K}为GMM中高斯分量i的均值向量μi、协方差矩阵Ci及权重wi构成的集合,z={z1,z2,…,zi,…,zn},zi为像素点di的像素值。
边界平滑项V(·)反映了图像中相邻像素间的相似度,可表示为
式中,γ为自适应参数,β为常数项, ‖ ‖为像素点的欧氏距离。
数据项U(·)对应图像中像素被确定为前景/背景的惩罚值,可表示为
式中,p(·)为高斯概率分布,w(·)为GMM中各个高斯分量模型的权重。
3 PNN_GrabCut算法
GMM通过迭代更新确定参数值、耗时较长,约占整个分割算法的90%[20],对GrabCut算法的整体效率影响较大。且GrabCut算法是一种交互式的图像分割方法,需要预先输入包含待分割目标的矩形框,分割时用目标框内的背景部分表示图像背景进行分割。因此,在目标框内的背景与目标相似或目标框内的背景与框外背景相差较大时,算法的分割精度较低。针对该问题,PNN_GrabCut算法在GrabCut算法的基础上用效率较高的PNN模型替换GMM求解t-links权值;同时构建前景/背景直方图,以选取PNN模型的训练样本,最后针对PNN模型更新能量函数E(·)。
3.1 PNN模型
PNN模型是一种前馈神经网络模型,通过核密度估计法(Parzen窗)得到条件概率密度值,再利用贝叶斯决策对样本进行分类,由给定的训练样本构成隐中心矢量进行无参数训练,且收敛速度快、预测精度高。因此,用PNN模型替换GrabCut算法中耗时较长的GMM计算t-links边权值。PNN的结构简单,主要分为输入层、隐藏层、求和层、输出层,网络结构如
1) 输入层:输入训练与测试数据,其中节点个数为样本的特征维数,本算法用图像像素不同通道的像素值R(红色)、G(绿色)、B(蓝色)作为样本特征。
2) 隐藏层:隐藏层即径向基层,用于计算测试样本与隐中心矢量的距离,输入测试样本x与第i类的第j个中心矢量xij确定的输入输出关系可表示为
式中,σ为平滑因子,d为样本的特征维数,i的取值为0或1,0表示背景,1表示前景。
3) 求和层:将隐藏层中同属于前景/背景的输出值加权平均后输出,可表示为
式中,Ni为前景/背景隐中心矢量的个数,Si为测试样本与前景/背景的关系。
4) 输出层:输出像素属于前景/背景的概率值argmax(Si)。
3.2 构建直方图
PNN将给定的训练样本作为隐中心矢量,训练样本的选取对PNN预测准确性的影响较大,实验通过构建前景和背景直方图选取训练样本。算法首先将用户输入的目标框内部像素作为前景,外部像素作为背景,如
图 3. 前景与背景的灰度直方图。(a) 原始图像;(b) 前景的灰度直方图;(c)背景的灰度直方图
Fig. 3. Grayscale histograms of foreground and background. (a) Original image; (b) grayscale histogram of the foreground; (c) grayscale histogram of the background
表 1. 前景中占比较高的像素值
Table 1. Statistics of the high pixel value in foreground
|
表 2. 背景中占比较高像素值
Table 2. Statistics of the high pixel value in background
|
3.3 更新能量函数
PNN_GrabCut算法用PNN模型求解t-links权值,因此需要更新Gibbs能量函数E(·)。将(1)式中的U(·)替换为S(·),得到新的E(·)为
式中,S(·)为切割t-links的能量值,可表示为
式中,Nn为第n类隐中心矢量的个数。
3.4 PNN_GrabCut算法
PNN_GrabCut算法的流程如
3.5 时间效率分析
PNN_GrabCut与GrabCut算法计算t-links边权值时应用的模型不同,导致算法效率差异较大。GMM算法计算t-links边权值的步骤:1)利用K-means算法将图像中的像素分到不同的GMM分量中;2)计算GMM模型的参数θ;3)利用GMM计算t-links的权值;4)利用最大流最小割算法Edmond-Karp分割图G;5)若相邻两次分割结果的像素类别变化数目小于1%,迭代结束,否则,转至步骤2);6)输出t-links的权值。PNN模型计算t-links边权值的步骤:1)构建前景/背景直方图,选取训练样本;2)利用PNN计算t-links的权值;3)输出t-links的权值。
设图G的顶点数为n,边数为m,GMM的迭代次数为l,则步骤1)、步骤6)的时间复杂度均为O(n),步骤2)~步骤5)循环的时间复杂度为O(lnm2),GMM计算t-links边权值的时间复杂度为O(lnm2)。PNN计算t-links边权值的时间复杂度为O(n),时间效率高于GMM。
4 实验及结果分析
实验环境:显卡为NVIDIA GeForce GTX2070,操作系统为Linux Ubuntu16.04,编程环境为Anaconda 3,编程语言为Python。
公开的图像分割数据集ADE20K中包括训练集、验证集和图像标签,其中,训练集包含20210张图像、验证集包含2000张图像,共涉及150个目标类别。实验选择包含person或plane目标的图像作为实验数据,在训练集与验证集中的数目如
式中,Xprecision为准确率,Xrecall为召回率,可表示为
式中,XFP为背景中像素被分割到前景的数目,XFN为前景中像素被分割到背景的数目,XTP为前景中像素被分割到前景的数目。
4.1 确定PNN的参数
密度估计是计算向量x落入区域R的概率p(x),可表示为
式中,V为区域R的体积,n为样本总数,k为落入区域R的样本数。
PNN通过Parzen窗进行密度估计时,区域R是以隐中心矢量为中心的超立方体。设h为超立方体的宽度,则超立方体的体积V=h3。h的大小与PNN模型中σ的大小相对应,因此,σ的选取直接影响了密度估计的结果。若σ取值过大,隐中心矢量之间可能存在重叠区域,导致估计结果的分辨率较低;若σ取值过小,隐中心矢量之间可能存在间隙,导致估计结果的稳定性差。实验中用训练集作为实验样本,通过多组实验确定σ的取值。实验样例如
式中,XBT为背景像素被正确预测的数目,XFT为前景像素被正确预测的数目,N为图像中的像素总数。
图 5. 实验样例。(a)原始图像;(b)标签图像
Fig. 5. Experimental example. (a) Original image; (b) label image
表 4. 不同σ时PNN的预测结果(实验1)
Table 4. PNN prediction results at different σ(experiment1)
|
从
表 5. 不同σ时PNN的预测结果(实验2)
Table 5. PNN prediction results at different σ (experiment2)
|
4.2 PNN_GrabCut算法的有效性
为了验证PNN_GrabCut算法的有效性,选取实验数据中验证集的图像进行分割实验,同时与GrabCut算法、文献[
12]、文献[
16]中算法的分割结果进行对比,结果如
图 6. 不同算法的分割结果。 (a) 原始图像;(b) GrabCut算法;(c) PNN_GrabCut算法;(d) 文献[ 12]的算法;(d) 文献[ 16]的算法
Fig. 6. Segmentation results of different algorithms. (a) Original image; (b) GrabCut algorithm; (c) PNN_GrabCut algorithm; (d) algorithm of Ref. [12]; (d) algorithm of Ref. [16]
表 6. 不同算法的平均F1和运行时间
Table 6. Average F1 and running time of different algorithms
|
在5张背景与前景相似度较高、分割难度较大的图像上进行实验,分割结果如7所示可以看出,对于女人的头发和脚、椰树叶边界、水尺倒影及男人的胳膊和腿部分,GrabCut算法的分割结果均存在欠分割现象,而PNN_GrabCut算法的分割结果中无欠分割现象;对于水泥盆,GrabCut算法将水泥盆的白色边缘部分分割为背景,出现过分割现象,而PNN_GrabCut算法对水泥盆的分割结果比较完整,这也验证了PNN_GrabCut算法在提升分割精度方面的有效性。
图 7. 不同算法的分割结果。(a) 原始图像;(b) GrabCut算法; (c)PNN_GrabCut算法
Fig. 7. Segmentation results of different algorithms. (a) Original image; (b) GrabCut algorithm; (c) PNN_GrabCut algorithm
5 结论
分析了影响GrabCut算法分割效率和分割精度的因素,并提出了PNN_GrabCut算法。将GrabCut算法中耗时较多的GMM替换为PNN模型,以提高算法的分割效率;通过构建前景/背景直方图选取PNN训练样本,以提高算法的分割精度。在公开的ADE20K数据集上的实验结果表明,相比GrabCut算法,PNN_GrabCut算法的时间效率提升了19.57%,分割结果的F1提高了5.93%。在前景和背景相似度高、难于精确分割的图像上进行实验,结果表明,PNN_GrabCut算法的分割效果明显优于GrabCut算法,验证了本算法在图像分割任务上的优良性能。
[1] 刘松涛, 殷福亮. 基于图割的图像分割方法及其新进展[J]. 自动化学报, 2012, 38(6): 911-922.
[2] 朱占龙, 董建彬, 李明亮, 等. 基于自适应加权图像块的广义模糊C均值算法[J]. 激光与光电子学进展, 2020, 57(24): 241006.
[3] 刘毅, 陈圣磊, 冯国富, 等. 基于图割的低景深图像自动分割[J]. 自动化学报, 2015, 41(8): 1471-1481.
[4] 谭光鸿, 侯进, 韩雁鹏, 等. 基于卷积神经网络的低参数量实时图像分割算法[J]. 激光与光电子学进展, 2019, 56(9): 091003.
[5] 郑婷月, 唐晨, 雷振坤. 基于全卷积神经网络的多尺度视网膜血管分割[J]. 光学学报, 2019, 39(2): 0211002.
[6] 张芳, 吴玥, 肖志涛, 等. 基于U-Net卷积神经网络的纳米颗粒分割[J]. 激光与光电子学进展, 2019, 56(6): 061005.
[7] Rother C, Kolmogorov V, Blake A. GrabCut: interactive foreground extraction using iterated graph cuts[J]. ACM Transactions on Graphics, 2004, 23(3): 309-314.
[8] BoykovY, Jolly MP. Interactive organ segmentation using graph cuts[M] //Delp S L, DiGoia A M, Jaramaz B, et al. Medical Image Computing and Computer-Assisted Intervention-MICCAI 2000. Lecture Notes in Computer Science. Berlin, Heidelberg: Springer, 2000, 1935: 276- 286.
[9] Boykov YY, Jolly MP. Interactive graph cuts for optimal boundary & region segmentation of objects in N-D images[C]//Proceedings Eighth IEEE International Conference on Computer Vision. ICCV 2001, July 7-14, 2001, Vancouver, BC, Canada. New York: IEEE, 2001: 105- 112.
[10] 徐秋平, 郭敏, 王亚荣. 基于多尺度分析与图割的快速图像分割算法[J]. 计算机应用研究, 2009, 26(10): 3989-3991.
Xu Q P, Guo M, Wang Y R. Fast image segmentation algorithm based on multiscale analysis and graph cuts[J]. Application Research of Computers, 2009, 26(10): 3989-3991.
[11] 周良芬, 何建农. 基于GrabCut改进的图像分割算法[J]. 计算机应用, 2013, 33(1): 49-52.
Zhou L F, He J N. Improved image segmentation algorithm based on GrabCut[J]. Journal of Computer Applications, 2013, 33(1): 49-52.
[12] 胡志立, 郭敏. 基于SLIC的改进GrabCut彩色图像快速分割[J]. 计算机工程与应用, 2016, 52(2): 186-190, 270.
Hu Z L, Guo M. Fast segmentation in color image based on SLIC and GrabCut[J]. Computer Engineering and Applications, 2016, 52(2): 186-190, 270.
[13] Ren D Y, Jia Z H, Yang J, et al. A practical GrabCut color image segmentation based on Bayes classification and simple linear iterative clustering[J]. IEEE Access, 2017, 5: 18480-18487.
[14] 陈鑫, 何中市, 李英豪. 一种新的基于SLICO改进的GrabCut彩色图像分割算法[J]. 计算机应用研究, 2015, 32(10): 3191-3195.
Chen X, He Z S, Li Y H. Improved color image segmentation of GrabCut algorithm based on SLICO[J]. Application Research of Computers, 2015, 32(10): 3191-3195.
[15] 刘辉, 石小龙, 漆坤元, 等. 融合深度信息的Grabcut自动图像分割[J]. 小型微型计算机系统, 2018, 39(10): 2309-2313.
Liu H, Shi X L, Qi K Y, et al. Automatic image segmentation combined Grabcut and depth information[J]. Journal of Chinese Computer Systems, 2018, 39(10): 2309-2313.
[16] 孔显, 马晓珂. 基于非归一化直方图的GrabCut图像分割算法改进[J]. 计算机应用研究, 2020, 37(5): 1549-1552.
Kong X, Ma X K. Improvement of GrabCut image segmentation algorithm based on non-normalized histogram[J]. Application Research of Computers, 2020, 37(5): 1549-1552.
[17] Specht D F. Probabilistic neural networks[J]. Neural Networks, 1990, 3(1): 109-118.
[18] Taha A A, Hanbury A. Metrics for evaluating 3D medical image segmentation: analysis, selection, and tool[J]. BMC Med Imaging, 2015, 15: 29.
[19] TangM, GorelickL, Veksler O, et al. GrabCut in one cut[C]//2013 IEEE International Conference on Computer Vision, December 1-8, 2013, Sydney, NSW, Australia. New York: IEEE, 2013: 1769- 1776.
[20] 韦玉科, 范鹏, 曾贵. 改进的GrabCut方法在舌诊系统中的应用[J]. 传感器与微系统, 2014, 33(10): 157-160.
Wei Y K, Fan P, Zeng G. Application of improved GrabCut method in tongue diagnosis system[J]. Transducer and Microsystem Technologies, 2014, 33(10): 157-160.
Article Outline
张翠军, 赵娜. 基于概率神经网络改进的GrabCut算法[J]. 激光与光电子学进展, 2021, 58(2): 0210024. Cuijun Zhang, Na Zhao. Improved GrabCut Algorithm Based on Probabilistic Neural Network[J]. Laser & Optoelectronics Progress, 2021, 58(2): 0210024.