APP下载

改进YOLOv3的矿石输送带杂物检测方法

2021-11-12薄景文张春堂樊春玲李海菊

计算机工程与应用 2021年21期
关键词:杂物残差卷积

薄景文,张春堂,樊春玲,李海菊

青岛科技大学 自动化与电子工程学院,山东 青岛266100

在选矿生产过程中,矿石输送是重要的一环。由于矿山井下开采出的矿石夹杂了大量的废旧木头、钢钎、塑料管、起爆线、钢板、铝方管等杂物,必须要清除。目前,杂物清理主要依靠人工作业,工人的劳动强度大,效率低,且有些杂物在现场很难被发现,会有诸多漏拣的杂物进入到后续破碎、选矿环节,其中刚性杂物容易损坏设备,软性杂物容易造成堵塞,给生产带来严重的经济损失。因此有必要将目标检测技术引入到矿石输送环节,实现对杂物的快速准确识别。

近年来,基于深度学习的目标检测算法被初步应用于采矿业领域[1-4],实现了人工智能技术与矿山某些特定业务的结合,推动了智慧矿山[5]的建设。目前目标检测算法主要有两类:一类是双阶段检测算法,以RCNN[6]、Fast RCNN[7]、Faster RCNN[8]和Mask RCNN[9]等为典型代表,这类算法先通过选择搜索(Selective Search)或候选区域生成网络(Region Proposal Network)生成一系列候选框,再通过卷积神经网络对候选框内目标的位置和类别进行预测;另一类是单阶段检测算法,以SSD[10]、YOLO[11]和RetinaNet[12]等为代表,这类算法是一种端到端的算法,直接通过网络最后的输出层得到目标的位置和类别信息,因此单阶段算法检测速度更快但精度低,双阶段算法则检测精度高但速度慢。由于现场输送带实时运行,对检测速度的要求更高,因此输送带杂物检测中首先考虑单阶段算法。相比于其他单阶段算法,YOLOv3[13]更好地平衡了检测精度与检测速度,但其网络结构复杂,对硬件资源配置要求较高。因此本文提出一种改进的YOLOv3算法YOLO-Ore,可以同时兼顾速度与精度,并能满足矿石输送带杂物检测的要求。

本文首先利用Mobilenetv2[14]具有的深度可分离卷积和逆残差结构的特点,将其作为YOLOv3的backbone,缩减了模型容量和参数量,避免了因残差结构导致深度可分离卷积提取的特征信息减少的问题;然后将像素级场景解析网络PSPnet[15]的空间金字塔池化结构PPM(Pyramid Pooling Module)添加到backbone最后一层之后,聚合了不同尺度的全局信息;接着在neck部分引入注意力机制CBAM[16](Convolution Block Attention Module),提高网络对主要特征的学习能力;最后搭建实验平台,结合数据增广技术,构建了包含废旧木头、钢钎、塑料管、起爆线、钢板、铝方管6种矿石杂物的数据集。将改进后的算法YOLO-Ore在矿石杂物数据集上进行消融实验,结果表明,在保证较高检测精度的同时,缩小了模型容量,提高了模型推理速度,满足了检测实时性。

1 改进的YOLOv3算法

1.1 YOLOv3 backbone的改进

YOLOv3的backbone是Darknet53,它是一种结构复杂的全卷积网络,包含了23个残差单元,具有较强的特征提取能力,但是随着残差单元个数和网络通道数的增加,将会导致网络参数量剧增,进而影响模型检测速度。对于矿石输送带杂物检测,更需要网络实现快速检测,因此并不需要如此复杂的backbone。由谷歌针对移动设备设计的轻量级网络Mobilenet系列,提出用深度可分离卷积取代标准卷积,能够有效解决模型参数量冗余的问题。因此,本文考虑将YOLOv3的backbone由Darknet53改为Mobilenetv2。

为了验证Mobilenetv2的特性,首先给出标准卷积与深度可分离卷积的结构图,如图1所示。

图1 标准卷积和深度可分离卷积结构Fig.1 Standard convolution and depth separableconvolution structure

