基于 FCOS 和 ResNet50-FL 的吊弦不受力识别方法
2021-04-02彭继慎闫云凤齐冬莲
陈 强, 彭继慎, 闫云凤, 齐冬莲
(1.浙江大学 电气工程学院,浙江 杭州 310027;2.辽宁工程技术大学 电气与控制工程学院,辽宁 葫芦岛 125105)
在电气化铁路行业中,吊弦对接触网的稳定运行起着至关重要的作用。在链型悬挂中,接触线通过吊弦悬挂在承力索上,通过调节吊弦长度保证接触悬挂的结构高度和接触线高度,从而改善接触悬挂的弹性,提高受电弓的受流质量。然而,受电弓与悬链线之间存在复杂的机械和电气相互作用,这不可避免地导致受电弓接触网系统的高缺陷率,并严重影响操作安全性。由于长期操作中的振动和激励导致吊弦松脱变形不受力,会影响接触悬挂的结构高度和接触线高度,导致受电弓受流质量下降,对整个系统造成不可避免的损害。
为及时发现不受力吊弦,保障高速铁路接触网稳定运行,构建高速铁路供电安全检测监测系统,结合接触网悬挂状态检测监测装置获得的高清图像,通过离线读取捕获图像中的大量数据,手动检测缺陷。
但是,随着高速铁路的大规模建设,中国电气化铁路的总里程已超过 10 万km,通过人工读取检测缺陷显然不太可能,工作人员很容易视觉疲劳,并相应地遗漏一些缺陷。
近年来,随着计算机视觉技术的快速发展,基于图像处理技术的接触网零部件缺陷识别方法由于安全性高、行车干扰小等优势,在接触网缺陷识别中获得越来越广泛的应用[1]。文献[2]通过 Hough 变换对采集到的接触网图像中的直线特征进行提取,根据 AdaBoost 算法找出能够代表支柱的直线,从而确定定位器的位置。文献[3]提出一种基于局部特征描述的统计模式识别算法和螺钉灰度分布规律的图像检测方法,检测斜撑套筒的螺钉松脱与脱落。文献[4]采用 Hough 直线检测初定位开口销,PBoW 模型对初定位图片进行分类,SIFT 算法细定位开口销,使用 Hough 累加矩阵实现多位置开口销不良状态的同时检测。以上基于传统机器学习的方法由于需要人工设计特征,鲁棒性较差,具有较大的局限性。得益于深度卷积神经网络 (Deep Convolutional Neural Network,DCNN) 在计算机视觉方面的重大突破,越来越多的文章采用基于 DCNN 的深度学习方法进行缺陷检测。文献[5]分3个阶段实现等电位线松散故障自动检测,采用卷积神经网络提取等电位线特征,基于马尔可夫随机场模型进行图像分割,通过分析独立连接区域的数量和像素的标准偏差给出故障状态。文献[6]采用3个阶段实现接触网支撑装置上的紧固件自动缺陷检测,先用 SSD 对紧固件进行粗定位,然后用 YOLO 对紧固件细定位,最后采用分类网络进行缺陷识别。以上两种方法由于流程复杂,阶段繁多,很难在实际应用中推广。文献[7]采用级联的Faster R-CNN 对高铁接触网支撑装置上的等电位线进行故障检测。Faster R-CNN 本身是一个两阶段的目标检测框架,级联两个 Faster R-CNN 进行故障检测显得略微臃肿,而且速度不够高,难以达到实时的要求。
本文针对接触网吊弦不受力的缺陷识别问题,提出一种基于深度学习的吊弦不受力识别方法。该方法分为两阶段:第一阶段通过 FCOS[8]对高速铁路接触网图像中的吊弦区域进行检测定位;第二阶段通过添加焦点损失[9](Focal Loss,FL)的ResNet50[10]分类网络(ResNet50-FL),对检测定位到的吊弦进行分类识别,获得吊弦不受力的图像。
1 方法描述
本文提出方法的整体流程如图 1 所示。其中输入图片固定尺寸为 1 024×800,送入 FCOS 检测网络定位吊弦的位置,从图中提取 (crop) 出吊弦区域并缩放 (resize) 为固定尺寸 224×224,送入添加焦点损失的 ResNet50 分类网络获取吊弦的状态——正常(受力)或异常(不受力)。
图1 识别方法的整体流程
1.1 吊弦定位
采用FCOS吊弦定位算法,其网络架构如图2所示。图2中,C3、C4、C5 表示主干网络的特征图,P3—P7 是用于最终预测的特征层。H×W是特征图的高度和宽度。s(s= 8,16,…,128) 是特征图相对于输入图像的下采样率。首先用全卷积神经网络(Fully Convolutional Neural Network,FCN)[11]代替卷积神经网络(Convolutional Neural Network,CNN) 重新构造目标检测器;然后说明如何利用多级预测来提高召回率并解决边界框重叠导致的歧义;最后介绍中心度 (Center-ness) 分支,该分支有助于抑制检测到的劣质边界框并大幅度提高整体性能。
图2 FCOS 网络架构
1.1.1 全卷积一阶段目标检测器
对于特征图Fi的每个位置 (x,y),可以将其映射到输入图像 (⎣s/2」+xs,⎣s/2」+ys) 上,该位置靠近特征图接收域的中心。位置 (x,y) 与基于锚的检测器不同,后者将输入图像上的位置视为多个锚框的中心,并以这些锚框作为参考回归目标边界框,直接在该位置回归目标边界框。换句话说,检测器直接将位置视为训练样本,而不是像基于锚的检测器那样,将锚框视为训练样本。
具体来说,如果位置 (x,y) 落入任何一个真实框内且该位置的类别标签c是真实框的类别标签,则将其视为正样本。否则,它是一个负样本,即背景类,并且c= 0。除了分类标签外,还有一个四维实向量T*=(l*,t*,r*,b*) 作为位置的回归目标。l*、t*、r*、b*为位置到边界框4个边的距离,如图 3 所示。如果某个位置落入多个边界框,则将其视为模棱两可的样本。只需选择面积最小的边界框作为回归目标。如果位置 (x,y) 与边界框Bi相关联,则该位置的训练回归目标为
图3 FCOS 预测的四维实向量含义
( 1 )
1.1.2 使用 FPN 进行 FCOS 的多级预测
根据 FPN[12],在不同级别的特征图上检测到不同大小的目标。具体来说,使用了定义为 {P3,P4,P5,P6,P7}5个级别的特征图。P3、P4、P5 由主干 CNN 的特征图 C3、C4、C5 后跟 FPN 中具有自上而下连接的 1×1 卷积层生成,如图 2 所示。P6 和 P7 通过在 P5 和 P6 上分别应用步长为 2 的一个卷积层来实现。结果,特征层 P3、P4、P5、P6 和 P7 的步长分别为 8、16、32、64 和 128。
与基于锚的检测器不同,后者将不同大小的锚框分配给不同的特征级别,FCOS 直接限制了每个级别的边界框回归的范围。具体包括以下步骤:
Step1计算所有特征级别上每个位置的回归目标l*、t*、r*和b*。
Step2如果位置满足 max(l*,t*,r*,b*)>mi或 max(l*,t*,r*,b*) 1.1.3 FCOS 的中心度 在 FCOS 中使用多级预测后,FCOS 和基于锚的检测器之间仍然存在性能差距。这是由于远离目标中心的位置产生了许多低质量的预测边界框,因此提出一种简单而有效的策略来抑制这些低质量的预测边界框,而无需引入任何超参数。具体来说,添加一个与分类分支 (如图 2 所示) 平行的单层分支,以预测目标的中心度。中心度描述了从当前位置到该位置所负责的目标中心的标准化距离。给定位置的回归目标l*、t*、r*和b*,中心度的定义为 ( 2 ) 中心度的范围是 0~1,采用二进制交叉熵损失进行训练。测试时,通过将预测的中心度乘以相应的分类分数来计算最终分数,用于对检测到的边界框排名。因此,中心度可以降低远离目标中心边界框的分数。结果,这些低质量的边界框很有可能被最终的非极大值抑制(Non-Maximum Suppression,NMS)过程滤除,从而提高检测性能。 吊弦缺陷识别采用添加焦点损失的 ResNet50 分类网络。ResNet50 分类网络在图像分类任务中取得了重大突破。但是,由于吊弦缺陷样本与正常样本的不均衡,ResNet50 分类网络不能准确地定位到正负样本之间具有判别性的区域,因此,引入焦点损失进行难负样本挖掘,更准确地定位正负样本之间具有判别性的区域。 1.2.1 交叉熵损失 交叉熵 (Cross Entropy,CE) 损失的定义为 ( 3 ) 式中:y∈{0,1},指定了地面真值的类别,并且p∈[0,1] 是模型对于标签y= 1 的类的估计概率。为方便起见,定义pt为 ( 4 ) 把式( 4 )代入式( 3 )有 CE(p,y)=CE(pt)=-lg(pt) ( 5 ) 交叉熵损失的一个显著特性是,即使是易于分类的样本 (pt≫0.5) 也会导致较大的损失。如果将大量简单的样本相加,这些损失值可能会使稀有类别不堪重负。 1.2.2 平衡交叉熵损失 解决类别不平衡的常用方法是引入一个加权因子α∈[0,1] 用于类别 1,1-α用于类别 0。定义αt为 ( 6 ) 可将α平衡的交叉熵损失表示为 CE(pt)=-αtlg(pt) ( 7 ) 1.2.3 焦点损失 α平衡的交叉熵损失虽然平衡了正负样本的重要性,但并没有区分简单和困难的样本。因此,将损失函数重塑,减轻其对简单样本的关注度,从而将训练重点放在难负样本上。即为交叉熵损失添加一个调制因子 (1-pt)γ,其焦点参数γ可调且γ≥0。将焦点损失定义为 FL(pt)=-(1-pt)γlg(pt) ( 8 ) 焦点损失与交叉熵损失相比具有以下两个属性: (1)当样本分类错误且pt较小时,调制因子接近1,并且损失不受影响。当pt→1因数变为0,降低了分类良好的样本损失。 大多数剖腹产手术患者因对手术了解不充分,存在紧张、焦虑、恐惧等不良心理,非常不利于术后康复。因此,护理人员要将手术的相关知识及手术注意事项向患者详细的讲解,协助做好术前各种检查;指导患者学会有效咳嗽,避免震动伤口;同时,认真倾听患者的主诉,给予细致的解答,尽量满足她们的诉求,给予亲人般关心和安慰,消除她们术前、术中、术后各种不良情绪,树立乐观的心态,积极配合临床治疗与护理,争取早日康复。 (2)焦点参数γ可以平滑地调整简单样本的权重。当γ= 0时,焦点损失等于交叉熵损失,并且随着γ增加,调节因子的作用也会增加。 从式 ( 8 ) 可以看出,调制因子减少了简单样本的损失,并扩展了样本接收低损失的范围。例如,对于γ= 2,与交叉熵损失相比,归类为pt= 0.9 的样本的损失将降低99%,而对于pt≈ 0.968 的样本,其损失将降低99.9%。这反过来增加了纠正错误分类的样本的重要性 (对于pt=0.5和γ= 2,其损失最多减少75%)。 1.2.4 平衡焦点损失 与平衡交叉熵损失类似,定义平衡焦点损失为 FL(pt)=-αt(1-pt)γlg(pt) ( 9 ) 在实验过程中,α和γ为可调参数,一般设置为α=0.25,γ=2,但在处理具体问题时仍需根据实际情况调整。本文采用γ=2 作为默认设置,经过实验对比设置α=0.25,作为焦点损失的参数。 为了验证本文提出方法的有效性,在服务器上进行了实验,服务器的基本配置如下:4 个 12 核 CPU,型号为 Intel(R) Xeon(R) CPU E5-2678 v3 @ 2.50 GHz,64 GB 内存,4 个 GeForce RTX 2080Ti GPU(11 GB显存),Ubuntu16.04 操作系统。采用 PyTorch 深度学习框架进行训练和测试。 以某省高速铁路接触网吊弦图像为研究的基础数据集,利用标注工具对图像中的吊弦区域进行标注,获得标签文件,用此数据集进行训练获得最终的吊弦不受力识别模型。 采用的接触网吊弦图像的原始像素大小为2 585×1 940,在训练FCOS检测模型时统一将原图缩放为 1 024×800 像素大小。共标注了 1 500 张图片,获得了 1 622 个实例,取出其中的 1 200 张图片作为训练集,300 张图片作为验证集。在训练添加焦点损失的 ResNet50 分类模型时统一将提取的吊弦图缩放为 224×224 像素大小。分类数据集的相关信息见表 1 。 表1 分类数据集分布 张 在第一阶段训练检测网络时,使用带有动量项的随机梯度下降 (Stochastic Gradient Descent,SGD) 的学习策略,初始学习率为 0.01,动量项为 0.9,衰减项为1×10-4。使用在 ImageNet 中训练的预训练模型 ResNet50。 检测模型训练完成后,通过检测模型从原图中获得吊弦的定位,将其从原图中抠取出来并缩放为 224×224 像素大小,作为分类网络的输入。在第二阶段训练分类网络时,同样使用带有动量项的随机梯度下降的学习策略,初始学习率为0.000 015,动量项为 0.9,衰减项为1×10-5。 2.3.1 检测效果对比 在评估 FCOS 的检测效果时与Faster RCNN、RetinaNet、SSD进行对比。除了 SSD 的输入图片尺度为 512×512,其他模型的输入图片尺度均为 1 024×800,对比结果见表 2 ,AP@IoU=0.75表示模型预测的边界框和地面真值边界框的交并比(Intersection-over-Union,IoU) 为 0.75 时的平均精度,用于衡量模型的检测精度;Inf time 表示模型的推理时间,用于衡量模型的检测速度。根据表2 结果可知,FCOS 在精度和速度上取得了较好的平衡。 表2 检测算法结果对比 2.3.2 识别效果对比 评估一个分类器算法的好坏包括许多项指标,吊弦不受力识别的分类目标只有两类,记为正例 (Positive) 和负例 (Negative),其中,正例标签为 1,负例标签为 0,分类器的混淆矩阵见表 3 。TP为被分类器正确划分为正例的个数;FP为被分类器错误划分为正例的个数;FN为被分类器错误划分为负例的个数;TN为被分类器正确划分为负例的个数。 表3 分类器的混淆矩阵 根据分类器的混淆矩阵可以求出其精度Precision和召回率Recall,其中精度是精确性的度量,表示被分为正例的实例中实际为正例的比例;召回率是覆盖面的度量,表示所有正例中被分对的比例,衡量了分类器对正例的识别能力。精度和召回率的定义为 (10) 受试者工作特征曲线 (Receiver Operating Characteristic Curve,ROC) 是以真阳性率 (True Positive Rate,TPR) 为纵坐标,假阳性率 (False Positive Rate,FPR) 为横坐标绘制的性能评价曲线。真阳性率和假阳性率的定义式为 (11) 可以将不同模型对同一数据集的ROC曲线绘制在同一坐标系中,ROC曲线越靠近左上角,说明其对应模型越可靠。也可以通过ROC曲线下面的面积AUC来评价模型,AUC越大,模型越可靠。 由于吊弦的正(不受力)负(受力)样本严重不均衡,而在实际应用中更关注正样本的识别效果,即希望将吊弦不受力的样本全部识别正确,因此,更关注正样本的召回率。 为了评估添加焦点损失的 ResNet50 分类网络对吊弦不受力的识别效果,本文将其与经典的机器学习分类算法逻辑回归(Logistics Regression,LR)、神经网络 (Neural Network,NN)、随机森林(Random Forest,RF)、支持向量机 (Support Vector Machine,SVM)、K近邻 (K-Nearest Neighbors,KNN)、(Gradient Boosting Decision Tree,GBDT)、AdaBoost 以及 ResNet50 分类网络进行对比,机器学习分类算法的特征采用的是颜色直方图,图4为分类算法的 ROC 曲线对比,表4为分类算法的结果对比。 表4 分类算法结果对比 图4 分类算法的 ROC 曲线 根据对比结果可知,经典的机器学习分类算法对吊弦不受力的识别效果较差,尤其是 SVM 算法直接把所有样本都归为负例,没有学到任何特征,这与特征的选择具有一定关系,设计其他更具有区分性的特征可能会提升识别效果,但寻找区分性的特征具有较大难度;而基于 DCNN 的方法则具有较高的性能,而且不需要手工选择特征。ResNet50 的效果要优于所有经典的机器学习分类算法,而添加焦点损失的 ResNet50 对不受力吊弦线的召回率要比ResNet50 高,虽然精度略低于ResNet50,但是,在实际应用中更希望将所有不受力吊弦识别出来,因此,模型的召回率比精度更重要。从图4可以看出,添加焦点损失的 ResNet50 模型的 AUC 与 ResNet50 相等,因此,它们的可靠性相同,从实际应用的角度来看,添加焦点损失的 ResNet50 分类网络的性能优于其他方法。 2.3.3 焦点损失的效果验证 为了验证焦点损失对难负样本挖掘的效果,在各种经典的分类网络上进行实验,对比添加焦点损失前后模型对吊弦不受力缺陷的识别效果。表5为添加焦点损失前后分类网络的识别效果对比。从表 5 可以看出,焦点损失适用于各种分类网络,可以提升分类网络对不受力吊弦的召回率,增强分类网络的缺陷识别性能。 表5 添加焦点损失前后分类网络的识别效果对比 2.3.4 焦点损失的消融研究 采用焦点损失的默认设置γ=2。为了探究α参数对结果的影响,采用不同的α进行消融对比,研究α对分类网络定位类别间判别性区域性能的促进程度,实验结果见表6 。 表6 α 参数对比实验结果 根据表6结果可知,在本实验中,α=0.25 时对分类网络的定位效果促进作用最大,因此,本文最终采用α=0.25,γ=2 作为焦点损失的参数。 2.3.5 可视化解释 为了解释添加焦点损失的 ResNet50 分类网络与原本的 ResNet50 分类网络相比是否确实学到了更优意义的特征,让网络准确地定位到正负样本之间具有判别性的区域,采用类激活映射 (Class Activation Mapping,CAM)[13]对分类结果进行可视化,如图5所示。图5(a)为ResNet50 的结果,图5(b)为添加焦点损失的 ResNet50 的结果,图5中深红色区域表示模型定位到的判别性区域。根据图5结果可知,添加焦点损失的 ResNet50 分类网络确实更加关注吊弦的不受力部位,从而更加准确地识别出吊弦不受力缺陷。添加焦点损失的 ResNet50 分类网络对吊弦正常和异常判断的置信度低于 ResNet50 分类网络,说明焦点损失在难负样本挖掘上起到重要作用。 图5 热力图对比 本文提出一种基于深度学习技术的吊弦不受力识别方法,该方法采用 FCOS 检测模型定位吊弦区域,根据吊弦缺陷样本较少的特点,采用添加焦点损失的 ResNet50 分类网络识别吊弦不受力缺陷。在某省高速铁路接触网图像数据集上进行对比实验,证明本文提出的方法能够更加准确地识别出吊弦不受力缺陷。此外,在难负样本的挖掘上具有显著优势,适用于正负样本不均衡的缺陷识别。在未来的工作中,可以针对吊弦不受力缺陷识别进一步修改损失项以提升缺陷识别召回率。1.2 吊弦缺陷识别
2 实验结果与分析
2.1 数据集
2.2 实现细节
2.3 实验与分析
3 结束语