基于YOLOv5的水面垃圾目标检测

作者: 尹凯宸,王欣浦,吴毅东,秦民昊,张金程,储昭碧

基于YOLOv5的水面垃圾目标检测0

摘要:文章针对环境污染日益严峻的问题,提出使用YOLOv5辅助清理水面垃圾。YOLOv5使用Mosaic数据增强和自适应锚框计算,具有较高的处理精度。利用YOLOv5目标检测网络对水面垃圾检测,可快速准确地搜寻水面垃圾,从而减轻环卫工人的负担。笔者利用Labelimg软件对水面垃圾图像数据进行标注,整理并获得训练集。实验结果表明:基于YOLOv5的水面垃圾目标检测在检测精度和速率上都取得良好的结果。

关键词:目标检测;图像处理;深度学习;YOLOv5;水面垃圾

中图分类号:TP319        文献标识码:A

文章编号:1009-3044(2022)33-0028-03

随着人们逐步认识到环保的重要性,清理水面垃圾成为人们需要解决的一大难题,如何快速寻找水面垃圾成为提高清理工作效率的一个重要问题。目前,水面目标的检测算法大致可以分为三类,分别是基于红外成像传感器、基于激光雷达和基于视觉可见光的方法。然而,通过基于激光雷达和红外成像传感器的方法获取的图像在颜色、纹理和角点等图像处理特征上不具备显著差异,所以本项目使用一种基于深度学习的水面垃圾检测算法——YOLOv5,该算法具有检测精度高、体积小、速度快等优势,与本项目的垃圾目标检测最为契合[1]。

1 YOLOv5

YOLO算法用一个神经网络实现目标检测的分类和定位,在目标检测领域有较为广泛的应用。Ultralytics公司于2020年5月推出的YOLOv5继续沿用 YOLOv3和YOLOv4 的整体布局,它的优点是速度快、体积小、精度高等,其图像处理速度最快可达0.007s,即连续处理140帧图片仅需要1s。YOLOv5中共有四种模型,分别是YOLOv5s、YOLOv5m、YOLOv5x和YOLOv5l[2]。本文采用YOLOv5s。

YOLOV5s模型的基本组成部分:Input(数据输入端)、Backbone(主干部分)、Neck、Prediction(数据输出端)。YOLOv5的网络模型如图1。

1.1 Input

输入端使用Mosaic的处理方式来增强数据,对多张水面垃圾图片先进行随机的缩放和裁剪处理,之后再进行随机分布和拼接,极大地扩充并充实了模型数据集,提升了对较小的水面漂浮物的检测能力。

YOLOv5在训练过程中添加自适应计算锚框功能,每次训练都自动计算不同训练集中的最优锚框值。

YOLOv5在对原始水面垃圾图片进行缩放操作时,会根据图片的尺寸,自适应地添加黑边,使得黑边最少。经过这样处理后,计算量大幅降低,从而使水面垃圾检测工作的执行速率得到大幅度的提高[3]。

1.2 Backbone

Backbone中包含有CSP结构与Focus结构。Focus的切片操作为,将原始尺寸为608*608*3的水面垃圾图片输入Focus结构,先采用切片操作,再经过一次卷积操作,最后结果为304*304*32的水面垃圾特征图[3]。

使用CSP模块能够提高网络的机器学习能力,在确保模型具有较高准确性的同时,也使模型轻量化,而且还能减少内存成本和计算瓶颈。

YOLOv5中主要设计并实现了CSP1_X和CSP2_X两种CSP结构,其中,Backbone主干网络中主要应用的是CSP1_X结构,可解决主干部分网络优化的梯度信息重复的问题[3]。有效提高了模型对空间布局和对象变形的鲁棒性。

1.3 Neck

在水面垃圾的检测系统中,在Backbone和输出层之间插入一些层能够更好地提取融合特征,称为“Neck”。是目标检测网络的颈部,也是算法组成中十分重要的一部分。

YOLOv5s的Neck采用FPN(自上而下)+PAN(自底向上结构的特征金字塔)的结构[4-5]。通过自顶向下的FPN层传达强语义特征;利用自底向上的特征金字塔传达强定位特征,在不同的主干层对应于不同的检测层,实现参数的整合,可缩短推理周期,减少内存占用[6]。

1.4 Prediction

输出端主要由两大部分组成:非极大值抑制[7]和Bounding box。GIOU_Loss函数作为Bounding box的损失函数,可以有效解决水面垃圾图片边界框不重合的问题[8]。GIOU_Loss函数采用相交尺度的衡量方式有利于解决边界框可能不重合的问题[9]。而针对出现的多目标框的挑选,采用NMS函数把GIOU_Loss贡献值不是最大的预测结果都去掉,从而获得最优目标框。

2 实现水面垃圾检测流程

2.1 水面垃圾检测框架图

本文中的水面垃圾检测框架图如图2所示。由图2可以看出,实现水面垃圾检测的步骤首先通过Labeling对图片标注水面垃圾,然后建立数据集并将其转变为YOLO格式,数据集经过YOLOv5训练后可以获得权重数据,然后使用YOLOv5s利用水面垃圾权重数据对无人机回传的视频图像进行处理,最终输出检测结果。

