人工智能论文:基于YOLO V3的垃圾品质检测方法
来源:未知 2021-02-04 13:15
随着全国生活垃圾的与日俱增,给资源环境和经济社会可持续发展带来较大压力[1]。2019年上海市正式实施《上海市生活垃圾管理条例》,该条例将通过法律的强制性推动垃圾分类,并在
人工智能论文:基于YOLO V3的垃圾品质检测方法
1.引言
随着全国生活垃圾的与日俱增,给资源环境和经济社会可持续发展带来较大压力[1]。2019年上海市正式实施《上海市生活垃圾管理条例》,该条例将通过法律的强制性推动垃圾分类,并在居住区普遍推行生活垃圾分类制度。垃圾分类品质的好坏直接影响到后端的垃圾回收处置,目前垃圾中转站对垃圾分类品质的评判主要靠人工为主,人工检测存在成本投入高、效率低、误检率高等缺点。
传统的机器视觉技术早已应用于简单的垃圾种类识别[2-10],其识别精度并不高,随着近些年深度学习技术的发展,机器识别技术也进入一个全新发展阶段。特别是图像检测领域,图像检测是指在图像中判别物体的类型并标注出物体所在的位置。基于深度学习的检测框架先后出炉[11-12],一类是基于two-stage的目标检测框架,比如RCNN,Fast RCNN,Faster RCNN,将检测任务分为回归(location)和分类任务[13]。还有基于one-stage的目标检测框架,例如YOLO/YOLO V2/YOLO V3,SSD等[14-17],同时完成检测和回归任务,将目标检测问题当作成一个回归问题,网络结构简单,检测速度快,基本能满足实时检测的要求。
目前大部分研究集中在垃圾前端的垃圾种类识别[18-19],而对复杂环境下的垃圾定位和识别很少有人研究,本文采用基于深度卷积神经网络的YOLO V3算法对干垃圾倾倒过程中垃圾的水流进行识别分析,为干垃圾后端处置提供实质性指导论文发表。
2.实验数据采集
本次实验的干垃圾图像数据采集于上海市某垃圾中转站,在不同光照强度、不同背景、不同角度、不同远近大小的情况下,通过工业高清摄像机抓拍干垃圾车向垃圾集装箱中倾倒垃圾的过程,获得干垃圾倾倒的照片,并筛选出两大类图像,如图1所示,第一类干垃圾图像:照片中没有水流但有类似水流的长条形塑料袋,如图1(a);第二类干垃圾图像:照片中有水流,水流的数量不等,如图1(b)。
(a)
(b)
图1 干垃圾图像类型:(a)第一类;(b)第二类
两类干垃圾图像共采集到8000张,其中第一类图像2000张,第二类图像6000张,然后将所有收集到的图像统一剪裁为416×416像素。为了提高训练结果的泛化性能,在模型训练时通过数据增强增加了数据集的多样性,对图片进行随机旋转180、随机水平翻转、随机垂直翻转和图像裁剪等处理。
使用LabelImg工具对干垃圾图像中的水流进行目标位置及类别标注,如图2所示。水流类别有小水流(small water)、大水流(big water)和其他(other,此类别为类似水流的絮状干垃圾,如长条垃圾袋等)三种,标注完后每张图像将生成一个XML文件,随后将所有标注后生成的XML文件的标注信息提取处理,并生成为CSV文件,CSV文件内含垃圾所属类别和矩形框的位置信息,然后将图片和标注信息制作成标准的PASCALVOC数据集格式。
图2 标注示例
3.YOLO V3基本原理
YOLOv3[16]是YOLO (You Only Look Once)系列目标检测算法中的第三版,相比之前的算法,尤其是针对小目标,精度有显著提升。YOLO V3主要改进有:调整了骨干网络结构、利用多尺度特征进行对象检测、对象分类用Logistic取代了softmax。
YOLO V3以Darknet-53为骨干网络,其网络结构如图3所示,darknet-53借用了resnet的思想,在网络中加入了残差模块,解决深层次网络的梯度问题,每个残差模块由两个卷积层和一个shortcut connections,整个V3结构里面只有残差模块,没有池化层和全连接层。每个卷积层后面都接一个批次归一化层和一个LeakyRelu 激活层,并引入ResNet残差模块以解决网络深度加深时所出现的训练退化问题。
图3 Darknet-53网络结构
YOLO V3引入多尺度融合以改善算法对小目标的识别效果。采用多个尺度进行预测,高层次的特征图更加抽象,语义信息更强,感受野比较大,适合检测大尺度目标,低层次的特征图含有更多的细节,感受野较小,适合检测小尺度目标。具体形式是在网络预测的最后某些层进行上采样拼接的操作来实现。因此将高层特征图与低层特征图融合,可以充分利用低层的语义信息,有利于小目标的检测。YOLO V3分别在13×13、26×26和52×52 尺度下进行特征图融合与预测,图4为YOLO V3算法的多尺度采样过程图。
图4 多尺度融合采用
YOLO V3输出3个不同尺度的特征图,不同的特征图对应不同的尺度, 分别为13×13、26×26、52×52, 深度均为255,其中,13×13像素用于检测较大的物体,26×26像素用于检测中等大小的物体,52×52像素用于检测较小的物体。在YOLO V3中,通过K-means方法对数据集中的目标框进行维度聚类,得到9 个不同大小的先验框,并将其均分到多个尺度的特征图上,每种尺度对应3种先验框,尺度更大的特征图使用更小的先验框,该方案使得最终获得的先验框数量比YOLO V2多,特征提取效果更好。对于像素为416×416的图片,YOLO V3可产生10647个预测框,后期通过判断是否超过阈值和采用非极大值抑制来筛选预测框。
YOLO V3预测对象类别时不使用softmax,而是采用多个独立的逻辑(logistic)分类器,因此能够支持多标签对象。在训练过程中,使用二元交叉熵损失(binary cross-entropy loss)来进行类别预测。
4.实验与结果分析
实验硬件平台环境如表1所示:
名称 |
配置 |
操作系统 |
Ubutun18.04.3 LTS |
CPU |
Intel Core i7-7800X@3.5GHz |
GPU |
Nvidia GeForce RTX 2080Ti(11G显存) |
深度学习框架 |
Tensorflow+Python |
整个实验均基于深度学习框架TensorFlow进行,编程语言为Python,实验依靠迁移学习用经ImageNet 数据集训练的Darknet-53参数进行初始化,训练时设置批次大小为4,优化器采用随机梯度下降算法(Stochastic Gradient Descent,SGD),初始学习率为0.0001,动量为0.9,权重衰减正则系数为0.0005,在此基础上将网络所有层训练80 个迭代次数。在训练过程中通过比较损失大小,保存损失最小的模型参数,通过多次试验优选得到最终的权重文件并冻结为检测模型。
为评估YOLO V3算法对干垃圾中水流的检测有效性,采用平均准确率均值(mean Average Precison,mAP)来作为衡量模型性能的指标[12]。mAP 是指所有类别目标的平均准确率(Average Precision, AP)的均值,它可以作为目标检测的实际度量标准。
本文实验的数据集是由8000张复杂环境下干垃圾照片组成,其中第一类照片(此类照片无水流但有类似水流的絮状干垃圾,因此只有other这类标注信息)2000张,第二类照片(有水流,标注类别有small water和big water)6000张。由于模型应用的环境特别复杂,干垃圾形态多种多样,导致类似水流的絮状物容易被误识别为水流,为了降低此类絮状物干垃圾(如长条的垃圾袋等)的误识别率,本文实验训练了两个不同的数据集样本,具体样本如表2所示。样本1中只包括第二类照片,即只包括有水流的干垃圾照片;而样本2则包括了两类的所有照片。对于两个样本的模型训练,训练集和测试集的数据均按8:2的比例随机从各自样本中随机抽取。
样本号 |
样本集 |
训练集数量 |
测试集数量 |
1 |
第二类照片 |
4800 |
1200 |
2 |
第一类+第二类照片 |
6400 |
1600 |
通过对样本1和样本2的数据进行模型训练,分别得到两个稳定的模型,模型1和模型2。将两个模型分别对各自样本集中的测试集进行检测,即模型1检测样本1中的1200张测试集照片,模型2检测样本2中1600张测试集照片,具体检测结果如表3所示。
模型号 |
迭代次数 |
mAP(%) |
1 |
80 |
75.4 |
2 |
80 |
83.5 |
通过测试可以发现,模型1测试的mAP为75.4%,统计发现模型1对絮状干垃圾的识别率较高,特别在水流很小的情况下,很容易将絮状干垃圾误识别成水流。而模型2测试的mAP相对模型1高出8%,同时发现模型2对絮状干垃圾的误识别率明显少于模型1,其出现误识别的情况较少,即使当水流很小的时候,也很少出现误识别,准确率明显提高。
(a)
(b)
(c)
(d)
图5 模型2的识别结果
图5显示了模型2对干垃圾中水流的部分典型识别结果,紫色框为大水流(big water),蓝色框为小水流(small water),从图5(a)和5(b)可以发现,模型2能准确的识别出干垃圾中的水流。同时在水流较小且存在较多类似水流的絮状干垃圾的情况下(如图5(c)和5(d)),模型2在识别出小水流的同时不会对絮状干垃圾误识别。通过实验说明,在复杂环境下,当干垃圾中存在类似水流的絮状物干垃圾时,通过对这些类似水流的絮状物干垃圾进行单独标注,并与水流类型进行区分,将此类单独标注的絮状物干垃圾照片与含水流的干垃圾照片合并成一个数据集,并放入YOLO V3中进行训练,能提高模型的精度,同时能很大程度上减少模型的误识别率(即明显降低了模型对絮状物的误识别率)。
5.结束语
针对复杂环境下干垃圾倾倒过程中水流的检测识别,本文详细阐述了基于YOLO V3的水流检测方法,包括数据集采集、算法原理、模型训练和优化。通过实验结果对比发现,在复杂环境下,通过反向标注干垃圾照片中类似水流的絮状物垃圾,并将此类照片与有水流的照片一起放入模型中进行训练,能明显提高模型的精度,同时能有效地降低模型的误识别率,明显减少了模型对类似水流干垃圾的误识别。同时结果表明,基于YOLO V3的干垃圾水流检测方法能够准确地识别出干垃圾中的水流,满足干垃圾品质识别的要求,可以取代人工检测,提高干垃圾品质识别的检测效率。
[1