董文波,李 晨,熊敏君,田 野,肖 雄,姚巍巍
(株洲中车时代电气股份有限公司,湖南 株洲 412001)
截止2022年底,我国电气化铁路运营里程已突破11万公里,其中高速铁路(简称“高铁”)4.2万公里,保障规模庞大的高铁运营安全是我们面临的重大课题。车体、轮对和受电弓等是高铁系统中重要的零部件,也是动车组的重要组成部分。受电弓是动车组获取外界电能的唯一途径,长期运行导致受电弓碳滑板不断磨损变薄,影响动车组的正常供电甚至导致受电弓拉弧、灼伤剥离等其他故障。轮对是动车组实现走行功能的最重要部件,不仅承受着动车组全部的重量,而且还要传递动车与钢轨间的驱动力和制动力。当轮对存在磨损时,往往会给车轮承轴和钢轨带来巨大的额外冲击载荷,造成严重的安全隐患。因此,对高铁关键零部件进行实时故障诊断具有重要意义[1-3],其中,对高铁关键零部件进行快速且准确的定位是故障诊断的前提。
随着传感器技术的发展,相机已成为轨道交通领域运用最广泛的传感器之一,基于图像的非接触式目标检测方法也在该领域得到广泛应用。以AlexNet[4]为界限,现有的图像目标检测算法主要分为传统方法以及深度学习方法。传统方法通过“特征提取+目标分类”完成目标检测[5-8]。深度学习方法根据检测过程是单阶段还是双阶段,又分为基于候选框的目标检测方法[9-11]及基于回归的检测方法[12-16]。随着深度学习技术的发展,现有基于深度学习的目标检测方法在检测精度与速度上远超传统方法。文献[17-18]通过工业相机进行受电弓数据采集,并通过深度学习算法确定受电弓位置。文献[19-20]采用离线分析的方法,利用目标检测算法对采集的轮对踏面数据进行缺陷检测。这类方法在动车组低速运行或是数据采集装置与关键零部件相对静止的情况下能够取得较好的检测效果;但当数据采集装置与关键零部件之间有相对高速运动时,则会由于运动模糊或帧间视差过大等问题,导致无法在图像中准确地定位关键零部件,难以进行实时在线检测。超高速脉冲相机能够实现每秒钟数万帧的数据采集,可以有效避免工业相机在相对高速运动场景存在的运动模糊以及帧间视差过大的问题。超高速脉冲相机的数据为由0和1组成的脉冲流,现有的利用脉冲神经网络(spiking neural network,SNN)进行目标检测的方法主要有基于代理梯度的SNN 训练方法以及基于人工神经网络(artificial neural network,ANN)转SNN的训练方法,但是相较ANN算法,现有SNN算法无论是在训练难度以及模型部署上,均存在较大的差距,极大地增加了直接利用脉冲数据进行目标检测的难度。
针对上述直接利用工业相机以及超高速脉冲相机对高铁关键零部件进行定位存在的各种问题,本文提出一种基于脉冲数据重构的高铁关键零部件检测算法,其利用超高速脉冲相机作为数据采集装置对运行中的高铁进行数据采集,避免了工业相机存在的运动模糊以及帧间视差过大的问题。针对脉冲相机数据密度低、训练难度大等问题,本文采用先重构后检测的思想,即首先将脉冲数据重构为高清灰度图像,在此基础上进行关键零部件检测的模型训练与加速,从而能够实现对运行中的高铁关键零部件进行检测。
不同于普通工业相机,脉冲相机在进行数据采集的过程中,所有感光器件并不同步地按相同的曝光时长进行曝光,而是持续地捕获光子,当感光位置的累计光强超过设定阈值,就产生一个脉冲信号。该过程的数学描述如下:假设第i行第j列像素的光强值为Iij,在时间0~t内对它进行积分,得到该感光位置的累计光强为
定义光强阈值为T。当Sij(t)大于等于T时,第i行第j列的像素触发脉冲;否则,不触发脉冲。因此,第i行第j列像素的脉冲触发状态可以表示为
将所有像素的瞬时脉冲触发状态按行排列,得到当前时刻t的脉冲帧,脉冲相机采集脉冲流数据的过程被看作是不断重复生成当前时刻脉冲帧的过程,其中每一个像素位置都是由0或1组成。
由上述超高速脉冲相机成像原理可知:
1)单个像素位置的光照强度与单位时间内触发的脉冲数量成正比,单位时间内触发的脉冲数量越多,光强越大。故可通过统计一段时间内触发的脉冲数量来还原真实光强,从而还原图像在该像素位置的亮度,如图1(a)所示。其中,时间窗口T1~T2为虚拟曝光时间,大小可调。
图1 脉冲重构原理Fig.1 Principle of spike-based reconstruction
2)单个像素位置的光照强度与两脉冲之间的间隔大小成反比,两个脉冲之间的间隔越小,光强越大。故可通过计算脉冲间隔的倒数来还原像素位置的光强,从而还原图像在该像素位置的亮度,如图1(b)所示。
图像显示了特定时刻所有像素位置对光强映射的空间排布,利用上述方法可以估计任意时刻光强,从而实现基于脉冲数据的图像重构[21]。
本文所提方法依据超高速脉冲相机原理,首先将在高铁运行正线上采集的脉冲数据重构为高清晰灰度图像数据并进行数据清洗与标注,然后利用YOLOv8目标检测算法对标注后的数据进行训练,最后对训练后的模型进行TensorRT加速处理,从而使模型具有更好的实时推理能力。本文所提算法整体框架如图2 所示。由图可知,该算法主要包含2 个模块:基于脉冲数据的高铁场景图像重构、基于重构图像的高铁关键零部件定位。
图2 高铁关键零部件检测算法总体设计Fig.2 Overall design of detection algorithm for key components on high-speed railways
由于脉冲累计重构是通过统计虚拟曝光时间内所触发的脉冲数量来还原光强大小的,和普通工业相机类似,在高速运动场景下存在运动模糊现象。因此,本文的重构方法在脉冲间隔重构原理的基础上增加了一系列后处理,从而达到更好的成像效果。本文所提图像重构方法具体流程如图3所示。
图3 基于脉冲数据的图像重构Fig.3 Image reconstruction based on spike data
根据脉冲间隔成像的原理,利用本文所提方法,由原始脉冲数据重构出高清晰度灰度图像,具体步骤如下:
1)将单帧 脉冲数 据表示 为Sm={xi,j,m},m∈[1,n],i,j∈[1,1000]。其中,xi,j,m表示第m帧脉冲数据像素位置为(i,j)的取值,xi,j,m∈{0,1}。
2)对每个像素位置,计算脉冲间隔。设第m帧与第k帧在像素位置(i,j)处分别触发脉冲,即xi,j,m=1,xi,j,k=1,记该像素位置的脉冲间隔为
3)设由脉冲数据重构的图像表示为Im={pi,j,m}。其中,pi,j,m表示第m帧图像在像素位置(i,j)处的取值。重构的图像在像素位置(i,j)处的亮度表示为
4)计算1~n帧每个像素位置的所有脉冲间隔,由式(3)和式(4)可得重构后每个像素位置的值。为防止局部过曝,计算单帧图像全局亮度,具体为
式中:Bi,j——像素点(i,j)的亮度值;H——图像的高度;W——图像的宽度;ε——极小量。
式中:α——调整系数。
5)对每个像素点(i,j),利用亮度系数与局部亮度计算像素位置的值,具体为
式中:g——增益因子,用来调节像素位置的取值;round——取整函数。
6)对重构结果进行中值滤波,去除椒盐噪声,具体为
式中:median(·)——对窗口内的像素值进行排序取中位数,滤波窗口是以像素点(i,j)为中心,大小为n×n的矩形;B_m'(i,j)——中值滤波后位置(i,j)的亮度值。
7)对滤波后的结果进行增强处理。根据滤波后图像的拉普拉斯变换矩阵的方差值l_var,判断图像的微小变化以及纹理信息并作相应处理,处理方式为
鉴于此,本文拟从这些常用词的造词和词义方面,结合构词理据对有借代意义的词作理论上的分析和描述,总结归纳常用词中借代意义的不同类型、规律,并就辞书中常用词借代义的释义体例及模式进行探讨,以供辞书编纂和修订时参考。
式中:Bfinal(i,j) ——像素位置(i,j)最终的亮度值。
8)对每个像素位置完成相应的操作,即可完成脉冲数据到图像数据的重构。
对于重构后的图像数据,本文选择YOLOv8 作为基本网络模型进行目标检测模型训练。相较YOLOv5网络,YOLOv8利用C2f替换C3,通过更多的分支跨层连接对残差特征进行学习,具有更强特征表达能力。此外,其利用快速空间金字塔池化(spatial pyramid pooling-fast,SPPF)替换空 间金字 塔池化(spatial pyramid pooling,SPP)进行特征连接,采用多个小尺寸池化核级联代替SPP 模块中单个大尺寸池化核,在融合不同感受野的特征图、丰富特征图的表达能力的情况下,进一步提高了运行速度;在Neck 层采用PAN结构,加强网络对不同缩放尺度对象特征融合的能力;最后在Head层进行输出结果预测时,针对目标定位中的分类与回归相冲突的问题,Head层将分类和回归进行解耦,分别对目标的类别以及位置进行预测,大幅度提高模型的收敛速度。YOLOv8模型结构如图4所示。
图4 YOLOv8 网络结构示意Fig.4 Schematic diagram of YOLOv8 network
TensorRT 是NVIDIA 的深度学习推理优化器,通过算子融合、量化、内核自动调整、动态张量显存和多流执行等技术,实现加速网络推理。为了进一步提高模型的实时推理能力,本文采用TensorRT对训练好的模型进行加速处理。由于本文采用Pytorch 模型搭建,无法直接转换为TensorRT可读取的参数格式,因此在利用TensorRT 进行优化时,先将Pytorch 模型转换为TensorRT支持的Onnx格式模型,再进行引擎优化和执行推理,从而完成模型的加速。
为了对本文所提高铁关键零部件检测算法进行验证,分别进行基于脉冲数据的重构实验以及基于重构图像的关键零部件检测试验,通过分析试验结果对本文算法的有效性进行验证。
超高速脉冲相机作为传感器负责数据的采集,采集频率可达每秒两万帧。数据采集系统从相机前端芯片捕获脉冲数据,并通过软排线与脉冲传感器连接,对采集所得数据进行前处理和封装,再通过光纤与上位机进行连接,通过外部设备进行采集端的控制与可视化处理。超高速脉冲相机参数如表1所示。
表1 超高速脉冲相机参数Table 1 Parameters of the ultra-high-speed spike camera
通过在高铁运行正线路侧搭建上述数据采集系统,对沿线运行的高铁进行数据采集,累计采集80 余趟高铁运行数据,共得原始脉冲数据1.2 TB,数据采集场景及采集所得原始脉冲数据示例分别如图5(a)和图5(b)所示。
图5 数据采集Fig.5 Data acquisition
使用Python语言和Pytorch框架进行原始算法开发,操作系统为Ubuntu18.04,GPU为GeForce GTX3090。
目标检测模型性能所用评价指标如下:
式中:R——召回率;P——准确率;TP——检测到的类别与真实类别一致的样本数量;FP——检测到的类别与真实类别不一致的数量;FN——存在未被检测的标签数量;PmA——所有类别样本的精度平均值;N——类别数。
为对本文所提重构算法进行验证,分别选取静止场景以及运动场景的高铁脉冲数据,利用本文所提重构算法、脉冲累计重构与脉冲间隔重构3 种重构算法同时对上述脉冲数据进行图像重构,结果如图6所示。可以看出:
1)脉冲累计重构出来的图像在静止场景下结果清晰,且无明显噪点;在运动场景下,出现明显运动模糊,故该方法不适用于高速运动场景的图像重构。
2)脉冲间隔重构的图像则无运动模糊,但由于原始脉冲数据含有较多的随机噪声,脉冲间隔重构的结果含有较多噪声。
3)采用本文所提方法重构的图像既没有出现运动模糊现象,也没有明显的噪点。
进一步的,对本文所提重构方法在不同亮度区域所触发的脉冲数量进行定量分析,结果如图7所示。对于重构后的灰度图像,随机选取不同灰度值的8 个典型像素点,其在图像中的位置如图7 中Pixel 1~Pixel 8所示,统计每个像素点在100 帧内累计触发的脉冲数量。可以看出,脉冲触发数量和像素亮度之间的正比关系,即重构结果符合超高速脉冲相机脉冲触发原理,这说明了本文所提重构方法能够正确地还原不同像素位置在任意时刻的光强。
图7 不同像素点触发脉冲数量Fig.7 Number of triggered pulses at different pixels
为了进一步对本文所提重构方法效果进行验证,分别对静止场景下3 种重构结果进行灰度图对比分析,结果如图8所示。可以看出,3种图像重构方式所得结果灰度图曲线的大致走势相近,即3 种重构方法重构出的结果相似;且本文重构方法与脉冲间隔重构灰度图分布基本一致,即本文所提重构方法在不改变图像灰度分布的情况下,能够很好地消除脉冲间隔重构的异常噪点;相较图像累计重构方法,本文所提重构方法无运动模糊现象且具有更好的图像锐度。
图8 不同重构方法灰度图分析Fig.8 Analysis of grayscale images from different reconstruction methods
完成上述由脉冲数据到图像数据的转换,对重构后的图像进行关键帧抽取,最后得到灰度图像数据5 100余张。对数据集进行关键零部件标注,并按照训练集与测试集7∶3的比例进行划分,训练集、测试集数据分布如表2所示。
表2 数据集划分Table 2 Division of the dataset
利用划分好的数据集,对模型进行200 个周期(epoch)的基础训练,其PR 曲线以及混淆矩阵如图9所示。由图可知,该模型对车体、轮对以及受电弓的检测PmA值均在99%以上,证明该模型具有较好的性能。模型具体性能如表3所示。
表3 关键零部件检测试验结果Table 3 Experimental results of detection on key components
图9 PR 曲线及混淆矩阵Fig.9 PR curve and confusion matrix
完成模型的基础训练之后,利用TensorRT对模型进行推理加速,并将加速前后的模型部署于GTX3090。取测试集对模型的平均精度以及推理时间进行对比测试,其中推理时间取测试集所有图像帧的平均值。未加速前,平均单帧推理时间为5.9 ms;加速后,平均单帧推理时间为3.5 ms。相比未加速的模型,TensorRT 加速后的模型效率约提高了41%。具体性能如表4所示。
表4 TensorRT 加速前后性能对比Table 4 Performance comparison before and after TensorRT acceleration
对加速后的模型在测试集进行验证,效果如图10所示。可以看出,加速后的模型仍能够较好地对关键零部件进行检测;且对于较小的关键零部件,如车轮以及受电弓等,检测结果置信度也均在0.8 及以上,即TensorRT 加速后的模型在提高检测时效性的同时,依然有较高的检测精度。
图10 模型在测试集上检测效果Fig.10 Detection results of module on the test dataset
针对直接利用工业相机以及超高速脉冲相机对高铁关键零部件进行检测存在的各种问题,本文利用先重构再检测的技术路线,取得了较好的效果。首先,针对脉冲累计成像存在运动模糊以及脉冲间隔成像存在较多噪点的问题,本文在脉冲间隔成像的基础上,利用全局光强修正局部光强,并通过滤波和局部增强处理,有效解决重构结果含有噪点的问题,实现任意时刻的脉冲数据到高清灰度图像的转换;其次,利用重构后的灰度图像训练高铁关键零部件目标检测模型,并利用TensorRT 实现模型加速,最终实现98.7%的平均精确度以及3.5 ms 的单帧平均推理时间,为算法的工程化应用奠定了基础。总的来说,本文为高铁关键零部件检测提供了一种新的可行性方案,该方案能够实现对运动中的高铁关键零部件快速准确检测,对提高高铁安全可靠运营具有重要意义。虽然利用先重构再检测的方法能够实现对高铁关键零部件更高精度的检测,但是图形重构过程所消耗的时间较长,后续考虑对图像重构过程进行加速,或是直接利用SNN目标检测方法对脉冲相机采集的数据进行检测。