2.2 样本集训练

水面垃圾的样本集是水面垃圾检测效果优秀与否的关键,样本集是否可行会对训练后模型的质量产生重大影响。为保证训练后的模型质量,本文采集的样本集尽量选用接近实际应用场景的图片。最后经过筛选,共收集水面垃圾图片790张,对收集的图片按顺序编号后进行重命名,组合为训练集和测试集,训练集和测试集的比例为7:3,通过Labelimg软件对水面垃圾进行标注,并将图片的标注的图片格式由 xml 转换成 YOLOv5s 的格式。

2.3 网络训练

首先,搭建水面垃圾检测环境并对模型进行训练,文中实验应用的操作系统为Windows10,开发语言选择Python语言。本文实验所使用具体配置情况见表1。

在训练的过程中,具体的训练参数及参数设置情况说明如下:网络模型训练阶段,物体检测验证集不衰减,总迭代次数为50次。输入图片尺寸为640*640,batch-size为4。

2.4 实验操作流程

首先,使用Labelimg软件对数据集图片中的垃圾分类框选,并对框选的垃圾标注其垃圾种类名称,最后将图片的标注格式转换为YOLOv5格式。图3为部分数据集的标注情况。

之后,通过YOLOv5s对数据集进行训练获得水面垃圾的权重数据。

如图4,使用Python调用train.py文件,通过VOC_rubbish.yaml和YOLOv5s_rubbish.yaml对训练模型的检测种类进行定义,之后对预训练权重文件的路径进行设置,同时设定size=4,epoch=50。通过训练即可获得水面垃圾的权重数据。

最后,通过YOLOv5s利用水面垃圾的权重数据对无人机回传的视频进行处理。

如图5,通过Python调用detect.py文件,设置检测视频的路径为testfiles/2.mp4 ,调用权重文件的路径为weights/best.pt,并且将检测的置信度设置为0.4。

3 处理结果及总结

通过使用YOLOv5s算法对水面垃圾进行检测,所得结果如图6所示。

通过对比处理前后的图像可以发现,YOLOv5s算法检测可以较为准确地识别图片中的水面垃圾,并且对不同种类的垃圾分类标注。如图6(a)中存在较小的水面垃圾,图6(b)中不但将其一一框选标注,而且精确地识别出框选的垃圾种类。当水面垃圾数量较多时,如图6(c),图片中共有水面垃圾8处,而图5(d)中不仅将所有水面垃圾成功框选出来,而且对框选水面垃圾的种类识别全部正确。同时,由图6(b)和(d)可以发现,YOLOv5s对水面垃圾识别的平均置信度为0.6,基本可以满足辅助环卫工人搜寻水面垃圾的需求。所以采用这种方法可以准确迅速地搜寻并识别水面垃圾,从而极大提高环卫工人搜寻水面垃圾的效率。

4  结束语

本文介绍了基于YOLOv5的水面垃圾目标检测方法,初步看来,此模型在水面垃圾的检测方向是极具可行性的。可实现对水面垃圾的智能化搜寻,辅助环卫工人清理水面垃圾,提高工作效率,减少人力物力的投入。但仍有待完善的地方,比如在大片水面垃圾堆积的水面有概率出现垃圾识别不完全的情况,在水面情况复杂的地方有较小概率出现识别错误的情况等。计划下一步将从网络模型的方面修改Loss函数 , 从而提高性能,同时对数据集中水面垃圾的种类进一步细分,从而提高精确度。

参考文献:

[1] 周飞.水面清污机器人垃圾检测算法的研究[D].绵阳:西南科技大学,2020.

[2] 吴志新,聂留阳,董容君,等.基于深度学习的机场道面表观缺陷检测[J].电子技术与软件工程,2021(8):174-177.

[3] 马琳琳,马建新,韩佳芳,等.基于YOLOv5s目标检测算法的研究[J].电脑知识与技术(学术版),2021(23):100-103.

[4] 杨晓玲,蔡雅雯.基于YOLOv5s的行人检测系统及实现[J].电脑与信息技术,2022,30(1):28-30.

[5] 王莉,何牧天,徐硕,等.基于YOLOv5s网络的垃圾分类和检测[J].包装工程,2021,42(8):50-56.

[6] 赵冬.基于改进目标检测算法的吸烟行为检测[J].电子技术与软件工程,2021(24):116-117.

[7] 杨晓玲,罗顺利,梁皓添.基于YOLOv5的交通路面障碍物目标检测[J].智能城市,2021,7(20):121-122.

[8] 谈世磊,别雄波,卢功林,等.基于YOLOv5网络模型的人员口罩佩戴实时检测[J].激光杂志,2021(2):147-150.

[9] 肖博健,万烂军,陈俊权.采用YOLOv5模型的口罩佩戴识别研究[J].福建电脑,2021,37(3):35-37.

【通联编辑:唐一东】

经典小说推荐

杂志订阅