丁一

(无锡城市职业技术学院,江苏无锡 214000)

1 前言

图像分割技术是利用算法将图像分割成若干个有独特性质的区域的过程,一般的方法分为基于阈值、边缘、区域等分割方法,也就是将图像利用数学方法分割成不同的区域,每个区域有不同的特征。图像分割是计算机视觉领域的重要研究方向在人脸识别、增强现实等领域都有着十分广泛的应用。图像分割算法大体可以分为基于图论、基于像素聚类、基于深度学习三大类。其中分水岭算法是基于地理形态方面的分析图像分割算法。通过对图像进行模仿地理结构一样的山川地貌来对图像中物体实现区分。将彩色图像转成灰度图像之后,灰度图像跟山川地貌有十分相似的共同特性。类似于地球表面的地理结构,灰度图像的每个像素值的大小类似于地表的高度。将灰度值比较大的地方看作山川的山脊,灰度图像二值化后的阈值可以看作是地球的水平面,也就是说高于水平面的可以看作是山,而低于水平面的会被大海或者湖泊淹没,为了避免各个山谷的水汇聚在一起,假如在分水岭上修建类似于三峡水利工程那样的大坝,然后用水填满这些区域填充。这样图像的像素就会形成两个集合,一个是被水淹没的山谷像素的集合,一个是分水岭上修建的大坝的像素的集合,随着水平面的上升,大坝的界线在图像上的表示就是图像中分割的区域,即可以对这些区域进行分区操作。

刘天舒等[1]针对长时间静止和背景信息复杂且有干扰的图像的纹理和颜色信息进行分析,针对存在目标丢失以及检测过程中不精准的问题,提出了将区域面积剔除的方法应用于图像分割方法中,以提高背景信息复杂并有干扰图像的检测效率,提高了准确度。李娜等[2]针对连续动作图像中空间邻域信息提取不理想导致图像分割不完善的问题,利用空间邻域信息提取人体相关特征值,将特征点自适应几何特征协方差矩阵设定为描述子,通过度量特征点描述子的信息提取连续动作中的邻域特征。通过该邻域特征利用像素的特征函数加强各个邻域间的聚类效果,同时实现了降噪和降低运算时间。赵仁和等[3]通过传统活动轮廓模型无法精确分割像素不均匀图像且对于尺度比较敏感的问题,提出了一种基于区域信息的自适应尺度的活动轮廓模型。根据图像局部熵构建自适应尺度算子,图像的局部强度聚类基础上构建能量函数,利用偏移场实现图像区域强度不均匀校正。该方法在分割精确度以及噪声鲁棒性等方面有独特的效果。陈苗苗等[4]将水平集方法应用于图像分割,避免了水平集函数初始化时数值计算的错误从而破坏稳定性的问题。针对该模型对于灰度不均匀图像的不适应性,提出了一种正则项四相水平集分割模型的方法,从而避免了水平集函数初始化方面的问题。梁淑芬[5]在基于一种局部图像增强改进分水岭的舌体分割算法一文中,针对颜色相近物体区分的问题提出局部图像增强算法,该方法首先通过色差计算不同的图像增强系数,从而实现舌唇这种颜色相近的对象物体分类图像分割的技术。以上文章通过区域面积剔除、空间邻域信息、区域信息的自适应尺度的活动轮廓模型、正则项四相水平集分割模型、局部图像增强等改进分水岭算法,改进了算法的预处理过程。可见,改进分水岭算法的关键是预处理过程的改进,或者将数学模型应用于算法本身,以便于更好地实现相似颜色物体分割或者避免过度分割,以提高精确性和鲁棒性。

2 分水岭算法简介

对于分水岭算法来说,任何一个灰度图都可以比作地理地形图,灰度值比较高的区域可以看作是山峰,灰度值比较低的地区可以看作是山谷。假设能够向每个不同的山谷灌入不同颜色的水,并且在山峰上修筑足够高的大坝,使得不同颜色的水不会混合到一起。随着水位的升高,不同山谷的水就会因为水坝的分割而不会汇合,只要不停地灌水,直到所有的山峰都被淹没为止,这样就实现了对图像的分割。

分水岭算法首先需要传入轮廓,对于图像的所有像素点的值根据分水岭算法进行判别,然后进行区域的划分,处理完所有像素点之后,区域与区域之间设置好分界线,分界值设置为-1,接下来对图像做相应的标记。具体的步骤首先是排序,根据图像的灰度值从高到低将图像像素排序,从低到高实现所谓的淹没,也就是根据算出的局部极小值(山谷)在h阶高度的影响域中采用FIFO队列的数据结构进行判断和标注。边界点即分水岭表示图像区域极大值的点,通常会对图像进行梯度运算。该算法对于噪声、表面物体细小变化以及阴影等都有可能出现过度分割的现象,经典算法对于边缘对比强烈的图像分割是有保证的,对于边缘对比不强烈的图像分割会有过度分割发生,有几种方法去处理过度分割的信息,一般是对梯度图像的阈值进行处理,从而消除因为灰度变化不太明显带来的不确定性,所以合适的阈值是图像分割结果的关键。

