APP下载

基于背景差分与最大熵的轨面缺陷分割①

2022-11-07王国伟陈光武魏宗寿

计算机系统应用 2022年10期
关键词:适应度差分灰度

王国伟,陈光武,魏宗寿

1(兰州交通大学 光电技术与智能控制教育部重点实验室,兰州 730070)

2(兰州交通大学 自动化与电气工程学院,兰州 730070)

3(甘肃省高原交通信息工程及控制重点实验室,兰州 730070)

随着机车高速、重载和高密度的运行以及自然环境的长期影响,钢轨表面不可避免地会形成孔洞、擦伤和疤痕等各种缺陷[1].列车在表面有缺陷的钢轨上运行会产生振动,不仅会影响列车车轮和钢轨的寿命,甚至可能会导致车轮脱轨,造成严重的行车事故[2].因此需要工作人员能够及时发现钢轨缺陷并进行维护处理,以确保列车能够安全、连续的运行[3,4].传统的人工巡检法由于受外界环境以及巡道工主观因素的影响较大,且劳动强度大、检测效率低,已经不能满足现代铁路的检测要求[5].因此,想要确保铁路运输的安全与畅通,必须采用现代化的检测手段来对钢轨的状态进行检测[6],而机器视觉通过结合图像处理与模式识别算法,能够对钢轨表面缺陷区域进行检测并完成分类,且由于其具有高速度、高精度、低成本和非接触等优点,目前已经被广泛应用于钢轨表面缺陷的检测[7].

吴禄慎等[8]设计了基于机器视觉的轨道缺陷自动检测系统,通过改进最大类间方差法来实现轨面缺陷的检测,但是对轨道图片滤波后直接进行阈值分割会导致分割的准确率不高.陈后金等[9]根据钢轨表面缺陷的灰度和梯度特征,提出基于灰度-梯度共生矩阵的钢轨表面缺陷检测方法,该方法能够避免锈迹区域的干扰,较好地检测出块状缺陷,但是当杂质点分布比较集中或存在有规律的微小伤痕的时候,该方法容易产生误判; 贺振东等[10]将视频中的背景差分法应用到单张的轨面图像上,提出了一种基于背景差分的钢轨表面缺陷分割方法,该方法在一定程度上解决了分割过程中光照变化和反射不均等因素的影响,但是在背景建模过程中会受到极端灰度值的影响而导致背景模型不稳定,降低缺陷分割的准确率; 李晓梅等[11]提出一种将灰度对比图和形态学重构相结合,然后利用最大熵法进行轨面缺陷分割的算法,该方法能够在缓解轨面图像灰度不均和过度曝光等带来的影响,但是算法耗时长且容易产生误分割; 闵永智等[12]提出了基于图像灰度梯度特征的背景差分轨面缺陷检测方法,该方法基于双边滤波思想设计了背景平滑滤波器,利用局部灰度和梯度变化信息对原图像进行平滑得到背景图像,该方法虽然能够较好地检测出裂纹和疤痕缺陷,但是参数过多,且对于不同的缺陷需要设置不同的参数.

针对上述算法中存在的缺点,本文提出了一种基于背景差分与最大熵的钢轨表面缺陷分割算法.该算法主要包括3 个步骤: 首先对钢轨图像进行背景建模并将原图像与背景图像进行差分操作得到差分图像;然后利用改进遗传算法的最大熵值法找出差分图像的最佳分割阈值来对其进行二值化; 最后对二值图进行图像滤波完成钢轨表面缺陷的分割.该方法能够避免光照变化、反射不均以及干扰区域的影响,可以快速准确地提取出轨面缺陷区域.

1 钢轨图像背景建模及差分

为了减少光照变化和反射不均对轨面缺陷检测的影响,凸显出钢轨表面图像中的缺陷部分,首先要建立准确的背景图像模型,然后再将原图像与背景图像进行差分操作后取绝对值,以此得到了差分图像,为后续轨面缺陷的准确分割奠定了基础.

