曹义亲,刘龙标,何 恬,丁要男
华东交通大学 软件学院,南昌330013
现代铁路行业的高速发展面临着列车不断增长行驶速度、运营里程、载重负荷的挑战,无疑增加了轨道基础设施的安全隐患。钢轨是轨道基础设施的重要组成部分,受高密度的交通、高负荷的载重以及外界自然环境的作用,表面会产生一定的磨蚀损耗,影响列车行驶的舒适度和安全性。因此,及时检测出轨面缺陷,向有关部门提供可靠维护数据,增加钢轨的可靠性、安全性和使用寿命,对于铁路系统的运维具有十分重要的现实意义。
基于机器视觉的检测方法具有非接触、精度高、时耗低等优点而成为前沿的研究方法之一。国内外许多学者开展了关于钢轨表面缺陷检测的研究,并取得了一定成果。金侠挺等提出了基于贝叶斯卷积神经网络(convolutional neural network,CNN)和注意力网络的钢轨表面缺陷检测方法,该方法扩展了深度学习语义分割框架,实现表面缺陷的概率分割,分割精度高,速度快。Yu 等提出了一种从粗到细的钢轨表面缺陷识别模型,该模型从子图像级、区域级和像素级三个不同的尺度来对缺陷进行检测,能有效减弱光照反射不均和其他噪声干扰,检测效果显著。但轨道图像尺寸大小参差不齐,不仅包含研究者感兴趣区域(钢轨表面区域),还包含干扰区域(轨枕、扣件、碎石等),为降低基于视觉的轨面缺陷检测难度,减小轨面磨蚀缺陷的搜索空间和检测时间,避免轨面两侧的碎石、扣件、杂草等干扰,需精准快速提取轨面区域。
唐湘娜等提出了基于水平投影(horizontal projection,HP)的轨面区域提取算法,算法计算简单,但全局阈值的选取很难统一确定,且需要手动确定轨面边界,自适应性差;王耀南等提出了基于竖直投影(vertical projection,VP)的轨面区域提取算法,该法利用灰度均值二值化后的第一个连续10 个值都是1 或0 的点确定边界,偶然性太大。Li 等提出了基于轨迹提取投影(track extraction based projection algorithm,TEBP)的轨面区域提取算法,计算轨道图像中每条纵向线的平均强度投影轮廓,搜索轮廓累积值最大的定长区间,效果不错,但是对光照敏感,需要预先给定轨面的宽度,容易导致提取结果整体偏移。文献[9]和文献[10]提出了基于Hough 的列像素累积灰度强度(Hough-based pixel column cumulation gray,HPCG)的轨面区域提取算法,该方法本质和TEBP 类似,效果有一定的提升,但计算更复杂,具有相同的弊端。贺振东等提出列直方图最小值法(column histogram minimization method,CHMM)对轨面区域进行提取,首先计算轨道图像的列直方图,然后按照固定轨宽间隔搜索最小值对应钢轨位置,算法简单,但是对图像质量要求高,仍需要预先给定轨面的宽度,鲁棒性差。
上述轨面区域提取算法均是在轨道图像的RGB色彩空间的灰度图上进行相应操作,理想情况下的轨面区域灰度值会比非轨面区域灰度值大,但是由于轨道图像整体受光照不均、轨面存在阴影、锈迹、各种磨蚀损耗等,往往会打破理想情况下的灰度分布规律,给基于RGB 色彩空间的轨面区域提取带来了困难。
Min 等针对该问题提出了基于HLS 色彩空间的轨面区域识别方法(extraction based on HLS space,EHLS),通过提取其H 分量图像,利用H 值突变特征提取轨道图像中轨面边界,此方法能减弱环境光照影响,但不能消除轨面诸如锈迹、阴影带来的干扰,且耗时较长。顾桂梅等提出了基于HSV 色彩空间的轨面区域提取算法(extraction based on HSV space,EHSV),通过提取其S 分量图像,分别找到以图像中点为轴两侧列灰度投影曲线的极大值和极小值,再根据它们的关系自动确定边界,此方法能较大程度地消除自然因素和轨面噪声干扰,但无法在轨头圆角处(rounded corners of the rail head,RCRH)存在尘泥等噪声干扰时将轨面进行完整的提取,且需要假定轨面在轨道图像中央。
针对上述问题,本文利用YUV 色彩空间中的V分量图像,提出了一种全新的钢轨表面区域提取算法。首先将RGB 轨道图像转化到YUV 空间,提取其V 分量,可以克服环境光照以及其他轨面噪声的干扰;其次绘制V 分量的灰度投影反转曲线,利用该曲线灰度均值和中值确定一个合适的阈值,进行候选轨面区间的划分,减弱非轨面区域干扰;随后利用贪心算法求出划分后曲线中的最大子序和区间,进行轨面粗提取;最后利用斜率探测扩充法进行轨面精提取,在粗提取边界两侧进行一定距离的斜率探测,用偏转角大于设定阈值的中间位置更新轨面边界。本文方法不需要提前给定轨面宽度、假定轨面在轨道图像的中央和手动确定边界等前提条件,且能在RCRH 区域存在噪声干扰时将轨面完整提取,精度高,耗时低,鲁棒性强。
如图1(a)所示,实际采集的轨道图像不仅包含轨面区域,还包括轨枕、扣件、碎石、杂草等非轨面干扰区域,而且轨面区域受高密度交通、高负荷载重以及外界自然环境的作用,会产生一定的磨蚀缺陷、锈迹、尘泥和阴影等。大多数研究者均基于RBG 空间的灰度图对钢轨表面进行提取,因此对轨道图像的灰度特征进行全面分析尤为必要。
图1 实际采集的轨道图像Fig.1 Rail image collected in practical environment
图2(a)、(b)为图1(a)轨道图像的灰度分析划分图与结果,沿着轨面方向划有8 道纵线(1~8):其中4 条穿过轨面区域(3~6,它们分别穿过强光照、正常、锈迹和尘泥轨面区域),4 条穿过干扰区域(1、2、7 和8)。
通过分析,可以得出以下结论:
(1)正常情况下的轨面区域灰度值大于干扰区域,且灰度变化均匀,如图2(b)4 曲线所示。
(2)轨面出现阴影、锈迹、尘泥干扰时会打破常规,如图2(b)穿过锈迹的5 曲线已和干扰区域融为一体,难以区分。再如图2(b)穿过尘泥的6 曲线,虽然灰度变化均匀,但灰度值远低于正常轨面。
(3)如图2(c)的轨道图像投影曲线所示,轨面区域灰度值一般大于均值,存在干扰时会低于均值,干扰区域灰度值一般低于均值,但是由于光照等影响可能会高于均值。
图2 轨道图像灰度分布图Fig.2 Gray scale distribution of rail image
综上所述,由于轨道图像的灰度值容易受环境光照、轨面噪声等因素影响,通过滤波技术和改进算法也无法很好地解决该问题,且容易增加算法复杂度和提取时间。因此基于RGB 空间的钢轨表面区域提取的方法存在较大困难,本文将对轨道图像的其他常用的色彩空间进行探索。
颜色空间按照基本结构一般可分为两大类:基色颜色的空间和亮、色分离的色彩空间。前者的典型是RGB 色彩空间,后者包括HLS、HSV 和YUV 色彩空间等(HLS(色相Hue、亮度Lightness、饱和度Saturation);HSV(色相Hue、饱和度Saturation、明度Value);YUV(亮度Luminance Y、色度Chrominance U&V))。由上节可知,轨道图像在基色颜色的空间中提取轨面存在较大难度,因此对轨道图片使用常见的亮、色分离的色彩空间进行探索。
图3 为图1 中两幅轨道图像的HLS、HSV 和YUV色彩空间的映射图,以及各自两个色度分量的灰度图(亮度分量图和RGB 空间灰度图差别不大,故不考虑)。
图3 轨道图像的三种色彩空间探索Fig.3 Three color spaces exploration of rail images
文献[12]推荐的HLS 空间的H 分量图,如图3(a)、(b)的第(2)幅所示,该分量可以很好地减弱光照带来的干扰,对比度强,但是无法消除轨面磨蚀缺陷等噪声的干扰。文献[13]推荐的HSV 空间S 分量,如图3(a)的第(6)幅所示,该分量可以消除轨面磨蚀缺陷等噪声的干扰,但是抗光照干扰效果不稳定,如图3(b)的第(6)幅所示,对比度弱,左侧的非轨面区域和轨面区域近乎融为一体,难以区分。如图3(a)、(b)的第(9)幅所示,YUV 空间V 分量既能极大减弱光照不均对轨道图像的干扰,也能较大程度消除轨面噪声的干扰,轨面对比度高。故本文采用YUV 色彩空间的V 分量图像对钢轨表面区域进行提取。
YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法,其中“Y”表示明亮度Luminance,也就是灰阶值;而“U”和“V”表示的则是色度Chrominance。亮度是将RGB 信号的特定部分叠加到一起。色度则定义了颜色的色调与饱和度,分别用Cr 和Cb 表示。其中,Cr 反映了RGB 红色信号值与亮度值之间的差异(即V),Cb 反映的是RGB 蓝色信号值与亮度值之间的差异(即U)。将RGB 轨道图像利用矩阵变换可以转换到YUV 空间,其转换公式如式(1)所示(RGB 取值范围均为0~255):
本文提出的基于YUV 空间的贪心算法选择及斜率探测扩充的钢轨表面区域提取方法分为三个阶段:首先RGB 色彩空间向YUV 色彩空间转换,同时绘制其V 分量灰度反转投影曲线,并经均值、中值变换得到轨面搜索曲线;其次寻找搜索曲线中的最大子序和区间的起止位置,初步确定轨面边界(粗提取);最后向粗提取确定的边界两侧进行一定距离的斜率探测扩充,获得完整轨面(精提取)。轨面区域提取算法流程如图4 所示。
图4 轨面区域提取算法流程图Fig.4 Flow chart of rail surface extraction algorithm
首先,假设沿轨面方向为轴,垂直轨面方向为轴,将实际铁路中采集的RGB 轨道图像(,)(以图1 两张轨道图像为例,图1(a)记作Rail_1,图1(b)记作Rail_2),通过式(1)中的矩阵变换转到YUV 色彩空间,并提取其V 分量灰度图像(,),如图3(a)第(9)幅子图所示,通过色彩空间变换极大减弱了环境光照、轨面阴影、锈迹和磨蚀缺陷等噪声干扰。
其次,计算灰度投影曲线,将V 分量灰度图像(,)视为一个×的矩阵,则由轨道图像矩阵中每列灰度均值组成1×维的矩阵()为:
式中,为坐标(,)的灰度值。随后绘制灰度反转投影曲线():
如图5所示的轨道图像灰度反转投影曲线()可以看出:绝大部分轨面区域的高于其他区域且高于曲线均值和中值,但少量其他区域也满足此要求。
图5 轨道图像的灰度反转投影曲线Fig.5 Grayscale inversion projection curve of rail image
因此本文利用反转曲线均值和中值确定一个阈值来变换该反转曲线,得到V 分量的灰度反转搜索曲线(),以此来减少非轨面区域的干扰,变换方式如下:
如图6 所示,通过阈值变换后,得到轨道图像V分量的灰度反转搜索曲线,划分出轨面候选区间,为下一步轨面区域粗提取奠定了基础。
由图6 可知,V 分量的灰度反转搜索曲线中有一个或多个候选的轨面区间,且真实轨面区间长度往往最大,因此只需要寻找搜索曲线中的最大子序和区间,并确定该区间的起止位置,该起止位置初步确定为轨面边界。
图6 V 分量的灰度反转投影搜索曲线Fig.6 Grayscale inversion projection search curve of V component
贪心算法主要解决使用单个数组作为输入来查找最大(或最小)元素(或总和)的问题,得到全局最优方案,该算法可以在线性时间内解决问题,满足轨面提取实时性要求。为此,本文采用贪心算法来实现轨面粗提取。
具体实现方法为:从反转搜索曲线()第一个元素开始,一直往后迭代,将该曲线中的元素一个一个累加,如果当前子序列的和小于0,则重新开始搜索(由于上一步骤采用了阈值变换,使得搜索曲线中的元素有正有负,可利用有效增益思想,即如果当前子序列的和小于0,下一个元素加上当前子序列构成的区间一定不是最大子序和区间),直到遍历完一次反转搜索曲线(),时间复杂度为(),空间复杂度为(1),算法伪代码如下。
轨面粗提取算法:
输入:()/*灰度反转搜索曲线*/
输出:1、1/*轨面初步左右边界*/
如图7(a)所示的钢轨截面图可知,轨面区域不仅包括轨头踏面,还包括轨头圆角处RCRH 区域(轨头踏面与轨头侧面交汇区域)。RCRH 区域由于与列车的车轮不直接接触,容易在其表面积攒灰尘泥土,且尘泥与轨面区域对比度较大,现有色彩空间难以将其划分到同一类别,如图7(b)所示。此外,铁路线路并非都是直线状,大多数是大半径曲线状,当列车通过曲线状轨道时,通常会出现轮轨两点接触的情况,且随着半径的减小轮轨磨擦增大,容易造成钢轨波浪磨耗,严重时会使RCRH 区域轨面剥离,如图7(b)切面2 左侧所示。因此对RCRH 区域的准确提取十分重要。
图7 钢轨头部特征分析图Fig.7 Analysis of rail head characteristics
如何精准快速地提取RCRH 区域,本文提出斜率探测扩充法来提取RCRH 在粗提取过程中未提取到的轨面区域。由图5 的轨道图像的灰度反转曲线可以看出,当RCRH 区域出现尘泥干扰时,轨面和非轨面之间有一个灰度变化的过渡距离,而当RCRH 区域无干扰时,轨面和非轨面之间灰度值是突变的。根据此特点,可分析灰度反转曲线粗边界两侧一定距离的斜率变化(由于RCRH 区域一般约占轨头踏面的40%,为使探测容错性高,探测距离取粗轨面宽度的50%)。
如图8 所示,由Rail_1 和Rail_2 粗提取确定的轨面边界两侧斜率变化曲线图可知(因粗提取确定的轨面区间已提取出,故将该区间内的斜率置为0,便于分析):当RCRH 区域存在干扰时,探测区域的斜率曲线呈现陡峰状,真实的边界在峰值附近,峰内侧(靠近轨面的一侧)类似谷底,即RCRH 区域斜率变化较大,且一直在攀升;峰外侧(靠近非轨面的一侧)类似山脉绵延,即非轨面区域斜率变化较小,且一直保持稳定,如图8(a)左右两侧、图8(b)的左侧所示。当RCRH 区域不存在干扰时,探测区域的斜率曲线只呈现山脉状,即全都是非轨面区域,即RCRH 区域的提取可在粗提取中完成,如图8(b)的右侧可知。
图8 粗略边界两侧斜率探测分析Fig.8 Slope detection analysis on both sides of rough boundary
因此可以选取一个合适的偏转角度作为阈值来截断该斜率曲线,如果有偏转角大于的位置,把满足该条件的所有位置中最中间的位置更新为最终轨面边界。具体实现步骤如下:
首先计算粗提取的轨面宽度:
式中,1、1 为粗提取轨面的左右边界。然后向粗提取的左右边界两外侧进行0.5×距离的斜率探测(以右侧为例)。
式中,为右侧探测区间,为其对应的斜率。随后计算出斜率对应的偏转角度。
式中,RDR 为偏转弧度,RDA 为偏转角度。接着给定一个合适的轨面扩充偏转角度,用它作为阈值来划分探测区间内候选轨面边界,并计算出最中间位置的边界到粗提取轨面右边界的距离_,该距离就是右侧要扩充的轨面宽度,计算方法如下:
式中,SRP 为候选轨面边界数组。同理可计算出左侧要扩充的轨面宽度_。最后根据需要更新轨面左右边界、:
式中,依然以右侧为例,当_存在,即_≠0时,即探测区间内有偏转角大于阈值的位置,此时需要更新右边界为1+_,如图9(a)Rail_1轨面右侧斜率探测曲线所示;当_不存在,即_=0 时即探测区间内没有偏转角大于阈值的位置,此时不需要更新,仍然保留粗提取右边界=1,如图9(b)Rail_2 轨面右侧斜率探测曲线所示。
图9 粗略边界右侧斜率探测精分析Fig.9 Slope analysis on right side of rough boundary
为验证本文轨面提取算法的有效性,选用提取精度和提取时间Time两个评价指标进行评价。本文实验所采用的软硬件配置:计算机配置为Intel Corei7 6700 CPU@3.40 GHz,8 GB 内存,64 位Win10 操作系统。编程集成开发工具IDE 为Anaconda Navigator中的Jupiter Notebook。编程环境为Python3,采用的框架有opencv、numpy、matplotlib 等。
由于算法提取的轨面边界和人工标注的轨面边界不完全一致,本文采用交并比(intersection over union,IoU)来评价算法提取结果的精度。IoU 评价标准比较简单,计算的是算法预测边框和人工标注边框的交集和并集之间的比值。
如图10(a)IoU 示意图所示。矩形边框是算法提取的预测结果,矩形边框是人工标注的实际结果,矩形边框、交并比IoU 计算方法如下:
图10 IoU 示意图及其简化图Fig.10 IoU schematic and simplified drawings
由于实际采集轨道图像当中,绝大多数轨面是垂直于图像的,计算矩阵边框的交并比可简化为数组集合的交并比,如图10(b)简化图所示。故本文采用简化后的交并比IoUs 来评价轨面提取结果精度,计算方法如下:
式中,L和R分别为算法预测的轨面左右边界坐标,L和R分别为人工标注的轨面左右边界坐标。
为了尽可能提高算法的轨面提取精度,本文从实验室收集整理的轨道图像数据集中随机选取50 张RCRH 区域带尘泥噪声的轨道图像(该数据集是实验室多年收集以及项目实施过程中铁路有关部门提供合作整理而成的,共有图片3 000 余张,其中带尘泥噪声的样本500 余张,含有疤痕、剥落、裂纹三类缺陷的样本465 张),测试精提取过程中不同偏转角阈值大小对轨面提取精度的影响,综合考虑提取精度的均值和方差两个指标,选择一个偏转角最优阈值(={5°,10°,15°,20°,25°,30°,35°,40°,45°,50°,55°,60°,65°})。
如图11(a)所示的提取精度均值图可知,当阈值很小的时候,探测区域中满足偏转角大于阈值的位置很多,从而扩充了大量非轨面区域,因此精度较低;随着值逐渐增大,满足偏转角大于阈值的位置逐渐减少,因此精度逐渐升高;但随值增大到合适值时再继续增大,满足偏转角大于阈值的位置越来越少,会导致真实轨面的RCRH 轨面无法充分扩充,此时精度又会逐渐下降。如图11(b)所示提取精度方差图也满足类似趋势,随着值逐渐增大时,精度方差会逐渐减小,随值增大到合适值时再继续增大,精度方差又会增大。综合考虑轨面提取精度均值和方差变化特点,本文把偏转角阈值设置为25°,此时的平均提取精度达0.923 7。
图11 IoU 示意图及其简化图Fig.11 IoU schematic and simplified drawings
在本实验室收集整理的轨道图像数据集中随机选取150 张轨道图像,其中50 张为RCRH 区域没有或有少量尘泥干扰的图像,100 张为RCRH 区域有大量尘泥干扰的图像。采用平均提取精度IoUs、提取准确率Accuracy、平均提取时间Time 作为定量分析的评价指标。
如表1 所示,本文算法在RCRH 区域不存在尘泥等噪声干扰时比该区域存在干扰时的提取精度和准确率要稍高,因为RCRH 区域存在噪声干扰时,离真实轨面较近非轨面区域也会受到一定程度的噪声干扰,此时容易把一部分非轨面区域划分到预测轨面中,导致精度下降。从总体分析:平均提取精度可达0.926 9,提取准确率可达96.67%,平均提取时间为25.95 ms,算法效果较好。
表1 本文算法提取结果分析Table 1 Algorithm extraction results analysis
将本文方法与水平投影法HP、竖直投影法VP、轨迹提取投影法TEBP、基于Hough 的列像素累积灰度法HPCG、列直方图最小值法CHMM、基于HLS 空间的轨道表面区域识别方法EHLS以及基于HSV 空间的轨面区域提取算法EHSV7 种轨面提取算法进行对比,并采用简化后的交并比IoUs 作为轨面提取的精度性能指标(当IoUs 大于0.8 时,判定算法对当前轨道图像轨面提取成功),算法运行10 次的平均时间作为其时耗性能指标。
如表2 所示,本文算法的提取精度高于其他对比算法,由于色彩空间转换需要一定的时耗,在提取耗时上略高于没有转换色彩空间的算法(如TEBP 和HPCG 等),但均低于进行了色彩空间转换的算法(如EHLS 和EHSV)。如图12 所示,HP 和VP 算法均是以灰度投影曲线为基础进行边界判定,前者取的是轨面图像中每列的白色像素个数的一半和投影曲线相交点作为边界,后者曲线中第一个连续10 个值都是1 或0 的点确定边界,这两种方法的时间复杂度均为(),但HP 算法需要手动定界,因此HP 算法时耗比VP 高,且这两种算法对轨道图像要求都太理想化,因此用在实际轨道图像中基本无效。TEBP 和HPCG 算法本质其实是一样的,都是利用灰度累积值最大的定长区间确定轨面边界,前者利用的列灰度均值搜索,后者利用的是列灰度和值搜索,这两种方法的时间复杂度均为(),相差不大,但由于环境光照不均和轨面复杂噪声影响了灰度分布,会导致结果整体偏移,轨面提取的精度不高。CHMM 算法与前两种算法类似,但本质不同,提取结果与它们相同纯属巧合。该算法以列直方图为基础按照固定轨面宽度间隔搜索最小值确认边界,但这最小值不一定出现在轨面区域,也可能出现在非轨面区域,偶然性大,准确率低,时间复杂度为()。EHLS 算法采用HLS 色彩空间中的H 分量图像,此分量可以消除光照的干扰,但此分量不能消除轨面噪声的干扰,因此利用H 值突变特征提取轨道图像中轨面边界精度不高,时间复杂度为(×),为算法中H 值探测分割线的条数。EHSV 算法采用HSV 色彩空间中的S 分量图像,此分量可以减弱光照不均、轨面噪声干扰,但不能消除RCRH 区域的尘泥干扰,对此区域也无相应处理,故提取精度有待提升,时间复杂度为()。本文算法采用YUV 色彩空间的V 分量图像,此分量极大降低轨道图像对光照的敏感度以及轨头踏面的噪声干扰,采用基于贪心算法选择的最大子序和区间法对轨面进行粗提取,采用斜率探测扩充法对实际轨面进行扩充,很好地保证了在RCRH 区域存在尘泥等噪声干扰时也能被完整地提取,时间复杂度也为(),但由于初提取时采用贪心算法以及精提取时只需要探测一个粗提取确定的轨面距离,时间消耗仍然控制在线性阶,因此本文算法提取效果较优。
图12 多种轨面提取算法对比结果Fig.12 Comparison results of various rail surface extraction algorithms
表2 不同轨面提取算法性能对比Table 2 Performance comparison of different rail surface extraction algorithms
本文针对轨道图像具有环境光照不均,轨头踏面存在各种磨蚀缺陷、阴影、锈迹,RCRH 区域存在尘泥难以提取等问题,提出了基于YUV 空间的贪心算法选择及斜率探测扩充的钢轨表面区域提取方法。新方法基于YUV 空间V 分量,采用贪心算法选择最大子序和区间进行轨面粗提取,斜率探测扩充法进行轨面精提取,具有以下4 个优点:
(1)采用基于YUV 色彩空间极大降低了轨道图像对环境光照的敏感度,且极大减弱了轨头踏面各种磨蚀缺陷、阴影、锈迹的干扰。
(2)基于贪心算法选择的最大子序和区间的轨面粗提取算法,无需预先给定轨面宽度,无需轨面在图像中央,无需手动提取边界,且速度快。
(3)基于RCRH 区域斜率探测扩充法的轨面精提取算法,能很大程度地提升轨面提取精度,且只需要探测粗提取轨面宽度的距离,计算量小,耗时少,满足实时性要求。
(4)本文轨面区域提取算法可变参数较少,易于调节,可维护性高。
本文算法泛化能力较好,轨面区域提取精度可达0.926 9,提取准确率可达96.67%,均高于相关算法,平均提取时间为25.95 ms,较其他方法有一定的减少,在轨道缺陷检测中具有一定的实用价值。
本文仅研究了轨面与轨道图像垂直的情况,轨面与轨道图像存在偏转角度的情况和算法时耗的进一步优化将是后续研究的内容。