本网站提供普刊和核心期刊职称论文业务;提供实用新型专利、发明专利业务;提供个人出书业务、主编、副主编、参编挂名,独著;提供国家级课题一条龙服务,课题上知网,欢迎各位客户加微信、qq 在线咨询。

联系方式:QQ:916148; 微信同号; 邮箱:916148@qq.com

人工智能:基于Gaussian-YOLOv3的干垃圾品质检测方法

来源:未知 2021-02-08 11:08

摘要:

  早在20世纪70年代,许多国家开始进行城市生活垃圾的分类回收,如德国,美国,加拿大,瑞士等,在生活垃圾分类方面,西方发达国家经过半个多世纪的研究和经验积累,己经形成了各

  人工智能:基于Gaussian-YOLOv3的干垃圾品质检测方法

  1.引言

  早在20世纪70年代,许多国家开始进行城市生活垃圾的分类回收,如德国,美国,加拿大,瑞士等,在生活垃圾分类方面,西方发达国家经过半个多世纪的研究和经验积累,己经形成了各自完整的分类体系,并取得了显著成效,对我国生活垃圾分类有着重要参考意义。随着经济的发展,中国生活垃圾的与日俱增,给资源环境和经济社会可持续发展带来较大压力[1]。2019年上海市正式实施《上海市生活垃圾管理条例》,该条例将通过法律的强制性推动垃圾分类,并在居住区普遍推行生活垃圾分类制度。垃圾分类品质的好坏直接影响到后端的垃圾回收处置,目前垃圾中转站对垃圾分类品质的评判主要靠人工为主,人工检测存在成本投入高、效率低、误检率高等缺点。

  传统的机器视觉技术早已应用于简单的垃圾种类识别[2-10],Sudha等[7]提出了一种自动识别系统用于垃圾前端自动分类,该系统将垃圾分为三类,即金属,干垃圾和湿垃圾,一个简单的微控制器构成了系统的核心。系统集成了图像识别技术中的深度学习算法,可以识别对象并几乎准确地对三类垃圾进行分类。该系统的主要缺点是垃圾识别耗时较长,垃圾的尺寸必须小于或等于漏斗的尺寸,导致许多垃圾无法进行有效分离,如电子垃圾,卫生垃圾和医疗垃圾不能通过该系统进行隔离。George等[8]通过应用机器学习技术进行垃圾自动识别分类,使用了两种流行的学习算法:卷积神经网络(CNN)和支持向量机(SVM)的深度学习。每种算法都创建了一个不同的分类器,将垃圾分为3大类:塑料,纸张和金属。比较两个分类器的准确度,以便选择最好的分类器集成到控制机械系统,将垃圾从其初始位置引导到相应的容器中。通过比较发现,SVM的分类精度高达94.8%,而CNN仅达到83%,同时SVM还表现出对不同类型废物的特殊适应性。Chen等[9]提出了一种基于机器视觉自动分类垃圾的机器人抓取系统。该系统在使用机械手之前,实现了复杂背景下垃圾的识别、定位和自动抓取分拣。他们采用深度学习的方法实现复杂背景下目标对象的真实性识别。为了实现目标物体的精确抓取,他们将目标物区域生成算法(RPN)和VGG-16模型应用于物体识别和位置定位。机器视觉系统将几何中心坐标和目标物体长边的角度信息发送给机械手,完成分类和抓取目标对象。结果表明该系统的视觉算法和机械手控制方法能够有效地实现垃圾分类。Chu等[10]提出了一种多层混合深度学习系统(MHS),用于自动分类城市公共区域内的垃圾。该系统采用高分辨率相机捕捉废弃图像和传感器,以检测其他有用的特征信息。MHS系统使用基于CNN的算法提取图像特征和多层感知器(MLP)方法来合并图像特征和其他特征信息,将垃圾分类为可回收和不可回收。MHS针对手动标记的项目进行了训练和验证,在两种不同的测试场景下实现了高于90%的整体分类准确度,这明显优于其他的机器学习算法。

  传统机器视觉技术识别精度并不高,特别是在复杂场景中识别精度低,无法满足工业复杂应用的要求,随着近些年深度学习技术的发展,机器识别技术也进入一个全新发展阶段,特别是图像目标检测方向(图像检测是指在图像中判别物体的类型并标注出物体所在的位置),目前许多目标检测算法逐渐应用于各种工业复杂场景中。基于深度学习的目标检测框架先后出炉[11-12],一类是基于two-stage的目标检测框架,比如RCNN,Fast RCNN,Faster RCNN,将检测任务分为回归(location)和分类任务[13],此类算法通常精度高,但存在检测速度相对较慢和效率低的缺点。还有基于one-stage的目标检测框架,例如YOLO/YOLOv2/YOLOv3,SSD等[14-17],同时完成检测和回归任务,将目标检测问题当作成一个回归问题,网络结构简单,检测速度快,精准度相对较低,但能满足实时检测的要求。

  目前大部分研究集中在垃圾前端的垃圾种类分类[18-19],而对这种复杂环境下的垃圾定位和识别很少有人研究。垃圾中转站环境恶劣,垃圾种类多种多样,干垃圾中的水流含量直接影响其后端的处置方式,针对此种复杂情况,本文采用基于深度卷积神经网络的Gaussian-YOLOv3[20]算法对干垃圾倾倒过程中垃圾的水流进行识别分析,为干垃圾后端处置提供实质性指导论文发表

  2.实验数据采集

  本次实验的干垃圾图像数据采集于上海市某垃圾中转站,在不同光照强度、不同背景、不同角度、不同远近大小的情况下,通过工业高清摄像机抓拍干垃圾车向垃圾集装箱中倾倒垃圾的过程,获得干垃圾倾倒的照片,并筛选出两大类图像,如图1所示,第一类干垃圾图像:照片中没有水流但有类似水流的长条形塑料袋,如图1(a);第二类干垃圾图像:照片中有水流,水流的数量不等,如图1(b)。

   

  图1 干垃圾图像类型:(a)第一类;(b)第二类

  两类干垃圾图像共采集到8000张,其中第一类图像2000张,第二类图像6000张,然后将所有收集到的图像统一剪裁为512×512像素。使用标注工具对干垃圾图像中的水流进行目标位置及类别标注,如图2所示。水流类别有小水流(small water)、大水流(big water)和其他(other,此类别为类似水流的絮状干垃圾,如长条垃圾袋等)三种,标注完后每张图像将生成一个XML文件,随后将所有标注后生成的XML文件的标注信息提取处理,并生成为CSV文件,CSV文件内含垃圾所属类别和矩形框的位置信息。

  3.算法背景

  YOLOv3[16]是YOLO (You Only Look Once)系列目标检测算法中的第三版,相比之前的算法,尤其是针对小目标,精度有显著提升。YOLOv3主要改进有:调整了骨干网络结构、利用多尺度特征进行对象检测、对象分类用Logistic取代了softmax。

  图2 YOLOv3网络结构

  YOLOv3以darknet-53为骨干网络,其网络结构如图2所示,darknet-53借用了resnet的思想,每个残差模块由两个卷积层和一个快捷连接组成,整个YOLOv3结构里面只有残差模块,没有池化层和全连接层,YOLOv3应用残留跳过连接来解决深度网络的梯度消失问题,并使用上采样和级联方法保留细粒度的特征以用于小物体检测,每个卷积层后面都接一个批次归一化层和一个LeakyRelu 激活层,并引入ResNet残差模块以解决网络深度加深时所出现的训练退化问题。YOLOv3最突出的特征是以特征金字塔网络相似的方式在三个不同的尺度上进行检测,使其可以检测各种大小的对象。

  图3 YOLOv3预测框计算结构

  更详细地,当将R,G和B的三个通道的图像输入到YOLOv3网络中时,如图3所示,将输出有关物体检测的信息(即预测框坐标,物体得分和类别得分)。从三个检测层,使用非最大抑制对三个检测层的预测结果进行合并和处理,确定最终的检测结果。

  正如YOLOv3的输出结果所述,目标类别是有概率值的,但预测框只有位置而没有概率值,也就是从结果中无法预知当前预测框的可靠性。本文研究的场景非常复杂,存在许多检测目标和背景非常相似的情况,因此本文基于此场景采用Gaussian-YOLOv3算法进行建模和训练,以此来提高算法在此种场景中的检测精度。Gaussian-YOLOv3在基本不改变YOLOv3结构和计算量的情况下,能够输出每个预测框的可靠性,从算法总体性能上提升了模型的检测精度。

  Gaussian-YOLOv3主要是YOLOv3的基础上,通过增加网络的输出,和改进网络的损失函数,实现了对预测框可靠性的输出。如图4所示,Gaussian-YOLOv3在预测框输出中通过采用高斯模型对预测框的不确定性进行建模计算的预测框的可靠度。

  图4 YOLO V3预测框计算结构

  因此,Gaussian-YOLOv3在预测框的坐标预测输出中包含了8个维度,分别是预测框坐标位置(包括中心坐标x,y和长宽w,h),以及对应预测框四个坐标位置的不确定性。

  由于Gaussian-YOLOv3的输出进行了调整,与之对应的损失函数的计算也会做相应的调整。与原始的YOLOv3相比,仅仅调整了预测框坐标位置的回归策略。如下代码对比所示,原始的YOLOv3进行预测框回归时,由于网络预测输出就是坐标本身,因此计算梯度时就利用了均方误差的方式。而由于Gaussian-YOLOv3输出的是均值和方差,因此在计算梯度时就结合了高斯分布的策略。

  4.实验与结果分析

  实验硬件平台环境如表1所示:

  表1 实验硬件平台环境

