铁路路基病害智能检测方法

2021-05-14 06:29麻哲旭
计算机工程与应用 2021年9期
关键词:残差卷积雷达

麻哲旭,杨 峰,2,乔 旭

1.中国矿业大学(北京)机电与信息工程学院,北京100083

2.中国矿业大学 煤炭资源与安全开采国家重点实验室,北京100083

截至2019 年底,我国铁路里程达到13.9 万公里以上,居世界第一位。随着铁路技术的快速发展,铁路路基病害影响铁路安全运营的问题日渐突出,其中路基下沉和翻浆冒泥尤为常见[1]。车载地质雷达检测方法以其轻便快捷、抗干扰能力强、分辨率高、快速无损等优点,已成为各国铁路路基检测的一种常用工具[2-4]。图1 为车载地质雷达检测青藏铁路路基现场照片。如图2 所示为采集地质雷达检测数据需要借助的车载地质雷达控制系统。铁路路基车载地质雷达的检测数据量非常庞大,平均每30公里产生约23 GB 的地质雷达数据,然而,目前对于地质雷达数据的解释仍以人工为主,效率低,无法形成统一标准,且依赖于经验丰富的专家。因此,如何对铁路病害进行自动识别,提高识别的效率和精度具有重要意义。

图1 青藏铁路路基车载地质雷达

图2 车载地质雷达控制系统

目前对于铁路路基病害的识别算法研究主要分为对探地雷达B-scan 剖面显示图像和A-scan 单道数据进行对比识别两种。其中针对探地雷达B-scan 剖面显示图像的识别方法大多基于雷达图像剖面灰度图,针对灰度图像人工设计病害特征,随后将特征利用支持向量机、浅层神经网络等分类算法训练,得到雷达图像识别结果。铁路路基病害的形态和尺寸多种多样,人工设计的特征无法充分提取路基病害特征,SVM(支持向量机)和浅层神经网络[5-7]识别精度难以满足实际应用需要。随着深度学习在图像分类任务[8-10]中取得广泛成功后,基于卷积神经网络的图像分类算法开始被应用到铁路路基病害分类任务[11],但单纯对病害图像进行分类无法给出病害具体位置。近年来,许多基于卷积神经网络的方法应用到目标检测任务中,这些方法可以分为基于候选区域的双阶段检测方法(Two-stage)和基于回归单阶段检测方法(One-stage)两大类。基于候选区域的双阶段检测方法主要为R-CNN[12]系列算法,例如SPP-Net[13]、FastR-CNN[14]、Faster R-CNN[15]和Cascade R-CNN[16]等。这些方法使用选择性搜索[17]与区域建议网络[15]产生物体建议框,导致具有较高的计算复杂度。Faster R-CNN和Cascade R-CNN算法开始应用于铁路路基病害检测任务中[18-19],但由于探地雷达数据属于海量数据,该方法无法实现实时检测,且对大尺度路基病害检测效果不佳。

为了在保障精度的同时能兼顾检测速度,一些通过使用卷积神经网络直接预测不同目标类别与位置的方法被提出。这类方法被称为端到端的单阶段检测方法,具有检测快速,可以从图像中直接回归出检测结果的特点,主要包括YOLO[20]、SSD[21]、YOLOv2[22]与YOLOv3[23]等。YOLOv3的性能在精度上最佳,但由于YOLOv3在512×512 的输入分辨率下最小特征图尺寸为16×16,相比SSD 的最小特征图尺寸较大,导致YOLOv3 对一些大尺寸物体的检测效果不佳,难以检测大尺度的铁路基病害。

由于检测算法的复杂性,算法实现实时检测往往需要昂贵的计算资源。为了满足在嵌入式平台上的实时检测需求,一些轻量化的目标检测算法被提出,如Tiny YOLOv2、Tiny YOLOv3,分别对应YOLOv2和YOLOv3的精简版本。其中,Tiny YOLOv3 的检测速度比Tiny YOLOv2略低,精度上优于Tiny YOLOv2。由于对模型进行了精简,轻量化YOLO 模型检测精度不及原始版本,但检测速度较快。Tiny YOLOv3 模型主要由卷积层和池化层构成,没有残差结构,只使用两个不同尺度的输出层。铁路路基病害的形态复杂,轻量化YOLO模型虽满足实时检测的需要,但由于特征提取网络较浅,不能充分提取病害特征。轻量化的卷积神经网络模型适合嵌入式工程中的应用,雷达数据后期处理对于准确率要求较高,一旦发生错检和漏检,不利于后续的铁路路基病害整治。

综上所述,现有的铁路路基病害检测方法可分为人工设计特征与传统机器学习分类算法结合、利用基于候选区域的卷积神经网络进行识别。人工设计特征无法充分提取铁路路基病害特征,传统的机器学习分类算法难以应对复杂的路基环境,而基于候选区域的卷积神经网络无法实现实时检测,难以满足工程需要。

