基于改进YOLO v4的煤矸石识别检测技术研究
2023-12-26亓玉浩赵得福黄梁松李明霞孔祥俊杜明超蒋祥卿
崔 斌,陈 林,亓玉浩,张 坤,赵得福,黄梁松,李明霞,孔祥俊,杜明超,蒋祥卿,刘 源
(1.山东科技大学 山东省机器人与智能技术重点实验室,山东 青岛 266590;2.欧普瑞泰环境科技有限公司,山东 青岛 266200;3.青岛华夏橡胶工业有限公司,山东 青岛 266200;4.北斗天地股份有限公司,山东 济宁 710000;5.青海能源发展(集团)有限公司,青海 西宁 810008)
煤炭是我国最主要的能源,国家高度重视煤炭开采智能化发展[1],在煤炭开采过程中会有约10%~15%的矸石,若不及时进行煤矸石分拣并回填,掺杂矸石的煤炭会影响燃烧质量,而且大量的矸石存在会占用过多的空间,造成空间浪费。传统的分拣由人工完成,存在着分拣效率低、精度差以及对工人身体危害较大的问题[2],因此,使用目标检测模型快速高效的分拣出煤矸石从而代替传统分拣具有重要意义。
随着机器视觉及相关算法的不断发展,基于图像处理的煤矸石检测技术研究成为重点研究方向[3,4],相关研究人员采用数字图像处理的方式人工提取煤矸石特征,再结合支持向量机的方法对特征进行训练以识别煤和矸石[5-7]。自2012年以来,在图像识别领域中以卷积神经网络为代表的深度学习算法在各大产业中逐步得到了应用[8,9],其根据处理方式的不同,分为two-stage目标检测算法与one-stage目标检测算法。二阶段目标检测算法首先生成若干个可能含有目标的候选框,而后使用卷积神经网络对这些候选框的进行检测。RCNN系列网络为其代表性网络。Fast RCNN在RCNN的基础上,使用选择搜索算法提取候选框后,将全图送入卷积神经网络,并将候选区域通过ROI池化映射至网络输出的特征图中,之后对候选区域进行处理完成目标的定位与分类[10]。一阶段目标检测算法则不产生候选框,而是通过回归直接完成分类与定位任务。YOLO系列算法是其代表的算法。YOLO v1提出了该系列算法的基本概念[11]。YOLO v2[12]、 YOLO v3[13]使得网络检测精度有了很大的提升并降低了漏检率。YOLO v4[14]在YOLO v3的基础上,结合当时的优秀研究成果进行改进,牺牲少量推理速度大幅度提升了检测精度,实现了检测精度与检测速度的平衡。来文豪[15]提出了一种基于多光谱成像技术和改进YOLO v4的检测方法,蔡金秀[16]进行了YOLO v4煤矸石检测方法研究,克服在煤矸石检测中存在漏检误检的问题。
近几年,基于机器学习的异物识别方法大多是使用分类神经网络[17-19],只能识别图像中的单个目标,未考虑到多目标识别。为了加快煤矿智能化发展,全面提升煤矿智能化技术水平[20-21],实现快速、高精度检测煤矸石图像的目标,本文将检测速度较快并且可以进行多目标检测的一阶段目标检测模型 YOLO v4引入煤与煤矸石分选领域,对目标检测模型进行改进,完成对单幅图像中多目标识别以及定位作用,进而完成视频检测,大大提升了模型的综合检测能力,为皮带输送机煤矸石分拣提供理论依据,促进了煤矿智能化的发展。
1 煤矸石识别试验系统
煤矸石识别系统由工控机、工业相机、光源等组成,如图1所示。其中,光源选用SUMITA公司生产的LS-NTP-210,工业相机选用迈德威视公司生产的MV-GE502GC-T-CL相机,镜头选用迈德威视公司的MV-GE502GC-T-CL,两者组合可以获得最大分辨率为2592×2048的RGB图像,且有多种分辨率可选,可以准确提取煤矸石纹理特征,在最大分辨率时帧速率可达22 f/s,保证了整套识别系统采集和传输数据的实时性。
图1 煤矸石实验设备
在进行数据采集时,相机通过Glge网线连接至工控机,调整合适的参数,通过相机将带式输送机上采集到的实时图像信息传输给工控机,完成数据的实时采集。
2 煤矸石数据集制作
煤矸石的种类丰富,根据矿物含量不同可分为黏土岩类、砂石岩类以及铝质岩类,本次实验选用泰安新汶煤矿的白色砂岩石类煤矸石作为实验样本。现场采集的白色砂岩石类煤和煤矸石的部分样本如图2所示。
图2 白色砂岩类煤和煤矸石样本
1)数据采集。使用MV-GE502GC-T-CL相机拍摄制作数据集所需要的图片,并根据每张图片中煤和煤矸石的总数分为单目标图像,双目标图像,多目标图像,三种图像的数量见表1。
表1 煤与煤矸石图像采集
2)图像预处理。对于YOLO v4目标检测网络,输入的图片尺寸为416×416或者608×608,但通过相机拍摄的图片尺寸为2592×2048,尺寸并非正方形,若直接将制作好的数据集送入网络,会导致图像在送入网络时有一定程度的失真,故采用在短边两侧补灰条的方式将图片尺寸调整尺寸为2592×2592的图片,从而避免将原始图像送入网络后出现的形状失真问题,添加灰条前后图片对比如图3所示。
图3 煤矸石图像处理前后对比
3)图像标注与数据增强。使用Labelimg对图像进行标注,生成数据集,如图4所示。
图4 数据集标注
3 YOLO v4目标检测算法
3.1 数据采集
YOLO v4作为YOLO v3的改良版本,运行速度大大提高,其主要包括YOLO v4使用 CSPDarkNet53作为主干网络,继承YOLO v3中的分类回归层以及头部(Head),使用Neck连接主干网络与头部,Neck由SPP-block和PANet构成。
3.2 改进YOLO v4目标检测网络
煤矸石识别任务中对于煤矸石的识别准确度以及识别帧率均有一定的要求,针对YOLO v4本身的参数量相对较大,需要在较好的GPU上才能有比较好的帧率的问题,对YOLO v4进行改进,主要改进部分如下:
3.2.1 采用Focal Loss函数
My-YOLO v4目标检测网络将置信度和分类的二分交叉熵损失函数替换为 Focal Loss函数,可以在一定程度上缓解背景分类不平衡以及减少易分类目标所占的损失比重的问题。Focal Loss函数在交叉熵损失基础上改进,通过减少简单背景样本以及简单分类样本所占权值让模型专注于前景识别困难物体的检测。Focal Loss函数如式(1)所示:
FL(pt)=-α(1-pt)γlg(pt)
(1)
式中,α为正负样本的权值;γ为难易样本的权值。本次实验中α取0.25,γ取2性能最优。
3.2.2采用K-means++聚类算法优化初始锚定框
My-YOLO v4选用K-means++算法优化初始聚类中心,有效避免了K-means算法需人为确定或随机给定初始聚类中心,造成聚类效果差的问题,K-means++选择初始点的原则是让聚类中心相互之间的距离尽量的远,其具体步骤如下:
Step1:在采集的数据集的所有标注的框中随机选择一个框的宽高作为初始的聚类中心。
Step2:对于数据集中所有的锚定框,选择一样的中心点,根据其宽高数据与已经获得的聚类中心的宽高数据计算数据集中所有锚定框与聚类中心的IOU并计算两者的距离情况,去样本框与所有聚类中心中距离最近的距离值D(Xd=Xk+(Xk-1)×(Dr-1)),最后,选出下一个聚类中心,D越大被选为聚类中心的概率越大。
Step3:重复Step2,选出K个聚类中心。
Step4:计算每个数据中的点到选择的k个聚类中心的距离,并根据距离远近划分到所对应的类中。
Step5:对划分好的类再进行计算,计算出新的聚类中心,与初始聚类中心进行比较。
Step6:若聚类中心发生变化,重复Step4,5;若没变化,输出聚类结果。
3.2.3 PANet特征融合网络中卷积CSP化
由于YOLO v4目标检测网络参数量较大,故而限制了其在煤矸石检测任务中的作用,而在其中PANet则占其中大部分参数,为了适当降低参数量,同时保证特征融合效果,My-YOLO v4采用CSP结构代替PANet中的五次卷积操作。
YOLO v4中使用了SPP结构,其采用了四种不同尺度的最大池化操作增加感受野,分离出显著的上下文特征但是这样会损失一些细节特征信息,为解决此问题,引入空洞卷积来增大感受野,获取更多不同尺度信息,空洞卷积根据空洞率的大小在普通卷积核中间填充0,空洞率大小与空洞卷积核大小的关系为:
Xd=Xk+(Xk-1)×(Dr-1)
(2)
式中,Xk为原卷积核大小;Xd为空洞卷积核大小;Dr为空洞率系数。
空洞卷积因在卷积核中间填充0,会导致单个尺度的空洞卷积会丢失局部信息,空洞率为2的空洞卷积核如图5所示。
图5 空洞率为2的空洞卷积核
为解决此问题,将SPP结构中,三路最大池化操作更改为系数为2,3,5的空洞卷积操作,用多尺度空洞卷积来获取不同尺度的特征信息,并将修改后的结构引入至已经替换的CSP结构中,其结构如图6所示。
图6 加入空洞卷积融合网络的CSP结构
3.2.4 使用跨连接边构成BiFPN结构
由于在煤矸石检测任务中,大部分的煤与矸石大小都处在较为中等的大小,故而My-YOLO v4通过添加了连接主干网络提取的中间特征层与中间YOLO-Head以及的一条残差边,构成BiFPN结构,以提高对于中等目标的检测能力。
YOLO v4与My-YOLO v4目标检测网络模型大小对比见表2。
表2 煤与煤矸石图像采集
通过表3数据对比可以看出,改进后的参数量与模型大小有了明显的减少,更有利于提升检测速度。
表3 四种目标检测算法性能比较
经过上述步骤的修改,得到修改后的网络结构如图7所示。
图7 My-YOLO v4目标检测算法
3.3 目标检测网络性能评价指标
目标检测网络通过平均准确率mAP(mean Av-erage Precision),即各个类别AP(Average Pre-cision)的平均值来评价算法的性能,在计算AP之前首先需要计算准确率(Precision)和召回率(Recall)。
准确率的计算公式为:
召回率的计算公式为:
AP的计算公式为:
(5)
式中,TP为被模型预测为正类的正样本;FP为被模型预测为正类的负样本;FN为被模型预测为负类的正样本。
4 实验过程与结果分析
4.1 数据采集
本文实验数据训练在Windows操作系统下完成,其中CPU选用Intel Xeon E5-2630L v3,GPU选用NVIDIA GeForce RTX1080Ti,深度学习框架选用tensorflow2.2.0。
调整后的数据集按照8∶1∶1的比例划分为训练集,验证集与测试集,同时采用迁移学习的思想,在VOC2007中训练好的YOLO v4模型的基础上进行训练,在训练过程中,首先对主干特征提取网络CSPDarknet-53进行冻结,优先训练其他的非主干特征提取网络,以达到防治训练初期权值被破坏的情况,同时加快训练速度,初始阶段训练中Batchsize设置为32,学习率为0.001,使用Adam作为优化器,训练轮数为25轮。接着对整个网络进行训练,第二阶段训练中Batchsize设置为16,初始学习率为0.001,若连续5轮loss不下降,则自动将学习率减半,使用Adam作为优化器,训练轮数为50轮,根据训练日志绘制出模型损失函数值的变化曲线如图8所示。
图8 模型损失值变化曲线
由图8可以得出,使用改进后的My-YOLO v4目标检测算法在对煤矸石数据集训练过程中,阶段一为0—25轮,冻结主干特征提取网络,对剩余网络进行训练,可以有效防止训练初期主干网络权值被破坏,提高训练速度,使损失值快速降低;阶段二为25—50轮,采用解冻训练,对全部网络进行训练,损失值快速降低至比较平缓的阶段;阶段三为50—75轮,损失值缓慢降低,loss收敛至较好的值,并且在剩余轮数的训练过程中模型性能并未得到提高。
4.2 结果分析
完成模型训练后,挑选部分新的煤和矸石的样本放在实验台上,使用MV-GE502GC-T-CL相机对煤和煤矸石进行实时检测,检测效果如图9所示。
图9 My-YOLO v4检测效果
将改进后的My-YOLO v4目标检测模型与 YOLO v3,YOLO v4,SSD目标检测模型进行性能比较,重新采集200张煤与煤矸石数量不等的图片制成测试集,并进行mAP的计算,三种目标检测模型性能见表3。
由表4可以得出,改进My-YOLO v4模型mAP值相较于YOLO v4减少了0.55%,但是其因模型参数的减少使得其检测速度获得了提升,在视频检测上有着很大的优势。同时相较于SSD与YOLO v3目标检测算法,My-YOLO v4能在保持大致的检测速度的情况下检测准确度有着较大的提升。
5 结 论
1)本文基于YOLO v4目标检测模型进行改进,将二分类交叉熵损失函数替换为 Focal损失函数,从而获得更加准确的分类精度,使用K-means++聚类算法优化初始锚定框,提高对中等目标的检测能力,采用CSP结构代替PANet中的五次卷积操作以及使用跨连接边构成BiFPN结构,最终得到改进后的My-YOLO v4目标检测模型。选用50~300 mm大小的煤矸石进行数据集的采集与制作,更加符合实际工作环境,使用图像处理的方式,能够实现煤矸石的快速准确识别,此外,My-YOLO v4目标检测网络在验证集上mAP达到了98.14%。
2)选用50~300 mm大小的煤矸石进行数据集的采集与制作,更加符合实际工作环境,在搭建好的煤矸石分拣平台中进行动态实验测试,实验数据分析得出:My-YOLO v4目标检测网络mAP为98.14%,FPS为28.3Hz,相较于SSD目标检测网络以及YOLO v3目标检测网络,在保持良好FPS的情况下,精度分别提高了5.41%以及2.87%,相较于YOLO v4目标检测网络,在保持较好检测精度的情况下,识别速度提高了7.7Hz。实验结果表明,My-YOLO v4目标检测网络在较复杂的实际工况中检测性能良好,具有较高的实时性和准确率,可以为煤矸石检测分拣装置的提供理论技术参考。