1.1 背景建模

钢轨表面图像具有以下特征:

(1)在无缺陷的条件下,沿钢轨方向图像的灰度值基本不变;

(2)垂直于钢轨方向图像的灰度值变化范围较大.

基于列灰度均值的背景图像模型建立方法就是根据上述中钢轨表面图像所具有特征来进行轨面背景图像模型的建立[10],具体如下.

定义垂直钢轨方向为x轴,沿钢轨方向为y轴.计算图像每一列的灰度均值,完成背景图像模型的建立:

其中,Im(x)表示背景图像模型中第x列的灰度值;mean(·)为均值函数;Iy(x)为轨面图像中第x列上所有像素点的灰度值;col为轨面图像的列数.

基于列灰度均值的背景建模法容易受到部分列极端灰度值的影响而导致所建立的背景模型不稳定,进而导致所得的差分图像不能够很好地凸显出轨面图像中的缺陷区域,这将影响后续缺陷分割的准确度.为此,本文提出了一种新的背景图像模型建立方法,该方法在基于列灰度均值背景建模法上进行改进,其耗时短且建模结果也更加稳定,更适用于做背景差分,具体如算法1.

算法1.背景图像模型建立算法1)计算出轨面图像中每一列的像素灰度均值,取图像第x 列的像素灰度均值为Ia(x);2)对每一列上的每一个像素点依次进行判断,假设对图像第x 列上的像素点进行判断,若像素点的灰度值小于2Ia(x)/3,则舍弃,反之保留;3)计算出每一列中保留像素点的灰度均值,并将其作为背景图像对应列上所有像素点的灰度值,取图像第x 列中保留像素点的灰度均值为Ib(x),则背景图像中第x 列上所有像素点的灰度值都取Ib(x),以此完成背景图像模型的建立.

本文所提出的背景图像模型方法通过加入像素点灰度值判断的过程,舍弃掉一部分灰度值极低的像素点,从而避免了极端灰度值的影响,由此所得到的背景图像模型作差分效果会更好.还有,钢轨表面长期与列车车轮进行摩擦,其亮度高且较均匀,因此轨面灰度图中绝大多数像素点的灰度值较高且均匀,故不需要考虑舍弃灰度值极高的像素点.

1.2 背景差分

将原钢轨表面图像与背景图像进行差分运算并取绝对值,由此得到差分图像ΔI(x,y):

其中,I(x,y)表示原轨面图像中任一点(x,y)的灰度值,Ib(x,y)表示背景图像模型中任一点(x,y)的灰度值.

通过运算所得到的差分图像背景均匀,能够很好地突出缺陷部分,因此对差分图进行缺陷分割会更容易且更准确.如图1 所示,图1(a)、图1(b)和图1(c)分别是原轨面灰度图、通过本文算法得到的背景建模图像以及差分图像,其中差分图像背景均匀,缺陷区域明显.

图1 原灰度图、背景图及差分图

2 钢轨表面缺陷分割

本文提出了基于改进遗传算法的最大熵值法来确定差分图像的分割阈值,该方法不仅能够找出图像的最佳分割阈值,同时还可以加快算法的运行速度,然后再利用该方法所确定的阈值对差分图像进行二值化,即可准确地完成钢轨表面缺陷的分割.

2.1 最大熵阈值分割法

熵是信息论中的一个重要概念,是平均信息量的表征,用以确定随机数据源中所包含的信息数量[13].简单来说,熵就是用来衡量一个分布的均匀程度,熵值越大,说明分布越均匀.图像的熵被认为是图像灰度空间分布状态不稳定的量度[14,15].

最大熵阈值分割法是由Kapur 等[16]首次提出,利用图像熵为准则进行图像分割,其将图像划分为目标区域O及背景区域B两部分,使目标熵和背景熵之和达到最大时的阈值为最优阈值[17].具体思路如下:

假设有一幅图像I尺寸为M×N,灰度级为L,灰度范围为{0,1,2,…,L-1},则图像中灰度值i(0≤i≤L-1)出现的概率pi计算公式如下:

