基于ResNeXt网络的多历史螺栓松动检测算法研究
2022-11-03朱均
朱 均
(成都维创轨道交通特种设备有限责任公司,四川成都 610000)
随着我国城市轨道的快速发展,城市地铁运行的安全问题日益受到重视。螺栓连接的稳定性决定了车体各部件能否正常运行。近年来,国内外学者对螺栓松动检测问题进行了积极探索。
于俊辉利用采集系统采集与螺栓相耦合部件在螺栓发生松动现象时的振动信号,对采集的信号用快速傅里叶变换和小波分析法做进一步处理,结合频率响应特征和时域上能量分布特征来完成螺栓连接松动特征的提取[1]。廖如天提出了一种全局信息融合的R-FCN(region-based fully convolutional networks)网络结构,再结合霍夫变换,实现螺栓位置检测[2]。王九龙等提出基于STFT-IP(Short-time Fourier Transform,STFT)时频特征的螺栓松动识别方法,利用短时傅里叶变换处理振动信号获得时频图,再通过对振动时的信号特征分析来完成对松动状态的检测[3]。
目前,大部分无损螺栓松动检测算法需要额外的传感器或者加入人工标注线来辅助松动判断,而且只能针对单一历史对比检测。
1 螺栓区域定位
本算法首先利用轨旁两侧的面阵相机采集转向架图像数据,引入改进的YOLOv4(You Only Look Once,YOLO)网络对车体各关键部位螺栓区域进行粗定位和精定位。其次将采集的所有螺栓数据随机两两组合,并分为松动和不松动两类,构成训练数据集。利用改进的深度神经网络的聚合残差变换网络(Aggregated Residual Transformations for Deep Neural Networks[4],ResNeXt)对其进行训练、预测。最后,对相关算法分别进行实验验证,结果证明了方法的有效性。基于ResNeXt网络的多历史螺栓松动检测算法流程如图1所示,通过车侧设备采集车体图片,经过降噪标准化处理获得噪声小、运算量少的标准图像,用改进的YOLOv4进行区域定位,并提取区域图片;通过改进的YOLOv4对区域中的螺栓进行定位;再利用优化的ResNeXt网络对组成松动与非松动的数据进行训练。最后用相机记录同车辆、同位置的不同历史中的螺栓图像,并用最终的松动检测模型进行检测。
图1 算法流程
1.1 车侧图像采集
为了得到螺栓数据集,在轨旁安装4只面阵相机,完成实时图片数据采集。图2为轨旁面阵机分布图,本算法采集得到的构建数据集均为2K图像。为了更准确定位到螺栓,需要减少图片其他物体的特征干扰。对此,本文提出两个步骤完成对螺栓的定位,首先对车体图像中螺栓所在的关键区域进行定位,在待检测区域的基础上对螺栓进行进一步的定位[5]。
图2 轨旁面阵相机分布
1.2 YOLOv4网络
YOLOv4是在YOLOv3基础上改进而来,属于一步检测算法。检测时,将待测图片分割成n×n的网格,每个网格负责不同的区域,当待检测目标的中心落在某个网格中,则由该网格负责完成对目标的检测[7]。YOLOv4的主干网络CSPDarknet53是算法的核心。YOLOv4在上一个YOLO版本基础上,引入跨阶段部分(Cross Stage Partial,CSP)结构,这两部分结构具有特殊的映射,包括主通道的特征图和走捷径输出的特征图。同时为了提高准确率,再合并多阶段层次结构。激活函数选择方面使用的是比ReLu计算量更大的Mish函数,其目的是更精准地检测物体。
与YOLOv3不同,YOLOv4构建了空间金字塔池化结构(Spatial Pyramid Pooling,SPP)和更好结合上下语义的路径聚合网络(Path Aggregation Network,PANet)结构,如图3所示,其中,P1~P5代表不同的层数。为了更好地增加特征提取的感受野,分离出显著的上下文特征。SPP结构是对特征层P5输出的特征图经过卷积后的结果进行多种尺度的特征信息最大池化处理。其池化核大小分别为1×1、5×5、9×9、13×13。PANet结构包括不同的卷积、上采样、下采样、跨层的特征层融合构成的循环金字塔结构。所以YOLOv4的网络结构中PANet能够实现高层特征与底层特征信息融合,来达到提高车体螺栓的检测率的目的。最后,对每个输出的特征层的3个先验框进行判别,判断是否包含目标以及目标种类,并进行非极大值抑制处理[8]。
图3 YOLOv4网络结构
YOLOv4的损失函数见公式(1),其损失函数是由回归框预测位置的误差、置信度误差和目标种类误差构成[9]。
式中,IOU为真实面积与预测面积的交并比;A和B为预测目标与真实目标;ρ2(Actr,Bctr)为两个中心点的欧式距离;m为同时包含预测框和真实框的最小封闭区域的对角线距离[6];a为正数是度量的参数;v为度量长宽比的相似性;2为网格数;B为网格中的先验框数量。为预测的边界框中存在目标的表达式,为预测的锚框里不具有目标的表达式,预测置信度。为真实置信度。c是检测目标的种类,代表检测目标的类别数,是指预测为真实目标的概率,为单元格中目标属于类别c的实际概率[6]。
αv的作用是让模型预测的宽和高更快地收敛于真实的宽和高。当真实框和预测框的宽和高相似,则v为0,该惩罚项就不起作用。其表达为公式(2)和(3)。
式中,wgt为真实框宽度,hgt为真实框高度,w为预测框宽度,h为预测框高度。
1.3 改进YOLOv4算法
1.3.1 K-means聚类
在原始的YOLOv4算法中,其先验框的大小是依据在COCO数据的目标平均尺寸大小设定的。由于COCO数据集包含的目标多样,目标的长宽比例不同,其先验框尺寸大小也不同。对于车体的螺栓而言,尺寸基本固定,因此需要新的大小的先验框。而通过K-means算法对于语义分割后的数据集的anchor大小进行聚类,得到与螺栓特征比例相似的尺寸大小与聚类中心。并用聚类中心与标签的交并比IOU(1,C)作为聚类的相似度参数来代替原来的欧式距离以减少误差。聚类距离计算公式如下[10]:
1.3.2 网络结构改变
本文引入了注意力机制中典型的SENet[11](Squeeze and Excitationn)挤压激励模块。对于输入二维图像来说,两种不同的维度分别是图像的尺度空间和通道。该机制通过添加各个通道的影响程度的权重,针对不同的视觉检测任务增强或者删除对应无效的通道,更好对有效特征进行提取。
该结构首先进行压缩操作,对所有通道特征图做一个全局平均池化,生成1×1×c特征图,其中每个特征图都具有全局特征信息。此步骤将特征通道变成包含所有维度通道特征的均值,H×W为通道空间维度大小,其表达式为公式(5):
式中,Zk为产生的特征图压缩向量,μij为第i组的第j个特征向量。
其次是激励操作,通过一个2层FC层和Sigmoid激活来实现,见公式(6)。
式中,S为激励操作的输出,σ为激活函数sigmoid,Fex为对特征图进行特征提取的操作,z为压缩后的特征向量,W为权重参数,W1和W2分别为两个全连接层对应的参数,δ为激活函数ReLU。然后对降维后的特征图进行升维操作。
最后是重新赋值权重,对每个通道重新赋值权重到之前的输入特征上。再基于之前的通道维度,对原始特征的权重重新分配。
式中,uc为通道输出特征值,sc为此通道反馈计算出的权重,Fscale(uc,sc)为对特征张量进行特征拼接的操作。
图4为SEnet结构图,其中,c为通道数,r为组数,h和W分别为特征图的宽和高。
图4 SEnet结构
改进后的YOLOv4结构如图5所示,其中,P1~P5为每个大残差神经网络块的层数,Conv为卷积操作,SPP为空间金字塔池化结构,SE为激励挤压模块。
图5 改进YOLOv4结构
1.4 关键区域定位
对车体相关待检测区域进行定位,如图6所示。在对车体关键区域进行划分的基础上,为了提高定位模型的鲁棒性,利用轨旁面阵相机采集得到不同天气、不同光照条件下的地铁转向架以及车体高清图像600张,并在保持横纵比的情况下对原始高清图像进行尺寸统一,以适应模型更好的提取特征和学习。使用labelImg工具完成对车螺栓区域图像数据的标注,用来训练改进后的YOLOv4定位模型。
图6 车体关键区域图
1.5 关键区域中螺栓定位
对待测区域定位后,利用预测定位框的相对坐标,从原始高清图像中截取定位到的所有包含螺栓的区域。再次利用labelImg图像标注工具对螺栓区域中的螺栓进行标注,以构建螺栓定位数据集,如图7所示。利用该数据集训练改进的YOLOv4螺栓定位网络对关键区域内的所有螺栓进行定位,从而组成螺栓松动判定数据集。
图7 螺栓定位效果图
1.6 螺栓松动检测数据集构建
为了提高模型的鲁棒性和泛化性,所有采集的螺栓随机两两组合,再划分为松动的正样本和非松动的负样本,如图8所示。
图8 螺栓正负样本
2 基于ResNeXt网络的螺栓松动检测
2.1 ResNeXt网络结构
由于螺栓的外形特征丰富多样,并且部分螺栓在外形上存在极大的相似性,为了提升图像的识别精度,需要提取更丰富的特征。ResNeXt借鉴和继承了Resnet和Inception的优点,在提升网络的精度下,保持同样的参数量。ResNeXt结构包括一系列拆分和融合的分组卷积[12]。其中Resnet中较大的卷积核被省去,取而代之的是多组小尺寸的卷积核组成的一种平行的结构。利用多组的分组卷积方式能使得模型具有更高的精度。ResNeXt结构有4种类型,如图9所示,其中,RB为一个完整的残差网络块。
图9 4类残差模块结构
ResNeXt-50与Resnet50相比参数量少了5×105,同时速度更快。与Resnet101相比速度更快,所以本文选择ResNeXt-50作为主干提取网络。
在使用ResNeXt-50网络时,并不是所有通道提取的特征信息都是有效的,无效部分大大影响了螺栓松动检测分类的准确率。针对这个问题,同样引用SENet,使得网络能够自适应学习得到每个特征通道的影响权重,通过重新赋值调整通道对有效特征提取的权重,降低无效特征提取通道占比。对于低质量螺栓图像,可以使模型专注于具有更多能代表目标信息的通道,抑制无用的特征信息。改进后的结构如图10所示,其中,RB为完整的残差网络块,FC为全连接层。
图10 改进后的ResNeXt网络结构
2.2 训练优化
为了提升螺栓松动检测模型的鲁棒性,避免模型过拟合,先对单个螺栓进行亮度值改变和灰度变换,再对一对螺栓进行concatenate拼接然后再进行随机旋转、平移、翻转等操作。对于螺栓的特征比较明显,不必用过深的特征提取层,本文采用ResNeXt-50网络作为主干网络,用Resnet50为主干网络的孪生网络作为对比网络。同时针对定位导致的螺栓偏差问题,采用不同尺寸的中心裁剪,再进行训练比对。
3 实验与分析
为了验证算法有效性,对提出的算法进行实验验证和现场实际效果验证。
3.1 实验环境
处理器Intel i9-10900X,内存32G,显卡RTX3090,显存24G,操作系统Windows10专业版,深度学习框架PyTorch和Darknet。为了提高螺栓定位模型及松动检测模型的收敛速度,网络训练参数设置见表1,其中,Batchsize为每一个送进网络训练的批量大小,StepLR为使用固定步长衰减策略,Adam为自适应梯度下降。
表1 网络训练参数设置
3.2 评价标准
采用一致的量化评价标准能够对比出同类算法的性能的优缺点。本文螺栓松动判定算法采用精确率(Precision)和召回率(Recall)两个评价指标,分别由式(8)和式(9)表示。
式中,TP为被正确分类到正样本的个体数量,FP为被错误分类到正样本的个体数量,FN为被错误分类到负样本的个体数量[13]。
3.3 螺栓区域及螺栓定位
对采集软件采集的260张地铁车体图像按5∶1划分训练集和验证集。采用mAP作为模型算法的好坏的评价指标,mAP为平均精读,先计算每一类物体的AP,相加后除以检测的目标种类数。AP为单一目标的检测精度。实验分别采用SSD,YOLOv3,YOLOv4和改进后的YOLOv4进行训练,其螺栓区域对比结果见表2。
表2 螺栓区域定位模型mAP对比
对定位到的区域再进行螺栓定位训练、预测。其定位对比见表3。
表3 螺栓定位模型mAP对比
通过对4个网络的横向对比,可以看出对螺栓区域定位而言,由于区域差异大,特征明显,其定位效果都不错。改进的YOLOv4在原有基础上提高1.1%。对于螺栓定位来说,YOLOv4网路模型由于采用了新的CSPDarknet53的网络结构,比YOLOv3特征提取能力更强,同时具备多尺度检测优势,提高了对螺栓的检测精度,其检测精度比YOLOv3提高5.4%。而改进后的YOLOv4更加专注有效特征的提取,其精度在原来基础上提高3.0%,有效减少螺栓定位偏差现象。松动模型是通过定位后对螺栓进行裁剪,最后resize统一尺寸。螺栓定位偏差会导致螺栓松动检测效果变差。图11为当前和历史中螺栓定位偏差效果图。
图11 当前历史螺栓定位偏差效果
3.4 螺栓松动检测
根据螺栓定位,对螺栓进行截取。本算法训练集由定位的螺栓随机两两配对组成正负样本构成,验证集、测试集都由配对后数据集的20%构成。
本算法应用于国内某地铁线路车辆段检测以验证效果。该地铁线路平均每辆车548颗需检测螺栓,10辆过车共计5480颗螺栓。测试结果见表4。
表4 某地铁线路的测试结果
4 结语
本文提出了基于ResNeXt网络多历史螺栓松动检测算法,能够有效检测地铁车辆上的螺栓。该算法包括引入改进的YOLOv4网络对车体各关键部位螺栓区域进行两次定位;利用改进的ResNeXt网络获取更加有效的目标螺栓的特征。最后,对所提出的算法分别进行实验,结果证明了方法的有效性。本算法优点是能检测多历史的螺栓松动,能够检测螺栓的缓慢松动情况。