3 基于标记的分水岭算法

对于传统算法中噪声以及灰度变化不明显带来的过度分割现象。采用基于标记的分水岭算法会有更好的效果。即将不同的标签赋予不同的值,以不同的标签值区分不同的区域,包括对不确定的区域以及边界做好标签标记。对比传统针对分水岭算法的改进方法如梯度,改进后的算法因为对一些极小点或细微的噪点没有标记,所以也会被“淹没”算法处理,但梯度的计算会将这些点作为极值点进行判断。也就是说基于梯度的算法会出现过度分割的现象,而改进后的分水岭算法克服了这些不足。针对改进后的算法进行的计算前的预处理过程如下:

(1)二值化处理图像,将图像分为白和黑两个部分。二值化过程即将图像分为0和255两部分,其中算法设定的阈值比较重要,其中大津法也就是最大类间方差法计算简单,不受外界因素影响。

(2)通过去噪点方法处理二值化处理的噪点,消除细小的边界噪声。在原图的小区域之内取局部最小值,因为二值化后的图像只有0和255,最小值就是0。通过将小区域的边缘变为0来达到缩小和消除小区域的目的。

(3)图像进行膨胀,接下来将图像大区域扩张,从而达到消除大区域之间的小噪点。

(4)距离变换,对于有重合的部分,特别是灰度值类似而且有重合的部分,采用距离加上合适的阈值以区分物体间的界限。

(5)取差值得到确定的区域,将确定区域确定好了之后,剩下的就是不确定的区域了。

(6)处理好连通域,调用算法。采用改进后的分水岭算法处理图像,但对于未知的区域或者是图像连通的区域,采用不同的数值对图像进行标记。

4 实验验证

本文采用不同材质的硬币作为对象,以白色作为背景,图1(a)和(c)使用改进前的分水岭算法实现图像分割,图1(b)和(d)的结果可以看出分割效果一般,而且局部细节结果并不好。因为部分图像与背景的白色更接近,原算法对于银色币的鲁棒性更差。图2(a)为采用改进后的分水岭算法待验证的原始图像,图像为通过灰度处理过的图,即图像只有黑白灰,没有彩色表示。图2(b)为中间计算过程产生的背景图,可以通过背景确定硬币的大概区域。通过去除噪点的过程,图中已经没有阴影、计算偏差或像素不均匀等带来的图像噪点。图2(c)为算法中间计算过程产生的前景图,即已经确定的硬币的位置,其余为不确定区域。通过对不确定区域的去除,更好地确定了不确定的区域,无论是硬币、背景、通过分水岭算法可以将其确定。图2(d)为最终结果图,为更好地区分物体,将物体本身、背景以及边界以不同的灰度值显示。另外,采用了改进后的算法之后,图3(a)选择了铜币以及银色币重合的对象作为原始图,图3(b)的中间计算过程背景图勾画出了大概区域,可以看出,重叠部分并没有区分开,因为货币的颜色比较相近,所以将图3(c)的结果作为参数的重要判断依据,因为参数的值决定了最终结果的识别质量,可以看出在图3(d)的最终结果中,原图中重叠的货币识别结果也比较好。原算法铜质颜色的硬币在灰度值区分效果较好,传统算法中特别是基于梯度的分水岭算法中,银色硬币在灰度值方面区分效果不如前者,从结果可以看出对于本问题提出的基于标记分水岭算法实现的图像分割技术,从实验结果来看,不仅铜质硬币,即便是和背景颜色更接近的银色硬币区分效果也比较好,已看出最终结果基本实现了比较良好的分割。

图1 图像分割结果图(改进前方法)

图2 图像分割结果图(改进后)

图3 图像分割结果图(改进后)

5 结论与改进

本文提出了一种基于标记的分水岭算法,改进了其中图像预处理过程。在图像分割算法中,大体可以分为基于图论、基于聚类、基于深度学习三个方面,在这一图像分割和计算机视觉领域有着广泛应用的算法中,针对传统的基于拓扑图像分割分水岭算法、基于梯度的分水岭算法,基于标记的分水岭算法在针对早点的鲁棒性方面有良好的效果。传统基于梯度算法有明显的过度分割的现象,对于细小的噪点和物体的区域边界处理效果不明显。过度分割之后的结果对于物体的定位和判断来说都是严重的错误。改进后的分水岭算法预处理过程中,有效利用了图像二值化之后的膨胀和缩小,将细小的噪点隐去,实验结果表明,改进后的算法效果良好,没有过度分割的现象,而且能够处理好不同颜色材质的对象物体。今后的研究中需要重点解决图像结果边缘处理的精确性,更好地处理物体重叠之后的区分,特别是颜色与背景颜色接近物体的不同光照效果下的边界判断问题以及相同图像特征物体重叠之后的区分问题。