其中,h(i)表示图像I中灰度值为i的像素数,

设图像I的分割阈值为t,灰度级小于t的像素点构成目标区域O,灰度级大于t的像素点构成背景区域B.目标区域O和背景区域B的灰度级累积概率分别为

目标区域O的概率分布为:

背景区域B的概率分布为:

目标区域O的熵为:

背景区域B的熵为:

图像I的总熵φ(t)是目标熵与背景熵的和,即:

当图像总熵φ(t)达到最大值时,其所对应的灰度值t就是所求的最佳阈值t=argmax(φ(t)).

传统最大熵阈值法需要遍历穷举阈值T(0-255),计算出所有阈值下的图像总熵,这导致算法的运行时间较长.为了加快算法的运行速度,可以根据图像的动态范围来缩小最佳分割阈值的取值范围或者与寻优算法相结合来搜索最佳分割阈值.

2.2 改进遗传算法

2.2.1 遗传算法介绍

遗传算法(genetic algorithm,GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法[18].

遗传操作是模拟生物基因遗传的做法.在遗传算法中,首先进行编码并生成初始种群,然后进行遗传操作,即对群体的每一个个体根据它们的环境适应度来进行一定的操作,从而实现优胜劣汰的进化过程.遗传操作会使问题的解一代又一代地优化,逐渐逼近最优解[19].遗传算法的过程如图2 所示.

图2 遗传算法流程图

遗传操作包括3 个基本遗传算子: 选择、交叉和变异.遗传操作的效果与这3 个遗传算子所取得操作概率、编码方法、群体大小、初始种群和适应度函数的设定密切相关[14].

2.2.2 改进遗传算法介绍

传统的遗传算法存在收敛性差和容易陷入局部最优解的问题,容易导致图像的分割结果不佳.为了避免此问题,对传统的遗传因子进行了优化,具体操作如下:

(1)改进选择算子

轮盘赌选择法是遗传算法中最常用且最简单的选择方法,但该方法容易引起“早熟收敛”和“搜索迟钝”问题.在轮盘赌选择法后采用最优保留策略能够有效解决此问题,即将上一代中适应度值最大的个体直接传递到下一代,通过强制保留最优个体保证种群不会产生退化,加快算法的寻优过程[20].

(2)改变种群操作中的交叉概率

传统遗传算法的交叉概率为一个固定值,而固定的交叉概率存在严重的缺点: 首先,每一代种群中的个体适应度值是不同的,对于适应度高的个体,我们应该减小交叉的概率,而对于劣质个体则应该增大交叉概率,采用相同的交叉概率是不合理的,再者,交叉概率采用固定值不能很好地满足种群进化过程的需要,会影响算法的收敛性和效率.因此,采用自适应方法对传统遗传算法进行改进,根据迭代次数和个体适应度值的不同自适应地改变交叉概率Pc的值[21].

首先,随迭代次数的变化自适应改变Pc的值: 在进化的初始阶段设置较高的交叉概率,以此获得更多新的个体来避免陷入局部最优解,随着迭代次数的增加,为了不破坏优秀个体和加快收敛速度,应逐步降低Pc的值.其次,对于处于同一代的所有个体也要根据其适应度值的不同对应不同的Pc值: 适应度值较高的个体对应较低的Pc值,以此使它们在进化过程中被破坏的概率降低,反之,要提高适应度较低的个体在进化过程中被破坏的概率.具体设置如下:

其中,fmax表示第g代种群中的最大适应度值,favg表示第g代种群中的平均适应度值,fi表示第i对要交叉的个体中较大的适应度值.

Pc(g)的含义如式(10)所示:

其中,PcM和Pcm分别表示最大交叉概率和最小交叉概率,gmax表示最大代数,g表示当前代数.

(3)改变遗传操作中的变异算子

同交叉算子的改进方法一样,将传统遗传算法中的变异概率固定值改为随迭代次数和个体适应度值不同而自适应变化的变异概率值Pm[21].

首先,随迭代次数的变化自适应改变Pm的值: 在进化的初始阶段设置较低的Pm值,在不破坏原有的完整模式下保持种群的多元性; 随着进化的推进,逐渐增大Pm值,扩大算法的搜索空间,算法开始收敛; 在进化后期过程中,搜索已经接近最优解领域,因此再逐渐减小Pm值,使种群在局部重点进化,加快收敛速度.具体设置如下:

其中,fj表示发生变异的个体j的适应度值.

Pm(g)的含义如式(12)所示:

其中,PmM和Pmm分别表示最大变异概率和最小变异概率.

2.3 基于改进遗传算法的最大熵值法

基于改进遗传算法的最大熵值法将改进遗传算法与最大熵阈值分割法相结合来找出图像的最佳分割阈值,加快了算法的运算速度,提高了轨面图像缺陷分割的效率.具体步骤如算法2.

算法2.基于改进遗传算法的最大熵值法1)数据输入.读入钢轨表面图像灰度差分图;2)编码.图像的灰度值在0-255 之间,每个灰度值视为一个个体,将每个个体编码为8 位二进制码,即用00000000-11111111 之间的一个8 位二进制代码代表一个图像分阈值;3)确定算法参数.种群规模n 设置为20,迭代次数gmax 设置为100,PcM 设置为0.8,Pcm 设置为0.4,PmM 设置为0.1,Pmm 设置为0.02;4)初始化种群.以同等概率在00000000-11111111 之间随机生成n 个个体作为第一次寻优的初始种群;5)适应度函数设计.适应度函数是用来判断群体中个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的.在本算法中,采用式(8)作为适应度函数;6)终止条件.终止条件设为最大迭代次数,达到预定最大的迭代次数,则转步骤(10),否则进入步骤(7),如此循环,直到满足终止条件为止;7)选择.采用第2.2 节中改进的选择算子进行选择操作;8)交叉.根据第2.2 节中改进的交叉概率,采用单点交叉方式来完成交叉操作;9)变异.根据第2.2 节中改进的变异概率,采用基本变异算子来完成变异运算;10)解码.将最后一代种群中适应度值最大的个体作为本算法所寻找的最优结果,将其解码为将0-255 之间的灰度值th,即为所求的最佳分割阈值;11)图像二值化.将差分图像二值化: 灰度值大于分割阈值th 的点认为是缺陷点,将灰度值置为255; 反之,则认为是背景点,将灰度值置为0.

