基于改进Faster R-CNN的轨旁设备识别算法研究
2022-11-30蔡静娴毕江海王继军张望夏文余建安
蔡静娴,毕江海,王继军,张望,夏文䶮,余建安
(1. 浙江大学 台州研究院,浙江 台州 318000;2. 中国铁建电气化局集团有限公司,北京 100000;3. 中铁建电气化局集团第三工程有限公司,河北 高碑店 074003;4. 中铁建电气化局集团运营管理有限公司,湖北 襄阳 441100)
近年来,随着人工智能技术在各行业的广泛应用,融合AI(Artificial Intelligence)的智慧建造已逐渐成为轨道交通建设转型升级的必然趋势[1]。信号工程是铁路“四电”工程之一,需定测信号机等轨旁设备的安装位置并测量限界数据。传统的人工现场勘查方式存在测量精度差、劳动效率低下等问题,也不利于今后“四电”工程的全面数字化转型。为解决上述问题,研发一种可自主移动的便携式信号工程数据定测及检测装置,代替人工操作对轨旁设备进行自动识别和测量,大幅提升作业效率和精度,已成为铁路电气化施工企业亟需解决的课题。自动识别轨旁设备技术是实现自动测量的前提条件。目前,国内对于轨旁设备的目标检测主要应用于巡检。吴楠[2]利用机器视觉图像对比自动检测电务轨旁设备变化,但图像对比需要采集大量原始图像,且采集到的图像易受设备硬件与外界环境影响。深度学习是新一代人工智能的核心技术,融合深度学习的机器视觉更加智能化且具有更好的泛化性。基于深度学习的常用目标检测算法可分为2个大类,一是基于候选区域的two-stage算法,例如R-CNN系列,该类算法检测和定位精度较高,但计算量大,检测速度的提升受到约束;二是基于回归的one-stage算法,常见的有YOLO系列和SSD,该类算法在检测速度上占优,可满足实时检测的需求,但对于小目标和多目标检测精度较低[3]。Faster R-CNN算法已被广泛应用于多种场景的目标检测。为实现输电线路无人机巡检图像多目标检测及定位,林刚等[4]提出了一种改进型的Faster R-CNN模型,采用选择性搜索算法建立巡检图像样本库,优化模型训练过程中的参数学习,在损失函数中加入正则项优化模型参数权重,该模型具有较好的泛化能力。马静怡等[5]使用DenseNet作为特征提取网络并修改定位框计算方式,使得改进后的Faster RCNN模型在监测变电站小目标入侵时具有更高的准确度。在农业应用方面,彭明霞等[6]将金字塔特征网络引入Faster R-CNN算法,优化了网络结构,高效识别棉田杂草从而进一步精确除草。冯小雨等[7]将Faster R-CNN运用于防空武器空中目标检测,采用膨胀积累和区域放大策略改善小目标检测的精准度,被大面积遮挡的目标检测精准度则通过局部标注和时空上下文策略改善,同时减少候选区域数量提高检测速率。白堂博等[8]应用Faster R-CNN算法进行铁路扣件定位,并根据扣件信息调整锚框进而提高计算速度。本文以自动测量装置在铁轨上自主移动运行过程中拍摄到的轨旁设备作为研究对象,应用深度学习目标检测算法Faster R-CNN对多种常见的轨旁设备进行自动识别,以改进的ResNet50为骨干网络,引入特征金字塔算法,进一步提高检测精度。最终将训练的最优模型结果导入C++平台,供信号工程数据自动测量装置调取应用。
1 光学配置与数据采集
1.1 硬件选择
光学配件主要为工业相机和工业镜头,其主要功能为拍摄检测区域的图像。光学系统的设计[9]决定了图像的采集质量,进而影响检测算法的效率与效果,是系统设计时需重点考虑的因素之一。光学系统设计主要包括相机、镜头以及光源3个部分。镜头焦距f可以通过式(1)得到:
式中:D为工作距离;W和w分别为视场(FOV)的宽度和图像传感器靶面的宽度。
现有视场FOV(W×H)为2 500 mm×2 000 mm,工作距离D为2 400 mm,相机采用海康威视MVCA013-21UC,分辨率为1 280×1 024,像元尺寸为4.8 μm×4.8 μm,则w计 算 可 得 为1 280×4.8=6.144 mm,求得f为5.898 mm,故选择镜头焦距为6 mm的镜头。
1.2 数据采集与加强
本文的轨旁设备数据集类别包括扼流变压箱(BEX),电缆分向盒(HF),电缆终端盒(HZ),变压器箱(XB)和信号机(light),各个设备的实物外观如图1所示。
为避免训练数据不足带来的过拟合问题,对所有数据集进行扩充,使用的增强方式有对比度调整、色调变化、左右镜像、旋转180度以及随机裁剪等。将增强后数据集分为训练集和验证集,将这些图像及对应的标签输入至网络模型。经处理后总共有729张图片,每张图片中含有一个或多个目标类别,具体标签样本数据量如表1所示。
表 1 样本数据量分布情况Table1 Distribution of sample data volume
2 算法介绍
2.1 Faster R-CNN框架
Faster R-CNN算 法[10]是GIRSHICK于2016年在R-CNN和Fast R-CNN基础上提出的一种改进型算法,其主要思路是将特征提取、候选框提取、目标定位和目标分类整合到了一个网络结构中,优化了候选框生成方式,实现了端对端训练,使检测速度和精度有所提高,其网络结构框图如图2所示。首先,将原始图像输入到特征提取网络中产生相应的特征图,再运用RPN(Region Proposal Network)网络生成候选框。采用n×n滑动窗口在特征图上移动,滑动窗口的中心点映射回原图,在对应的每个位置预测k个锚(Anchors),即初始候选区域。通过边框分类与回归进行筛选和修正候选区域,提取候选框及相应的特征矩阵。为提高后续的处理速度,RoI Pooling层将不同尺寸的特征矩阵通过最大池化操作缩放到相同大小,得到输出矩阵经过全连接层展平之后,再输入分类器和回归网络,进一步得到更准确的目标预测框。
2.2 骨干网络
本文采用ResNet残差网络作为骨干网络来进行特征提取,代替原算法中的VGG16网络。在卷积神经网络中,网络层数越多,提取的特征越抽象,机器学习的能力越强。ResNet网络通过引入残差块的概念,解决了随着网络层数增加带来的准确率饱和或下降的退化问题,从而提高准确率[11]。综合考虑训练速度与检测精度,选择层数为50的ResNet50作为骨干网络。
ResNet50网络流程框架如图3所示。当模块(如Stage5)输入与输出大小和通道数不同时,需先进行下采样和升维操作。Bottleneck1模块路径a上采用步长为2的1×1卷积进行下采样,忽略了3/4的输入特征映射,为确保信息尽可能不被忽略,故将原始ResNet50的下采样部分改造为ResNet50-D[12],即在卷积前加入一个步长为2的2×2平均池化层,可避免步长2与1×1同时出现造成的信息忽略。
2.3 Feature Pyramid Networks算法
由于实际现场采集到的图像目标尺寸差异较大,而原论文的Faster R-CNN算法只对多次下采样后的Stage5输出的特征图进行RoI Pooling操作,小目标的特征无法被有效提取。为提高小目标检测的准确度,引入Feature Pyramid Networks (FPN)算法,即特征金字塔网络算法[13]。
如图4所示,将骨干网络输出的多层特征层(C2~C5),每一层进行2倍上采样后,逐一叠加低层特征层,融合不同尺度的特征从而弥补低层特征信息表达不足的问题,增强大小目标检测精度。最终产生的不同尺寸的特征图(P2~P5)用来作为下一步RPN目标检测的输入。
引入FPN算法之后的Faster R-CNN算法框架如图5所示。将原图输入模型中,首先通过骨干网络ResNet50-D进行特征提取,输出4个不同尺寸的特征图(C2~C5)。4个特征图输入FPN网络,进一步得到5个不同尺寸的特征图(P2~P6),其通道数均为256,其中P6为P5降采样所得。RPN对每个特征图进行预测候选框,将得到的所有候选框(N2~N6)合并操作,利用非极大值抑制算法(Non-Maximum Suppression, NMS)删除冗余度较高的候选框。得到的候选框先通过RoIAlign操作转换成相同大小,再与特征图(P2~P5)一同进入Fast R-CNN网络,对候选框进一步调整,最终生成预测结果。
2.4 损失函数
损失函数可用来评估模型和优化参数,Faster R-CNN网络结构中包含了RPN Loss和R-CNN Loss对应的分类损失和回归损失。RPN网络损失公式定义为:
其中:pi为第i个anchor预测为真实标签的概率;pi*正样本时为1,负样本时为0;ti为第i个anchor的边界框回归参数;ti*为第i个anchor对应的真实框的回归参数;Ncls=256,其中正负样本各128;Nreg=52×52=2 704。
本文中,RPN分类损失函数采用了Sigmoid Cross Entropy函数,即经过Sigmoid函数激活之后的交叉熵函数。该函数可适用于多类别相互独立但不相互排斥的情况,如一张图片中可同时包含多种轨旁设备。参数xi经Sigmoid函数映射得到输出在(0,1)之间的概率pi,再用得到的pi值计算分类损失,公式见式(3)和式(4):
位置回归损失函数均采用SmoothL1Loss函数。具体的计算公式见式(5)和式(6):
2.5 模型优化策略
本文采用了针对梯度优化的Momentum优化器[14]。随机梯度下降法在迫近局部最优解时,由于方向与步长没有自适应调节,当每一次前向计算后,反向传播更新权值参数,容易陷入震荡,即减慢训练速度,同时降低训练效果。因此,在反向传播更新权值时,引入动量Momentum优化算法,通过指数滑动平均处理,将之前迭代过程的累计步长信息添加权重并与当前步长相加,获得新的学习率参数,其中累计步长信息权重取0.9。通过累积之前的步长与梯度,自适应更新权值,加速收敛和减小震荡,提高训练效果。
同时,为了减少数据较少对骨干网络训练结果的影响,提高模型的泛化性,对骨干网络进行预训练处理。预训练学习率更新方案采用余弦退火策略[15]。余弦退火学习率策略,会在训练过程中随着迭代次数增加,周期性更新学习率。第1阶段学习率按照余弦函数的梯度下降,当学习率下降到设定的最低值时,进入第2阶段,垂直恢复到初始值,进行下一次迭代。在训练初期学习率较大,加快模型更新,快速跳出平坦的局部最优点,在靠近全局最优点时,减小学习率,通过这样的策略使得模型最终收敛到一个好的训练效果。
3 实验结果与分析
3.1 实验环境与训练参数设置
本实验在Window 10的64位系统上进行,处理器为酷睿i5-8400,内存24G,显卡为GTX 1080Ti。利用Pycharm进行编程,利用深度学习框架Paddlepaddle 1.8和PadlleX 1.2.8来搭建和训练模型,并使用显卡进行训练与推理,最后将生成的模型通过C++部署到Visual Studio 2017上面,进行系统的实时运行处理。
训练过程中,迭代次数、批量样本数(Batch Size, BS)和学习率等超参数的设置对模型的训练结果和性能有较大的影响。学习率采用阶梯式衰减方法。迭代初期学习率较大,可快速进行梯度下降,为避免在全局最优点附近摆荡,迭代后期减小学习率。对于Faster R-CNN模型,图6(a)表示的是在现有实验条件下,批量样本数为2时训练过程中Loss的变化。图6(b)则是批量样本数为16时Loss的变化。可见批量样本数较小时,迭代梯度震荡较为严重,不利于模型收敛。但批量样本数较大时,Loss下降较缓,容易使模型陷入局部最优解,且批量样本数过大会直接造成显存不足。图7表示的是当批量样本数为2,8和16时,同一模型训练所得的mAP随迭代次数变化的情况。批量样本数越小,所需的迭代次数越少,且批量样本数为16时所得的最大mAP较小。故选择批量样本数为8,迭代次数为30进行Faster R-CNN模型优化训练。
3.2 结果对比
3.2.1 评价方法
为评价本文提出的算法模型的各个性能和对比不同算法的差异性,采用检测速度、精确率(Precision)、分类召回率(Recall)、某一类别的平均精准率(Average Precision,AP)和所有类别的平均精准度(mean Average Precision,mAP)来进行模型的性能评估。上述检测性能指标的参数定义公式见式(7)~式(10):
式(9)中:R表示Recall,P表示Precision。IoU表示预测框与真实框的相交面积和相并面积之比。程序生成的候选框中的预测样本可分为正样本和负样本,其中,正样本是与人工标注的真实框IoU值大于阈值的样本,小于阈值的则为负样本。预测结果可分为4类,被预测为正的正样本(TP)、被预测为正的负样本(FP)、被预测为负的负样本(TN)和被预测为负的正样本(FN)。
3.2.2 不同算法对比
为验证Faster R-CNN算法模型的可靠性,与一阶YOLO算法进行对比。各个模型对应的mAP值与检测速度如表2所示。对比实验数据,YOLO算法的检测速度明显优于二阶的Faster R-CNN算法。其中,基于YOLOv3改进的PPYOLO算法速度最快,达到了24.84帧每秒,且精准度优于YOLOv3。但进一步观察输出的图像识别结果,发现YOLO模型易忽略小尺寸目标,造成目标漏测,而工程应用中需避免漏测。
表2 不同目标检测模型结果对比Table 2 Results of different target detection models
对于Faster R-CNN算法,VGG16为骨干网络时,mAP最低。对比模型5~7,可发现骨干网络层数越多,精度越高,但检测速度随之下降,采用层数较多的ResNet101为骨干网络的模型mAP达到了96.2%,比采用ResNet18的模型提高了2.6%,但相对ResNet50的模型提高不明显,且每秒仅能处理7.65帧。而本文提出的改进模型Faster R-CNN[ResNet50-D]+FPN的精确度达到了97.46%,比ResNet50高1.4%,且每秒可处理10.87帧图像,达到轨旁设备识别要求,故而选择该模型为主框架。
3.2.3 不同参数对比
Faster R-CNN模型初步预测会产生大量的候选预测框,NMS算法会根据设置的置信度阈值和IoU阈值来过滤多余的候选框,筛选出最终候选框。置信度阈值和IoU阈值的设定通过多组实验对比得出。实验结果如图8所示,图中纵坐标表示模型训练得到的mAP值。实线表示置信度设定为0.5,不同IoU阈值的模型训练所得结果;虚线表示IoU设定为0.5,不同置信度阈值的模型训练所得结果。结果表明,当IoU阈值为0.4,置信度阈值为0.5时,训练所得的模型具有较高的精准度,mAP达到97.6%。
3.2.4 最终模型评估结果
选取以ResNet50-D为骨干网络的Faster R-CNN模型作为最终模型,得到各类别轨旁设备识别的结果如表3所示。结果显示,模型对于BEX与Light这2类目标在当前测试数据集中的识别准确率达到了100%,另外3类识别精度均达到了工程应用水平。
表3 最终模型检测各类轨旁设备实验结果Table 3 Final results of each trackside equipment
为验证模型的泛化性和鲁棒性,将72张图片进行特殊化处理,包括旋转、改变对比度和色调、添加噪声等,使用生成的最终模型对其进行检测,准确度达到98%。图9为其中2张图片识别结果,左图中为标识的真实框,右图中为模型输出的预测框,所有设备均能准确被识别。
3.3 工程应用结果
将最佳模型量化、压缩成最小优化模型,即可在新的图像上进行推理。得到检测模型之后,将模型导入检测装置内的C++平台,并打包为DLL文件提供上位机调用。上位机界面使用了C#语言编写而成,包含控制相机采集图像、调用算法模型、获得轨旁设备类别及位置信息。图10是研发完成的便携式信号工程数据定测及检测装置的工程样机,以及样机在兴泉铁路泉州段草源站进行现场测试的图片。
测试运行过程中采集的图像和目标识别结果,如图11所示,图中所有轨旁设备均能被有效识别。实验可得,该装置可实现轨旁设备的自动识别,结合装置采集到的位置信息和限界数据,进而实现对各个轨旁设备安装位置检测和限界数据检测。
4 结论
1) 为解决铁路电气化工程建设过程中人工勘察轨旁设备安装位置及其限界数据不便的问题,研发一种便携式铁路信号工程数据定测及检测装置,通过该装置结合机器视觉技术实现各种轨旁设备的自动识别。
2) 以Faster R-CNN为基础,提出一种应用于轨旁设备多目标检测的算法。该算法基于骨干网络为ResNet50-D的Faster R-CNN目标识别框架,并且融合了FPN网络以提高小目标的识别准确性。算法具有较高识别精度,更满足实际应用需求。
3) 轨旁设备识别可应用于除铁路之外的其他轨道交通方式,如地铁和轻轨等,也可应用于轨道交通日常运维所需的巡检任务。