名称

配置

操作系统

Ubutun18.04.3 LTS

CPU

Intel Core i7-7800X@3.5GHz

GPU

Nvidia GeForce RTX 2080Ti(11G显存)

深度学习框架

Darknet框架

  整个实验均基于深度学习Darknet框架,本文采用了迁移学习学习的思路,模型训练的初始化参数权重采用Gaussian-YOLOv3文章作者提供的权重文件(Gaussian_yolov3_BDD.weights),训练时设置批次大小为4,优化器采用随机梯度下降算法(Stochastic Gradient Descent,SGD),初始学习率为0.0001,动量为0.9,权重衰减正则系数为0.0005,在此基础上将网络所有层训练80 个迭代次数。在训练过程中通过比较损失大小,保存损失最小的模型参数,通过多次试验优选得到最终的权重文件并冻结为检测模型。

  为评估算法对干垃圾中水流的检测有效性,采用平均准确率均值(mean Average Precison,mAP)来作为衡量模型性能的指标[12]。mAP 是指所有类别目标的平均准确率(Average Precision, AP)的均值,它可以作为目标检测的实际度量标准。

  本文实验的数据集是由8000张复杂环境下干垃圾照片组成,其中第一类照片(此类照片无水流但有类似水流的絮状干垃圾,因此只有other这类标注信息)2000张,第二类照片(有水流,标注类别有small water和big water)6000张。由于模型应用的环境特别复杂,干垃圾形态多种多样,导致类似水流的絮状物容易被误识别为水流,为了降低此类絮状物干垃圾(如长条的垃圾袋等)的误识别率,本文实验训练了两个不同的数据集,具体如表2所示。数据集I中只包括第二类照片,即只包括有水流的干垃圾照片;而数据集II则包括了两类的所有照片。对于两种数据集的模型训练,训练集和测试集的数据均按8:2的比例随机从各自样本中随机抽取。

  表2 实验硬件平台环境