利用该算法得到的阈值对差分图像进行二值化后得到的结果如图3 所示.由图3(b)可知,该算法可以准确地分割出轨面中的缺陷部分,但除此以外,还分割出部分噪声干扰区域.

图3 原灰度图与二值图

2.4 图像滤波

本文采用形态学图像处理方法和基于缺陷面积图像的滤波方法来滤除图像中的孤立噪声点,实现缺陷的精确分割.

(1)闭运算.对二值图进行图像闭运算,依次经过膨胀、腐蚀处理的过程.闭运算能够填充小孔,弥合小裂缝,而总的位置和形状不变.

(2)图像滤波.采用基于缺陷面积的滤波方法对图像进行处理,本文将滤波面积设置为16,将小于16 像素的区域视为噪声点并进行滤除.

经图像滤波后的结果如图4 所示,其中的孤立噪声点都被滤除,精确地分割出了缺陷区域.

图4 图像滤波结果图

3 仿真结果与分析

在Matlab_R2014b 中编程实现本文所提出的基于背景差分与最大熵结合的钢轨表面缺陷分割方法,并利用含有不同缺陷的钢轨表面图像来进行实验验证.实验所用的计算机的配置为Intel(R)Core(TM)i5-8300H CPU @ 2.30 GHz,机带RAM 8 GB,64 位操作系统.实验采用500 张轨面图像对算法进行测试,其中300 张不含缺陷,200 张包含缺陷,缺陷总数为316.分别利用最大熵法、文献[10]算法、文献[11]算法以及本文算法对轨面图像进行缺陷分割实验,其中文献[10]算法中的参数C取10,部分实验结果对比图如图5 所示,图中列出了a、b、c、d 共4 组轨面缺陷分割结果对比图,在每一组对比图中从左到右依次是原轨面灰度图、利用最大熵法、文献[10]算法、文献[11]算法以及本文算法所得到的缺陷分割图.