如图3所示,本文对YOLOv3网络结构进行改进以适应铁路路基病害特点,提出了LS-YOLOv3 检测模型。针对特征图尺度偏大的特点设计了深度残差网络来更好地提取铁路路基病害特征,并利用深度残差主网络特征图构建4 个尺度上的特征金字塔,在512×512 输入分辨率下使YOLOv3 的最小特征图从16×16 缩小为8×8,从而使网络有更大的感受野,并在4个尺度上与深度残差网络进行特征融合,形成铁路路基病害实时检测模型。提出的LS-YOLOv3模型可以针对铁路路基病害特点更好地检测,在保证精度的同时极大地缩短了检测时间,可以实现铁路路基病害在高性能GPU 计算平台上的实时检测。

图3 提出的LS-YOLOv3网络结构示意图

1 铁路路基病害检测模型

本文提出的铁路路基病害实时智能检测方法流程为:首先,对车载探地雷达获取的铁路路基病害B-scan剖面灰度图标注病害位置和病害类别,生成标注文件,并划分数据集为训练集和测试集;为了避免过拟合并提升模型性能,采用了混合(mixup)[24],随机翻转和随机裁剪的方式对训练集数据进行扩充;随后,使用LSYOLOv3网络预测铁路路基病害位置坐标、类别和置信度,具体方法如下:设计了深度残差网络提取雷达图像病害特征,并将其分成4个分支,在4个尺度上与深度残差网络进行特征融合,形成多尺度预测网络并输出预测的边界框,利用非极大值抑制的方法剔除重复的边界框,通过梯度下降法迭代计算获得铁路路基病害检测模型;最后,使用均值平均精度(mAP)和每秒传输帧数(FPS)两项指标评价模型,选择最佳的模型检测路基病害,得到铁路路基病害检测结果。

2 数据集建立与扩充

2.1 数据集建立

车载地质雷达探测以电磁波在有耗介质中传播规律为理论基础,利用天线向铁路路基中发射高频率、宽频带的短脉冲电磁波。铁路路基是由级配碎石、空气、路基土、水等不均匀介质构成[5],这些不同的介质之间会形成介电性质不同的界面。病害路基与正常路基在含水量和形态上有所不同,同时存在界面混杂,路基深部结构的介电性质也会发生变化。电磁波在遇到介电性质不同的介面时,会发生反射和透射,雷达接收机的天线可以接收反射的电磁波;透射的电磁波会继续向路基深部传播,当再次遇到介电性质不同的界面时又发生反射和透射;地面上的接收机天线通过不断接收反射信号即可获得一道雷达数据,当车载地质雷达在沿测线移动时,通过组合多道雷达数据,就会形成一张雷达剖面图。

如图4所示,通过车载地质雷达对铁路路基进行实地探测扫描,从而获得了铁路路基B-scan 剖面灰度图。铁路路基地质构造复杂,路基病害形状和尺寸各异,对于病害的识别需要借助有丰富经验的专家。如图5 所示,通过专家对雷达数据进行解释并标注翻浆冒泥和路基下沉两种病害。图6和图7为典型的翻浆冒泥病害和路基下沉病害雷达图。对于专家也无法准确判断的铁路路基病害图,将其从数据集中剔除。通过专家判断并人工标注,构建了铁路路基病害数据集,数据集中共有铁路路基病害图403张,其中翻浆冒泥261处,路基下沉279处,由于一张铁路路基病害图中可能含有多种病害,故样本总计数目小于各类别样本数目的和。铁路路基病害数据集中的数据分布如表1所示。

图4 车载地质雷达实地探测

图5 专家解释雷达数据

图6 翻浆冒泥病害

图7 路基下沉病害

表1 铁路路基病害数据集中数据分布

2.2 数据扩充

为了避免过拟合并提升模型性能,类似于光学影像中混合(mixup)[24]的数据扩充的方法,对训练集数据进行了扩充,具体的扩充方法为:

其中,(pi,li)和(pj,lj)为从训练集中随机选取的样本,pi和pj为扩充前的病害图,li和lj为扩充前标签中病害类别信息,x~ 为扩充后的病害图,为扩充后的标签信息,α为混合系数,其取值范围在0到1之间。扩充结果如图8所示。同时,在训练过程中采用随机翻转和随机裁剪的方式进行数据扩充。通过扩充数据集可以使卷积神经网络拥有更好的鲁棒性,提高识别精度。

图8 混合(mixup)扩充方法

3 深度残差网络提取铁路路基病害特征

