基于改进YOLOv5s的护帮板异常检测方法研究
2023-01-12张旭辉闫建星鞠佳杉沈奇峰吴雨佳
张旭辉,闫建星,麻 兵,鞠佳杉,沈奇峰,吴雨佳
(1.西安科技大学机械工程学院,陕西西安 710054;2.陕西省矿山机电装备智能监测重点实验室,陕西西安 710054)
采煤机和液压支架护帮板的运行状态关系着煤矿生产的安全。在煤矿综采过程中,须准确识别护帮板是否支护到位,以防止煤壁片帮;准确识别护帮板与采煤机的运动是否产生干涉,以防止设备损坏。传统的护帮板检测方法是采用传感器进行检测。如:魏文艳等[1]提出了一种护帮板自动控制系统和自动控制方法,采用接近开关、压力传感器和行程传感器监测护帮板状态;黄金福等[2]设计了一种护帮板控制装置,采用倾角传感器和压力传感器监测护帮板的支护状态;梁海权等[3]提出了一种护帮板状态监测方法,将电压运算电路与磁感应器相连来监测护帮板状态;徐勇智[4]设计了一种护帮板收放监测系统,结合接近开关、压力传感器、PLC(programmable logic controller,可编程逻辑控制器)和LabVIEW软件来识别和控制护帮板的支护状态。上述方法都采用了大量传感器,存在设备成本高和维修困难等问题。随着机器视觉技术的发展,学者们提出了图像检测方法。如:王渊等[5]提出了一种采用图像边缘检测技术识别护帮板状态的方法。同时,随着深度学习技术的发展,目标检测在工业领域得到成功应用[6]。如:南柄飞等[7]提出了一种应用于煤矿井下复杂环境场景的关键设备目标对象实时感知方法,提高了目标检测的精度与实时性;Xie等[8]通过Faster RCNN (region based convolutional neural network,区域卷积神经网络)目标检测,实现了鱼肉中鱼骨的自动化检测;周得永等[9]通过YOLOv3算法实现了太阳能电池板缺陷检测;张博尧等[10]提出了一种基于YOLOv4网络模型的金属表面划痕检测方法;韩佳彤等[11]通过YOLOv5网络模型实现了市政道路破损的检测;张全等[12]提出了一种融合YOLOv5-ResNet级联网络的烟火检测方法;李一鸣等[13]基于YOLOv5s模型实现了轧钢表面缺陷检测;叶欧等[14]提出一种融合轻量级网络和双重注意力机制的大块煤检测方法,减少了模型参数;魏强[15]针对机器视觉测量的实时性问题,提出了一种基于神经网络的液压支架护帮板状态自动检测方法,采用Tiny-YOLOv3目标检测方法实现了护帮板支护状态的实时检测。基于深度学习的目标检测方法虽然具有较高的准确度,但参数量和计算量较大,计算资源和内存消耗大,难以在嵌入式设备上部署。
本文提出一种基于改进YOLOv5s算法的护帮板异常检测方法。在YOLOv5s算法的基础上,将MobileNetV3网络结构和NAM(normalization-based attention module,标准化注意力模块)替换主干特征提取网络,在减小参数量的同时提高特征提取能力;优化边框回归损失函数,以提高训练速度和精度,便于轻量化模型的部署;通过知识蒸馏,实现在拥有较小参数量的基础上提高检测精度;结合护帮板异常状态分析与改进的YOLOv5s实现护帮板异常检测。综上,可以在减小参数量的同时保证有较高的精度和较低的硬件成本,以实现在嵌入式终端设备实时检测护帮板状态,满足煤矿工业应用需求。
1 护帮板状态检测系统总体设计
1.1 护帮板状态采集方式
矿用防爆高清本安型摄像头安装在煤矿巡检机器人云台上,如图1所示。摄像头分辨率为(1 920×1 080)像素。通过云台调整摄像头,进行护帮板和采煤机视频的采集。
图1 护帮板状态采集摄像头安装示意Fig.1 Installation schematic of state acquisition camera of side guard
1.2 护帮板状态
根据煤矿综采工作面液压支架护帮板的支护要求,护帮板须与采煤机协同运行。护帮板的状态如图2所示。采煤机截割头标注为caimei;根据护帮板展开角度,护帮板的状态分为8种,分别标注为hb00、hb00_30、hb30_60、hb60_90、hb90、hb90yc、hb90_120和hbyc。其中:hb00为护帮板完全收回状态,采煤机截割头运行时与护帮板不干涉;hb00_30、hb30_60、hb60_90为护帮板展开状态,采煤机运行时会与护帮板发生干涉;hb90为护帮板展开90°的状态,护帮板紧贴煤壁,对煤壁支护到位,可有效防止煤壁片帮;hb90yc表示护帮板结构出现问题,须更换;hb90yc表示护帮板展开90°,且护帮板与煤壁留有很小的间隙,支护强度不够;hb90_120表示护帮板展开角度过大,护帮板与煤壁留有很大的间隙,支护强度不够。
图2 护帮板状态Fig.2 Status of side guard
1.3 护帮板数据集制作
实验所用的护帮板数据集hb_data2021来源于陕西榆林某煤矿,从该煤矿调取了时长为10 d的煤矿监控视频。采用FFmpeg程序调取护帮板和采煤机的工作视频,视频流每播放1 s保存为1张图片,共得到10 000张煤矿井下真实图像。采用LabelImg软件在图像上对护帮板状态进行标注,如图3所示,制作成护帮板数据集,然后以8∶1∶1的比例形成为训练集、验证集和测试集。
图3 护帮板状态标注示例Fig.3 Example of state marking of side guard
1.4 护帮板异常状态的检测
护帮板异常状态检测系统如图4所示。首先,在服务器上训练基于改进YOLOv5s的目标检测模型,将异常状态检测模型移植到嵌入式设备;其次,通过搭载在巡检机器人上的摄像头采集护帮板、采煤机视频,采用FFmpeg插件解码视频并将它传送到嵌入式设备中进行实时异常检测;最后,若嵌入式设备检测结果为异常,声光报警灯进行异常报警,提醒液压支架工进行相应的处理直至系统正常运作,同时将检测结果上传至集控中心。若出现错检、漏检,须将错检、漏检的数据进行更新,再次训练,以保证系统的准确率。
图4 护帮板异常状态检测系统Fig.4 Detection system for abnormal state of side guard
2 YOLOv5s算法
YOLOv5模型是目前YOLO系列较新的版本,分为 YOLOv5s、 YOLOv5m、 YOLOv5l和 YOLOv5x,其网络结构复杂度和参数量依次递增。YOLOv5s的模型参数最小,为7.2 MB,模型网络深度和宽度最小,检测速度最快;YOLOv5x的模型参数最大,为86.7 MB,模型网络深度和宽度最大。本文选择检测速度最快、识别精度较高的YOLOv5s,便于将其部署到嵌入式设备中。
YOLOv5s网络结构包括Input、Bacbone、Neck和Output四部分,如图5所示。
图5 YOLOv5s网络结构Fig.5 YOLOv5s network structure
Input表示输入(608×608)像素的图片。图片进行了数据增强、缩放和自适应锚框等处理。
Bacbone为特征提取网络,包括Focus、Conv、C3和SPP(spatial pyranid pooling,空间金字塔模块)等模块。其中:Focus模块通过切片操作减少计算量和网络层数,提高推理速度;Conv是卷积模块,用来提取特征;C3模块是CSPNet将底层的特征图按通道拆分为两部分,一部分经过密集块和过渡层,另一部分与传输的特征图结合;SPP模块通过4个不同的池化层向下传递和融合。
Neck为特征融合网络,将特征进行融合,然后传递到输出端。其包含FPN(feature pyramid networks,特征金字塔)+PAN(path aggregation network,路径聚合结构)结构,其中:FPN自顶向下传递特征的结构,利用Upsampl传递和融合特征信息得到特征图;PAN采用自下向上的传递融合方式,增强特征提取能力。
Output为非极大值抑制和损失函数。采用GIoU[16]作为损失函数。
3 YOLOv5s网络模型的改进
3.1 主干网络改进
相比YOLOv3模型,YOLOv5s的速度和精度得到了提升,但模型仍然较大,不适合部署到显存和内存较小的嵌入式设备上。YOLOv5s模型使用传统卷积参数量Din×k×k×Dout,其中:Din为输入特征图,k为卷积核大小,Dout为输出特征图。
YOLOv5s主干网络模型复杂度过高。为了减小参数量,提高推理速度,须采用更优的算法部署到嵌入式设备上。本文采用MobileNetv3[17]来改进YOLOv5s主干网络。MobileNetv3主干网络中Bneck的网络结构如图6所示。
图6 Bneck网络结构Fig.6 Bneck network structure
Bneck采用深度可分离卷积。在不影响模型性能的前提下,与传统卷积相比,其模型参数量显著减小。参数量下降比为:
为了在保持精度的前提下提高推理速度,在MobileNetv3中引入h-swish函数。在设计特征提取网络时,考虑到模型检测实时性的要求,在网络前端采用ReLU函数,只在后端采用h-swish函数,以减小h-swish造成的网络延迟,达到检测速度和精度的平衡。
由于煤矿井下环境复杂,井下目标尺度多样,为了提高特征提取能力,在MobileNetv3中引入注意力机制SENet[18]。对每个通道进行全局平均池化,采用2个全连接层对通道进行膨胀和压缩。然而,2个全连接层的使用会增大参数量,同时SENet在抑制不重要的像素时也会带来效率低下的问题,因此引入轻量级注意力机制NAM[19],可以避免SENet、CBAM(convolutional block attention module,卷积注意力机制模块)[20]使用的全连接层和卷积层,降低模型复杂度,提高准确率与检测速度。NAM采用CBAM模块整合方式。CBAM的网络结构如图7所示。利用权重的贡献因子来改善注意力机制,重新设计了空间和通道注意力模块。对于通道注意力模块,采用批归一化中的比例因子,如式(2)所示。
图7 CBAM网络结构Fig.7 CBAM network structure
式中:P表示批归一化;Bin为输入特征;Bout为输出特征;μB为均值;σB为标准差;ϵ为误差;a和o均为可训练的仿射变换参数。
通道注意力子模块的结构如图8所示。图中:F1为输入特征;Mc为输出特征,如式(3)所示。权值γi是每个通道的比例因子。这里将P的比例因子应用于空间维度,称之为像素归一化。
图8 通道注意力模块的结构Fig.8 Structure of channel attention module
空间注意力子模块的结构如图9所示。图中:F2为输入特征;Ms为输出特征,如式(4)所示。权值λj为每个通道的比例因子。将P的比例因子应用于空间维度,称之为像素归一化。
图9 空间注意力模块的结构Fig.9 Structure of spatial attention module
3.2 损失函数的改进
GIoU损失函数引入了预测框和真实框的最小外接矩形,改善了在真实框和预测框不相交的情况下无法预测两者距离的问题[21]。CIoU预测框和真实框如图10所示。当预测框与真实框完全重叠时,损失值不会改变,在训练过程中也不会发生发散。CIoU损失函数优化了重叠面积、中心点距离和纵横比,使得目标框回归更加稳定,有助于提高收敛速度和最终的检测性能[22]。CIoU的定义如下:
图10 CIoU预测框和真实框Fig.10 CIoU prediction frame and real frame
式中:I为交并比;G∩D表示预测框D与真实框G的相交区域;D∪G表示预测框D与真实框G的并集区域。
式中:LCloU为CIoU损失;ρ为预测框与真实框中心点之间的距离;b、bgt分别为预测框和真实框的中心点;c为预测框与真实框并集区域的对角线距离;β为权重系数;u为长宽比的相似系数;ω、h分别为预测框的高度和宽度;ωgt、hgt分别为真实框的高度和宽度。
该损失函数在训练过程中损失及梯度不能自适应,从而影响训练效果。为了解决这一问题,对CIoU进一步优化,引入α-IoU[23]。通过Box-Cox变换,将IoU损失归纳为α-IOU,即:
式中:Lα-IoU为α-IOU损失;α为变换参数。
根据式(8),采用相同的参数α归纳出基于CIoU的损失函数α-CIOU,即:
CIOU和α-CIoU的损失及梯度如图11所示。当0<α<1和α>1时,α-CIoU将根据所有目标的CIoU降低High CIoU目标的权重,影响边界框的回归精度;当α>1时,α-CIoU提高了High CIoU目标损失和梯度自适应加权的边界框的回归精度,可以帮助模型更加关注于High CIoU目标,提高定位和检测性能。本文取α=3,使模型更加关注于High CIoU目标。因此,优化的α-CIoU比CIoU更有利于提高High CIoU目标边界框的回归精度和轻量化模型网络结构。
图11 CIOU和α-CIoU的损失及梯度Fig.11 Loss and gradient of CIoU and α-CIoU
3.3 知识蒸馏
MobileNetv3为轻量级网络。针对模型轻量化改进后精度下降的问题,引入知识蒸馏[24],即:采用迁移学习的思路将教师模型转移到学生模型,指导学生模型的训练,使学生网络在拥有较小参数量的条件下达到与教师网络相同甚至高于教师网络的精度。故以YOLOv5s为教师模型,将改进后的YOLOv5s模型作为学生模型,进行知识蒸馏,得到最终轻量化模型,如图12所示。
图12 知识蒸馏Fig.12 Knowledge distillation
4 基于改进YOLOv5s的护帮板支护状态检测方法
液压支架长期在综采工作面工作,会出现故障甚至损坏,或者出现运动干涉,因此需巡检机器人及时发现并进行相应的处理。
根据采煤机采煤工艺的需求,护帮板支护状态分为2类:正常状态和异常状态。正常状态分为3种:1)只检测到hb90,即没有采煤机时护帮板处于正常的支护状态;2)只检测到采煤机截割头;3)只检测到采煤机截割头、护帮板hb00状态,即采煤机工作时护帮板处于完全收回状态。异常状态是指除正常状态以外的检测结果的组合:1)采煤机未工作时护帮板支护状态不到位;2)采煤机工作时护帮板收回不到位,出现设备干涉。
通过改进的YOLOv5s对护帮板视频进行检测,对检测后的标签进行分类,判定其是否异常。用条件判断语句检测标签结果并进行分类处理:如果监控视频中一帧的检测结果只有标签caimei和hb00,在监控视频左下角显示绿色的“normal”,表示为正常工作状态;如果监控视频中一帧的检测结果只有标签hb90,在监控视频左上角显示绿色的“normal”,表示为正常工作状态;如果监控视频中一帧的检测结果只有标签caimei,在监控视频左下角显示绿色的“normal”,表示为正常工作状态;如检测到其他标签组合,则在监控视频左下角显示红色的“abnormal”,表示为异常工作状态。当出现异常状态时,声光报警灯报警,提醒液压支架工进行处理。
5 护帮板状态检测实验
5.1 实验环境
实验模型训练平台为Intel(R)Core(TM)i7-11800H(内存为16 GB)和NVIDIA GeForce RTX 3060 Laptop GPU(显存为6 GB),模型测试硬件环境为Intel(R)Core(TM)i7-8750H(内存为16 GB)和NVIDIA RTX 2080 Ti(显存为6 GB),最后在NVIDIAJetson Xavier NX上开展模型推理实验。
5.2 训练参数及评价指标
模型训练参数如表1所示。
表1 模型训练参数Table 1 Model training parameters
将平均精度T、参数量C和推理速度ν作为评价指标。
准确率R表示正确预测的比例,可表示为:
式中:V为被正确检测的护帮板和采煤机个数;Q为被误检的护帮板和采煤机个数。
T是对全部类别的平均精度Ta求均值,而Ta可以表示为:
式中:r为召回率。
5.3 实验结果与分析
1)主干网络轻量化改进对比。
为了验证主干网络轻量化结合注意力机制改进的有效性,设置了主干网络轻量化改进对比实验,利用标准数据集VOC2007进行实验训练。实验结果如表2所示。
表2 主干网络轻量化改进实验结果Table 2 Experimental results of backbone network lightweight improvement
由表2可知:MobileNetv3_YOLOv5s模型与基础网络YOLOv5s相比,平均精度降低了3.5%,但参数量减小了49.8%,推理速度提升了27.1%;将MobileNetv3增加2种注意力机制模型,MNtCBAM_YOLOv5s与MobileNetv3_YOLOv5s相比,须增大参数量才能提升网络的平均精度和推理速度,而MNtNAM_YOLOv5s可以在不增大参数量的前提下提升网络的平均精度和推理速度。本文提出的MNtNAM_YOLOv5s相比YOLOv5s,平均精度略下降2.5%,但参数量减小了49.8%,推理速度提升了36.6%。因此,改进后的轻量化主干网络仍具有良好的检测性能,更适合部署到嵌入式设备。
2)损失函数改进对比。
为了验证α-CIoU的有效性,设置了损失函数改进对比实验。YOLOv5s默认损失函数为CIoU,α-CIoU中取α=3,对标准数据集VOC2007进行实验训练。实验结果如表3所示。
表3 损失函数改进实验结果Table 3 Experimental results of loss function improvement
由表3可知:YOLOv5s(α-CIoU)与YOLOv5s相比,T50提高了0.24%,T50~95提高了10.85%,T提高了 1.6%;MNtNAM_YOLOv5s_(α-CIoU)与 YOLOv5s相比,T50提高了0.23%,T50~95提高了10.26%,T提高了1.5%。实验结果表明:取α=3,采用α-CIoU时,平均精度提高;对于Low CIoU目标,精度提高得较少,对于High CIoU目标,精度提高得较多;模型会使High CIoU目标更加敏感及得到更多关注,参数量也没有增大,因此更适合轻量化模型。
3)知识蒸馏对比。
为了验证知识蒸馏的有效性,设置了知识蒸馏对比实验,对标准数据集VOC2007进行实验训练。实验结果如表4所示。
表4 知识蒸馏实验结果Table 4 Experimental results of knowledge distillation
由表4可知:MNtNAM_YOLOv5s_(α-CIoU)_Dist的平均精度比学生模型MNtNAM_YOLOv5s_(α-CIoU)提高了1.5%,参数量增大了0.36 M;MNtNAM_YOLOv5s_(α-CIoU)_Dist的平均精度比YOLOv5s提高了1.0%,参数量减小了33.4%,推理加速了34.2%。学生网络MNtNAM_YOLOv5s_(α-CIoU)参数量较小,精度较高。
4)改进YOLOv5s对hb_data2021训练有效性验证。
采用Faster R-CNN、 SSD、 YOLOv3、 YOLOv5s、 MNtNAM_YOLOv5s_(α-CIoU)_Dist(模 型表示为A-YOLOv5s)对护帮板数据集hb_data2021进行训练实验。实验结果如表5所示。
表5 不同模型对hb_data2021的训练结果Table 5 Training results of different models on hb_data2021
由表5可知:YOLOv5s与Faster R-CNN、SSD、YOLOv3相比,平均精度和准确率更高,参数量更小,推理时间更短,算法较适合移植到嵌入式设备中;A-YOLOv5s与YOLOv5s相比,平均精度提高了1.3%,参数量减小了33.4%,推理加速了33.3%,在测试集上的准确率提高了1.1%,因此改进后的算法更适合部署到嵌入式设备中。
在光照不均匀、有粉尘、环境良好等不同检测环境下采用YOLOv5s和A-YOLOv5s进行护帮板状态检测。检测结果如图13所示。检测结果表明,AYOLOv5s在不同检测环境下对多尺度护帮板的检测精度都较高,具有较好的护帮板状态检测能力。
图13 不同检测环境下基于YOLOv5s和A-YOLOv5s的互帮板状态检测结果Fig.13 Test results of side guard status based on YOLOv5s and A-YOLOv5s in different test environments
5)基于A-YOLOv5s的护帮板状态检测。
采用A-YOLOv5s对护帮板状态进行检测,根据检测后的输出标签组合判断护帮板的状态是否正常。检测结果如图14所示。图中:(a)为正常状态,即护帮板正常支护状态(hb90),没有采煤机出现,左下角显示绿色“normal”;(b)为正常状态,即有采煤机时护帮板为收回状态(hb_00),左下角显示绿色“normal”;(c)和(d)为异常状态,即为运动干涉状态,左下角显示红色的“abnormal”。实验表明护帮板异常检测方法的检测效果良好。
图14 护帮板状态检测结果Fig.14 Test results of side guard status
6)模型在NVIDIA Jetson Xavier平台的测试对比。
为了验证A-YOLOv5s模型的实时性、可移植性,在嵌入式平台NVIDIA Jetson Xavier对SSD、YOLOv3、YOLOv5s、A-YOLOv5s进行测试,如图15所示。实验结果如表6所示。
图15 模型在NVIDIA Nvidia Jetson Xavier的测试Fig.15 Model testing on Nvidia Jetson Xavier platform
表6 模型在NVIDIA Jetson Xavier平台的测试结果Table 6 Test results of the model on Nvidia Jetson Xavier platform
由表6可知,SSD、 YOLOv3、 YOLOv5s、A-YOLOv5s移植到Jetson Xavier后,平均精度变化较小;SSD、YOLOv3、YOLOv5s推理速度变慢,达不到30帧/s的要求,A-YOLOv5s可以满足视频实时性的要求,实现煤矿巡检机器人自动巡检。
6 结 论
针对接触式护帮板检测设备成本高、维护困难、效率低、易损坏,以及接触式目标检测推理速度慢、对硬件要求高,无法在显存和内存较小的嵌入式设备上部署等问题,利用煤矿巡检机器人和嵌入式设备,提出了一种基于改进YOLOv5s的液压支架护帮板异常检测方法。通过安装在巡检机器人上的本安型防爆摄像头采集护帮板、采煤机图像,在NVIDIA Jetson Xavier平台上采用基于改进YOLOv5s的异常检测方法对护帮板状态进行识别。
针对原始网络YOLOv5s参数量大、可移植性差等缺陷,采用MobileNetV3和NAM注意力机制替换主干网络,在减小模型参数量的同时提高特征提取能力;采用改进的α-CIoU损失函数,进一步提高了护帮板检测精度;对改进后的网络进行知识蒸馏,在减小参数量的同时提高了护帮板检测精度;实现了A-YOLOv5s模型在NVIDIA Jetson Xavier平台的实时检测。实验结果表明,采用知识蒸馏后的网络,平均精度提高了1.0%,参数量减小了33.4%,推理加速了34.2%。改进后的模型保持了较高的精度,同时参数量大幅减小,实时检测性能得以提升。对基于改进YOLOv5s的护帮板状态检测结果的标签组合进行分类,实现了护帮板异常检测,实验结果表明检测效果良好。将基于改进的YOLOv5s的护帮板异常检测方法部署在NVIDIA Jetson Xavier平台上,可以满足实时检测要求,实现对护帮板状态的自动巡检,满足煤矿工业实际需求。