改进Centernet的输送带损伤检测
2023-01-07陈亮,杨迪
陈 亮,杨 迪
(安徽理工大学 电气与信息工程学院,安徽 淮南 232000)
0 引言
矿井下通常利用输送带作为运输煤炭的设备[1],但由于井下环境复杂,随时都有尖锐物体落下导致输送带破裂,或者输送材料中含有大量的不规则物体致使输送带撕裂,从而影响矿上工作的进行,造成重大的经济损失[2-3].所以利用计算机视觉技术对输送带进行实时准确的检测能够确保煤矿工作有序进行,并在损害发生时将经济损失降至最低.
目标检测算法是对待检测图片中的目标进行精准定位识别的技术,由Girshick提出的R-CNN算法作为分界线可将目标检测分为传统的检测算法和基于深度学习的检测算法.传统的目标检测算法是基于滑动窗口和手工提取特征,计算复杂度高,消耗大量的时间,落地应用困难.而基于深度学习的目标检测算法利用卷积神经网络对特征进行提取,准确性高、检测速度快,目前已在工业界广泛应用.其主要可分为Anchor-based和Anchor-free两条技术线路,其中Anchor-based又可分为一阶段和二阶段检测器,前者代表模型有SSD[4]、YOLO[5]系列,后者代表模型有Faster-RCNN[6]、Cascade RCNN等.Anchor-free的算法模型有Centernet[7]、FCOS[8]等.
基于深度学习的目标检测算法是图片分割、目标跟踪、3D目标检测和人脸识别的基础任务.将耗时耗力的工作让人工智能代替,能够一定程度上缓解劳动者长时间重复性的劳动疲劳.
目前,基于机器学习和深度学习的输送带损伤检测的研究在国内外已经大量展开.郭启皇[9]利用otsu图像分割算法对输送带二值图像的特征进行撕裂检测.刘伟力[10]提出了改进的概率Hough变换直线检测算法,实现了对输送带撕裂和缺陷的检测.张梦超等人[11]通过改进YOLO-tiny模型,有效地平衡了输送带检测的精度与速度.
笔者提出一种改进Centernet的输送带损伤检测模型:首先,将原检测模型的主干特征提取网络替换成Resnet50,并将其中的普通3×3卷积替换成深度可分离卷积,减少计算开销;其次,在解码网络中将主干网络中的4个不同尺度的特征图进行特征融合;最后,针对目标特征不显著提取困难的问题,引入PSA[12]注意力机制,对提取到的特征进行整合.
1 Centernet检测算法
Centernet是基于无锚框的单阶段检测器,它的backbone有DLA-34[13](Deep Layer Aggregation)、Hourglass-104[14]和Resnet-18[15]三种网络,笔者将其主干网络替换成Resnet50.Centernet模型是通过关键点来确定目标位置、宽高、类别信息,而关键点由高斯热力图生成,模型框架如图1所示.
其整体可分为三个部分:编码、解码和分支预测.在编码网络中将Resnet50里的ConvBlock里面的普通3×3卷积替换成深度可分离卷积,并将ReLU激活函数替换成PReLu,在解码网络中增加了特征融合模块.
1.1 主干特征提取网络
考虑到Resnet50参数较多导致计算开销也随之增大,而对输送带的检测需要模型具有一定的实时性,从而避免造成额外的损失,所以将Resnet50里的普通3×3卷积替换成深度可分离卷积减少参数量,降低计算开销,在牺牲一点精度的同时提高了检测速度.
深度可分离卷积可分为两个部分.首先对输入进来的特征图按照通道数进行分组卷积,一个通道对应一个卷积核,降低参数量.经过逐通道卷积后再跟上一个1×1普通卷积调整通道数,这里的卷积运算会将上一步的逐通道卷积后的特征图在深度方向上进行加权组合,生成新的特征图,如图2所示.
深度学习中常用线性整流函数(Rectified Linear Unit,ReLU)作为网络的激活函数,其由两个部分组成,在小于0的部分,激活函数的输出为0;在大于0的部分,激活函数的输出为输入.计算公式为:
f(x)=max{0,x}.
(1)
ReLU激活函数收敛速度快,不存在饱和区间,但是在训练时会导致神经元死掉,如果一个非常大的梯度经过一个ReLU神经元,更新过参数之后,这个神经元的值都小于0,此时ReLU再也不会对任何数据有激活现象了,所以将Resnet50里的ReLU函数替换成PReLU,PReLU是给所有负值赋予一个非零斜率, PReLU里的α参数由网络自适应训练获得.其计算公式为:
(2)
1.2 PSA注意力机制
Pyramid Split Attention (PSA) 是一种改进SE-Attention[16]的注意力机制,由于SE注意力只是针对通道的,并没有将空间方面因素考虑进去,没有捕获不同尺度的空间信息来丰富特征空间.PSA注意力从通道和空间混合域出发,主要分为两个模块:首先多尺度分组卷积模块将特征图从通道上分成S组,每组使用不同尺寸卷积核进行卷积,用来获得不同尺度的感受野,提取不同尺度信息.再通过SE模块,提取每组通道的权重,最后对S组的权重进行softmax归一化并加权.多尺度分组卷积模块如图3所示.
X表示输入特征图,Split表示分割,K表示卷积核尺寸,G表示分组数量,F表示输出特征图.SE模块如图4所示.
H、W、C表示特征图的宽高和通道数,GAP表示全局平均池化,Excitation表示两个全连接.PSA注意力机制流程如下:特征图先进入多尺度分组卷积模块,再进入SE模块生成权重,最后将生成的权重进行Softmax后再与原输入进行点乘操作.针对输送带光照不均造成的特征不显著难以被提取的问题,PSA注意力添加位置在图1中的4个Identity Block模块后面.
1.3 特征融合模块
将不同尺寸的特征进行融合是提升检测精度的重要手段,CNN通过逐层的数学运算来提取目标特征,其中最重要的就是感受野.浅层感受野小,拥有大量的细节信息,分辨率高,但语义信息较弱;深层感受野大,语义表征能力突出,但几何信息表征能力弱.将两者有效地结合起来,能够帮助我们准确地检测目标.
笔者利用Resnet50所产生的4个不同尺度的特征图,提出了一种基于注意力机制的特征融合方法.首先选取Resnet50中添加了PSA注意力机制的4个Identity Block模块里的输出特征图作为特征融合的基础,分别记为{F1,F2,F3,F4}.其次,通过1×1卷积调整4个特征图的通道数,减少计算量.接着将F1进行下采样变成与F2相同的尺寸并与F2进行拼接,将拼接后的特征图记为C1,然后再将C1进行下采样与F3相拼接,拼接后的特征图记为C2,依次执行相同操作,最终获得特征图C3传入解码网络进行预测,具体流程如图5所示.
1.4 解码模块
将特征融合模块的最终输出特征图(16,16,1 024)传入解码模块,实现对目标宽高、位置和类别的预测.解码模块包含三次反卷积,每一次反卷积都会将上一次传入的特征图尺寸变成两倍,最后变成128×128×64的特征图,根据最后获得的特征图进行宽高、位置和目标类别的预测.
2 实验结果与分析
2.1 数据集
本文数据集均来自现场拍摄,其中目标类别有三种,分别是:输送带撕裂、缺陷和磨损.在训练之前对图片进行缩放、旋转、色域扭曲等数据增强操作,另外由于现场拍摄图片较少,对其进行数据扩充操作,最后数据集包含3 132张带有目标信息的图片,按照811的比例划分训练集、测试集与验证集,进入网络训练的图像尺寸为512×512,标注格式均采用VOC数据集格式.3种目标类别如图6所示.
2.2 实验环境与设备
实验设备为安装Windows10系统的计算机,CPU型号为Intel(R)Core(TM)i5-10600KF,运行内存为16 G.实验环境为Pytorch 1.8.0深度学习框架,Cuda版本为11.1,GPU型号为RTX 3060,显存为12 G.
2.3 评价指标
将平均精度均值(Mean Average Precision,mAP)作为本次实验的评价指标,平均精度均值指的是每个类别的平均精度(AP)总和比上类别数,而AP是由精确率(Percision)和召回率(Recall)所构成的曲线下面积,计算公式见式(3)—(5).
(3)
(4)
(5)
其中TP(True Positives)是正确的检测出目标类别的个数,FP(False Positives)是错误的检测出目标类别数量,FN(False Negatives)是漏检的目标类别数量.
2.4 对比试验
在本文数据集上将改进的Centernet模型与SSD、YOLOv4-Tiny、YOLOv3及YOLOv4检测模型均训练100轮后进行对比实验,如表1所示.
表1 不同算法对比实验
如表1,本文改进模型在输送带损伤数据集上mAP50达到了94.10%,在对比算法中精度最高,检测速度也达到了53 FPS.SSD模型对输送带损伤检测精度较差,仅为84.45%,因为SSD使用低级特征层对小目标进行检测,存在特征提取不充分问题,对一些面积小的缺陷检测效果不好.YOLOv4-Tiny检测精度最低,为81.33%,不过在检测速度上最快,为151 FPS.YOLOv3检测精度为90.51%,比本文改进模型低了3.59%,检测速度低了16 FPS.YOLOv4检测精度为93.79%,检测速度为39 FPS.不同模型对输送带损伤数据集中三种类型检测效果如图7所示.本文改进的Centernet模型和YOLOv4模型在图7中均无目标漏检,不过前者比后者置信度高,YOLOv3模型在撕裂目标中漏检,SSD与YOLOv4-Tiny在裂缝和缺陷目标中存在漏检.
图7 不同模型的检测效果
2.5 消融实验
为了验证各个改进模块的优化作用,在数据集上进行消融实验.依次增加深度可分离卷积结构的Resnet50、PSA注意力和特征融合模块.将最初的Centernet算法记为方法1,将增加了深度可分离卷积的Resnet50的算法记为方法2,在前者基础上将增加PSA注意力机制记为方法3,方法4是在方法3基础上增加特征融合模块记为本文最终实验方法.实验结果如表2所示.
表2 消融实验
方法1在数据集上检测精度达到了89.64%,方法2由于将普通卷积替换成深度可分离卷积,导致精度下降了1.67%,不过每秒检测帧数提高到63,为了提高精度,在主干特征提取网络中增加了PSA注意力机制;方法3检测精度为91.67%.笔者最终使用方法4,达到了94.10%的检测精度,将笔者所提的三个改进方法共同加入模型之后,平均精度提高了4.46%,其中特征融合模块提升最大,提升了2.43个百分点.实验证明了改进方法对输送带损伤检测的有效性及可靠性.
3 结论
针对低照度下输送带损伤目标漏检误检并且检测精度低的情况,笔者提出改进Centernet的输送带检测模型.改进模型主要是将Centernet的主干提取网络替换成Resnet50,并将其中的普通卷积以替换成深度可分离卷积以减少运算量,另外增加PSA注意力机制提高特征提取能力、设计特征融合模块将不同尺度的特征图利用起来提高模型对小目标的检测能力.最终实验证明本文改进模型在输送带损伤检测上具有较好的泛化性能,并且拥有较高的检测速度.下一步的研究重点是使模型更加轻量化,能够嵌入移动端进行检测.