标准卷积的计算量为:

深度可分离卷积的计算量为:

其中,H表示输入特征图的高度,W表示输入特征图的宽度,M表示输入通道数,N表示输出通道数,F表示卷积核的尺寸。通过上式可以得出,深度可分离卷积的计算量和标准卷积的计算量之比为:

由计算结果可以看出,深度可分离卷积使得backbone的参数量和计算量大大减少,缩小了网络模型容量,有利于提高模型推理速度,同时解决了因硬件设备的限制导致网络训练缓慢的问题。

虽然深度可分离卷积可以有效降低模型参数量,但会使网络层数加深,进而出现梯度消失现象,而残差结构可有效解决此问题。在Darknet53中,它虽然使用了残差结构,然而随着层数加深,残差结构将会破坏特征信息,而Mobilenetv2在保留深度可分离卷积的基础上,采用一种逆残差结构使深度卷积能够在高维空间提取特征,从而保留更多的特征信息。两种结构分别如图2和图3所示。图中Conv表示标准卷积,DConv表示深度卷积,Add为元素相加操作,C表示通道数,n表示通道降维的倍数,m表示通道升维的倍数。其中Mobilenetv2根据卷积步长的不同分为两种Block类型。

图2 Darknet53残差结构Fig.2 Darknet53 residual structure

图3 Mobilenetv2逆残差结构Fig.3 Mobilenetv2 inverse residual structure

由图2和图3可以看出,残差结构是“降维-卷积-升维”的过程,逆残差结构是“升维-深度卷积-降维”的过程,这是由于深度可分离卷积无法像标准卷积那样提取足够丰富的特征信息,若降维再提取,势必会在经过多次残差单元循环后,导致网络提取的特征减少,进而影响网络性能。因此,先升维再深度卷积,可以在保证主干网络提取丰富特征的同时,减少参数量和计算量。

改进YOLOv3的backbone结构如表1所示,主干网络总共有155层。类似Darknet53,可以选择第55、117、155层(52×52×32、26×26×96、13×13×1 280)作为backbone的输出层,但是为了获取更多通道的特征信息,分别选取第58、120、155层(52×52×192、26×26×576、13×13×1 280)作为backbone的三个输出层。

表1 改进YOLOv3的backbone结构Table 1 Backbone structure of improved YOLOv3

1.2 YOLOv3 neck的改进

轻量级backbone的引入必然会损失一定的精度,为了保证检测精度基本不变,本文提出在YOLOv3的neck部分引入金字塔池化结构PPM和注意力机制CBAM。

基于全卷积的网络不能有效处理目标在空间位置上的信息,而传统池化又会使特征图的部分边缘信息丢失。为了解决此问题,语义分割网络PSPnet提出一种空间金字塔池化模块PPM,能够聚合不同尺度的全局上下文特征信息。空间金字塔池化模块PPM如图4所示,它以1×1、2×2、3×3、6×6四种不同尺寸的感受野对输入特征图进行全局平均池化,分别用1×1×(C/4)的卷积实现通道降维(其中C为输入通道数),然后通过双线性插值将拼接后的特征图尺寸调整为原图大小,将四个子特征图按通道维度拼接,最后再与原图拼接后经过一次3×3×(C/4)的卷积得到最终输出。

图4 空间金字塔池化模块PPMFig.4 Spatial pyramid pooling module PPM

注意力机制在自然语言处理领域应用广泛,近年来在计算机视觉领域逐渐取得了不错的成绩。注意力是指让计算机更多关注重要信息,增强重要信息的特征映射。不同于SEnet[17]只关注通道维度上的注意力,CBAM在空间和通道两个维度上都实施注意力机制,通过强调主要特征、抑制次要特征来对特征层进行权重再分配,从而使网络在反向传播时重点更新关键位置的权重。

