基于改进YOLOv4的地铁车辆螺栓状态检测方法
2022-11-05徐宝康郑树彬戚玮玮李立明丁亚琦
徐宝康,郑树彬,2,戚玮玮,2,李立明,2,丁亚琦
(1 上海工程技术大学 城市轨道交通学院,上海 201620;2 上海工程技术大学上海市轨道交通振动与噪声控制技术工程研究中心,上海 201620;3 上海地铁维护保障有限公司车辆分公司,上海 200235)
0 引言
轨道车辆的螺栓状态检测是保障列车安全运营的一项重要检修工作,地铁车辆段主要由简单直接的人工巡检完成,但工人长时间工作造成的视觉疲劳和精力下降会导致效率低下、误检率高等问题。目前已有地铁维保公司安装了基于机器视觉的检测设备,但采用的检测算法误检率过高,检测算法的性能亟需提升。
近年来国内外对利用机器视觉实现螺栓状态检测技术进行了研究。目前主要检测方法是利用图像处理技术对螺栓特征进行识别检测,如文献[1]采用混合高斯模型剔除正常螺栓,利用SIFT提取螺栓边缘和纹理等特征。而传统图像处理方法提取的是浅层特征信息,存在定位不准、误漏率高的缺陷。有学者采用基于深度学习来建立目标检测模型,如文献[2]提出利用Faster Rcnn级联的输电塔螺栓缺失检测方法。文献[3]利用SSD算法定位螺栓并切割,再利用YOLOv3检测缺陷螺栓。深度学习方法虽较前述方法优势突出,但针对特定小目标检测仍存在不足。
目标检测算法按检测策略分为2类。一类是检测和定位分2次完成的两阶段检测算法,例如Faster Rcnn、Mask Rcnn,此类算法精度高但检测速度较慢。另一类是直接一次完成检测定位的单阶段检测算法,例如SSD、YOLO系列,此类方法检测速度快,但精准度偏低。其中,YOLOv4对检测精度与时效性较均衡,但实际工程检测中需根据数据集具体特征进行优化。针对螺栓检测的具体问题特征来改进YOLOv4,采用自适应空间特征融合(ASFF)技术对多尺度特征地图进行融合,改善各特征比例固定的性质,提升检测性能。将改进YOLOv4算法在实验数据集上训练,以期缩短训练时长,改进检测精度及速度,并在验证集上验证、对比检测结果。
1 YOLOv4算法简介
YOLOv4算法由Alexey等人提出,可分为主干网络、尺寸变换模块和检测器预测模块三部分,具体结构及相应模块如图1所示。
图1 YOLOv4结构图Fig.1 YOLOv4 structure diagram
主干网络的结构部分融入CSPNet的设计思路,在ResNet残差结构基础上添加CSP结构构成CSPX基本组件,并采用函数保证较好的信息流动性。整个网络共52层,通过卷积、下采样、特征合并、残差的堆积复用,在DarkNet53基础上构成新主干网络结构。
尺寸变换模块主要由SPPNet、FPN+PANet构成,如图1所示。经SPPNet并行池化再合并所产生的固定大小特征更有效地扩张主干特征的提取范围,见图1中SPP模块。FPN+PANet结构中,FPN输出更多的强语义特征,PANet输出更多的强定位特征,2种网络将2种特征通过不同主干与检测层实行参数合并达到融合目的,高底层间过长的信息传输路径也因此缩短,减少信息衰减,见图1中PANet模块。
检测器预测模块是对输出特征进行解码。首先使用网格划分图片,以网格为预测单位确认网格中目标,对存在目标的网格生成先验框,根据特征信息得出目标中心点对网格左上角的偏移量,再加上对应网格的位置信息,其中预测置信度和预测类别概率的乘积为预测结果的得分,通过NMS排除冗余预测框,设定预测阈值,在逐层筛选后,最终得到预测结果。
2 基于改进YOLOv4的地铁车辆螺栓状态检测方法
检测模型的改进分为2个方向:模型的检测策略改进和YOLOv4网络改进。整体的检测策略使用二级级联的方法,分2步实现螺栓目标的定位与分类;YOLOv4网络改进是对算法和结构的优化,上述的二级级联的2步检测均采用此改进后的YOLOv4作为检测算法。
2.1 二级YOLOv4网络的级联
转向架侧梁螺栓的识别特征较为简单,地铁车身在日常运行过程中会产生脏污斑点,其外形和螺栓目标相似,且车身图像内容复杂,更容易导致误检率增加的问题。观察地铁车辆侧身图像,可发现螺栓目标所处位置较集中,构成规则的矩形阵列,因此可将整体看作为一个目标。本次研究中,就可以采用级联结构来检测螺栓矩形阵列,对螺栓的目标检测由粗到细地进行定位和分类。检测系统的二级级联示意如图2所示。由图2可知,Stage 1中首先使用下述改进后的YOLOv4算法对整体图像进行粗定位,得到螺栓矩形阵列的目标区域,输入图像调整为900×900,由于螺栓矩形阵列面积大且特征明显,所以容易识别。该输出作为Stage 2的输入再次对螺栓目标进行定位和分类,因此在Stage 2中基于改进YOLOv4的定位分类体系结构被级联。通过此级联可降低螺栓目标的误检率,提高检测精度和召回率。
图2 检测系统的二级级联示意图Fig.2 Schematic diagram of two level cascade of detection system
2.2 YOLOv4网络改进
2.2.1 先验框的聚类与设定
根据数据集的特征先将先验框尺度聚类为2类,再按尺寸大小依次分配给3个特征层。由于本实验的数据集目标尺寸变化率极小,统计出螺栓所占像素为250×260左右,面积占原图2000×4096的0.79%,可知螺栓尺寸单一且归属于小目标。原算法聚类得到的先验框是为了覆盖各种尺寸目标,不适用于本实验数据集。改进的算法先根据的畸变程度曲线,如图3所示。由图3可见,依据肘部法可得最佳值为2,经K-means++对基于输入尺寸416×416的螺栓尺寸数据进行聚类,得到尺寸为(30.4,3.1)和(34.7,42.4),为了计算简便取整数值,将先验框0~5设为(30,34),6~8设为(35,42)。先验框的设定影响训练过程的速度,依据数据集的特点获取尺寸可加快模型回归速度。
图3 SSE-k畸变程度曲线Fig.3 SSE-k distortion degree curve
2.2.2 先验框的回归改进
自适应生成先验框位置如图4所示。原算法是以每网格的左上角生成先验框,目标由其中心点所处的网格负责预测。而目标中心点位置随机,常会出现先验框中心起点坐标远离目标中心点坐标,这种情况下则需要网络大量负反馈调整预测框位置降低值以提高交并比,因此影响了回归效率。改进网络提出根据目标中心点的具体坐标,在算法中通过四舍五入函数(,),选取最靠近中心点的网格角点作为生成先验框起点中心坐标,再通过特征层的调整策略进行网络参数的回归更新。此时网格的4个角点均可为先验框的生成位置,边界框的位置计算方式依据4种生成位置选择其计算方式,以图4为例先验框生成位置为右下角,其对应的预测框实际位置计算参见式(1):
图4 自适应生成先验框位置Fig.4 Adaptively generating priori box position
其中,c、c为网格单位长度;t、t为坐标变换系数;b、b为预测框的实际位置。
该改进智能选择生成先验框的初始位置,有效提高网络的训练效率。
2.2.3 网络结构改进—多尺度特征融合模块
对于处理特征融合方式,原YOLOv4网络在FPN基础上融入了PANet,缩短了高低层间特征传递路径,保证强语义及强定位信息的融合。但单级检测模型多直接使用或的方式融合特征,而各特征尺度是不一致的,上述方式并不能充分利用各尺度的不同特征,一定程度限制了特征融合的效能。改进的算法在此基础上将网络的输出特征进行ASFF操作,通过学习不同尺度特征层之间的联系参数来处理上述问题,在空间层面,冲突信息被限制传递,梯度反传时使其不一致性得以抑制,各特征之间的比例问题得到改善,同时降低推理消耗,提高了网络对螺栓检测的精度。
图5描述了由不同特征尺寸融合的方式,由13输出,3层特征分别与权重参数相乘再求和,得到新的融合特征。其中,权重参数是通过网络自适应地学习获得,只保留有用的信息进行组合,可看作是代表每个位置上不同层次特征的导入程度,有效地避免不同尺度特征融合时出现的空间矛盾问题,从而增强了特征表示,此处需要用到的数学公式依次可写为:
图5 自适应空间特征融合示意图Fig.5 Schematic diagram of adaptive spatial feature fusion
3 实验设置
3.1 数据集准备
实验使用图像由上海地铁九号线提供,正常及丢失螺栓这2个检测目标分别为正负样本。先将数据集通过图6流程实现扩充,再使用黑色涂抹螺栓区域模拟丢失螺栓以解决负样本稀少问题。图像由定点相机拍摄,转向架在图像中位置不变且上下部位均是背景区域,在训练过程中将此区域裁剪,原图的尺寸大小变为2000×1400,裁剪后可减少冗余计算。共采集图像1269张,其中正常螺栓4155个,丢失螺栓311个;经过数据处理后达3500张,其中正常螺栓14938个,丢失螺栓1526个。
图6 数据集扩增与预处理Fig.6 Dataset amplification and pretreatment
3.2 实验环境与网络训练
硬件配置:CPU为Core i7-8700,GPU为RTX 2080,RAM32 G;软件环境为python3.6,训练框架为Keras2.1.5+Tensorflow1.3.1,OS为Windows10,结合OpenCV等第三方库,CUDA10.0加速。
输入尺寸为416×416,设置150次,采用分阶段迁移训练策略,先冻结前层参数完成70个训练,解冻再训练剩余,、初始学习率、动量分别设置为6、0.0001及0.9。采用批梯度下降策略调整学习率,权重衰减值为0.00001。数据集按9:1的比列划分为训练集、测试集,另留589张图像作后续测试集,包含正常螺栓1495个,丢失螺栓434个。
3.3 评价指标
采用平均精确度、平均精度均值、召回率、预测时长、每秒传输帧数,即作为性能评价指标,计算公式具体如下:
采用训练时长作为模型训练开销的评价指标,时长越短说明模型训练越高效。
4 实验对比与分析
图7为改进YOLOv4算法训练过程中变化曲线。设置迭代150轮,第一轮训练结束损失值近680,随后剧烈下降,在20~80世代缓慢下降。冻结前层网络经过70个后,解冻训练值再次下降,最终稳定于10,观察曲线可知训练收敛理想。
图7 Loss值收敛情况Fig.7 Convergence of the Loss value
为剖析对比改进措施对原算法的影响状况,采用消融实验方法将原算法结合不同改进措施验证性能,裁剪成4组算法分别进行训练及测试,结果见表1。表1中,“√”表示相应改进措施被采用。
表1 不同算法改进措施的对比Tab.1 Comparison of improvement measures of different algorithms
由表1可知,改进算法1先根据确定值,再通过聚类算出尺寸,其训练时长和有明显改善,时长缩短超0.5 h,从26帧加速到37帧,结果说明依据检测目标尺寸调整先验框对算法速度有提升效果。改进算法2改进先验框回归策略,进一步加快训练和预测速度,和值无明显变化。算法3加入ASFF模块,针对不同尺度特征的不一致性自适应地学习获取融合所需用的权重参数,以解决空间矛盾问题,提升了3.7%,值提升了1.1%,证明ASFF模块的加入对检测效果有重大影响,也有小幅提升,训练时长有小幅缩短,在算法体量增加的情况下速度仍有较好表现,有效提升检测效果。算法4采用级联的方法分2步检测螺栓目标,提升较小,值再次得到1的提升,误检率得以降低。
进一步验证改进算法的性能,分别对原算法和改进算法进行不同轮数和不同数量训练集的训练及验证,结果见图8。图8中,柱状图代表原算法YOLOv4,折线图代表改进YOLOv4,迭代轮数划分为70、90、110、130、150,训练集划分为700、1000、1750、3500。图8(a)中,随着迭代轮数递增,2种算法值均在提高,总体上改进的YOLOv4算法均高于原算法,且在早期第70轮时已达到90%以上的。可见算法的改进能够更高效地提取及融合特征,加快特征学习,即在较少迭代的情况下也能较快达到比原算法更高的检测效果。图8(b)与图8(a)趋势相似,随着迭代轮数递增,值皆随之递增,且改进算法均高于原算法,对于小样本训练集的学习,相较于原算法也具有更好的检测结果,对700个图像的学习已能达到87.6%,高出原算法7.9%,再次证明改进算法对图像特征学习的高效性及强大的泛化能力,综上说明算法的改进具有重要的性能影响。
图8 原算法与改进算法的检测结果对比Fig.8 The detection results of the original algorithm and the improved algorithm
近年来存在的热门目标检测模型较多,针对上述验证集本文将改进的YOLOv4算法与其他主流算法进行了对比,结果详见表2。由表2可知,算法Faster-RCNN和改进YOLOv4的与值相较于其他检测算法都表现出明显优势,分别达到了99.6%和99.1%,但前者的检测速度最慢,而改进的算法对比原算法快出5帧/s,超出了Faster-RCNN的4倍,检测速度表现突出,其训练时长及算法存储量相较于其他算法也处于适中水平。SSD训练所需时长较短,但其算法存储量与RetinaNet都相对较大,检测性能分别低于改进YOLOv4的6.5%、5.8%。观察表2数据可知,改进YOLOv4综合水平在原算法的基础上提升明显,其检测效果出色,性能水平较高,所以算法改进的优势进一步得以验证。
表2 各主流算法检测结果Tab.2 Detection results of various mainstream algorithms
图9展示了各主流算法的实测对比图,首列为人工手动图像标注。算法在训练时模型学习能力弱、对图像特征提取不够充分等性能问题都会导致目标误漏检测情况。参见图9(b)可以看到,SSD和RetinaNet存在丢失螺栓的漏检问题,参见图9(c)中可知,螺栓显示不完整,这也分别表明YOLOv3和YOLOv4出现了漏检问题。观察改进YOLOv4算法表现,其目标检测、且定位精准,不完整目标也可得到正常高置信度识别,整体检测性能优于其他检测算法。
图9 各主流算法实测效果对比Fig.9 Comparison of results of various mainstream algorithms
5 结束语
本研究针对地铁车辆螺栓检测问题提出一种基于改进YOLOv4的算法,旨在解决地铁螺栓图像误/漏检率高的问题。研究中,对先验框设置和回归方式进行改进,将PANet网络与ASFF技术进行融合,抑制了梯度反传的不一致,进而改善特征的比例不变性,采取二级级联分步检测螺栓目标的方法降低误检率。根据实验结果可知,改进算法值达到99.5%,达到99.8%,且检测速度与原算法相当,对比现存的主流目标检测算法综合性能突出,可靠性和检测精度均得到提升。此外,本文选用地铁车辆转向架螺栓作为研究对象,可进一步开展对轴箱及车底等其他部位、类型的螺栓检测研究工作。