表征织物中液态水传输域图像的分割遗传算法
2022-09-30卢思童刘让同李淑静刘淑萍
卢思童,刘让同,2,李淑静,2,李 亮,刘淑萍,2
(1.中原工学院 服装学院,河南 郑州 450007;2.河南省功能纺织材料重点实验室,河南 郑州 450007;3.中原工学院 纺织学院,河南 郑州 450007)
图像分割是图像处理的关键技术,其目的是将目标区域与背景区域分离[1],图像分割质量的好坏直接影响后续测量的有效性[2]。常见的图像分割方法包括边缘检测[3]、阈值分割[4]和区域跟踪[5],其中阈值分割简单有效,最大类间方差法[6](Otsu)是阈值分割中最常用的方法,其核心是确定图像分割的阈值。
近年来很多学者致力于将新方法运用于图像分割。结合遗传算法的Otsu算法在图像分割中取得了较好的应用效果。在工业上,将遗传算法与Otsu算法结合,可实现产品缺陷的精确检测[7-9]。在医学上,利用遗传算法的自适应性和并行性的寻优特点,可实现对医学图像的精确分割[10-11]。在纺织服装上,将遗传算法运用于织物疵点检测,进行最优的特征集搜索,可实现织物疵点特征的选择[12]。
本文将遗传算法与Otsu算法有机结合,提出了一种新的分割遗传算法并运用于织物中液态水传输域图像的分割,利用遗传算法以及Otsu算法的适应度函数匹配不同织物中液态水传输域与背景区域的最佳分割阈值,并对算法有效性、种群大小、迭代次数方面进行了讨论,得到了较为理想的液态水传输域分割效果。
1 算法介绍
1.1 Otsu算法
Otsu算法是对图像进行二值化分割的高效算法。该算法通过设定阈值将图像分为目标区域和背景区域。阈值选取是通过计算二者之间的方差,当阈值T为某一个值时,类间方差最大,此时T就作为图像分割的阈值[13]。Otsu算法需要遍历所有灰度值,计算每个灰度值对应的类间方差,计算量大且步骤繁琐。
1.2 遗传算法
遗传算法(GA)是一种基于种群的算法,其基本原理如下:随机生成N条序列作为初始种群,种群中不同的序列代表问题的不同解。采用二进制编码将序列编码成字符串的形式。将序列视作一条染色体,序列中的每个节点视为一个基因单位,每条染色体都由多个基因单位组成。染色体序列如图1所示。
图1 染色体序列Fig.1 Chromosome sequence
遗传算法的核心是通过不断的交叉、变异,挑选更优秀的染色体群,让染色体的适应度值不断收敛,从而得到全局或局部最优解。遗传算法能够自适应控制搜索过程以求得最佳分割阈值,有效弥补了传统Otsu算法的不足。
交叉操作通常按照交叉概率大小从种群中选定2条染色体,以单点交叉的方式互换二者当中的部分基因,从而创建2条新的染色体。交叉操作是产生新个体的主要方法,它决定了遗传算法的全局搜索能力。图2是具体的基因交叉操作。
图2 基因的交叉操作Fig.2 Gene crossover
变异操作通常按照变异概率大小从种群中选定1条染色体,随机改变染色体的一位或多位基因,若原有的基因值为0,则将其变为1;反之,则将其变为0,从而创建1条新的染色体。变异操作决定了遗传算法在迭代后期的局部搜索能力。图3是具体的基因变异操作。
图3 基因的变异操作Fig.3 Gene mutation
1.3 分割遗传算法
遗传算法具有并行性和自适应全局搜索两大优点,而Otsu算法寻找阈值的过程实质上是一种寻求最优解的过程,因此本文将遗传算法与Otsu算法有机结合,提出了一种新的分割遗传算法,利用遗传算法快速寻优的特点,对Otsu算法进行优化,从而提高效率。分割遗传算法的具体实现过程如图4所示。
对采集的原始图像进行预处理。预处理包括图像减运算和滤波处理,以提高图像的质量。
分割遗传算法的主要步骤如下:
①种群初始化。产生第1代种群,种群大小和迭代次数是人为设定的,设定应当合理。
②编码。图像的灰度值在0~255之间,正好对应了一个8位二进制,将各个染色体编码为8位二进制。
图4 分割遗传算法操作流程图Fig.4 Operation flow chart of segmentation genetic algorithm
③适应度评估。采用Otsu算法中最大类间方差公式作为适应度函数,见式(1):
σ2(T)=Q0(μ0-μ)2+Q1(μ1-μ)2
(1)
式中:T为图像分割的最优阈值;σ2(T)为最大类间方差;Q0为背景区域出现的概率;Q1为目标区域出现的概率;μ0为背景区域的灰度值;μ1为目标区域的灰度值;μ为图像的总灰度平均值。
当目标区域与背景区域的类间方差最大时,T为最优阈值。该公式的推导过程如下:假设图像的灰度级为L,图像灰度的变化范围为:(0~L-1),其中,灰度级为i的像素点的个数为ni。每个像素值在图像中出现的概率pi为:
(2)
Otsu算法通过选取阈值T将图像分为背景区域w0(灰度级从1~T)和目标区域w1(灰度级从T+1~L-1)。w0和w1的出现概率Q0、Q1分别为:
(3)
w0和w1的均值μ0、μ1分别为:
(4)
图像的总灰度平均值μ为:
μ=Q0μ0+Q1μ1
(5)
④选择个体。根据遗传算法的收敛定理,计算每个个体的适应度值,适应度值按照升序排列。淘汰适应度低的个体,保存适应度高的个体。
⑤交叉和变异。按照变异和交叉的概率对群体内的染色体进行相关操作,实现新个体的生成。
⑥更新种群。比较得出的新个体和旧个体,按照适应度评估对种群进行更新处理,获取新种群。
⑦算法终止。当算法进化到最大迭代次数时终止。
2 实验部分
2.1 材料与图像获取
选取4种织物作为研究对象,织物的特征参数如表1所示。利用BASLER工业相机acA2500-14gm(深圳市杰智通科技有限公司)采集4种织物中液态水传输域图像,图像的水平/垂直分辨率为(2 592像素×1 944像素)。图像存储为bmp格式。
表1 织物特征参数Tab.1 Fabric characteristic parameters
液态水在织物中传输时会被织物吸收且在表面形成灰度明显加深的水印。不同组织结构的织物会形成不同的液态水传输域,呈现不同的水印形状[14],如图5所示。图5(a)传输域形状近似椭圆;图5(b)和图5(c)液态水分别沿经向或纬向传输,呈现出单项传输特征;图5(d)液态水呈现“十”字形状传输。可见液态水在织物中形成的传输域图像明显具有时变性和边缘形态复杂性,具体有:①织物中液态水传输域的边界比较模糊;②受到光照环境的影响,织物样品背景区域会出现不同程度的亮度不均匀,光线在织物表面不同区域的反射存在差异,如果液态水未被织物完全吸收时,液态水表面会产生明显的亮白反光;③织物表面细腻的纹理在图像中清晰可见;④经纬密度小的织物样品(W1)纱线间的孔隙相当明显,这导致图像在形态特征提取时难以确定分割时的合适阈值,影响算法的适应性。受到以上因素的影响,不能直接对织物表面液态水传输域图像进行分割,需要通过预处理来提高图像的质量。
图5 液态水传输域的形状Fig.5 Shapes of liquid water transport domains.(a)W1 oval;(b)W2 latitude;(c)W3 longitude;(d)W4 cross
2.2 图像预处理
减运算:将样品W1润湿前、后的图像进行同一位置像素相减。减运算结果图见图6。
图6 样品W1减运算结果图Fig.6 Sample W1 subtraction result graph.(a)Image before wetting;(b)Image after wetting;(c)Subtraction result
减运算处理能够减少光照环境的影响,它通过计算2幅图像的像素差,使图像中液态水传输域区域突显出来。
滤波处理:中值滤波公式如下:
g(x,y)=Med{f(x-i,y-i)},(i,j)∈S
(7)
式中:g(x,y)为输出像素值;S为二维滤波窗口;i为横轴所在位置,j为竖轴所在位置;f(x,y)为输入图像。
首先选择(2n+1)×(2n+1)的窗口,让窗口沿图像数据从左往右、从上到下沿每个像素滑动;其次在每次滑动后,对窗口内的像素值进行排序;最后用序列的中值替换窗口中心位置的像素值。样品W1的滤波处理结果见图7。
图7 样品W1滤波处理结果Fig.7 Sample W1 filter processing result.(a)Original imagel;(b)Filtered image
中值滤波处理能够平滑织物图像中的纹理结构,同时能够很好地保护织物中液态水传输域边缘轮廓的细节,减少织物纹理对后续液态水传输域分割的干扰,提高图像处理结果的准确性。
2.3 实验内容
实验内容具体分为3部分:
①分割遗传算法对织物中液态水传输域图像分割的有效性研究。分别利用传统Otsu算法和分割遗传算法对4种织物样品中液态水传输域图像进行对比实验。将分割遗传算法的参数设置为相同值。初始种群N=20,交叉概率Pc=0.7;变异概率Pm=0.1,最大迭代次数M=50。
②考察不同初始种群大小在分割遗传算法中对织物中液态水传输域图像分割效果的影响。保持其他参数相同对图像进行分割实验,主要对比不同种群大小下算法所得到的最佳阈值和算法运行时间。为了便于比较,参数设置为:交叉概率Pc=0.7,变异概率为Pm=0.1,迭代次数为M=50,每次只改变初始种群数的大小。
③考察不同迭代次数在分割遗传算法中对织物中液态水传输域图像分割效果的影响。实验对象是4种不同组织结构的织物,采用不同参数组合对其进行分割实验,主要对比不同迭代次数下分割遗传算法所得到的最大适应度值。为了便于比较,参数设置为:初始种群N=20,交叉概率Pc=0.7,变异概率Pm=0.1,保持不变,每次只改变迭代次数的大小。
3 结果与讨论
3.1 算法有效性研究
为验证本文提出的分割遗传算法的有效性,对传统Otsu算法和本文算法的分割结果进行对比测试。
样品W1、W2、W3和W4中液态水传输域图像的分割结果如图8所示。图8(a)为原始图像。图8(b)是传统Otsu算法得到的分割结果,液态水传输域周围以及内部都散布着一些噪声点,传输域轮廓模糊,图像分割精度低。图8(c)图是分割遗传算法得到的分割结果,可见织物表面的液态水传输域已经完全从背景区域中分割出来,传输域表面连贯,边缘清晰,分割效果较好,能够为后续图像的测量提供有力帮助。
图8 样品W1、W2、W3和W4的分割结果图Fig.8 Plot of segmentation results for samples W1, W2, W3 and W4.(a)Original imagel;(b)Otsu arithmetic;(c)Segmentation genetic algorithm
3.2 种群大小分析
不同种群下的阈值和运行时间如图9所示。种群设定过大,容易使算法的计算量增大,会增加算法运行时间,这是由遗传算法采用迭代进化所造成的。种群设定过小,难以确保遗传算法对种群多样性的要求,算法可能找不到全局最优分割阈值,容易陷入局部最优。在4种织物中,种群大小变化会引起阈值的变化,但波动不大,在种群大小为20时,阈值基本趋于稳定。因此初始种群设置为20比较合适。
图9 不同种群下的阈值和运行时间Fig.9 Thresholds and running times at different population
3.3 迭代次数选择
为分析不同迭代次数对遗传算法处理结果的影响,实验给出了分割遗传算法进行50次迭代时,4种织物样品中液态水传输域图像的最大适应度值和阈值变化曲线。最大适应度值表示液态水传输域与背景区域的最大类间方差。最大适应度值和阈值变化曲线如图10所示。
图10 最佳适应度值和阈值变化曲线Fig.10 Optimal fitness value and threshold change curve
综合分析4种织物的最大适应度值和阈值变化曲线,可知当分割遗传算法迭代到20次左右时,最大适应度值已经趋于稳定,或者说算法已经收敛。迭代次数继续增加不仅增加算法运行时间,反而增加最大适应度值的波动,使算法收敛困难。为减少算法计算时间,设置迭代次数为20次。最后确定图像最大适应度值所对应的最佳阈值。
3.4 算法运行实测
用分割遗传算法和传统Otsu算法对4种织物样品中液态水传输域图像进行分割实验,对比实验结果。将分割遗传算法的参数设置为相同值,初始种群N=20,交叉概率Pc=0.7,变异概率Pm=0.1,最大迭代次数M=20,实验结果如表2所示。
表2 实验结果对比Tab.2 Comparison of experimental results
由表2可知,遗传分割算法获取的4种织物样品的最佳阈值的运行时间均小于传统的Otsu算法获取阈值的时间。可见遗传分割算法弥补了传统Otsu算法的计算量大,耗时长,分割精度低等不足,是一种较为理想的图像分割方法。
4 结 论
通过将Otsu算法和遗传算法进行分析和有机结合,提出了一种新的分割遗传算法,从算法的有效性、种群大小和迭代次数对处理结果的影响方面进行研究,得出以下结论:
①通过考察不同种群数在分割遗传算法中对织物中液态水传输域分割效果影响发现,分割遗传算法存在一定的局限性。分割遗传算法初始化种群规模过小,算法可能陷入局部最优解。种群规模越大,全局搜索能力越强,但是如果种群过大,每一代的适应度值的计算量也会变大,会使运行时间快速增加,致使算法运行时间延长。
②相比于传统Otsu算法,分割遗传算法处理获得的织物样品中液态水传输域图像清晰连贯,具有较好的分割效果,有效提取了液态水在织物中传输的特征数据。分割遗传算法获取最佳阈值的时间明显短于传统Otsu算法获取阈值的时间,能够为后续图像的测量提供有力帮助。
③分割遗传算法能够进行全局搜索、自适应能力强,能在最短时间获得图像分割的最佳阈值,得到较好的分割效果。将分割遗传算法应用于织物吸湿快干性能评价,可以提供一种新的解决方案。