巨志勇,翟春宇,张文馨
(上海理工大学 光电信息与计算机工程学院,上海 200093)
图像分割是图像处理和计算机视觉不可或缺的一部分,也是近年来的研究热点之一,广泛应用于计算机视觉、计算机图形学、机器人等领域,已取得了一定的成果。精确分割出目标物有着十分重要的意义,但目前很多分割方法仍存在着明显的缺陷。文献[1]采用的一维熵阈值分割方法在求解分割阈值时易受噪声的干扰。二维熵阈值分割方法虽提高了分割的精度,但运算量过大导致运算时间过长。文献[2]提出用K-means均值聚类算法对图像进行分割,较好地改善了欠拟合的问题,但是较容易陷入到局部最优解,最终仍会出现过分割的现象。
考虑以上缺点 ,本文利用支持向量机(Support Vector Machine,SVM)整体复杂性较低的特点来提升分割效率。同时,SVM可以将图像分割问题转换成图像像素的分类,提高分割精度[3-5]。
在支持向量机分割算法方面,文献[6]采用分区域特征匹配方法,进行二维图像的分块融合性检测和特征块匹配,根据超声纹理的规则性特征分量进行病理边缘特征提取,并利用提取的精度作为约束条件,优化SVM进行分割。文献[7]采用显著性检测得到大致的显著区域和背景区域,并分别提取颜色等特征利用SVM进行训练,有效解决了因为显著图不均匀导致分割结果缺乏准确边缘的问题。
针对于区域生长算法噪声及灰度不均可能会导致过分割的问题,基于文献[6~7],本文提出了一种基于SVM的区域生长分割算法。该方法改进了区域生长算法的人工参与的缺陷,解决了可能会导致的空洞和过分割问题,提升了分割精度,提高了分割效率。
为了使实验更加接近真实环境,获得更好的仿真效果,本实验所采用的图片大多数由研究者们自行拍摄,主要来源于生活中各种带有标签的商品。但是考虑到实验所需要的数据集比较大,所以有部分商品图片来源于网络的公用数据集,主要包括带有标签的水果蔬菜、衣服鞋帽、零食等,共计500张图片。部分图像如图1所示。
图1 图像数据集
为了方便后续处理,实验人员将图片的像素大小归一化处理为640×480。本实验首先对图片进行预处理操作,包括对图像的空间进行变换以及图像增强等。增强后的图像无论在后期的特征提取,还是在进行识别分类方面都有着较为明显的效果[8]。
1.2.1 图像增强
图像增强[9]的目的是将原来不清晰的图像变得清晰或强调某些感兴趣的特征,抑制不感兴趣的特征,改善图像质量,丰富图像信息量,提升图像细节和识别效果。图像增强算法包括对比度拉伸、gamma校正、直方图均衡化、直方图规定化和同态滤波器。处理的图像如图2所示。
图2 增强效果
在某些情况下,实验人员采集的数据特征不一定十分明显,因此需要先处理成特定的直方图,以便增强图像中的灰度级。本实验采用直方图规定化对图像进行增强。
1.2.2 彩色空间的转换
在彩色图像的处理过程中,不同颜色模型会影响后续的效果。最常见的颜色模型[10]有RGB、Lab、HSI、HSV等。在RGB颜色空间中,R、G、B分别表示三基色,世界上所有颜色均由这3种分量组合而成,但RGB颜色空间的亮度信息与色度信息没有分离,关联太大且每个通道都编入了亮度信息,边缘像素信息不能得到较好的保存。因此本文将图像从RGB色彩空间转变至HSI空间进行图像增强。HSI色彩空间的色调、饱和度和亮度3个分量呈现图像色彩,避开了RGB的缺陷,分离了图像亮度与颜色分量,因此对亮度分量的增强操作不影响颜色信息,能有效避免图像颜色失真,且对图像的增强处理仅需在一个维度上进行,提升了图像处理速度。RGB向HSI颜色空间的转换式如下
(1)
(2)
(3)
(4)
本文算法首先通过区域生长算法将包含标签的商品从无关背景当中分割出来,从而得到带有标签的前景区域与无关背景区域,再利用区域生长算法从前景区域提取商品,剩余区域即为目标区域。根据目标标签区域和商品区域对应的坐标到RGB图像中找到相应位置,并将各自特征向量作为SVM的正负训练样本。最终使用SVM对整幅图像精确分割出目标区域。算法流程图如图3所示。
图3 算法流程图
区域生长算法[11]是一种影像分割技术,其根据一定判断条件,将具有相似准则的像素合并起来连成区域。噪声和灰度不均可能会导致空洞和过分割,因此该方法对图像中阴影效果处理较差。区域生长主要分两个步骤,首先是种子点的选取;其次是根据像素点和种子之间的性质进行对比、合并向外生长,即可获取目标标签。
SVM处理分类问题的主要思想是寻找一个最优分类超平面作为决策曲面,使两类之间的分类间距达到最大,从而将最优分类超平面转换为求解二次规划寻优的对偶问题。该算法的复杂度取决于支持向量的个数,所以该算法可有效地解决高维的问题。本实验中的输入向量是正负样本,设为xi,yi(i=1,2,3…)(xi∈Rd),对应的分类标记yi∈{-1,+1},SVM在高维特征向量中求解最优分类超平面的问题是
(5)
式中,c为惩罚系数。c越大代表错误越大,会导致w增加,即泛化能力下降。通过调节c的大小可以调整训练误差。采用不同的核函数可以构造不同的SVM分类算法[12]。常用的核函数包括线性核函数、多项式核函数、径向基核函数(RBF核函数)和Sigmoid核函数。本实验采用的是多项式核函数,计算式为
(6)
式中,d代表多项式核函数的最高次项,本实验中选用的是3;g代表核函数中的gamma参数,决定SVM的复杂程度,本实验中为0.5。
2.3.1 区域生长算法的改进
传统的区域生长算法是一种半人工算法,需要实验者手动指定种子点位置来进行分割。为了弥补这一不足,本实验采用区域生长进行分割。但在分割时可能会受到阴影的影响,错误地将阴影部分和商品部分一起分割出来,不能完整准确寻找到商品区域,所以本文采用第二次区域生长分割出商品本身以及部分阴影,进一步得到标签区域。在第一次区域生长分割时,将种子点自动选取在(0,0)点,使周围像素根据种子点的特征来进行生长,可以确定无关背景区域,从而确定前景区域。在第二次区域生长时,先对商品进行分割来获得商品本身和标签上的部分阴影,使得剩余部分一定是标签的一部分,以便后续处理。本实验采用了多点生长的方法对区域生长进行改进,即在前景区域随机选取十个像素点作为种子点分别进行生长并形成各自像素点集合。由于商品本身所占前景的比例远大于目标标签,所以商品上的像素点在集合中出现次数一定会在一个阈值之上。本实验中选取阈值d为5进行判断,即如果在10个集合中像素点出现次数大于5次,则认为该部分为商品本身区域,其余部分即为目标标签区域。
2.3.2 SVM的改进
自然图像中的颜色通常只覆盖整个彩色空间的小部分。在大多数图像中,目标区域或商品区域中一般不超过3个主色。通过分析彩色图像的特点,在目标标签区域和商品本身区域分别选取3个主色,并将其对应像素点的颜色、纹理等特征构成特征向量,作为正负样本的输入向量,利用SVM分类器训练。
(1)主色的选取。在使用区域生长算法进行分割时,可能会受到光线的影响,产生的阴影会对图像特征提取造成影响。因此,本实验需要先对商品区域和目标标签区域进行主色的提取,步骤如下:
步骤1分别对处理后得到的HSI图像中的商品区域和目标标签区域提取颜色直方图,获得两个区域中的3个主要颜色信息;
步骤2对比两个区域的颜色,若标签区域和商品区域都有着相同的像素级,则该颜色不是主色,否则是主色;
步骤3将判定为标签主色和商品主色的像素点位置分别进行记录,记为S1和S2。
(2)颜色特征的提取。在同精度下,Lab(亮度、红色到绿色的范围、黄色到蓝色的范围)颜色空间的位图比RGB或CMYK位图需要获得更多的像素数据。Lab空间所定义的色彩最多,与光线及设备无关。此外,lab处理速度与RGB颜色空间速度相近,比CMYK模式快很多,因此本文采用Lab颜色空间进行颜色特征提取。转换式如下:
①RGB转XYZ
(7)
(8)
(9)
(10)
②XYZ转Lab
(11)
(12)
其中,R、G、B分别为某点像素通道的值,取值范围均为[0,255]。
综上,本实验所提取的颜色特征如式(13)所示。
Fxy=(a,b)
(13)
(3)纹理特征的提取。纹理是一种反映图像中同质现象的视觉特征[13],它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性。本文通过以下步骤获取纹理特征:
步骤2利用式(14)求取每个像素的4个方向梯度中绝对值的最大值,作为该像素的纹理特征
(14)
考虑到相邻像素点具有相似的像素和特征,因此本文选自二维坐标x、y作为空间向量特征。
综上所述,图像像素级特征向量表示为式(15)。
Zxy=(x,y,Fxy,Exy)
(15)
2.3.3 SVM和区域生长法相结合的分割方法
综合SVM算法与区域生长分割方法,本文提出了基于SVM和区域生长的图像分割方法,步骤如下:
步骤1将预处理得到的图像通过区域生长算法[14]进行第一次分割,标记为背景区域,其他区域为带有目标标签的商品区域;
步骤2分割商品标签。再一次使用改进后的区域生长算法对具有相似纹理的商品本身进行提取,标记为商品区域。采用深度膨胀运算获得一个超过商品区域实际大小的物体,以确定其他区域全部都在目标标签区域中。然后,用反向阈值将其余区域标记为目标标签区域[15];
步骤3确定目标标签区域和商品区域的坐标,找到原图像的对应位置;
步骤4对商品区域和目标标签区域进行特征提取,得到Zxy,具体方法详见章节2.3.2;
步骤5将得到的最终训练特征Zxy作为正负样本分别放入SVM进行训练,保存该模型;
步骤6当处理新图片时,利用该模型按照特征直接提取标签部分的坐标;
步骤7将分割后的图像与原图像做交集运算,即可将标签主体的彩色图像从背景当中分割出来。
各个步骤具体的效果图如图4所示。
图4 分割处理过程
用SVM算法优化区域生长算法的图像分割方法,按照算法处理步骤,在Windows10操作系统平台上,本文通过可视化开发平台MATLAB R2018b编程加以实现。计算机的基本配置为CPU Intel(R)Core(TM)i5-5200U,2.20 GHz,运行内存为12 GB。
为了验证本文所提到的分割方法的实用性和有效性,本实验对带有标签的商品分别用传统形态学区域生长分割算法和本文改进的算法作对比,进行效果验证。
实验结果如图5所示,第1行表示原始图像;第2行表示用传统的区域生长算法分割出的图像;第3行是利用本文算法分割出目标标签的位置图;第4行代表本文算法分割的彩色标签图片。根据分割效果图可知,传统的区域生长算法由于人工参与确定种子点位置,因此可以较好地确定标签位置,但却不能有效处理阴影部分,当商品上有比较复杂纹理的图片也会出现过分割的问题。而本实验提出的算法中有效改进了传统算法中需要人工的参与分割的问题,且分割更加准确,分割后的效果图中保留了更多的目标标签信息,有利于下一步识别工作。
图5 实验对比图
为了进一步验证本文所提到的分割方法的准确率和效率,采用分割准确率和运行时间作为指标对本文算法进行评定。
分割准确率cor是分割结果相对于标准图的欠拟合和过拟合的准确率
N=z(x)
(16)
(17)
式中,T1表示的是准确的标签分割图像的像素点集合;T2表示的是本文算法分割出来的标签图像的像素点集合;N代表像素点集合的个数。
表1表示的是分别采用传统区域生长算法和本文算法对标签分割的准确率与时间的对比。本实验对500张图片分割处理,准确率为平均准确率,时间是分割的总运行时间。
表1 准确率与时间对比
由表1可知,处理较大规模的图像时,传统区域生长算法无论是在准确率和运行时间上都不显优势,而本文提出的彩色标签图像分割算法可以有效地分割彩色图像,较好地去掉周围的边缘噪声[16],保留更多的细节。无论在分割的效率、精度,还是对彩色图片的细节处理,本文算法都体现出明显的优势。
本文提出的区域生长与SVM相结合的优化算法,在传统算法的基础上增加了更正错误检测机制。在检测时,可根据已经训练好的模型更加快速和准确地确定目标标签的位置,进行精确分割,提高分割效率,有效改善了传统算法中可能存在的过分割的问题。实验结果表明,和传统的区域生长算法相比,采用本文算法不仅能够更加有效地获得更为精确的分割效果,还能保留标签本身的一些细节,提高了分割效率,为下一步分类识别奠定了基础。