CBAM如图5所示,其中通道注意模块CAM(Channel Attention Module)将注意力集中在通道上,判断哪些通道具有目标主要特征;空间注意模块SAM(Spatial Attention Module)将注意力集中在空间位置上,判断哪些位置上包含目标主要信息。CAM首先对输入特征图同时进行最大池化和平均池化,经过多层感知机MLP(Multi-Layer Perception)两次全连接后相加,再经过sigmoid激活后得到通道维度上的权重系数,与原输入特征图相乘得到的特征图作为SAM的输入;SAM对输入在空间维度上的特征图同时实施最大池化和平均池化,经过卷积和sigmoid激活后得到空间维度上的权重系数,再与输入相乘得到最终输出。CBAM不仅能给网络性能带来实质性的提升,而且增加的计算量很少,全连接层和卷积层带来的计算开销可以忽略不计。

图5 CBAM结构图Fig.5 Structure diagram of CBAM

1.3 改进YOLOv3算法的网络结构

本文提出的改进YOLOv3算法(以下简称YOLOOre)整体网络结构如图6(a)所示,输入为416×416像素的RGB格式图片,经过主干网络Mobilenetv2的5次下采样后,分别提取52×52、26×26、13×13这三种不同尺度的特征层送入neck部分进行FPN[18]式的特征加强提取,提取后的特征图最终经过head部分的两次卷积后得到三种尺度的预测结果,损失函数依然保留原YOLOv3的损失函数不变。图6(a)中,PPM为图4所示结构,CBAM为图5所示结构,Conv Block如图6(b)所示。Conv Block由三次1×1×C(C为通道数)的卷积组成,删减了原来两次3×3×2C的卷积,进一步压缩模型。

图6 YOLO-Ore网络结构Fig.6 YOLO-Ore network structure

为了验证本文所提方法的有效性,需要进行消融实验,因此构建了三种网络与本文所提方法进行对比实验。构建的这三种网络分别命名为YOLOv3_A、YOLOv3_B、YOLOv3_C,其中YOLOv3_A是在原来YOLOv3的基础上将主干网络改为Mobilenetv2;YOLOv3_B是在YOLOv3_A的基础上增加了PPM结构;YOLOv3_C是在YOLOv3_B的基础上增加了CBAM结构。本文所提出的YOLO-Ore是在YOLOv3_C的基础上删减了原Conv Block中两次3×3×2C的卷积。

2 实验

2.1 数据集制作

根据矿场工艺人员的反馈,矿石输送带上的杂物主要有废旧木头、钢钎、塑料管、起爆线、钢板、铝方管六种杂物,其中废旧木头和钢钎等刚性杂物会对破碎机造成损坏,而起爆线等软性杂物会对后续的浮选工艺环节造成影响。因此本文选取上述六种杂物,在实验室搭建输送带模拟运输环境,使用工业摄像头对六种杂物进行拍摄。为了模拟实际生产环境,对杂物分为两种情况进行拍摄,其中杂物表面无掩埋的情况为正常工况,杂物表面有部分被矿石掩埋的情况为复杂工况,具体情况如图7所示。总共拍摄图片2 000张,图像分辨率均为1 920×1 080,使用LableImg工具对所有图片按VOC数据集格式进行标注得到标签文件。为了防止网络训练过拟合,采用添加高斯噪声、亮度变化、旋转、裁剪、平移、镜像、随机遮掩七种数据增广技术进行数据扩充,每张图片扩充10倍,最终得到的数据集数量为20 000张。按6∶2∶2比例将数据集划分为训练集、验证集和测试集,得到训练集12 000张(正常工况训练集8 100张,复杂工况训练集为3 900张),验证集4 000张(正常工况验证集2 700张,复杂工况验证集1 300张),测试集4 000张(正常工况测试集2 700张,复杂工况测试集为1 300张),数据集具体情况如表2所示。

图7 两种工况下的杂物示意图Fig.7 Schematic diagram of sundries under two working conditions

表2 数据集详情Table 2 Dataset details

2.2 网络模型训练

本文训练环境为ubuntu16.04操作系统,处理器Intel Xeon E5-2640v4,显卡NVIDIA RTX2080Ti,内存64 GB,显存11 GB;测试环境为Windows10操作系统,处理器Intel Core i7-9750H,显卡NVIDIA RTX2060,内存16 GB,显存6 GB。深度学习框架为TensorFlow,解释器为Anaconda Python3.6。

