刘向南,王昱潭,赵 琛,朱超伟,李乐凯
宁夏大学 机械工程学院,银川 750021
灵武长枣是隶属宁夏回族自治区的灵武市特有的一种重要经济林果,它的采摘季节在每年的9月中旬到10月初,采摘期比较集中。由于其自身的生长成熟特性,对智能化自动采摘提出强烈需求。在智能化采摘的过程当中,需要借助机器视觉当中的机器识别与定位来对灵武长枣图像进行研究。作为机器视觉的基础,图像处理是必不可少的。图像分割是从图像预处理到图像识别和分析理解的关键步骤,在图像处理中占据重要的位置。许多国内外的学者在此之前也对林果类图像的分割算法进行了各种各样的研究。浙江大学的应义斌教授早在2000年就提出基于区域阈值的黄花梨图像分割的方法[1]。Shigehiko等人提出基于颜色特征和形态学特征的茄子图像分割方法[2]。Bulanon等人于2002年利用基于苹果果色与背景的差异所建立的颜色模型对红富士苹果图像进行了分割[3]。西北农林科技大学的刘小英、何东健等人在2006年利用改进的迭代算法确定分割的最佳阈值,然后再采用RGB阈值法和亮度阈值法对葡萄干图像进行了分割[4]。北京林业大学的阚江明教授在2007年研究了基于机器视觉的立木直径测量以及三维重建等[5-6]。而王昱潭博士则在2014年研究了基于机器视觉的灵武长枣定位和成熟度判别的方法[7],并在2017年利用最大熵算法对灵武长枣图像进行了分割研究[8]。本文尝试利用遗传算法选取最优阈值,再利用改进后的分水岭分割算法,对灵武长枣图像进行分割,为后续处理奠定基础。
本实验采用数码相机对灵武长枣图像进行采集,并采用联想PC机对图像进行处理。其中数码相机的型号是FUJIFILM FinePix S1800,像素可以达到1220万。而PC机的型号为LENOVO 20149 Inter®Core™ i5-3230M CPU@2.60 Hz,4.00 GB安装内存,Windows 10家庭中文版,64位操作系统。实验所用灵武长枣图像是在晴天自然光源下进行采集的,并已经过前期处理的。该实验所用图像以JPG格式进行储存。为了方便对图像进行处理,本实验将图像的分辨率设定为400×350像素大小,如图1所示。
图1 原始图像
2.2.1 均值滤波
在采集与传输的过程中,由于受到成像设备与前景目标的周围环境的影响,本实验所采集到的图像会受到噪声的污染。这些噪声能够获取图像的像素值,但却不能反映真实场景亮度的误差。更重要的是,当采用带有噪声的图像进行实验时,噪声有可能会被放大从而影响图像分割的效果。本文采用3×3均值滤波[9]直接在空间域上对图像进行平滑处理,这样可以达到减弱或者消除部分噪声的目的。在像素( )x,y处,其邻域Z像素分布如表1所示。
表1 像素邻域分布
所以
其中 f(x+a,y+b)代表各个像素处的值,g(x,y)代表进行均值滤波后像素(x,y)的像素值。因为均值滤波对R、G、B三个颜色通道使用的都是3×3均值滤波器的模板,对各个通道的影响一样,且不影响各个通道之间的相互关系,所以可以避免造成图像失真现象。图2是经过均值滤波后的灵武长枣图像。
图2 均值滤波后图像
2.2.2 颜色分量的提取
灵武长枣图像属于RGB图像,通过提取各颜色分量[10]可以得到R、G、B三种颜色的分量图。为了增大前景目标与背景的差别,可以将红色分量与其他颜色分量相减。图3为灵武长枣图像的各颜色分量折线图,通过图3可以得知:R颜色分量的灰度值最大,且与G颜色分量相差较大,因此采用R分量与G分量相减。
由图3可得,红色分量占主导的区域为灵武长枣,其余为背景物体。基于以上分析,得出灵武长枣R颜色分量与G颜色分量相减的图像,可以将此图像作为本实验进行分割的输入图像。R颜色分量减去G颜色分量图如图4所示。
2.2.3 形态学重构
利用一幅掩模图像的图像特征对另外一幅标记图像重复地进行形态学当中的膨胀操作,使得标记图像的灰度值不再发生变化,这样的方法叫做形态学重构。在本文中,由于需要先将灵武长枣图像当中的一些细小并且不属于灵武长枣的背景物体消除,然后再将前景目标当中的一些未填充的地方恢复原样,因此选择腐蚀形态学重构。形态学重构原理图如图5所示。
图3 颜色分量折线图
图4 R与G颜色分量相减图
图5 形态学重构原理图
在本实验当中,先将输入的灵武长枣图像进行腐蚀,把腐蚀过的图像作为掩模图像,输入的图像作为标记图像,然后进行形态学重构。在腐蚀的过程中,为了使结构元素与需要提取的前景目标相对应,并且使前景目标的边缘更明显,本文创建的是平面圆形结构元素。形态学重构结果如图6所示。
图6 形态学重构结果
2.3.1 蒲瑞维特算法
灵武长枣图像在经过转换和传输后,由于受预处理中均值滤波的影响,传递函数对图像的高频成分有衰减作用,这样就不可避免地造成了图像模糊。本文采用蒲瑞维特算法[11]来对图像进行处理。蒲瑞维特算法属于图像锐化,它可以通过增强高频分量来突出图像轮廓边缘,从而使图像变得清晰。
设灵武长枣图像为 f(x,y),则它的梯度定义为:
式(2)中G[f(x,y)]是图像 f(x,y)的梯度,也就是灵武长枣图像 f(x,y)的梯度图像。而在蒲瑞维特算法当中可以进一步这样表示:
其中
a0,a1,…,a7之间的关系如图7所示,d1和d2的模板分别如图8和图9所示。
这样通过蒲瑞维特算法,可以将原始灵武长枣图f(x,y)转变为梯度图像G[f(x,y)],这样就可以方便利用分水岭算法对梯度图像进行分割。
2.3.2 分水岭算法
分水岭算法[12]是一种借鉴了形态学理论的阈值分割方法,像自然地貌中的地形表面一样,在分水岭算法当中可以将需要进行分割的输入图像看作是一个拓扑地形图,每一个像素的灰度值 f(x,y)代表着地形的海拔高度。灰度值大的对应山峰,灰度值小的对应山谷。将所有的谷刺穿,山谷谷底开始积水,水平面就开始匀速上升。随着水平面的上升,积水的面积会越来越大,最后漫过整个地形表面。为了防止不同谷的积水汇合,在汇合处筑坝。当水平面完全漫过整个地形表面之后,所筑水坝就会将积水分割成一个一个的区域。在这个过程中,水坝就是分水岭,也就是图像分割完成后的区域与区域之间的边界,而不同的区域就称作是积水盆地。由这些不同的积水盆地和分水岭组成的区域就是要分割图像的前景目标。分水岭概念图如图10所示。
图7 各系数间的位置关系图
图8 蒲瑞维特算法d1的模板
图9 蒲瑞维特算法d2的模板
图10 分水岭概念示意图
分水岭算法是一种自适应的多阈值分割算法。如图10所示,在图像上进行阈值选择时,如果阈值T选得过高,则图像的许多边缘会出现丢失或者是破碎的现象;阈值T如果选得过低,图像又容易产生虚假边缘现象,这样使得图像原本的边缘会变厚进而导致定位不精确。所以,本文利用遗传算法对分水岭法所得的图像分割阈值进行寻优,以期得到最佳的图像分割阈值T0。利用控制标记符分水岭分割算法得到图11。
图11 分水岭分割结果
由图11的分割效果可以看出,利用传统的控制标记符分水岭分割方法对灵武长枣图像直接进行分割得到的效果并不理想。在图11当中,由于阈值选取的不合理,两幅分割结果图都存在过分割,即将一部分背景物体分割到了前景目标灵武长枣当中。因此采用遗传算法对分割阈值进行寻优就显得尤为重要。
2.4.1 遗传算法简介
遗传算法又叫基因进化算法,是模拟生物在自然环境中的遗传和进化的过程而形成的自适应全局优化搜索算法。它借用了生物遗传学的观点,通过选择、交叉和变异等即进化机制,实现了对各个个体适应性的提高。在本实验中,通过遗传算法来实现对阈值T的寻优得到最佳的阈值T0,从而可以将灵武长枣成功分割出来。
2.4.2 群体规模
群体规模[13]会影响遗传优化的最终结果以及遗传算法的执行效率。群体规模太小,则可能会使遗传算法陷入局部最优解;群体规模太大,则计算的复杂度较高。因此,本文设定阈值T的初始群体规模是16个,每个阈值个体的染色体基因位数为8位,即:
利用matlab中的rand函数可以实现对第一代阈值种群的随机选择。由于群体规模较小,因此设定遗传运算的终止进化代数为100代,当进行到100代时遗传算法运算结束。
2.4.3 适应度函数
本文选择基于图像区域类间方差的对比度作为阈值个体T的适应度函数[14],用适应度函数来评价阈值个体T的优劣。计算图像分割所得的各个区域的类间方差,计算公式如下:
式中SEC为各个区域的类间方差,N1,N2,…,Nn分别代表各个区域的像素点个数,M是整幅图像的像素点个数,U1,U2,…,Un分别代表各个区域的平均灰度值,U是整幅图像的平均灰度值。当SEC越大时,各个区域的类间方差就越大,说明各个区域的差异也就越大。这样就表示图像中的前景目标灵武长枣与背景差异较大,体现出图像得到较好的分割效果。
2.4.4 选择运算
根据阈值个体的适应度,按照一定的规则和方法,从第一代开始,选择[15]一些优良的阈值个体遗传到下一代群体当中。本文采用个体的适应率排序和随机产生的混合选择机制对阈值个体进行选择。适应率是某个阈值个体的适应度占所有阈值个体适应度之和的百分比。若群体大小是NP,某个阈值个体T的适应度值为fT,则T的适应率如下所示:
在本实验中,由于设定阈值T的初始群体规模是16个,所以从第二代开始,按照适应率的大小由高到低先选出8个阈值个体,再利用Matlab中的rand函数随机产生8个染色体为8位的阈值个体,这样合起来组成新一代的阈值群体。
2.4.5 交叉运算
在选择出新的阈值种群后,需要将新产生的阈值个体进行交叉运算[16]。交叉运算就是把上一代的两个阈值个体的一部分结构进行替换重组进而产生新个体的操作。本文采用单点随机杂交算子对选择出来的阈值种群进行交叉运算。先等概率的随机确定一个基因位置作为杂交点,然后将父代两个阈值个体从该杂交点分成是前后两个部分,以杂交概率Pc交换两个父代阈值个体的后一部分,这样两个父代阈值个体就会变成两个新的子代阈值个体。
设Tc为单点随机杂交算子,Pc是杂交概率,这样对于任意的(X1,X2)∈S2,Y∈S,则:
2.4.6 变异运算
利用遗传算法中的变异算子进行变异的目的有两个[16]:
(1)使该遗传算法具备全局的随机搜索能力。
(2)使遗传算法可维持群体多样性。
当对阈值个体进行了交叉运算后,遗传算法已经具备了局部寻优的能力。为了能够增加全局寻优的能力,使得寻优不陷入某一个局部,本文采用变异算子对杂交后的阈值个体进行运算。设定两个阈值个体X,Y∈S,则有:
d(X,Y)表示X与Y之间的汉明距离,即:
其中
变异原理如图12。
图12 变异原理图
利用遗传算法对分割阈值进行寻优,可以得到最优阈值T。
2.5.1 最大类间方差法
设灵武长枣图像像素数为N,图像的灰度范围为[0,L-1],对应灰度级i的像素数为Ni,那么它的概率是:
将图像中的像素按灰度值用阈值T分为两类C0和C1,C0由灰度值在[0,T]的像素组成,C1由灰度值在[T+1,L-1]的像素值组成,对于灰度分布的概率,整幅图像的均值
那么C0和C1的均值为:
因此类间方差为:
利用最大类间方差法[17](Otsu法)对本文算法分割后的灵武长枣图像进行后处理,并利用Matlab中的im2bw函数将其转换为二值图像,如图13所示。
图13 最大类间方差法二值化图像
2.5.2 数学形态学
数学形态学的基本操作主要包括4种,分别是腐蚀、膨胀、开运算和闭运算。数学形态学可以用来对图像进行后续处理。
(1)腐蚀是一种消除边界点、使边界向内部收缩的过程,不断地使像素值为1的边界点变为0值像素点。腐蚀可以用来消除小并且无意义的点。计算公式如下:
(2)膨胀是一种增加边界点、使边界向外部扩散的过程,不断地使像素值为0的边界点变为1值像素点。膨胀可以用来填补物体中的空洞。计算公式如下:
(3)开运算也称作开启,是一种先腐蚀后膨胀的过程。开启可以用来消除细小物体、在纤细处分离物体和平滑较大物体边界。计算公式如下:
(4)闭运算也称作闭合,是一种先膨胀后腐蚀的过程。膨胀可以用来填充物体内部的细小空洞、连接临近物体和平滑边界。计算公式如下:
在上述图像分割操作的过程中,由于改进后的分水岭分割算法的主要目的是为了减少过分割,防止部分枣子区域被分割出去,所以本文主要采用闭合运算对分割后的图像进行形态学处理,这样可以连接邻近物体,使得前景目标灵武长枣能够最大限度地被分割出来。形态学处理结果如图14所示。
图14 数学形态学处理结果
为了减少传统分水岭算法对灵武长枣图像所造成的过分割,提高灵武长枣图像的正确分割率,本文采用了色调提取、控制标记符分水岭分割算法、遗传算法、最大类间方差法和数学形态学等方法对灵武长枣图像进行分割,并最终获得需要的前景目标图像。
本文算法主要操作步骤如下:
步骤1输入图像。
步骤2对输入的原始图像进行降噪预处理,如均值滤波等。
步骤3提取R-G颜色分量图。
步骤4对R-G颜色分量图进行形态学重构。
步骤5利用遗传算法产生初始阈值种群并根据选择、交叉和变异产生下一代阈值个体。
步骤6判断遗传代数G是否等于100,如果G等于100则转入步骤7,否则转入步骤5。
步骤7利用分水岭算法分割图像,阈值选择步骤6当中的最优阈值T0。
步骤8进行图像后处理。
步骤9输出图像。
图15为本实验算法流程图。
利用本文算法,对类似于图1的20幅400×350像素的灵武长枣图像进行了图像分割,其中最优阈值T0是利用遗传算法求得的,通过此阈值利用分水岭算法可以使灵武长枣图像达到最佳的分割状态;人工分割灵武长枣像素数M指的是利用Photoshop CS4软件来对前景目标灵武长枣区域进行提取,然后再计算出这部分区域的像素个数;算法分割灵武长枣像素数N则指的是利用本文所改进过的分水岭算法来对灵武长枣图像进行分割,进而计算出分割区域的像素个数;错误分割率P利用以下公式进行计算:
图15 本实验算法流程图
具体图像分割的统计结果如表2所示。利用表2当中的数据可以得出正确分割率达到89.99%。在这20幅灵武长枣图像当中,序号为2、5、12和18的灵武长枣图像的错分率较高,均超过14%;算法分割灵武长枣像素数N普遍大于人工分割灵武长枣像素数M,只有图像5相反。基于本实验分析,产生这两种现象的可能的原因有:错分率较高图像的前景目标灵武长枣的三种颜色分量所占比例与背景的三种颜色分量所占比例大致相同,使得分割时错误识别枣子区域;在进行图像后处理时,为了减少图像的过分割并且平滑图像边界,采用了形态学当中的闭合运算,使得一部分背景物体包含到了枣子区域当中从而造成算法分割灵武长枣像素数N较大,而图像5则可能是因为枣子区域青色部分较多使得算法分割灵武长枣像素数N较小。人工分割图像与本文算法分割图像分别如图16、图17所示。
由图16和图17可以看出,利用本文算法分割得到的图像与人工分割得到的图像分割效果大致相同,只在枣子与枣子之间、枣子与背景之间的局部边界处理上存在细小误差,从而能够达到正确分割前景目标的基本要求。
表2 图像分割数据
图16 人工分割图像
图17 本文算法分割图像
利用遗传算法对灵武长枣图像的分割阈值进行寻优,可以得到最佳分割阈值T。利用上述20幅图像,分别采用利用遗传算法进行寻优的分水岭法和传统的分水岭法对图像进行分割。为了使实验结果更具说服力,本文分别选取了两组未采用遗传算法进行寻优的分割实验结果与本文算法分割结果进行对比:一种情况是当不采用遗传算法选取阈值时,有可能会将部分背景区域分割到前景目标灵武长枣当中;另一种情况是可能不能将前景目标灵武长枣分割完整。实验结果图分别如图18、图19所示。
图18 传统分割图像
图19 增加遗传算法改进后分割图像
本文利用遗传算法对传统的控制标记符分水岭算法进行改进,能够实现对阈值T的寻优,从而得到正确的分割图像。但是在图像预处理的过程当中,由于一些采集到的灵武长枣图像中枣子区域阴影部分较大,导致使用R-G图时枣子与背景差别不大,从而造成不能正确分割图像;在形态学重构当中,由于不同的灵武长枣图像的具体情况不同,当选用平面圆形结构元素时,半径选取的不合适可能会造成图像无法正确分割;在遗传算法的选择运算当中,由于用到了随机选择的机制,使得阈值个体的选择具有一定的不确定性,从而导致所选出的阈值个体可能不是最优阈值;在图像分割的后处理当中,由于采用了数学形态学中的闭合运算,所以可能使得一部分背景物体被分割到了灵武长枣区域当中。
本文通过对灵武长枣颜色等特点进行研究,将灵武长枣的颜色分量与背景的颜色分量进行对比,找出其中的差异性,并利用R-G图将差异扩大。利用形态学重构将灵武长枣图像当中的局部背景物体清除并将枣子区域的细小空洞填充好。在传统分水岭算法的基础上,利用遗传算法对阈值进行寻优,从而得到适合灵武长枣图像分割的阈值T,再利用最大类间方差法和数学形态学等方法对图像进行后处理,最终得到正确的分割图像。本文综合利用了均值滤波、提取颜色分量、形态学重构、分水岭算法、遗传算法、最大类间方差法和数学形态学等方法,能够得到最优分割阈值。通过对20幅灵武长枣图像进行分割实验,分割的正确率达到了89.99%。本文提出的分割算法能够满足机器识别对图像分割的要求,同时也为灵武长枣的智能化采摘奠定了理论基础。