网络的深度越深,往往精度就越高,为了使深层卷积神经网络更加容易训练,有关学者提出了残差网络(ResNet)[25]。如图9 所示,在残差网络中采用残差块结构,每隔三层使用一次快捷连接(shortcut connection),把第一层的输出特征加至第三层特征层中,使网络在反向传播过程中梯度不会为0,更加有助于神经网络中的信息流动,且易于训练。

图9 残差块

图10 设计深度残差网络提取铁路路基病害特征

针对铁路路基病害通常尺度较大的特点,LS-YOLOv3设计了深度残差网络提取铁路路基病害特征,其具体结构如图10 所示。在深度残差网络中,第一个卷积层利用32 个3×3 大小的卷积核对分辨率为512×512 分辨率的雷达图像进行卷积,得到512×512×32维度的输出;随后,用64个3×3大小的卷积核对上层网络的输出进行步长为2 的下采样操作,并在其后添加残差块,得到256×256尺寸的特征图;然后,对上层输出再进行步长为2的下采样操作,并添加了多组残差层。在深度残差网络中,总共进行了6 次下采样操作,所以深度残差网络的输入分辨率应为64 的倍数。在所有的卷积层上,均添加了批量标准化层(batch normalization layer)[26]。

另外,在第4章中,LS-YOLOv3选取分辨率为64×64、32×32、16×16、8×8的特征图构成特征金字塔[27],对特征图上采样并进行特征融合,并在四个尺度上分别进行病害检测。

与Darknet-53相比,设计的深度残差网络可以更好地提取雷达病害特征,实验表明针对铁路路基病害雷达图像,LS-YOLOv3显著地提高了模型性能,详见第4章。

4 多尺度预测网络

LS-YOLOv3 采用多尺度预测网络在4 个尺度的特征图上回归铁路路基病害的类型和位置。如图3 右侧部分所示,在深度残差网络中将8×8、16×16、32×32、64×64的特征图分成4个分支并进行特征融合,其中4个分支均可检测病害,以适应不同尺度病害的检测。在4个分支中,均添加了卷积层,并对分辨率为8×8、16×16、32×32 的分支进行2 倍大小的上采样操作,从而使上采样后的数据可以进行特征融合。对3 个分辨率下的上采样数据进行了级联,使不同分支中可以共享多个尺度下的语义信息,并对深度残差网络中提取的特征进行特征融合,增强了网络的预测能力。

对于每张输入的雷达病害图,预测一个包含病害边界框位置、病害类型和病害置信度的三维张量。具体地,LS-YOLOv3将特征图划分成N×N的网格(不同尺度的特征图,N大小不同),网络通过预测病害位置相对于网格的坐标偏移量从而得到病害的实际位置坐标,即预测4个坐标:tx、ty、tw、th,其定义如下:

其中,cx和cy表示一个网格与图像左上角的横纵距离,pw和ph表示锚点框的宽和高,通过k-means 聚类的方法对训练数据集的边界框做聚类得到。

为每个网格预测3个不同的边界框,其输出的维度为N×N×(3×(4+1+2)),即4 个边界框的偏移量,1 个病害置信度和2个病害类型。最后,通过非极大值抑制的方法剔除重复的检测框,得到最终的铁路路基病害检测结果。

表2 不同方法在测试集上的检测结果

5 实验与结果

本实验在Linux(Ubuntu18.04)系统环境下基于TensorFlow深度学习框架[28]实现,在配置有英特尔酷睿i7-7800X CPU,英伟达GeForce RTX 2080Ti GPU,16 GB内存的PC机上运行。

5.1 训练细节

在相同的尺度下训练模型,将铁路路基雷达图像缩放到512×512像素输入卷积神经网络,由深度残差网络提取铁路路基病害特征,使用4个不同尺度的卷积特征图预测病害的位置坐标、类型和置信度。通过k-means聚类的方法对训练数据集进行聚类自动产生锚点框,LS-YOLOv3 使用4 个尺度12 个锚点,分别为:(100×120)、(152×150)、(155×38)、(212×95)、(243×53)、(314×39)、(316×132)、(346×71)、(481×55)、(616×36)、(663×82)、(904×49)。

由于训练集样本较少,在实验中首先加载Darknet-53[23]在COCO 数据集[29]上的预训练模型用来初始化深度残差网络中的参数,在此基础上,应用自制的数据集对模型进行进一步优化。

整个训练过程中,训练轮次Epoch 为500,在前50个Epoch中冻结加载的预训练模型参数,训练深度残差网络中的后5层参数和网络的预测部分进行微调(Finetune)。在50个Epoch后,解冻模型训练全部的参数。训练中批量大小(Batch_Size)设置为3,动量(momentum)设置为0.9,权重衰减(weight decay)设置为0.000 5,学习率初始为10-3,在第100个Epoch时减小为10-4。