由于原YOLOv3是基于COCO数据集聚类得到9个锚框,COCO数据集物体类别多,尺寸比例丰富,不适用于本文矿石杂物数据集,因此使用默认的锚框尺寸势必会影响模型训练效果。所以在训练前先使用k-means算法对数据集重新聚类,得到9个新的锚框尺寸(298,298)、(378,114)、(408,397)、(553,150)、(705,225)、(791,120)、(896,269)、(1 009,170)、(1 176,216)。所有数据的边界框聚类分布结果如图8所示,其中9种颜色的圆点表示所有边界框尺寸分布,红色圆点是9个聚类中心。训练时使用Adam优化器,设置初始学习率为0.001,采用余弦退火学习率衰减策略,batchsize为8,总共训练200个epoch,不使用预训练模型。

图8 边界框聚类分布结果Fig.8 Cluster distribution results of bounding box

3 实验结果及分析

3.1 不同工况下的检测结果分析

本文采用平均检测精度mAP(mean Average Precision)和检测速度FPS(Frame Per Second)作为实验的主要评价指标,置信度和交并比IoU(Intersection over Union)阈值都设为0.5。在不同工况下,本文所提算法YOLO-Ore、构建的三种网络,以及原有的YOLOv3的实验测试结果如表3和表4所示。表3是正常工况下五种网络的检测结果对比,表4是复杂工况下五种网络的检测结果对比。

表3 正常工况下五种网络的检测结果对比Table 3 Comparison of detection results of five networks under normal working conditions

表4 复杂工况下五种网络的检测结果对比Table 4 Comparison of detection results of five networks under complex working conditions

由表3可知,在正常工况下,YOLOv3_A的mAP值相较于原YOLOv3下降2.19个百分点,但检测速度提高了1.83倍。YOLOv3_B的mAP相比于YOLOv3_A提高1.35个百分点,表明PPM有效地聚合了不同尺度的上下文信息,增强了主干网络特征提取能力,但也导致了参数的小幅增加,使得检测速度下降了4.58 frame/s。YOLOv3_C的mAP值比YOLOv3_B提高1.07个百分点,检测速度降低了0.71 frame/s,变化不大,验证了CBAM机制的有效性。本文所提方法YOLO-Ore相比于YOLOv3_C,其mAP仅降低了0.45个百分点,但在检测速度上提高了8.69 frame/s,说明删减掉两次深层卷积不仅没有降低模型学习能力,反而减少参数冗余,提升了模型推理速度。

为了进一步验证删减冗余层对网络学习能力的影响,将YOLOv3_C和YOLO-Ore的Conv Block最后一层的特征图可视化,通过热力图与原图融合的方式,对删减冗余层前后的特征图效果进行对比,如图9所示。从图9中可以看出,虽然在删减冗余层之前,图像的边缘信息和目标特征更丰富,但是删减后的网络将注意力更加聚焦于目标的主要特征区域,即网络更加关注有用区域,因此即使删减了冗余层,对最终目标检测效果的影响甚微。

由表4可知,在复杂工况下,各个网络的检测速度与正常工况相比变化极小,说明模型推理速度与检测目标的复杂性基本无关。从检测精度方面来看,由于复杂工况下杂物的部分表面被矿石掩埋,因此相比于正常工况YOLOv3的mAP下降到88.13%,YOLOv3_A的mAP比YOLOv3降低1.61个百分点,YOLOv3_B的mAP比YOLOv3_A提高1.07个百分点,YOLOv3_C的mAP比YOLOv3_B提高1.04个百分点,由此可体现所提改进方法的有效性。与YOLOv3_C相比,YOLO-Ore的mAP降低了0.44个百分点,检测速度提高了8.60 frame/s。

总体分析来看,相较于YOLOv3,YOLO-Ore用检测精度的微小牺牲换来了检测速度的显著提高。图10为YOLO-Ore在两种工况下的部分检测结果,由图可以看出在两种工况下六种矿石杂物都能被检测出来且定位准确。