由图5 中所列出的4 组对比图中可以看出,不同轨面灰度图上的缺陷位置、大小、数量、形状等特征都不相同,其中最大熵法的抗干扰能力差,容易将与缺陷灰度相似的背景区域误检为缺陷,产生大面积的过分割; 文献[10]算法和文献[11]算法比最大熵法的分割效果好,但是对于小的或者不连续的缺陷区域,容易造成漏检,对于部分干扰区域,也会存在误检; 利用本文算法进行缺陷分割的效果最好,相比较文献[10]和文献[11]算法,本文算法的抗干扰能力较强,误检缺陷和漏检缺陷较少,且检测出的缺陷区域与实际缺陷区域几乎相同,但由图5(c)可以看出,钢轨存在的不连续的磨损缺陷,其具有多级灰度且分布不集中,对于此类缺陷,本文算法的分割结果不理想,仅能分割出缺陷中灰度值较低部分的区域,但分割效果仍优于文献[10]和文献[11]的算法.为了能够更加客观、科学地检测算法的性能,本文采用精确率Pre、召回率Rec和正确率Acc三项指标来对这4 种不同算法的性能进行定量评价,分别为:

图5 不同轨面缺陷算法的仿真结果对比图

其中,Tp表示正确检测到的缺陷图像数目;Fn表示被漏检的缺陷图像数目;Fp表示被误检为缺陷的图像数目;Tn表示被正确排除的非缺陷图像数目.最终的性能比较结果见表1.

表1 不同缺陷分割算法的性能数据对比

由表1 可见,4 种算法中,本文算法的精准率和正确率最高,虽然召回率略低于最大熵法,但是最大熵法很容易产生误检,其精准率和正确率都很低,因此,本文算法的分割结果是最好的.从耗时性上相比,利用最大熵法进行缺陷分割的平均耗时最短,但是其缺陷分割效果太差,本文算法的平均耗时大于最大熵法,但是小于文献[10]和文献[11]算法,因此综合来看,本文算法的性能最优,能在较短的时耗中更准确地分割出轨面缺陷.

4 结论与展望

本文提出了基于背景差分与改进遗传算法最大熵法的轨面缺陷分割算法.首先利用背景差分操作更准确地凸显出轨面的缺陷区域,以此避免了光照变化和轨面反射不均造成的影响; 然后利用改进遗传算法最大熵法来寻找图像的最佳分割阈值,不仅能保证最佳阈值的准确性,还能够提高算法的运行速度; 最后对图像进行二值化和图像滤波,完成缺陷分割.仿真结果表明该算法能够快速准确地分割出轨面中的缺陷区域,缺陷分割的精确率、召回率和正确率分别达88.6%、93.4%和90.6%.

本文只对轨面缺陷分割做了进一步的研究,在后续的工作中,还需要设计缺陷分类器来对分割出的缺陷进行分类识别.

猜你喜欢

适应度差分灰度
一类分数阶q-差分方程正解的存在性与不存在性(英文)
天津港智慧工作平台灰度发布系统和流程设计
华为“灰度”哲学
一个求非线性差分方程所有多项式解的算法(英)
Arduino小车巡线程序的灰度阈值优化方案
一类caputo分数阶差分方程依赖于参数的正解存在和不存在性
基于差分隐私的数据匿名化隐私保护方法
启发式搜索算法进行乐曲编辑的基本原理分析
基于改进演化算法的自适应医学图像多模态校准
基于人群搜索算法的上市公司的Z—Score模型财务预警研究