基于改进YOLOv5s+DeepSORT的煤块行为异常识别
2022-07-07张旭辉闫建星张超万继成王利欣胡成军王力王东
张旭辉, 闫建星, 张超, 万继成, 王利欣, 胡成军, 王力, 王东
(1. 西安科技大学 机械工程学院,陕西 西安 710054;2. 中煤(天津)地下工程智能研究院,天津 300121;3. 陕西煤业化工集团 孙家岔龙华矿业有限公司,陕西 榆林 719314)
0 引言
煤矿环境及危险源感知与安全预警是智能煤矿与智能化开采关键核心技术[1]。综采工作面在采煤过程中会产生大量煤矸,为防止煤块对运输设备造成损坏,准确识别与检测刮板输送机上的煤块及其数量,判断煤块滞留、堵塞状态并进行预警至关重要[2]。
目前,煤块检测方法主要包括传统图像检测和深度学习目标检测2类。张渤等[3]通过对图像进行预处理、灰度化、阈值分割,提取运动煤块进行标记,实现了大块煤检测。许军等[4]提出了一种基于图像处理的溜槽堆煤预警方法,通过分析图像运动和亮度特性,根据阈值提取煤块区域,计算煤块煤粒度比值和累计煤粒度比值的大小进行堆煤预警。张立亚[5]采用无监督分割算法获取煤堆边界,根据煤量在网格中的时间长短判断堆煤预警。以上文献都是通过传统图像处理进行边缘提取和利用阈值来识别煤块和堆煤预警,存在检测精度不高、实时性较差、无法对堆煤进行准确判断等问题。深度学习目标检测方法主要有双阶段检测方法和单阶段检测方法[6-8]。南柄飞等[9]提出了一种基于视觉显著性的煤矿井下关键目标对象实时感知方法,提高了目标检测的精度与实时性。杜京义等[10]针对现有煤块检测方法检测精度不高的问题,提出了一种基于改进HED神经网络融合Canny算子的煤矿井下输煤大块物检测方法,将预处理图像输入改进的HED神经网络与Canny算子融合模型中,得到边缘图像,通过二进制填充图像,并进行标注得到大块物个数与面积。Wang Yujing等[11]通过改进SSD(Single Shot MultiBox Detector,单步多框检测器)损失函数和优化锚框的尺寸,提高了目标的检测精度。胡璟皓等[12]基于YOLOv3模型,通过Focal Loss改进损失函数,解决了非煤异物样本不平衡问题,通过实验确定最优参数,提高了检测精度 。叶鸥等[13]提出了一种融合轻量级网络和双重注意力机制的煤块检测方法,减少了模型参数。以上文献都是利用深度学习方法实现大块物的检测,但是没有对煤块的数量、滞留和堵塞状态进行识别,而且识别模型参数较多,对计算机硬件要求比较高,无法在显存和内存小的设备上部署[14-15]。
针对以上问题,本文提出了一种基于改进YOLOv5s+DeepSORT的煤块行为异常识别方法。选择参数量最少、检测速度最快、识别精度较高的YOLOv5模型进行煤块目标检测,将YOLOv5s模型主干网络替换为MobileNetV3,以减少其参数量和计算量,并将YOLOv5s模型中原有的特征融合网络改进为增强特征金字塔网络(Adaptive Attention Module and Feature Enhancement Module-Feature Pyramid Network,AF-FPN)[16],以提高YOLOv5s网络对多尺度煤块目标的检测性能;将改进YOLOv5s模型检测后的煤块应用DeepSORT算法进行多目标跟踪,设置距离阈值,判断其是否滞留;设置数量阈值,判断其是否堵塞。实验结果证明了该方法的可靠性。
1 改进YOLOv5s模型
1.1 YOLOv5s模型
YOLOv5s 模型主要由Input、Backbone、Neck和Output组成,如图1所示。
图1 YOLOv5s网络结构Fig. 1 YOLOv5s network structure
Input为输入端,采用Mosaic数据增强、自适应图像填充、自适应锚框对输入图像进行处理。Backbone为CSPDarknet53主干网络,主要包含Focus、CSP和SPP(Spatial Pyranid Pooling,空间金字塔模块)结构[17]。Focus对输入图像进行切片操作,减少模型层数,提高运行速度。CSP网络结构由CBL模块、Resuit模块、Concat通道融合结构、Leaky_Relu组成。CBL模块由卷积模块(Conv)、批标准化模块(Batch Normalization,BN)、激活函数(Leaky_Relu)构成。SPP可以增大特征图的感受野。Neck包含FPN(Feature Pyramid Networks,特征金字塔网络)、PAN(Path Aggregation Network,路径聚合网络)[18]。Output通过Conv输出不同尺度的检测结果,包括NMS(Non-Maximum Suppression,非极大值抑制)和损失函数。YOLOv5s原始模型中使用GIoU[19]作为损失函数。
1.2 YOLOv5s特征提取网络改进
为了进一步减少YOLOv5s参数量,提高推理速度,本文使用MobileNetV3_Large结构改进YOLOv5s的主干网络,改进后的YOLOv5s网络整体框架如图2所示。
图2 改进后的YOLOv5s网络结构Fig. 2 Improved YOLOv5s network structure
MobileNetV3_Large 结构见表1,其中Input Shape为输入特征图,Operator为对特征层进行Block处理,SE为注意力机制,AF为激活函数(HS表示H-Swish函数,RE表示ReLU函数),Stride为卷积的步长。
表1 MobileNetV3_Large结构Table 1 MobileNetV3_Large structure
MobileNetV3_Large结构的核心模块是Bneck,如图3所示。Bneck采用了深度可分离卷积与残差结构,并加入了注意力机制,提高了特征提取能力。相比传统卷积,Bneck核心在几乎不影响模型性能的同时使模型参数量、计算量减少。
图3 Bneck网络结构Fig. 3 Bneck network structure
为在保持精度的同时提高推理速度,在MobileNetV3中引入了H-Swish函数,在设计特征提取网络时,考虑到模型检测的实时性要求,在网络前端采用ReLU函数,在后端采用H-Swish函数,减少H-Swish造成的网络延迟,达到检测速度和精度的平衡。
1.3 YOLOv5s特征融合网络改进
刮板输送机上的煤块尺度变化较大,为提高对煤块多尺度目标的检测性能,将YOLOv5s中原有的特征金字塔网络改进为AF-FPN。AF-FPN在原有的特征金字塔网络的基础上,增加了自适应注意力模块(Adaptive Attention Module,AAM)和特征增强模块(Feature Enhancement Module,FEM)。AAM减少了特征通道,降低了在高层特征图中上下文信息丢失概率;FEM增强了特征金字塔的表示并加快了推理速度,在保证实时检测的前提下提高了YOLOv5s网络对煤块多尺度目标的检测性能。MobileNetV3_YOLOv5s_AF-FPN网络结构如图4所示。
图4 MobileNetV3_YOLOv5s_AF-FPN网络结构Fig. 4 MobileNetV3_YOLOv5s_AF-FPN network structure
输入图像通过多个卷积生成多尺度特征图C1-C5,C5通过AAM生成M6。M6与M5求和融合,得到新的特征图,通过自上而下传递特征,将高层特征图放大后与浅层特征图融合,每次融合后通过FEM自适应学习感受野,同时将浅层中的定位信息自下向上进行传递,增强整个特征层次。PAN缩短了浅层和高层特征之间的信息路径,能够准确保存空间信息,增强整个特征提取网络的定位能力。
AAM的网络结构如图5所示。作为AAM的输入,特征图C5的大小S=H×W(H为特征图长度,W为特征图宽度)。通过自适应平均池化层获得具有不同特征尺度(βi×S,βi为不同特征尺度对应的系数,i为系数个数,i=1,2,3;βi为[0.1,0.5],可以根据数据集中的目标大小自适应变化)的多个上下文特征,每个上下文特征经过1×1卷积获得相同的信道维度(256)。采用双线性插值法采集不同尺度特征图的信息,以进行后续融合。空间注意力机制通过Concat层合并3个上下文特征的通道,将融合后的特征图依次经过1×1卷积层、ReLU激活层、3×3卷积层和Sigmoid激活函数,生成相应的空间权值图。生成的空间权值图和融合后的特征图经过Hadmard Product分离并添加到特征图M5中,得到具有上下文特征的新的特征图M6,最终的特征图具有丰富的多尺度上下文信息,在一定程度上减轻了由于通道数量的减少而造成的信息丢失。
图5 AAM网络结构Fig. 5 AAM network structure
FEM主要利用空洞卷积,根据检测到的煤块的不同尺度自适应学习每个特征图中不同的感受野,从而提高多尺度目标检测和识别的准确性。FEM网络结构如图6所示,分为2个部分:多分支卷积层和多分支池化层。多分支卷积层由扩张卷积层、BN层和ReLU激活层组成。3个平行分支中的扩张卷积具有相同尺寸的扩张卷积核,但扩张率不同,分别为3,5和7。平均池化层用于融合来自3个分支感受野的煤块信息,以提高煤块多尺度预测的准确性。
图6 FEM网络结构Fig. 6 FEM network structure
2 煤块行为异常识别
2.1 煤块行为异常识别方法
针对煤块滞留和堵塞的行为,提出了一种融合改进YOLOv5s+DeepSORT的煤块行为异常识别方法,流程如图7所示。
图7 煤块行为异常识别方法流程Fig. 7 Flow of coal block abnormal behavior identification method
(1) 通过摄像头和巡检机器人采集煤矿综采工作面视频图像,并制作数据集。
(2) 将当前煤块图像输入到训练好的改进YOLOv5s目标检测模型中,得到煤块的定位信息。
(3) 将经过YOLOv5s目标检测后的煤块边界框信息输入到DeepSORT中,对煤块进行状态估计,通过运动匹配、外观匹配、级联匹配与IoU(Intersection over Union,交并比)匹配进行数据关联匹配,通过跟踪器参数更新确定跟踪结果,并对连续跟踪的煤块进行ID编码,对当前帧的煤块数量进行计数。
(4) 在目标跟踪器中取出连续跟踪的每个目标框的50帧边界框信息,循环计算这50帧内的同一个目标的最大像素距离。统计煤块移动距离,如果最大像素距离小于5,则判定为滞留状态,进行报警和处理,以防进一步造成煤块堵塞;否则判定为正常运输状态。
(5) 统计煤块滞留数,如果滞留数超过3,则判定为堵塞状态,进行报警和处理。
(6) 根据当前帧煤块数量进行刮板输送机的调速。当检测到的煤块数量为0时,刮板输送机停机;当检测到的煤块数量小于阈值时,刮板输送机低速运行;当检测到的煤块数量大于阈值时,刮板输送机高速运行。
2.2 DeepSORT多目标跟踪算法
DeepSORT多目标跟踪算法流程如图8所示,包括煤块状态估计、数据关联匹配和跟踪器更新3个步骤。
图8 DeepSORT多目标跟踪算法流程Fig. 8 DeepSORT multi-target tracking algorithm flow
2.2.1 煤块状态估计
为跟踪YOLOv5s模型检测到的每一块煤块,定义8维状态向量x表征煤块的状态:
式中:(u,v)为煤块的中心坐标;γ,q分别为煤块边界框的宽高比和高;为煤块(u,v,γ,q)在图像坐标系中对应的速度信息。
煤块的状态估计通过卡尔曼滤波器实现,包括预测和更新2个阶段。预测阶段根据前一帧被跟踪煤块的位置完成当前帧煤块位置的预测;更新阶段根据当前帧检测到的煤块位置更新预测阶段的煤块位置。煤块的状态预测为
式中:Xt为第t帧煤块的位置;F为状态转移矩阵;Pt为第t帧煤块的误差协方差矩阵;Qt-1为过程噪声矩阵。
煤块的状态更新为
式中:Kt+1为第t+1帧煤块的卡尔曼增益;E为煤块的观测矩阵;R为煤块观测噪声;εt+1为第t+1 帧煤块检测位置与预测位置之间的残差;Xt+1为Xt更新后第t+1 帧的煤块位置;Pt+1为更新后第t+1 帧煤块位置 误差的协方差矩阵;I为单位矩阵。
2.2.2 数据关联匹配
数据关联匹配可以使帧与帧之间的煤块保持关联,保证同一煤块编码ID的一致性[20]。利用卡尔曼滤波对煤块检测结果进行预测。使用运动匹配和外观匹配的线性加权作为煤块匹配衡量指标。使用级联匹配优先匹配消失时长较小的煤块轨迹,解决煤块被遮挡的问题。
通过计算检测框和第i个轨迹预测框的面积得到IoU,计算公式为
式中A,B分别为预测框与检测框的面积。
运动匹配是用马氏空间距离计算经卡尔曼滤波后的煤块预测位置和检测位置的匹配程度。
式中:d(1)(i,j)为第i个轨迹和第j个检测框预测得到的边界框的马氏距离;dj为第j个煤块检测框;yi为第i个轨迹预测边界框;Gi为第i个轨迹预测在当前测量空间的协方差矩阵。
当马氏距离小于指定阈值时,认为煤块匹配成功。
外观匹配是利用最小余弦距离计算当前帧中所有煤块的特征向量与历史轨迹中所有煤块特征向量之间的外观相似度。
式中:d(2)(i,j)为第i个轨迹和第j个检测框的最小余弦距离,若d(2)(i,j)小于卷积神经网络训练阈值,则关联成功;rj为当前帧第j个检测框dj的外观描述符,限定条件为‖rj‖;o(i)为第i个确定轨迹储存的最近100帧成功关联的特征向量,Li为外观特征向量库,用于存储每个确定轨迹的外观特征向量。
将马氏距离与余弦距离线性加权作为关联匹配的衡量值:
式中 λ为权重系数。
若ci,j落在指定阈值范围内,则认定实现正确关联。
2.2.3 跟踪器更新
煤块数据关联匹配后,跟踪器需要更新,以便进行下一帧的煤块跟踪。跟踪器更新主要包括以下3种情况:
(1) 对于匹配成功的跟踪器,被检测的煤块将继承与其匹配成功的跟踪器编码,并利用匹配成功的边界框的信息预测下一帧煤块位置。
(2) 对于级联匹配未成功的跟踪器,DeepSORT会进行IoU匹配,若匹配成功,则继承跟踪器编码;匹配不成功的跟踪器,考虑检测器漏检的情况,如果跟踪轨迹的标记为不确定,则删除轨迹,如果标记为确定,则为其设置生存帧数,若在生存帧数之内仍匹配失败,则移除轨迹。
(3) 对于级联匹配未成功的被检测煤块,DeepSORT会进行IoU匹配。对于IoU匹配未成功的被检测煤块,为其建立一个新的跟踪器,分配编码,并标记为不确定轨迹,进行3次匹配,若匹配成功,则标记为确定轨迹。
3 实验与分析
3.1 数据集及实验环境
实验所用的数据集主要源自陕西榆林市某煤矿。用ffmpeg调取刮板输送机输送煤块的工作视频,每隔1 s存储1张图像,共得到10 000张真实图像,涵盖了不同尺寸的煤块。通过LabelImg工具进行标注,制作dkm_data2021数据集。
实验以Pytorch为软件框架,模型训练硬件环境为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)。
3.2 参数设置及评价指标
模型训练参数设置:输入图像大小为608×608,迭代次数为100,批次大小为16,初始学习率为0.001。
将模型参数量、推理时间、召回率Mr、平均精度Mp、 平均漏检率Mm、平均误检率Mf作为评估各模型的客观指标。
式中:TP为被正确检测出的煤块;FN为没有被检测出的煤块;FP为误检的煤块;TN为没有被误检的煤块。
在多目标跟踪实验评价中,选用多目标跟踪准确率(Multiple Object Tracking Accuracy,MOTA)和多目标跟踪精度(Multiple Object Tracking Precision,MOTP)作为评价指标,同时考虑误检、漏检的情况来评价跟踪算法的性能。MOTA值越大表示性能越好;MOTP用于定量分析跟踪器的定位精度,值越大表示精度越高。
3.3 实验评估与分析
3.3.1 YOLOv5s特征提取网络实验对比
为了验证主干网络轻量化改进的有效性,对改进前后的 YOLOv5s进行实验对比,实验结果见表2。从表2 可看出,MobileNetV3_YOLOv5s 与YOLOv5s相比,平均精度降低了3.2%,参数量减少了49.8%,推理加速了20.6%,在精度略低的情况下,参数量大幅下降。
表2 特征提取网络实验对比Table 2 Comparison of feature extraction network experiments
3.3.2 YOLOv5s特征融合网络改进实验对比
为了验证特征融合网络的有效性,设置了2组改进网络进行对比实验,实验结果见表3。从表3可看出,YOLOv5s_AF-FPN相比YOLOv5s,平均精度提高了4.94%;MobileNetV3_YOLOv5s_ AF-FPN相比MobileNetV3_YOLOv5s,平均精度提高了5.78%,说明YOLOv5s_AF-FPN相比YOLOv5s原有的特征金字塔,提高了多尺度煤块目标的检测精度。MobileNetV3_YOLOv5s_AF-FPN相比YOLOv5s平均精度提高了1.45%,参数量下降了35.3%,推理加速了12.7%,平均漏检率降低了11.08%,平均误检率降低了11.54%,在精度和实时性方面都有提升。
表3 特征融合网络实验对比Table 3 Comparison of feature fusion network experiments
为进一步验证MobileNetV3_ YOLOv5s_AFFPN模型的可靠性,分别测试YOLOv5s模型与MobileNetV3_ YOLOv5s_AF-FPN模型在光照不均匀、有粉尘、清晰环境下的煤块检测效果,效果对比如图9所示,其中边界框上面的dkm表示检测的煤块标签,数字表示检测煤块的相似度。从图9可看出,MobileNetV3_YOLOv5s_AF-FPN相比YOLOv5s,检测出的煤块更多,对小目标的检测性能更好,表明MobileNetV3_YOLOv5s_AF-FPN模型对不同环境、不同尺度的煤块检测精度更高。
图9 YOLOv5s模型与MobileNetV3_YOLOv5s_AF-FPN模型的煤块检测效果对比Fig. 9 Comparison of coal detection effect of YOLOv5s model and MobileNetV3_YOLOv5s_AF-FPN model
3.3.3 煤块行为识别实验
为了进一步验证煤块行为异常识别方法的有效性,分别用YOLOv5s+DeepSORT、MobileNetV3_YOLOv5s_ AF-FPN+ DeepSORT算法对刮板输送机上煤块正常状态、煤块滞留、煤块堵塞进行实验测试,用客观评价指标进行定量分析,结果见表4。视频图像帧大小1 280×720,帧率为30帧/s。从表4可看出,MobileNetV3_YOLOv5s_ AF-FPN+DeepSORT相比YOLOv5s+DeepSORT,跟踪准确率提高了4.79%,跟踪精度提高了4.71%,漏检数减少了24个,误检数减少了15个。MobileNetV3_YOLOv5s_AF-FPN检测精度更高,达80.1%,更有利于多目标跟踪。
表4 多目标跟踪结果对比Table 4 Comparison of multi-target tracking results
用MobileNetV3_YOLOv5s_AF-FPN+DeepSORT算法检测煤块不同状态,效果如图10-图12所示,其中边界框上dkm表示检测的煤块标签,后面的数字表示目标跟踪分配的ID编号;fps为推理速度;Normal、Stop、Block分别表示当前帧检测到的煤块为正常状态、滞留状态、堵塞状态;Current_number为当前帧中的煤块数量;煤块正常状态目标框为蓝色,煤块异常行为状态目标框为红色。
图10 煤块正常跟踪Fig. 10 Coal block normal tracking
从图10可看出:Current_number显示第3帧、第49帧、第81帧、第95帧的煤块数量分别为1,2,2,2,表明可以准确显示当前帧的煤块数量,煤块为正常追踪状态,边界框为蓝色。在第3帧、第49帧、第81帧、第95帧中有标签dkm1,表明可以准确追踪编号为1的煤块。在第49帧、第81帧、第95帧中有dkm2,表明可以准确追踪编号为2的煤块。
从图11可看出:Current_number显示第136帧、第238帧、第286帧、第407帧的煤块数量均为1,表明可以准确显示当前帧的煤块数量。在第286帧、第407帧中,编号为2的煤块边界框变成红色,Stop=1,表明煤块为滞留状态,滞留数量为1。
图11 煤块滞留Fig. 11 Coal block retention
从图12可看出:Current_number显示第2 156帧、第2 220帧、第2 426帧、第2 812帧的煤块数量分别为3,2,3,3,表明可以准确显示当前帧的煤块数量。在第2 220帧中编号为26、27的煤块边界框为红色,Stop=2,表明煤块为滞留状态,滞留数量为2。在第2 426帧、第2 812帧中,编号为26、27、30的煤块边界框为红色,Block=3,表明煤块为堵塞状态,堵塞数量为3。
图12 煤块堵塞Fig. 12 Coal block blockage
4 结论
(1) 基于目标检测、多目标跟踪技术,提出了一种基于改进YOLOv5s+DeepSORT的煤块行为异常识别方法,利用改进YOLOv5s模型对煤块进行检测,利用DeepSORT算法对煤块进行目标跟踪,设置距离、数量阈值,实现煤块行为异常识别。
(2) 用MobileNetV3替换YOLOv5s主干网络,将YOLOv5s中原有的特征金字塔网络改进为AF-FPN。实验结果表明:改进YOLOv5s模型相比原网络平均检测精度提高了1.45%,参数量下降了35.3%,推理加速了12.7%,平均漏检率降低了11.08%,平均误检率降低了11.54%。改进后的网络提高了煤块检测精度,参数量大幅降低,实时检测性能好,可移植性高。
(3) 结合MobileNetV3_YOLOv5s_AF-FPN与DeepSORT模型,设置距离阈值、数量阈值,进行煤块行为异常识别。实验结果表明:MobileNetV3_YOLOv5s_AF-FPN+DeepSORT模型对煤块正常状态、滞留、堵塞的跟踪精度为80.1%,煤块行为判断准确。