5.2 实验结果

本文使用均值平均精度(mAP)与每秒传输帧数(FPS)两项指标评价模型。对于平均精度,选取AP50作为评价标准,即检测框与真值框的交并比(IoU)阈值为50%。

表2显示了HOG+SVM、Faster R-CNN、Cascade RCNN、YOLOv3、Tiny YOLOv2、Tiny YOLOv3,以及LSYOLOv3的对比实验。LS-YOLOv3以82.67%的均值平均精度(mAP)领先其他算法,并且在512×512的输入分辨率下FPS达到32.26 frame/s,满足实时检测要求。

加入了传统的HOG(方向梯度直方图)特征结合SVM分类器的算法进行对比实验。从自制的路基缺陷数据集中裁剪出每种缺陷类型的正样本,从非目标区域随机裁剪出负样本,随后,将训练样本的大小调整为224×224,这与Faster-RCNN 中输入特征检测网络的尺寸一致。选择了线性核函数的SVM分类器以保证实时性。由于SVM 分类器是二元分类器,分别训练了2 个线性SVM分类器用来分类提取的翻浆冒泥病害和路基下沉病害HOG 特征。在雷达图像的检测阶段,使用224×224大小的滑动窗口进行检测,并利用非极大值抑制的方法剔除重复的检测框。

从表2中可以看出,传统的HOG+SVM算法在铁路路基病害数据集上获得了34.96%的mAP,与LS-YOLOv3(82.67%)存在较大差距,且检测速度较慢,无法实现实时检测。Faster-RCNN 算法和Cascade R-CNN 算法分别获得了65.32%与78.36%的mAP,分别比LS-YOLOv3低17.35与4.31个百分点。在速度上,Faster-RCNN算法和Cascade R-CNN 算法检测速度相近,均无法实现实时检测。YOLO 系列的算法均实现了实时性能,其中Tiny YOLOv2 与Tiny YOLOv3 的检测速度分别达到232.24 frame/s 与208.76 frame/s,轻量化的检测模型的检测速度很高,适合需要在嵌入式平台上部署模型的场景。相比于其他非轻量化的目标检测算法,Tiny YOLOv2 与Tiny YOLOv3 的检测精度较低,分别为45.17%和53.86%。对于铁路路基病害检测,较低的检测精度不利于后续的铁路路基病害整治。YOLOv3 算法在数据集上获得了不错的检测精度并实现了实时检测,这是因为YOLOv3算法相比Faster-RCNN拥有更深层的特征提取网络并采用了多尺度预测,从而获得更好的检测结果,且没有产生候选区域的步骤,可以实现实时检测。

提出的LS-YOLOv3算法在检测精度上比其他算法高,且以32.26 frame/s 实现了实时检测,与YOLOv3 算法相比,LS-YOLOv3 采用了更深层次的残差网络且融合了更丰富的语义信息进行预测,所以在检测速度上低于YOLOv3 算法。相比YOLOv3 算法,LS-YOLOv3 在翻浆冒泥病害和路基下沉病害上的准确率更高,分别领先4.05 和6.84 个百分点,说明LS-YOLOv3 可以更好地针对铁路路基病害的特点进行检测。LS-YOLOv3 算法在路基下沉病害上领先YOLOv3 较多,这是由于LSYOLOv3在特征提取网络中拥有更大的感受野,能更好地适应路基下沉病害尺度较大的特点。

图11 显示了LS-YOLOv3 方法在测试集上的检测效果。可以看到,本文提出的模型对铁路路基翻浆冒泥病害和路基下沉病害的检测具有较好的鲁棒性。

图11 LS-YOLOv3在测试集上的检测效果(红色框为路基下沉,蓝色框为翻浆冒泥)

6 结束语

本文提出了一种铁路路基病害智能检测方法,在配有英伟达GeForce RTX 2080Ti GPU 的计算平台上实现了实时检测,设计了一种铁路路基病害检测模型:LS-YOLOv3。该方法利用混合等方法扩充数据集,针对铁路路基的特点设计了深度残差网络提取铁路路基病害特征,并采用多尺度预测网络在4个尺度上进行特征融合,使不同尺度上的卷积特征可以共享语义信息,利用特征金字塔进行病害预测,形成铁路路基病害实时检测模型。与传统方法和现有的目标检测方法相比,LS-YOLOv3在保证实时检测的同时达到了最大的检测精度。在后续工作中,将实现对雷达原始数据的识别,并将算法推广到其他类型铁路路基病害的研究中。

猜你喜欢
残差卷积雷达
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
DLD-100C型雷达测试方法和应用
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
雷达
基于傅里叶域卷积表示的目标跟踪算法
基于空时二维随机辐射场的弹载雷达前视成像
现代“千里眼”——雷达