3.2 模型复杂度的分析

为了比较不同网络的模型复杂度,将五种网络的模型容量、参数量以及浮点运算量进行对比,结果如表5所示。

表5 五种网络的模型复杂度对比Table 5 Comparison of model complexity of five networks

从表5的数据可以看出,深度可分离卷积有效减少了参数量和浮点运算量,YOLOv3_A的模型容量为YOLOv3的38%。而PPM和CBAM的 引 入,使 得YOLOv3_B和YOLOv3_C的参数量和浮点运算量相比YOLOv3_A又 增 加 了 约1.37倍,YOLOv3_B和YOLOv3_C的模型容量约为YOLOv3的52%。本文所提方法YOLO-Ore的参数量和浮点运算量最少,模型容量减小到72.7 MB,仅为YOLOv3的31%。

结合表3、表4和表5可以看出,本文所提YOLO-Ore方法以及构建的三种网络都达到了实时检测的需求,其中YOLO-Ore在两种工况下,在不损失精度的前提下,检测速度都高于原YOLOv3网络和构建的三种网络,且模型的容量大幅缩减,有利于模型移植到硬件条件和计算能力都较低的平台。

3.3 与其他目标检测算法的对比

为了更好地验证所提方法的优越性,在两种工况下,基于本文测试集,将本文所提方法YOLO-Ore与CenterNet[19]、M2Det[20]、RetinaNet、SSD以 及YOLOv4[21]五种单阶段目标检测算法进行对比,主要从检测精度、检测速度和模型复杂度方面进行对比分析,结果如表6和表7所示。为保证结果的公平性,所有算法都在同样的硬件平台上进行训练和测试。

表6 本文YOLO-Ore与其他算法的检测结果对比Table 6 Comparison of detection results between YOLO-Ore and other algorithms

表7 本文YOLO-Ore与其他算法的模型复杂度对比Table 7 Comparison of model complexity between YOLO-Ore and other algorithms

由表6可见,只有CenterNet、SSD和YOLO-Ore满足检测实时性需求,而在两种工况下CenterNet和YOLO-Ore的检测精度都较高且相差不大,且都明显优于SSD算法。从检测速度上来看,YOLO-Ore的检测速度是CenterNet的1.78倍,处于明显的优势。因此,权衡精度和速度两个方面,本文所提方法YOLO-Ore在大幅提高检测速度的同时还保证了较高的检测准确性。

通过表7的对比数据可以看出,本文所提算法YOLO-Ore的模型容量、参数量和浮点运算量远小于其他算法,浮点运算量压缩至M2Det的约1/13。在实际应用场景中,硬件平台的配置普遍不会很高,因此对于将模型移植在GPU算力较低的工控计算机上来说,YOLOOre具有显著的优越性,综合考虑检测精度、检测速度、模型复杂度和模型可移植性几个方面,YOLO-Ore的整体鲁棒性更好。

4 结论

本文提出了基于YOLOv3的改进算法YOLO-Ore实现对矿石输送带上的杂物检测。该算法以YOLOv3为基础,将Mobilenetv2作为主干特征提取网络,压缩模型容量,提高检测速度。引入空间金字塔池化结构PPM和注意力机制CBAM,融合多尺度上下文信息,突出重要信息的表征,提高了模型检测精度。删减冗余参数网络层,进一步简化网络,提高了检测速度。实验结果表明,YOLO-Ore在保持高精度的情况下,检测速度提高了约2倍,符合现场实时检测的要求,同时模型容量压缩了69%,有利于模型移植到硬件配置低的设备平台上。本文是在自有数据集上进行研究实验,算法存在一定的局限性,下一步将增加数据的多样性和复杂性,同时进一步改进网络结构,提高在复杂工况下的目标检测精度。

猜你喜欢

杂物残差卷积
杂物电梯门锁常见型式及检验中存在的问题
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
成品轮胎杂物缺陷的解决措施
一体式顶杂物盒设计策略
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
杂物窒息