数据集

样本

训练集(张)

测试集(张)

I

第二类照片

4800

1200

II

第一类+第二类照片

6400

1600

  本文首先对比了Gaussian-YOLOv3和YOLOv3两种算法在两种数据集上的训练精度,具体测试结果如表3所示。

  表3 Gaussian-YOLOv3和YOLOv3的测试结果比较

数据集

算法

mAP%

FPS

I

YOLOv3

75.4

42.2

II

YOLOv3

81.9

41.9

I

Gaussian-YOLOv3

82.4

41.7

II

Gaussian-YOLOv3

87.5

41.0

  针对数据集I和数据集II两种数据集的测试结果,可以发现,相对于YOLOv3,Gaussian-YOLOv3的mAP分别提高了7.0和5.6,而推理速度几乎与YOLOv3相同,在输入的图像大小未512*512的情况下,推理速度均能达到40fps以上。由此可见,Gaussian-YOLOv3训练得到的模型对不同数据集具有更好的适应性。

  YOLOv3和Gaussian-YOLOv3算法在数据集I上的mAP分别为75.4和82.4,而在数据集II中分别达到了81.9和97.9,相对数据集I,其mAP分别提高了6.5和5.1。通过实验说明,在复杂环境下,当干垃圾中存在类似水流的絮状物干垃圾时,通过对这些类似水流的絮状物干垃圾进行单独标注,并与水流类型进行区分,将此类单独标注的絮状物干垃圾照片与含水流的干垃圾照片合并成一个数据集,并放入算法中进行训练,能提高模型的精度,同时能很大程度上减少模型的误识别率(即明显降低了模型对絮状物的误识别率)。因此,在训练样本中添加类似目标物反向样本能提高算法模型的总体精度,特别是在此种复杂垃圾场景中。

  图5 YOLOv3和Gaussian-YOLOv3对数据II的测试效果图:第一列为YOLOv3的测试结果;第二列为Caussian-YOLOv3的测试结果

  为了直观评估YOLOv3和Gaussian-YOLOv3对复杂环境下干垃圾水流的检测效果,图5显示了两种算法对数据集II的测试数据的检测示例,紫色框为大水流(big water),蓝色框为小水流(small water)。图5第1列为YOLOv3的检测效果图,第二列为Caussian-YOLOv3的检测效果图,通过比较可以发现,在图片中出现类似水流的絮状干垃圾时,YOLOv3对絮状干垃圾的识别率较高,出现将絮状干垃圾错误识别成水流,而Gaussian-YOLOv3由于采用了高斯建模预测预选框输出,提高了预选框的学习准确性,从而提高了对水流目标的检测性能,对絮状干垃圾的误识别率明显少于YOLOv3,其出现误识别的情况较少,即使当水流很小的时候,也很少出现误识别,准确率明显提高。图5第4行结果对比发现, YOLOv3对于背景较为复杂的目标较难检测出来,而Gaussian-YOLOv3可以检测出此类复杂背景的目标,从而提高模型对目标的召回率。

  基于上述结果, 在垃圾中转站恶劣环境下,相比YOLOv3算法,Gaussian-YOLOv3算法对干垃圾倾倒过程中水流的识别检测精度更好,效果更好。同时Gaussian-YOLOv3算法能准确的识别出干垃圾中的水流,在水流较小且存在较多类似水流的絮状干垃圾的情况下,Gaussian-YOLOv3算法在识别出小水流的同时不会对絮状干垃圾误识别。

  5.结束语

  针对复杂环境下干垃圾倾倒过程中水流的检测识别,本文详细阐述了基于Gaussian-YOLOv3的水流检测方法,包括数据集采集、算法原理、模型训练和优化。同时本文比较了YOLOv3和Gaussian-YOLOv3对复杂环境下干垃圾中水流的识别精度,通过实验结果对比发现,相比YOLOv3算法,Gaussian-YOLOv3算法对水流的误识别更少、漏检率更低、模型精度更高。同时本文发现通过反向标注干垃圾照片中类似水流的絮状物垃圾,并将此类照片与有水流的照片一起放入模型中进行训练,能明显提高模型的精度,同时能有效地降低模型的误识别率,明显减少了模型对类似水流干垃圾的误识别。同时结果表明,基于Gaussian-YOLOv3的干垃圾水流检测方法能够准确地识别出干垃圾中的水流,满足干垃圾品质识别的要求,可以取代人工检测,提高干垃圾品质识别的检测效率。

核心期刊推荐