基于截线法的铁路扣件骨架提取算法
2019-03-20王志晖李柏林
张 雨,王志晖,李柏林
(西南交通大学机械工程学院,成都 610031)
铁路扣件作为连接钢轨和轨枕的重要部件,其丢失、断裂等缺陷会加快钢轨磨损,增加列车脱轨等事故发生的可能性,严重影响轨道交通安全,因此扣件检查是高速铁路巡检的重点项目[1]。随着我国铁路网建设的高速发展,迫切需要提高扣件缺陷的自动化检测水平[2]。近年来,一些学者针对铁路扣件的自动化检测方法进行了积极的探索,提出了一系列的铁路扣件检测算法[3-8]。Yang等[6]运用方向场理论提取方向字段作为识别特征,在精确定位扣件位置的情况下检测效果较好,但实际线路中由于光照不均匀等原因,图像质量存在较大的差异,降低了检测效果。王珍珍等[7]将边缘特征作为铁路扣件缺陷分类的重要依据。由于现有检测算法所提取的底层特征受光照和噪声的影响较大,且难以准确刻画扣件状态,所以算法识别率不高。而基于骨架特征[8-11]的方法是一种将物体形状细化的方法,不仅能够集成物体的几何和拓扑特性,而且可以降低形状特征维度和算法复杂度,故而在复杂图像的识别方面具有明显的优势。
传统的骨架提取方法所提取的是图像中目标的中轴[12],可以很清晰、简洁地表述物体形状,对于轮廓规则且噪声较少的目标具有较好的识别效果。但是,对于背景区域复杂且噪声较多的图像来说,直接使用传统算法生成的骨架会产生很多细小的分支,从而导致后续的扣件识别部分难以进行,所以必须通过剪枝处理[13-14],去除多余骨架分支。然而,经过剪枝处理后的骨架虽然较为精确,但算法的复杂度和运行时间明显提高,不能满足算法实时性的要求。针对这一问题,高立青等[15]提出一种基于截线法的快速骨架提取方法,首先对目标图像进行轮廓多边形离散曲线演化,并由所得显著凸顶点的类型将轮廓多边形进行分块;然后分别利用水平线族和竖直线族扫描轮廓块,将所得割线的中点作为目标骨架点,进而提取出完整的骨架。虽然该方法所得骨架位置不是很精确,但对于复杂图像的识别具有较好的效果,与传统算法相比,时间复杂度明显降低,并且可以达到算法实时性的要求。
综上所述,本文通过引入截线法的概念,提出一种基于截线法的铁路扣件骨架提取算法,以满足提高识别准确度及算法实时性的要求。
1 图像预处理
初步采集到的轨道图像包括钢轨、轨枕和扣件等多个部件,因此不能直接用于扣件骨架特征提取。本文根据文献[16]的算法获得钢轨和轨枕的位置信息,并应用交叉定位分割出扣件子图像。由于子图像中包含有大量的外部噪声且其中的背景区域会对骨架提取产生严重干扰,所以需要进行预处理,即先通过单通道的局部二值模式方法进行二值化,然后提取包含扣件端部的感兴趣区域。
水平方向的局部二值模式(Local Binary Pattern, LBP)方法[17],是通过编码中心像素点与单方向上的邻域像素点的灰度值大小关系来编码局部区域的纹理信息。本文通过求解水平方向的纹理图像得到扣件二值图像。
中心像素点的单通道LBP编码值可以表示为
(1)
(2)
Ip(x,y)=I(x,y+R),p=0°
(3)
首先对已经分割好的图像如图1(a)所示使用均值滤波[18]。然后设定单通道的局部二值模式的邻域半径的值为3,并使用公式(1)和(3)计算水平方向的纹理图像如图1(b)所示。最后对所得图像进行极值中值滤波,并使用形态学的闭运算去除端部孔洞,以得到二值图像,如图1(c)所示。
图1 扣件二值图像获取示意
2 基于方位距离变换的感兴趣区域提取
2.1 方位距离变换
经典的欧氏距离变换是先计算二值图像中目标点像素与距其最近的背景点像素间的欧式距离[19],并把该距离值作为目标点像素值,然后采用串行扫描的方法遍历图像,最后得到距离场。方位距离变换与欧氏距离变换的不同之处在于只计算目标像素点特定方向上的欧氏距离,从而得到单方向的距离场。
对于二值图像上的目标像素点I(x1,y1)与在特定方向上距其最近的背景像素点I(x2,y2),其距离值定义为
D(x1,y1)=
(4)
2.2 感兴趣区域提取
本算法所要寻找的感兴趣区域是扣件的4个端部,扣件的丢失和断裂也是根据端部信息进行判断。由于扣件端部与挡板和垫板底部间的空间位置关系是扣件本身的固有属性,分别位于扣件上下方,所以可以利用图像特征,通过方位距离变换求解挡板以及垫板底部区域的近似骨架特征,进而提取感兴趣区域。
首先对扣件图像进行0°方向的方位距离变换,得到距离场D1。然后对图像进行近似骨架提取。由于挡板以及垫板底部区域在扣件二值图像中均为白色长条状,故可以通过计算D1中行极大值的方法求解其近似骨架特征。
yn=ym+D1(xm,ym)
(5)
由(xm,ym)和(xm,yn)即可提取出挡板以及垫板底部区域的近似骨架。如图2(a)所示。
最后提取感兴趣区域。提取出骨架特征后,根据枕肩和垫板底部和扣件间的空间位置关系分割提取扣件的目标区域,然后将其划分为Lu、LD、Ru、Rd(左上、左下、右上、右下)四个感兴趣区域,如图2(b)所示。
图2 扣件图像预处理示意
3 基于截线法的扣件骨架提取算法
本文采用截线法来近似获取铁路扣件端部的骨架特征。利用不同方向的方位距离变换计算扣件各端部区域的骨架生长点,并以该点为中心点,沿扣件的弯曲方向利用水平线族和竖直线族扫描扣件端部轮廓,得到截线段后,计算其中心点,依次连接骨架生长点和所有截线中心点即可得到完整的扣件图像骨架。
3.1 提取骨架生长点
分析扣件形状可知,其端部部分具有较大的弯曲弧度且各部分的弯曲方向互不相同,所以在使用截线法提取扣件端部骨架特征前,需要将每个部分分割为两个区域,以便于使用水平线族或竖直线族扫描端部轮廓。但是,通常扣件的端部轮廓都包含有一些干扰区域,而且轮廓曲线不规则,故难以通过离散曲线演化[20]的方法获取轮廓显著凸顶点,因此无法利用该方法分割扣件端部部分。方位距离变换是基于图像目标形状内部像素点的图像处理方法,在对于识别目标轮廓不规则且具有较多干扰区域的图像时仍具有显著的效果,所以通过不同方向的方位距离变换方法来计算骨架生长点,从而实现对端部部分的分割。
根据扣件端部的形状,所提取的骨架生长点应满足位于扣件端部轮廓的中心位置,即中轴,且端部弯曲弧度较大的位置。
综合分析并结合扣件端部形状,扣件Lu、Rd、Ld区域的骨架生长点应位于扣件端部弯曲弧度较大位置处135°方向与45°方向截线段中点的交点位置;Ru区域的骨架生长点应位于扣件端部弯曲弧度较大位置处90°方向截线的中点。
以Lu区域为例,为找到满足条件的骨架生长点,需要计算扣件端部区域135°方向与45°方向截线的交点位置,而该交点同时也须是两段截线段的中点。Lu区域骨架生长点的计算步骤如下所示。
步骤1:对Lu区域进行45°,135°,225°和315°方向的方位距离变换,得到距离场D2、D4、D6和D8。
步骤2:如图3所示,以D2、D6相同位置区域的8×8矩阵为例,由于D2、D6是在相反方向上进行的方向欧氏距离变换,故两矩阵在45°方向的元素值的排列是相反的,同理,D4、D8在135°方向元素值的排列是相反的。若将D2、D6点乘,所得矩阵在45°方向上每一行的最大值点即为该行的中点;将D4、D8点乘,所得矩阵在135°方向上每一行的最大值点即为该行的中点。
图3 距离场示意
骨架生长点的计算方法为:首先对所求距离场进行约束,以保证骨架点的位置;然后,分别将D2、D6和D4、D8点乘,以保证实现约束的同时得到所需的特征矩阵,计算如式(6)所示
(6)
其中,p1、q1、p2、q2和p3、q3、p4、q4分别为D2、D6与D4、D8的约束参数。由于骨架生长点应在矩阵C1与C2在45°、135°方向上的极大值点上,所以对C1与C2进行融合,所得矩阵C即为所需特征矩阵。
C=C1+C2
(7)
步骤3:计算特征矩阵C的极大值点(x1,y1),其中x1为行数,y1为列数。
(x1,y1)=max(C)
(8)
该极大值点即为所求Lu区域骨架生长点,如图4(a)所示。其他区域骨架生长点的提取方法与Lu区域类似。通过Lu、Ld、Ru、Rd区域的端部骨架生长点分别沿135°,90°,45°和135°方向做截线,即可将各个扣件端部部分分割为两个子区域,然后使用截线法分别扫描所得两区域的轮廓以提取骨架节点。
图4 扣件骨架生长点示意
3.2 提取近似骨架特征
本文所提取扣件端部骨架节点的方法与基于欧氏距离变换[21]的骨架化方法不同,主要通过截线法来计算骨架节点,以替代图像距离场的局部最大值点。与文献[13]通过轮廓多边形的顶点来提取行人骨架的方法存在较大差异的是,本文经过预处理后的扣件轮廓不存在多边形顶点,且处理过的扣件端部轮廓为规则不明显的曲线,故本文的截线法采用相同间距的平行线族扫描的方法提取骨架节点,使最终生成的骨架在最大程度上接近端部形状。本文算法根据每个扣件感兴趣区域的弯曲情况,分别采用水平截线和竖直截线提取端部骨架,其中,由骨架生长点分割的两个子区域的骨架节点数应相同,从而可以保证扣件图像骨架特征向量的维度不变,以便于后续分类算法中的分析计算。另外,由于水平截线法和竖直截线法在算法上是完全类似的,故下面主要讨论水平截线法。
已知由8个端部子区域所组成的扣件图像、骨架生长点的坐标(xn,yn)以及扣件端部轮廓C,其中,1≤n≤4;设扣件端部子区域的骨架节点数为k,水平截线段间的距离为m,故水平截线为x=lm+xn,其中l为扣件端部单个子区域内截线的个数,且满足1≤l≤k;设任意水平截线与端部轮廓C的交点为(aij,bij)、(aij,bi(j+1)),其中1≤i≤l,1≤j≤2l;计算两交点的中点坐标rij;对于bij,应满足
bi(j+1)-bij (9) 式中,pi为两交点间距离的约束参数。 (10) 对于满足上述条件的bij、bi(j+1)、rij,则称点rij为扣件端部轮廓的骨架节点,称bij、bi(j+1)为骨架点rij的生成点,称点bij到点bi(j+1)距离的一半为rij的截线半径。 以Lu区域为例来介绍截线法算法步骤。 步骤1:由上节方法已经计算出Lu区域的骨架生长点(x1,y1),并以此点为中心,由端部向下弯曲的方向等间距的作水平截线,使水平截线的个数为4,生长点与截线、截线与截线间的间距相同,如图5(a)所示。经过大量实验,将该间距m设定为5,故水平截线 x=x1+5l (11) 式中,参数l满足1≤l≤4。 步骤2:所需的截线只需求与扣件端部轮廓相交的部分,故可以通过不同方向的方位距离变换的方法,求解截线与轮廓线的交点。以骨架生长点下的第一个截线段的求解为例,过程如下: 首先,已知计算出的距离场D1与所求交点的行数a11,求解D1在Lu区域a11行的极大值点,并对所求解的区域设定约束。 (12) 式中,c1为像素点(a11,b11)处的像素值,同时也是该行的极大值。 然后,根据计算得到的极大值点求解a11行的另外一个交点 b12=b11+c1 (13) 由于扣件二值图像端部的弯曲形状不规则,很容易导致所得截线不符合所需截线的要求。如图5(a)所示,由骨架生长点向下方的第三、四条截线因为此原因过长,导致生成的骨架不能准确表示端部形状。针对该情况,由公式(11)设定相对应的约束参数,进而使第三条截线的第一个交点与第二条截线第一个交点满足一定的约束关系,然后使第四条截线的第一个交点与第三条截线的第一个交点满足一定的约束关系,最终效果如图5(b)所示。最后,依次计算所有水平截线段的交点坐标,求解方法与上述计算过程相同。 图5 水平截线法约束示意 步骤3:计算出所有水平截线段后,再求解截线段的中点即所求骨架节点rij。以Lu区域的第一条水平截线为例,其骨架节点坐标(x11,y11)的计算方法为 (14) 通过上述方法计算出所有的骨架节点坐标,将其依次连接,之后再连接骨架生长点,即可得到Lu区域第一个子区域的骨架,如图6(a)所示。Lu区域骨架生长点的右上方为另一子区域,该区域采用竖直截线法来求解骨架节点,方法同上述用水平截线法求骨架节点。通过计算得到该子区域所有的骨架点并依次连接,之后再与骨架生长点相连,实验结果如图6(b)所示。最后去除所有的截线段,即可得到完整的Lu区域骨架,如图6(c)所示。 按照上述Lu区域的骨架提取算法即可依次求解扣件所有感兴趣区域的骨架节点位置,然后连接各个区域的骨架节点,得到最终的扣件骨架图像,如图6(d)所示。 图6 扣件图像骨架生成示意 本文算法的基本流程共分为两个阶段,如图7所示。第一阶段为预处理阶段,首先对原始的扣件图像进行滤波,然后通过水平方向的局部二值模式方法实现图像的二值化,通过提取图像中枕肩以及垫板底部区域的近似骨架特征得到扣件感兴趣区域;第二阶段为扣件端部骨架提取阶段,先根据扣件的骨架生长点的要求对扣件图像进行不同方向的方位距离变换,然后计算骨架生长点坐标,并通过截线法来提取扣件端部骨架点,最后连接各点得到完整的扣件端部骨架。 图7 扣件检测算法流程 为了进一步测试本文算法的实用性以及综合性能,首先需要选用合适的扣件样本图像库。本文采用的图像库充分考虑了各种工况条件,从采集的图像中选择2 400张组成图片库,其中包括各种工况图像;正常图像1 200张、缺陷扣件图像如断裂、丢失和道砟遮挡等状况的图像各400张,其中扣件图像均为120×180像素灰度图。本文在Matlab2014a的实验环境下进行检测。每次实验随机抽取正常状态的图像300张,断裂、丢失和道砟遮挡等状况的图像各100张。重复抽取4次,得到4组实验数据。实验结果取4组数据结果的平均值。 为了验证本文算法对于各种缺陷状况的分类能力与鲁棒性,本实验针对正常、丢失、断裂以及大量道砟遮挡等多种扣件图像进行骨架特征的提取,如图8所示;然后统计各种状况下对扣件缺陷状况的识别率。 图8 不同缺陷状况下的扣件端部骨架提取 设定判断扣件是否正常的准则为:若各感兴趣区域的骨架特征均存在,则判定该扣件为正常扣件;反之,若骨架特征在任何一个感兴趣区域不存在,则判定该扣件为缺陷扣件。具体实验步骤如下。 (1)从原始图片库中抽取正常图像1 200张,断裂、丢失、大量道砟遮挡等状况的扣件图像各400张组成实验样本库。 (2)在实验样本库中随机抽取正常状态的图像300张,断裂、丢失和道砟遮挡等状况的图像各100张。重复抽取4次,得到4组实验数据。 (3)对于每种状况分别进行实验,提取出每类扣件图像的骨架特征。其中,如图8(a)所示,若扣件左侧发生断裂,其骨架特征在左侧部分均不存在;如图8(b)所示,对于扣件丢失的情况,所提骨架特征在各区域均不存在。如图8(c)所示,扣件左侧下方出现遮挡的情况,故所提骨架特征只在左侧下方部分不存在。 (4)统计截线法在不同状况下的识别率,并对统计结果进行分析,实验结果取4组数据结果的平均值。最终结果如表1所示。 表1 本文算法不同状况下的识别率 由表1可知:截线法在扣件不同缺陷状况下均有较高的识别率,对于断裂的情况识别率为99.25%,道砟遮挡的情况识别率为98%,丢失的情况识别率为100%。说明本文算法在识别缺陷扣件时具有较强的应用优势,并且实验所需时间较短,满足算法实时性要求。 为了能够精确描述铁路扣件端部形状,提出了一种基于截线法的铁路扣件骨架提取算法。首先,利用多种预处理方法提取感兴趣区域;其次,计算扣件端部的骨架生长点,实现对各端部区域的有效分割;然后,使用截线法对分割区域进行骨架点提取;最后,连接各区域骨架点,形成完整的骨架特征。实验表明,通过截线法所提取的骨架特征,能够实现对扣件端部形状的准确描述,而且对于扣件的整体结构的表达更加准确。对于复杂图像的识别具有较好的效果,在识别缺陷扣件时具有较强的应用优势,算法时间较短,可以达到实时性的要求。3.3 算法流程
4 实验结果与分析
4.1 数据集设置
4.2 实验及结果分析
5 结论