基于改进Faster R-CNN的铁路接触网绝缘子识别
2021-12-30杜晓亮姜香菊
杜晓亮,姜香菊
(兰州交通大学 自动化与电气工程学院,兰州 730070)
铁路接触网绝缘子作为接触网的重要组成部分,起到电气绝缘和接触网支撑作用,其性能状态对铁路安全运营有较大的影响.由于长期处在复杂的室外环境并受到列车运行时的高速冲击,绝缘子会出现破损、脏污、老化等故障,造成接触网接地、绝缘子放电等安全隐患.因此,对绝缘子的表面状态检测是保障行车安全的重要环节.目前,我国铁路系统采用人工看图的方式对4C系统采集的接触网图像进行排查[1].该方法耗时长,错检和漏检率高,自动化水平低.为提高检测效率和准确度,学者将图像处理技术引入绝缘子缺陷检测研究当中.
对绝缘子缺陷检测的前提是绝缘子的精准识别.近几年来,对于绝缘子的识别定位,国内外学者做了大量研究.文献[2]基于Harri角点与图像差分实现绝缘子的抗旋转匹配和故障检测;文献[3]通过Canny边缘特征与SURF(speeded up robust features)点特征对绝缘子边缘进行提取,实现接触网绝缘子的智能识别;文献[4]采用自动重建法利用点云数据实现绝缘子的三维重建;文献[5]利用接触网绝缘子图像的多样性分布,提出了一种基于轮廓波变换和Chan-Vese模型的高速铁路棒形绝缘子检测与识别方法;文献[6]以接触网支架为参照,将绝缘子识别转换为支架的识别,最后通过绝缘子与支架之间的相对位置定位绝缘子.这几种方法虽然实现简单,但定位结果仍受到目标形态、光照、背景的影响,普适性差.随着深度学习在图像处理领域的兴起,卷积神经网络算法被大量应用在了目标检测任务中.文献[7]利用K-means++算法和YOLOv3构建了一种对航拍绝缘子定位的轻量级网络;文献[8]利用二值赋范分类器与卷积神经网络算法进行绝缘子的精细识别;文献[9]提出基于卷积神经网络的绝缘子目标识别方法,解决了复杂背景下的绝缘子识别;文献[10]使用改进Mask R-CNN算法对各类绝缘子进行识别.此类算法都能够实现绝缘子的识别,但大多是对高压输电线绝缘子的识别,只有少量针对铁路接触网绝缘子.
因此,本文提出一种改进Faster R-CNN的铁路接触网绝缘子识别方法.通过融合不同卷积层特征图像,达到多尺度检测要求,并采用改进非极大值抑制(non-maximum suppression,NMS)算法提高算法整体的准确率和召回率,以提高铁路接触网绝缘子的识别效果.
1 算法理论知识
1.1 Faster R-CNN网络结构
Faster R-CNN是Fast R-CNN网络结合RPN(region proposal network)组成,较于Fast R-CNN在VOC2007数据集上的70%的mAP(mean average precision)表现,Faster R-CNN将其提高到78%[11].Faster R-CNN主要分为特征提取模块、RPN模块、分类回归模块.Faster R-CNN具体网络框架如图1所示.
图1 Faster R-CNN网络结构
1.2 特征提取网络
特征提取网络目的是获得输入图像的特征图,一般有ZFNet[12]、VGGNet[13]、ResNet[14]等网络.由于ResNet-50具有适宜的深度,网络非线性程度高,可以提取更多细节的特征,所以本文选择该网络作为绝缘子精确识别网络的特征提取网络.ResNet-50组成结构见表1.
表1 ResNet-50组成结构
1.3 RPN网络
RPN网络作为Faster R-CNN核心,较于SS(selective search)算法[15]从原图中提取2 000多个目标框,RPN直接在特征图像中生成候选区域,极大地提高了检测速度和准确率.RPN网络选取一个3像素×3像素大小的滑动窗口将特征图像中的每个像素点依次作为基点在特征图像上进行滑动.滑动窗口以该基点为中心生成K个anchor,K通常为9,对应128像素×128像素、256像素×256像素、512像素×512像素三种大小和1∶1、1∶2、2∶1三种长宽比.RPN结构如图2所示.
图2 RPN结构
在获取到大量的锚框后,通过非极大值抑制获取交并比(IOU)大于0.7的anchor作为正标签,小于0.3的作为负标签,将前后背景区分,之后对前景边框进行初步回归.
RPN的损失函数由分类损失和边界回归损失两部分组成,损失函数定义如下:
(1)
(2)
(3)
(4)
(5)
1.4 分类回归
该模块首先通过ROI Pooling层将RPN中生成的建议区域结合主干网络提取的特征图像计算得到尺寸固定的区域特征图像,然后通过全连接层与一个Softmax对区域特征图像进行分类打分,同时利用全连接层与边框回归(bounding box regression)得到更加精确的目标检测框.分类回归模块网络结构图如图3所示.
图3 分类回归模块
2 改进Faster R-CNN算法
2.1 改进特征提取网络
传统的Faster R-CNN目标检测算法是在主干网络所提取的单一顶层特征图像上进行目标检测.由于卷积神经网络运算特性,在图像特征提取过程中随着网络的加深,图像经过多次卷积和池化操作,使得最后输出的特征图像分辨率降低,从而导致大量细节信息遗漏,对于小目标的特征会弱化,甚至遗漏.使用顶层特征图像进行目标识别时,对小目标检测精度低,不能够达到铁路检测系统对绝缘子多尺度识别的要求.为解决该问题,采用文献[16]中提出的改进VGG16网络中浅层特征与深层特征融合的思想,设计一种改进的ResNet-50网络,将不同特征层融合,可以将处于低层的高语义信息特征图与高层目标位置粗糙的特征图进行融合,达到绝缘子多尺度目标检测的要求.具体改进Faster R-CNN算法网络结构如图4所示.
图4 改进Faster R-CNN算法网络结构
为获得多尺度的特征图,需要将深层特征图像和浅层特征图像进行融合,生成新的特征图.仿真实验表明,所引入的融合特征层组合可以获得目标信息更加完整的特征图像.其具体组合是将ResNet-50网络中C5层特征图与C3层特征图进行融合,C4层特征与C2层特征融合得到新的特征层P3和特征层P2.得到的新特征图像语义信息强,分辨率高.改进网络如图5所示.图5中,Conv()表示卷积操作,kernel_size()表示卷积核大小,stride()表示步长,4×up表示4倍上采样操作.
图5 改进特征提取网络结构
具体步骤:C4和C2层进行1×1×256的卷积操作,扩充通道数至256个;C4层通过4倍上采样,保持与C2层图像大小一致;之后将两个特征层进行融合操作;最后进行一次3×3的卷积操作,消除混叠效应,生成新的特征图P2.C5与C3进行上述同样的操作生成特征图P3、C4与C5各自经过1×1×256的卷积和3×3的卷积操作,生成新的特征图P5,P4.
通过上述操作后,新生成的特征图层P2,P3,P4,P5的维度是256,而此时RPN在不同层级的特征图中进行计算.所以在RPN计算时,将感受野小的P2和P3特征层中的锚框设置为32像素×32像素和64像素×64像素大小,将感受野大的P4和P5特征层中的锚框设置为128像素×128像素和256像素×256像素大小,长宽比仍然设置为1∶1,1∶2,2∶1三种类型.特征图像如图6所示.
图6 特征图像
2.2 优化NMS算法
NMS算法[17]的性能直接影响候选框的品质,从而影响识别精度.传统的NMS算法是通过IOU得分的高低进行计算,核心思想是将目标框的IOU与设定阈值的大小进行比较,一般阈值设定为0.3~0.5,IOU超出阈值的目标框将被认为是冗余框,被剔除.该类算法虽然实现简单,但是在被剔除的检测框中可能会包含目标,导致目标的漏检,影响绝缘子识别的整体性能.传统的NMS算法的表达式为:
(6)
其中:si为检测框对应类别的置信度;M为置信度最大的检测框;IOU(M,bi)为交并比;Nt为设置的IOU阈值;bi表示目标框.
为解决该问题,本文引入文献[18]中优化的NMS算法,文中通过高斯降权函数对NMS算法进行了优化.改进NMS算法的表达式为:
当IOU(M,bi) 当IOU(M,bi)≥Nt时,si值为: (7) 其中:Ni为新增设定阈值;Nt为传统NMS算法设置的IOU阈值,Ni (8) 式中,σ为惩罚项因子. 优化NMS算法的具体流程如下: Step1:设置B为初始检测框集合,si为检测框bi对应的置信度,Nt为原NMS算法中设定的阈值,Ni为优化NMS算法中新增阈值条件,D为最终检测框集合. Step2:求出B集合中所有检测框的置信度,寻出置信度最大的检测框M. Step3:将除M以外的剩余检测框bi各自与M计算交并比IOU(M,bi),之后IOU(M,bi)与Nt进行比较,若值小于Nt,则将对应bi保留在D集合中. Step4:将IOU(M,bi)值大于等于Nt的检测框进行高斯降权处理,得到新的置信度si=sif(IOU(M,bi)).将si与Ni进行比较,若si大于等于Ni时,将对应bi保留在D中;若si小于Ni,则将bi剔除. Step5:将剩余的bi重复步骤Step3、Step4,直至B集合为空,结束筛选,输出最终结果. 本文数据为兰州铁路公司4C监测系统所采集的图像.挑选适用于本实验的2 200张原图像,大小为6 600像素×4 400像素.之后通过加雾、改变曝光度、裁剪和旋转等操作,将数据扩充至3 500张.通过LabelImg将数据标注为PASCAL VOC格式的数据集,图像大小变换为660像素×440像素.数据按照1∶10的比例分为测试集和训练集.图7为数据制作样本,图8为扩充样本数. 图7 数据集制作样本 图8 样本扩充示例 本实验使用Intel Core i7-10750H 2.6 GHz、NVIDIA GeForceRTX2060 GPU硬件环境.运行环境为Windows10(64位)操作系统,PyTorch框架,Python3.7.10版本,Torch1.6.0版本,CUDA10.1版本,VS2020版本和CUDNN7.6深度学习加速器. 改进Faster R-CNN算法中采用SGD(stochastic gradient descent)对网络进行训练.SGD算法每次只选择一个样本进行模型参数的更新,同时进行在线更新,所以SGD算法有效避免了冗余数据的干扰,因此学习速度非常快.其计算公式为: (9) wi=wi-1-αw. (10) 其中:x(i)为训练集样本;y(i)为对应目标;w为初始参数;w为损失函数;f(x;w)为学习器;α是学习速率. 设定初始学习率为0.01,学习衰减速率为0.000 2,动量为0.7,每个批次训练样本量为16,训练步数最大为1 000,输入图片大小为660像素×440像素. 为评价检测算法的效果,本文选择检测精度P(precision)和识别召回率R(recall)作为接触网绝缘子检测算法的评价指标,直观地了解网络性能.表达式如下: (11) (12) 其中:Tp表示正确识别的接触网绝缘子数量;Fp表示错误识别的接触网绝缘子数量;FN表示漏识别的接触网绝缘子数量. 使用不同识别算法对接触网绝缘子进行识别,识别效果如图9所示.图9(a)是本文算法的识别结果,能够精确地识别出绝缘子,同时对图像中不完整的绝缘子也有较高的识别度;图9(b)是传统Faster R-CNN算法的识别结果,从图中可以看出有两个绝缘子因为叠加遮挡,一个识别框检测了两个物体,同时对不完整的绝缘子识别不敏感;图9(c)为YOLOv3算法的识别结果,可以看出有对绝缘子的遗漏及误检.从实验结果的对比中可知,改进Faster R-CNN算法对绝缘子的识别准确率较高,同时漏检现象低,可靠性高,为后续绝缘子缺陷识别奠定了坚实基础. 图9 识别结果 表2为改进Faster R-CNN算法、Faster R-CNN算法和YOLOv3算法识别测试结果数据. 表2 各类算法性能指标 从表2中的数据可以看出:改进后的Faster R-CNN网络对接触网绝缘子的识别率为99.5%,召回率为99.02%,与传统Faster R-CNN算法相比,识别率和召回率都有所提升,但由于NMS算法的改进,处理时间有所增加;通过与YOLOv3算法对比可以看出,本文算法在识别准确率上具有优势,但由于Faster R-CNN网络的结构特点,时效性不足.对比结果表明,特征提取网络和NMS算法的改进提高了网络检测接触网绝缘子的准确率和召回率,满足铁路系统对绝缘子准确定位的要求. 特征融合后的改进算法与原算法的训练总损失对比如图10所示,连续曲线表示原算法中训练过程的损失,点曲线代表改进算法中训练过程的损失. 因为文中算法只是对图像中的绝缘子目标进行单一识别,从图10中可以看出,训练过程中第140个批次后训练损失就开始逐渐趋于稳定.因为改进算法中加入了SGD算法对网络进行训练,训练过程中排除了冗余数据的干扰,提高了训练速度,降低了训练损失,图10中两条曲线反映出改进Faster R-CNN算法的最终训练损失为0.2,较于原算法0.5的损失值降低了0.3. 图10 改进前后算法训练损失对比 1) 本文对接触网绝缘子识别问题进行研究,提出一种基于改进Faster R-CNN改进目标识别算法,对接触网绝缘子进行有效识别.该方法通过多维特征融合的思想,对特征提取网络进行改进,实现了高层特征与低层特征的融合,提高了小目标识别的准确率. 2) 对传统算法中处理区域建议框的NMS算法进行优化,采用高斯降权函数对候选框的置信度进行降权,提高了算法的检测准确率和召回率. 3) 对本文中使用的数据集在相同硬件环境下,用不同识别算法进行验证.仿真结果表明,改进Faster R-CNN算法对铁路接触网绝缘子的识别准确率较于其他算法更高,为后续绝缘子缺陷的检测奠定了基础.3 实验验证及结果分析
3.1 数据集制作
3.2 仿真实验环境及实验性能评价指标
3.3 识别结果及算法性能分析
4 结论