施玉娟
(漳州职业技术学院 福建漳州 363000)
随着居民生活水平的大幅提升,城市生活垃圾总量飞速增加[1]。对垃圾进行正确分类[2],针对性回收可再造垃圾,处理有害垃圾,不仅避免对环境造成损害[3],更能带来资源的良性循环利用,具有很大的社会和经济效益[4]。目前,居民投放垃圾时按照厨余垃圾、可回收垃圾、有害垃圾和其他垃圾四个类别进行划分[5],很难再进一步精细分类[6]。因此,在垃圾处理厂需要再次分类[7]。国内的垃圾处理厂大多采用人工分拣方法[8],工作环境恶劣,劳动强度大且效率低下[9],远远无法应对海量垃圾的分捡要求。
人工智能的发展,使得垃圾自动检测与分类成为可能[10]。近年来,深度卷积神经网络凭借强大的特征提取能力,在目标检测任务上取得重大的进展[11]。在人脸识别 、智慧交通、工业质检 、智能农业等许多领域均得到广泛应用[12]。出现了很多优秀的目标检测算法,如双阶段检测算法Faster R-CNN系列[13]、单阶段检测算法YOLO系列[14]和Transformer网络[15]等。双阶段算法分两步完成区域划分与分类,检测精度较高,但是速度较慢,难以完成实时性检测。单阶段检测算法则同时定位目标并分类,较好地平衡检测精度与速度[16]。
因此,越来越多的学者通过深度学习算法研究自动垃圾识别与分类方法。文献[17]通过区域回归网络和ResNet算法训练一个Faster R-CNN模型对垃圾图像进行检测。文献[18]开发了垃圾分类的深度神经网络模型DNN-TC,该模型对ResNext模型的改进,能对有机垃圾、无机垃圾和医疗垃圾进行分类。文献[19]设计了基于卷积神经网络ResNet-50的轻量级垃圾分类模型,通过使用深度卷积和组卷积减少参数量和内存消耗,提高检测速度。文献[20]提出基于深度视觉检测模型的海洋垃圾机器人检测系统,使用YOLOv2等算法对海洋垃圾进行训练和评估,证明使用深度学习模型的垃圾检测具有实时性。文献[21]使用YOLOv5s模型对海洋表层的塑料碎片进行探测,并在自定义的深海塑料垃圾数据集上进行检测。文献[22]建立一个具有30类家庭垃圾图像的数据集,并基于此使用各种先进的检测方法进行实验,得出YOLOv4效果最好的结论。文献[23]基于MobileNetV2构建轻量级特征提取网络搭建低消耗、高精度的垃圾分类模型。文献[24]提出使用最大平均组合池化代替ResNet-50 Bottleneck中的最大池化与平均池化,构建轻量级残差网络以适合嵌入式设备使用。文献[25]基于新型像素级空间注意力机制和迁移学习方法建立一套网络架构实现对垃圾自动检测。
然而,当前的研究方法普遍关注的是单目标且背景简单的垃圾分类,使用的数据集大多较小且类别单薄。训练的模型泛化能力不够。垃圾处理厂中垃圾在不同的光线和角度下有着不同的形态与纹理,垃圾堆叠容易产生遮挡,背景复杂多变,普通方法很难实现准确定位并分类。
针对以上问题,提出一种在YOLOv5中融合卷积注意力模块和Transformer编码器的深度学习垃圾图像检测方法(garbage images detection method,GIDM)。首先,使用光学变换、几何形状改变和马赛克等数据增强方法扩充城市生活垃圾数据集,模拟光线变化和形态变化,提高训练图像的复杂度,增强模型的泛化能力。由于数据集中图像大小不一,所以采用自适应算法统一图像尺寸。同时,通过数据集标记框聚类产生最优先验框尺寸。其次,在Darknet53基础上融入跨级局部网络提取特征,并分别通过特征金字塔网络和路径聚合网络进行特征融合,丰富每个级别的特征,生成三个尺度的垃圾图像特征图。在每个特征图中加入卷积注意力模块,通过注意力机制使网络获得更想关注的垃圾特征信息,提取更为精细的特征。然后,使用Transformer利用多头注意力机制和前馈神经网络,进一步覆盖全局信息、加强上下文信息关联,更加有效地利用特征,提升复杂场景下密集垃圾检测能力。最后,利用先验框在三个尺度的特征图上分别检测目标,使用CIoU改进损失函数,提升目标框定位的准确性。通过实验证明,该方法在阈值为0.5情况下,比YOLOv5l的mAP值提高了1.98%。
模型训练首先需要质量良好并具有一定规模的数据集,其次要有兼具精度与速度的优秀检测算法。数据增强方法可以大大减少人工处理数据集的成本。YOLOv5则是当前最优秀的目标检测算法之一。
深度学习算法在数据的驱动下进行模型推导,因此数据集的规模和质量决定模型的拟合和泛化性能。现实生活中,垃圾种类繁多,同一类垃圾形状也是千变万化,很难采集到全部类别所有形状的垃圾数据集。而且,人工标注费时费力,成本较高,也限制了带标注的数据集规模。因此,需要通过数据增强手段来扩展图像数量,平衡正负样本的比例,降低模型对图像的敏感性,提高训练模型的鲁棒性和泛化能力。
传统数据增强方法主要包含几何变换、颜色变换、图像降质等。几何变换通过图像水平或垂直翻转、放大或缩小、平移、旋转、裁剪等方式产生更多的训练样本。颜色变换通过改变色调、饱和度、明度空间,可以使得训练模型更能适应光线变化。图像降质通过添加噪声让网络学习到更本质的图像特征。除此之外,使用多幅图像一起增强的方法也广受好评[26],如MixUp、CutOut、CutMix和Mosaic。MixUp从训练图像中随机选取两幅图像进行随机加权求和。CutMix使用一幅图像的一个区域覆盖另一幅图像的某个区域,形成遮挡的效果。Mosaic随机选取四幅图片,分别对图片进行翻转、缩放、色域变化等操作,再拼接成一张新的图片,极大地丰富了被检测对象的背景,并增加了小目标对象的数量。
YOLO是一种单阶段目标检测算法,通过采用不同尺度和长宽比的先验框在图像的不同位置进行密集采样,然后利用深度卷积神经网络提取特征后同时对目标定位和分类,由于整个过程只需要一步,因此比两阶段目标检测算法具有更高的检测速度。
YOLO的第一个版本在2015年诞生。YOLOv1将输入图像分割成7×7大小的正方形网格,每个网格负责检测中心点落在该网格的对象。同时,预测边界框、类别和置信度,最后采用非极大值抑制方法合并、优化预测框,输出检测结果。YOLOv2采用了Darknet-19特征提取网络,有效降低了网络计算量。借鉴Faster R-CNN中的锚框策略加快了网络的收敛并提高定位能力。并且在每个卷积层后面都添加了批量归一化处理,大大提升了精度。YOLOv3则引入了残差网络及特征的多尺度融合,增加网络深度为Dartknet-53,进一步提高了检测精度和速度。YOLOv4和YOLOv5则使用近些年来卷积神经网络领域中优秀的策略,从数据预处理、特征提取与融合、损失函数等方面进一步优化,不仅降低了检测速度,还提升定位准确性和召回率。
YOLOv5按照模型的深度和广度不同,分为s、m、l、x等不同的权重大小,分别适用于不同场景下的检测任务,具有更灵活的性能。数据输入端对数据集进行预处理操作,包括自适应图片缩放、图片几何和色彩改变,马赛克增强等。主干网络在原来的Darknet53中融入跨级局部网络(cross stage partial network,CSPNet)来提取特征[27],并引入Focus和空间金字塔池化[28](spatial pyramid pooling,SPP)。颈部通过特征金字塔网络[29](feature pyramid network,FPN)和路径聚合网络[30](path aggregation network,PANET)进一步增强特征和强化定位,最后,通过检测头在不同尺度的特征图上进行目标预测[31]。
图 1 GIDM网络结构图
GIDM在YOLOv5l的基础上进行改进,先对数据集进预处理,再在特征提取时添加卷积注意力模块和Transformer编码器,最后改进损失函数。
由于神经网络需要大量的数据来训练模型,而数据的收集,清洗和标注需要大量的人工成本,所以在模型训练前采用数据增强算法扩展垃圾数据集。除了传统的光学变换和形状改变算法外,还采用了马赛克数据增强方法。通过随机缩放、裁剪和排布的方式,将任意四张图片拼接在一起,不仅丰富了数据集,提高了背景的多样性,还随机增加了很多小目标,有利于提高网络的鲁棒性。
由于垃圾图像数据集中,不同的图片长宽及比例各不相同,因此采用自适应缩放图片算法,对数据集自适应地添加最少的黑边,可以减少计算量,提升检测速度。数据集图片大小统一调整为640×640,然后送入主干网络提取特征图。
主干网络包含Foucus、卷积层和BottleneckCSP、Transformer和SPP模块。主干网络第一层中通过Focus切片操作,在不损失信息的前提下,加强特征的维度以缩小尺寸。第二层到第八层通过卷积操作和跨级局部网络提取并残差融合各层次的特征图,优化并重复利用梯度信息,避免梯度衰减或爆炸,减少计算量并提高推理速度和准确性。第九层利用Transformer编码器的多头注意力机制强化特征。第十层SPP使用1×1,5×5,9×9,13×13的卷积核进行最大池化操作,将不同尺度的特征图进行融合,可以提高感受野。
颈部模块,使用SPP、特征金字塔和路径聚合网络结构,更好地提取并融合特征。特征金字塔网络自底向上传达强化底层的定位特征,而聚合路径网络则自顶向下传达强化语义特征,两者相融合,从不同的主干层对不同的检测层进行特征融合,能够减少信息丢失,获得更多的特征信息。最终生成三个尺度的特征融合层,分别检测大尺度、中尺度和小尺度的垃圾对象。
为了获取更多垃圾对象的重要区域信息,分别在检测层之前,即19层、24层和29层使用卷积注意力模块,进一步细粒度化特征,增强垃圾对象的注意力,帮助提高检测精度。由于最后一个特征图经过多次的卷积,丢失细节信息更多,所以在28层增加Transformer编码器,再次强化有效特征。
在检测层,分别对三个垃圾图像特征图运用三种不同大小的锚框进行检测。这里,真实框可以跨网格匹配预测。假设一个真实框落在某个特征图的某个网格内,该网格有上下左右四个相邻网格,根据真实框的中心网格,将最邻近的两个网格也作为预测网格,也就是一个真实框由三个网格来预测,这样可以明显增加正样本的数量,加速模型的收敛。因为预测框的输出是基于先验锚框,进而与真实框重叠比对,计算IoU值,再反向更新网络参数。因此,初始锚框尺寸设计会影响到定位的准确性。这里,使用自适应锚框算法,根据具体的数据集自动聚类分析最佳锚框值。此外,不同的特征图将产生不同的锚框,所以在检测头使用加权非极大值抑制算法对目标框进行筛选,得到最终检测结果。
由于垃圾的复杂度大,检测困难。通过卷积注意力机制可以更好地激活图像中的重点的局部特征,抵御混淆信息,增强特征提取能力。因此在网络中加入了卷积注意力模块。从图2可知,该模块由两个独立的子模块组成,分别为通道与空间注意力模块,能够分别沿着通道和空间两个维度重构特征,自适应地细粒度化特征。具体步骤为:
图 2 卷积注意力模块网络结构图
将输入的特征图F分别经过基于宽和高的全局最大池化和全局平均池化,得到两个C×1×1的特征图。接着,分别送入多层感知机(multi-layer perceptron,MLP),将得到的两个特征图进行加权求和,再经过sigmoid激活函数,生成通道注意力特征图Mc。计算方法如公式(1)所示:
MC(F)=σ(MLP(GAvgPool(F))+MLP(GMaxPool(F))),
(1)
式(1)中,F指输入的图像特征图,σ代表sigmoid激活函数。GAvgPool和GMaxPool分别指平均池化和最大池化运算。
如公式(2),将Mc和输入的特征图做乘法操作,生成通道精细化特征图F’。
F’=Mc(F)⊗F,
(2)
F’作为空间注意力模块输入特征,继续执行全局最大池化和全局平均池化操作,得到两个H×W×1的特征图,再经过7×7卷积计算后,将这两个特征图再次连接,经过sigmoid激活生成空间注意力特征图Ms。如公式(3)所示:
Ms(F)=σ(f7×7([AvgPool(F');MaxPllo(F')]))。
(3)
最后,如公式(4),将该特征图与F’做乘法,得到最终生成的精细特征图F’’。
F’’=Ms(F)⊗F’,
(4)
在经过特征提取与融合之后,加入卷积注意力模块重构注意力,可以进一步强化特征,增强检测效果。
由于深层次的卷积操作会降低特征的分辨率,所以在骨干网络以及最高层的检测头之前,应用Transformer编码器,更为有效地覆盖图像的全局信息并加强上下文信息的传递。
图 3 Transformer编码器结构图
每个Transformer编码器包含两个模块,一个是多头注意力模块,将特征维度平均分配到多个单头自注意力机制中,使网络避免仅关注局部特征。通过将多个注意结果进行拼接,获得上下文语义信息,有利于挖掘精细特征,丰富提取的特征。另外一层是前馈神经网络全连接层,通过对特征进行变换阻止网络退化。两个模块均对隐含层进行层归一化处理,并按照一定的概率随机dropout部分神经网络单元,加快网络收敛,防止网络过拟合。两模块之间通过残差连接融合特征。Transformer编码器有利于在复杂背景且密集场景下更好地检测分类垃圾对象。
IoU指预判框与真实框之间的交集与并集之间的比率,用来衡量预测框与真实框的重叠程度。IoU值不仅用于区分正样本与负样本,作为边界框回归的Loss函数提供优化策略,并且在非极大值抑制中用于对预判框进行筛选。因此,IoU越高表示模型预测的准确性越好。但是,IoU并没有考虑两框之间的距离,无法精确地反映两框的重合度。而CIoU不仅考虑两框间距,重叠率以及尺度,还考虑长宽比要素,所以使用CIoU作为边界框回归的损失函数。损失值计算公式如下所示:
(5)
其中,b是预判框中心点,bgt是真实框中心点,ρ是二者之间的距离,c表示两框最小外接矩形的对角线距离。ɑ指权重函数,v代表度量宽高比的一致性,其中的关系如公式(6)和公式(7)所示:
(6)
(7)
这样,即使真实框与预判框不重叠,仍然可以为边界框提供移动方向,加速收敛,使得非极大值抑制结果更加合理有效。
本节主要就数据集、实验环境和参数设置进行阐述,并分别使用YOLOv5的各种模型与GIDM训练权重文件,对比测试集上各种性能指标。
实验基于2020年“华为云人工智能大赛”比赛中提供的数据集。共14966张带标注的垃圾图像,44种常见城市生活垃圾。具体分类情况如表1所示。
表1 城市生活垃圾分类情况
垃圾图像类别分布和标记情况如图4所示:各种分类垃圾图像数量偏差较大,数据较少的类别有类别1书籍纸张、类别5垃圾桶,类别19污损用纸,类别22牙签,类别27花盆。较多的分类有类别3剩菜剩饭,类别12插头电线,类别18污损塑料,类别39陶瓷器皿等。为了解决样品的不均衡性,使用Focal Loss损失函数代替标准交叉熵损失函数。由于图片分辨率大小不一。因此,经过预处理,将图片通过自适应缩放算法统一调整为640×640,避免因为简单使用resize而造成的图像信息的丢失。实验将样本按8:2的比例随机划分训练集和验证集。
(a)垃圾类别分布情况
训练时随机选择四幅图片,经过翻转、旋转、缩放、亮度与对比度调整、高斯噪声等数据增强后,再随机位置剪裁拼接合成新图片,图5为经过马赛克处理的一批次训练图片。
图5 马赛克训练集
实验环境配置如表2所示:一个Intel(R)Xeon(R)Gold 5218 CPU @2.30GH,搭载4个2080Ti显卡和128G的内存。Pytorch框架选择1.10.7,python版本为3.9.7。
表2 实验环境配置
实验采用Pytorch深度学习框架进行模型的训练和测试。在训练阶段,使用YOLOv5l预训练模型,迁移模型的权值,节省训练时间。batchsize设置为32。学习率初始值设为0.01。每个模型训练300个epoch。使用SGD随机梯度下降作为优化器。图6为各种方法的训练过程损失变化情况。
(a)训练集-类别损失
为了对比各种模型性能,选择精确度precision、召回率recall,平均精度均值mAP等评价指标对比不同模型效果。精确度是模型正确检测的垃圾数量与总的识别垃圾数量的比值,公式(8)如下:
(8)
式(8)中,TP指模型正确检测出的垃圾数量,FP表示模型检测错误的垃圾数量。
召回率是模型判断正确的垃圾对象数与标注的垃圾对象总数的比率。
(9)
式(9)中,FN表示漏检的垃圾对象数量。
精度和召回率具有一定的矛盾性,不能单独作为衡量模型的性能指标。以某一垃圾分类召回率作为X轴坐标,精确度作为Y轴坐标,描制PR曲线图,曲线图包围的面积就是该类别的平均精度AP。AP可以较好地反应模型的综合性能。所有类别的平均精度就是mAP。mAP较好地评价模型的性能。各模型各评价指标的训练过程如图7所示。
(a)精确度
可以看到,YOLOv5的大中小三个模型中,随着网络深度和广度的增加,各种性能指标都随之增加。
从表3可以看出,在阈值为0.5情况下,YOLOv5l的mAP值比YOLOv5m高了3.4%,比YOLOv5s高了5.24%。虽然YOLOv5l模型的训练计算成本相对于YOLOv5m和YOLOv5s更高,但考虑到垃圾图像的复杂程度,GIDM选择基于YOLOv5l模型进行改进。分别在三个经过融合的特征图上增加卷积注意力模块,通过自适应特征细化提高模型的性能。此外,考虑到网络末端的特征图具有较低的分辨率,因此增加Transformer编码器模块,利用多头注意力机制和多层感知机挖掘潜在特征,提升密集场景下的检测能力。实验表明,GIDM的mAP50比YOLOv5l提升了1.98%,精度提高了3.34%,召回率增加了3.49%。证明添加注意力模块以及Transformer编码器对于特征提取具有有效性。
表3 GIDM与YOLOv5各种模型实验对比
结果表明,改进的GIDM可以有效地识别复杂环境下的垃圾。不管是具有复杂背景,还是同一类垃圾具有不同的形态变化,或是密集场景下存在遮挡情况,训练模型均能较好地定位出垃圾并进行正确分类
文章提出了基于YOLOv5l融合注意力机制与Transformer模型的垃圾图像自动检测方法。解决复杂场景下密集垃圾的检测问题。然而,由于网络层数较多,计算量较大,对硬件要求较高,下一步工作,将对模型进行剪枝,在不影响检测准确率的前提下降低模型计算量,提高检测速度。
图8 GIDM模型检测效果