一种高鲁棒性的钢轨表面缺陷检测算法
2019-02-27彭方进
彭方进
中铁第四勘察设计院集团有限公司,武汉,430063
0 引言
无缝钢轨引导和支撑列车的运行,是高速铁路的重要组成部分。随着列车速度的提高,钢轨表面缺陷问题日渐凸显,若不及时处理,会严重威胁行车安全,因此必须加强钢轨表面状态检测,及时指导钢轨的维修养护[1]。
传统的钢轨表面检测采用人工巡检方式,这种方式效率低下,检测结果准确性难以保证。为提高检测效率,国内外相继开发出了超声波检测[2]、涡流检测[3]、基于机器视觉的钢轨表面缺陷检测[4-5]等方法。其中,超声波检测探头的安装对检测速度限制较大;涡流检测信号处理过程复杂,钢轨轨面状态提取困难。相较而言,基于机器视觉的钢轨表面缺陷检测方法检测速度快、检测精度高,成为近年来研究的重点。文献[6]将钢轨灰度图像转化为灰度对比图像,实现了图像的增强,并使用最大熵分割法提取了钢轨的缺陷部位。这种方法检测速度快,但鲁棒性较差,在检测车辆过弯时,容易误检和漏检。文献[7]使用一维线性局部窗口均值代替行像素灰度均值,生成灰度对比度图像,用来检测钢轨表面缺陷。这种方法在一定程度上降低了小微缺陷的漏检率,但由于窗口互不重叠,生成的对比图灰度不连续,且并未解决相机与钢轨相对位置发生变化时引入的背景噪声问题。
本文针对检测中的背景噪声问题,提出了一种多尺度灰度对比度增强算法,该算法鲁棒性强,用于动态钢轨表面缺陷检测具有良好的效果。
1 钢轨表面缺陷检测原理
钢轨表面缺陷检测流程如图1所示。
图1 钢轨表面缺陷检测算法流程Fig.1 Algorithm flow of flaw detection on rail surface
1.1 钢轨区域定位
由于相机采集的钢轨图像中大部分为钢轨表面背景区域,图像复杂多变,给钢轨表面缺陷检测带来了困难,因此需要获取钢轨区域的准确位置,以简化下一步的检测工作。基于此项需求,文献[8]采用基于霍夫变换的直线检测方法提取钢轨表面两侧边缘线,两条线之间的部位即为钢轨表面区域,这种方法常受到钢轨下边缘的干扰,容易出现误判;文献[6]提出基于水平灰度投影积分的方法定位钢轨区域,该方法应用较为广泛,但当钢轨出现锈蚀或者背景亮度过大时,此方法准确率明显下降,如图2所示。图2b中矩形框区域为算法定位区域,可见算法存在较大的局限性。
针对背景光照复杂问题,本文提出一种适用于高速有砟轨道的定位算法。考虑到钢轨在行车方向上灰度变换缓慢,高速有砟轨道背景灰度分布复杂,且钢轨表面亮度总是高于钢轨轨底亮度,本文提出一种基于灰度标准差与灰度投影积分的钢轨区域提取算法。本算法先通过每一行像素的灰度标准差确定钢轨大致所在区域,再对区域内灰度投影进行积分,积分值最大处即为钢轨轨面区域。
(a)钢轨图像水平灰度投影
(b)基于水平灰度投影积分的钢轨区域定位结果图2 基于灰度投影积分的钢轨表面区域定位示意图Fig.2 Schematic diagram of rail surface arealocating based on grayscale projection integral
算法具体过程如下。
(1)计算图像在行车方向上的投影。假设图像I中的行车方向为水平方向,则第y行的投影如下:
(1)
式中,W0为图像I的宽度;I(x,y)为图像在(x,y)点的灰度值。
(2)计算图像水平方向上每行像素的灰度标准差。第y行的灰度标准差如下:
(2)
(3)遍历σ(1),σ(2),…,σ(H0),获取最小值σmin,其中,H0为图像的高度。由于有砟轨道钢轨与背景标准差相差较大,故可根据σmin计算出一个阈值T以大致定位出钢轨区域。考虑到实际上钢轨并不是绝对光滑,在图像中的位置也并非绝对的垂直与水平,T取值如下:
T=3(σmin+ξ)
(3)
式中,ξ为一个极小数,本文取ξ=0.01。
在标准差图像中小于T的最大行间距d(d=b-a)即钢轨大致所在。
(4)在图像[a,b]行间进行投影积分。由于钢轨的宽度一定,设宽度为WR,考虑到过弯时的偏移以及可能出现的肥边等情况,将定积分区间大小设为1.1WR,则每个宽度为W的区间积分如下:
(4)
则最大的S(y)所对应的区间[y,y+W]即为所求钢轨表面区域。
本文所述钢轨表面区域定位方法与结果如图3所示,其中图3b中黑色矩形框区间即为图3a中确定的区间[a,b],白线标注的区间为根据投影积分所确定的钢轨表面区域。
(a)基于灰度标准差的钢轨大致定位
(b)本文方法定位效果图3 基于灰度标准差与投影积分的钢轨表面区域定位Fig.3 Rail surface area locating based on graystandard deviation and projection integration
1.2 钢轨表面图像增强
图像增强是钢轨表面缺陷检测的重要步骤,其目的是突出钢轨缺陷部位,抑制背景噪声。最为典型的图像增强算法为直方图均衡算法,它通过增强灰度值的动态范围达到图像增强的效果。但钢轨成像灰度级比较集中,在进行全局增强时,容易将钢轨缺陷区域与干扰区域同时增强,影响缺陷的进一步提取。GORDAN等[9]提出基于局部对比度的增强算法,图像I的局部对比度如下:
(5)
式中,I1为以(x,y)为中心、面积为m的矩形窗口的灰度均值;I2为窗口大小为3×m的矩形窗口的灰度均值。
任盛伟等[6]依据钢轨在行车方向上灰度值变化小的特点对对比度进行了相应的改进,其局部对比度定义如下:
(6)
式中,I(x,y)为图像I在(x,y)处的灰度值;g(x)为行车方向上一列像素的灰度均值。
文献[6]的方法需要钢轨在图像中始终保持垂直的状态,当检测装置与钢轨相对位置发生变化时,会引入较多的边界噪声。此外,对于顺轨方向上的缺陷,这种方法也存在较高的漏检率。考虑以上因素,本文采用以目标像素为中心的矩形窗口均值U(x)代替目标像素所在列或所在行的均值g(x)或g(y)。
使用矩形窗口求取均值能在一定程度上减少遗漏缺陷的情况,但是由于钢轨在垂直行车方向上灰度值表现出明显变化,故在生成对比度图像时会引入许多背景噪声,给进一步的分割带来困难。针对此问题,本文提出一种多尺度图像[10]局部对比度求取方法,通过综合不同尺度下的图像对比度抑制背景干扰。算法具体流程如下。
(1)构造多尺度图像。将输入图像I与高斯核函数G(x,y,σ)求卷积,即可得到尺度参数为σ的图像I(x,y,σ):
(7)
本文共设置三个尺度:σ=1,σ=2,σ=3,得到相应尺度的图像I(x,y,1),I(x,y,2),I(x,y,3)。
(2)生成各尺度下的灰度对比度图像。对I(x,y,1)、I(x,y,2)、I(x,y,3)每个像素点进行局部灰度对比度计算,每个尺度下灰度对比度如下:
C(x,y,σ)=
(8)
其中,U(w,σ)为以像素I(x,y,σ)为中心、大小为w的窗口内均值。本文采用35×5的窗口大小。
(3)生成最终灰度对比图C(x,y),并将其映射到[0,255]区间。灰度对比图C(x,y)由下式求得:
(9)
将本文钢轨表面增强算法与两种经典图像增强算法(直方图均衡算法与CLAHE算法)[11]、文献[6]以及文献[7]中所提出的算法进行比较,效果如图4所示。
由图4不难看出,相较于经典图像增强算法及文献[6]和文献[7]中提出的算法,本文提出的改进对比度算法引入边界噪声较少, 能很好地突出缺陷所在,简化了进一步的分割工作。
1.3 图像阈值分割
(a)钢轨表面区域原图
(b)直方图均衡算法
(c)CLAHE算法
(d)文献[6]算法
(e)文献[7]算法
(f)本文算法图4 不同算法增强效果对比Fig.4 Comparison of different algorithmenhancement effects
钢轨表面图像经过增强,缺陷区域与钢轨表面背景区域对比度明显,对钢轨位置无明显偏移的图像生成的灰度对比图灰度级仅集中在以缺陷区域对应的低灰度级以及钢轨表面对应的高灰度级,故只需选取相对居中的灰度值作为二值化分割的阈值即可提取出缺陷部位。考虑到钢轨与相机间存在的相对位置变化所带来额外的灰度级,人工设置阈值难以符合要求,本文选用具有一定自适应性的迭代阈值法实现灰度对比图的分割。迭代阈值法的实现步骤如下。
(1)选取初始迭代阈值。遍历灰度图C,查找最小灰度值Cmin和最大灰度值Cmax,令初始迭代阈值Tk为
(10)
(2)根据Tk将灰度对比图分为目标O和背景B,并计算目标区域与背景区域各自的灰度平均值mO、mB:
(11)
式中,N1为灰度对比图中属于目标的像素个数;N2为灰度对比图中属于背景的像素个数。
(3)由mO和mB更新阈值:
Tk+1=mO+mB
(12)
(4)重复步骤(2)和步骤(3),直到Tk+1=Tk,迭代结束。Tk即为所求的分割阈值。迭代阈值分割结果如图5所示。
图5 迭代阈值分割后钢轨表面灰度图Fig.5 Grayscale image of rail surface after iterativethreshold segmentation
1.4 缺陷判别
钢轨表面图像中除缺陷外,更为普遍的是细小斑点和瑕疵,这些斑点和瑕疵并不会影响行车,但在图像增强和分割后会跟随缺陷提取出来,故需对两者进行区分。
本文对分割后二值图像中所有黑色区域进行连通域标记,根据连通域的面积进行缺陷判别。面积小于400像素的认定为噪点。经缺陷判别后,钢轨表面灰度如图6所示。
图6 经缺陷判别后的钢轨表面灰度图Fig.6 Grayscale image of the rail surface afterdefects discriminant
2 实验结果与分析
实验使用1200张高速铁路有砟轨道无缝钢轨图片对本文所述算法进行测试,这些图片包括白天外界光源微弱时拍摄的图像500幅、外界光源强烈时拍摄的图像50幅、线路巡检车过弯时拍摄的图像50幅以及夜间拍摄图像600幅。图片大小均为2048pixel×1024pixel。实验所用缺陷图像共有180幅,其中,白天外界光源强烈的情况下缺陷图像17幅,白天外界光源微弱时的缺陷图像63幅,巡检车辆过弯时的缺陷图像29幅,夜间拍摄的缺陷图像71幅,其余均为正常图像。算法验证平台为Microsoft Visual Studio 2013以及OpenCV开源库。部分检测结果如图7所示。
(a)轨面压溃
(b)轨面剥落图7 本文检测方法检测结果示例Fig.7 Examples of detection results described in this article
将本文检测算法与文献[6]和文献[7]所述算法在各种拍摄条件下进行对比,检测效果使用准确率和漏检率两项标准进行评定,则三种算法的缺陷检测结果如表1所示。
表1 各种拍摄条件下缺陷提取算法对比
由表1不难看出,在白天外界光源强烈以及巡检车辆过弯时,本文算法效果远优于文献[6]和文献[7]算法效果。由于本文算法在对钢轨表面区域进行定位时通过行像素标准差剔除了复杂背景干扰,从而避免了外界光源的影响,降低了漏检率。在对钢轨表面区域提取缺陷时,本文方法使用矩形窗口求取灰度对比度,使得平行于行车方向上的缺陷遗漏较少,此外,对于因车载检测设备与钢轨的相对位置变化(如巡检车辆过弯)所引入的边界噪声,本文在多尺度空间中进行抑制,由此保证了缺陷检测的准确率。
3 结论
本文提出了一种基于灰度标准差与灰度投影积分的钢轨定位方法,经实验验证,该方法能适应复杂光照背景下的钢轨定位工作,对高速铁路有砟轨道钢轨表面区域的定位有一定的参考意义。针对钢轨表面缺陷的提取,本文提出一种基于多尺度灰度对比度的增强算法,相较于基于一维线性窗口与单一尺度的增强算法,该方法更能适应相机与钢轨的相对位置变化,表现出更强的鲁棒性。