基于改进Faster R-CNN的地面垃圾分类与检测

2023-11-29 03:25陈广锋
关键词:主干像素垃圾

程 浩,陈广锋

(东华大学 机械工程学院, 上海 201620)

废纸盒、塑料瓶、烟头等是街头随处可见的地面垃圾。为了创造良好的城市面貌和整洁的地面环境,环卫人员需要投入大量的时间去巡查并捡拾地面垃圾。因此,设计一款能够代替环卫工人去检测地面垃圾的系统显得尤为重要。

早在2012年,芬兰的ZenRobotics公司就设计研发出一款可以实现工业垃圾分拣的机器人,现已在各地投入使用[1]。此外,Rad等[2]通过安装在车辆上的图像采集系统,建立了一套垃圾数据集,并利用深度学习框架,对不同类型的垃圾进行识别。日本软银机器人控股公司开发了一款环卫机器人Whiz[3],通过计算机视觉系统、激光测距仪、3D摄像头、碰撞传感器等联合探测障碍物。王兴朝等[4]针对家庭垃圾分类的问题,使用YOLOv3目标检测算法,设计了一款家用智能分类垃圾桶。马雯等[5]针对垃圾分类人工操作效率低的问题,采用Soft-NMS算法替代Faster R-CNN中的非极大值抑制算法,在自建的垃圾数据集上得到81.77%的综合识别准确率。钱昱成等[6]将金字塔结构应用到SSD算法中,进行多尺度训练和预测,取得了75.45%的平均准确率。王明吉等[7]在YOLOv4算法中融入K-means ++聚类算法,对采集的垃圾图片实现了95.15%的识别准确率。

虽然深度学习模型在垃圾检测领域取得了良好的效果,但对烟头、瓶盖等小目标地面垃圾,以及有遮挡的地面垃圾的识别精度较低。针对以上问题,本文提出一种改进的Faster R-CNN[8]目标识别网络来检测不同类别地面垃圾。其中主干网络采用基于通道注意力机制[9](squeeze-and-excitation networks,SENet)的ResNet-50[10]特征提取网络,并使用特征金字塔结构[11](feature pyramid network,FPN)提高模型对小目标的检测效果。在区域建议网络中重新设计了更加适配地面垃圾数据集锚框,同时使用级联结构的检测器,逐级提高模型对地面垃圾的定位精度和检测准确率。最后,通过与不同的目标识别网络的对比,验证本文算法的检测效果。

1 数据介绍

垃圾种类众多,分类方法不胜枚举。研究发现,到目前为止国际上并没有权威且公开的垃圾数据集,因此选取包含地面上常见的纸团、烟头、易拉罐等11个类别地面垃圾图片(共计14 378张)作为本文采集并标注的地面垃圾数据集,并按照8∶2的比例将数据集中的样本随机划分为训练集和测试集两部分。数据集类别分布如表1所示。

表1 数据集类别分布Table 1 Dataset category distribution

本文建立的数据集包含大尺寸目标、中等尺寸目标、小尺寸目标等。拍摄场景涉及多种复杂环境,如强光照环境、雨水环境、地面凹坑环境、路面标志线环境、夜晚环境等,拍摄图片适用于地面垃圾检测任务,可以二次使用。部分地面垃圾样本如图1所示。

图1 地面垃圾样本示例Fig.1 Samples of ground waste

2 改进的Faster R-CNN网络设计

R-CNN[12]算法提出之后陆续出现了Fast R-CNN[13]算法、Faster R-CNN算法、Mask R-CNN[14]算法等。其中,Faster R-CNN算法主要包括4个模块,分别为特征提取网络、区域建议网络[15](region proposal network,RPN)、检测部分和预测部分。Faster R-CNN算法流程如图2所示。

图2 Faster R-CNN算法流程Fig.2 Flowchart of Faster R-CNN algorithm

2.1 改进后的Faster R-CNN网络

本文改进后的Faster R-CNN网络的结构图如图3所示。改进后网络结构主要包括主干网络模块、区域建议网络模块、级联结构的检测和预测模块,以及后处理模块4个部分。

图3 改进后的Faster R-CNN网络结构Fig.3 Improved Faster R-CNN network structure

首先,将图片输入改进后的特征提取网络中得到特征图;其次,使用优化后的区域建议网络生成候选框,再将每个特征图通过RoI Align(region of interest align)缩放成固定尺寸,并且输入到级联结构的检测和预测模块中;最后,将得到的待测目标类别和回归参数采用非极大值抑制(non maximum suppression,NMS)等后处理,输出最终的结果。

2.2 改进主干网络模块

2.2.1 基于SENet的ResNet-50特征提取网络

为了使ResNet-50模型可以根据输入图像的特征信息,自适应地重新校准各通道的特征响应,从而提升模型性能,本文在ResNet-50的残差网络中添加了SENet模块。

SENet模块能通过学习的方式获取每个特征通道的重要程度,即权重。依照重要程度去提升有用特征并抑制对当前任务无用的特征。具体包括3个步骤:

1)压缩:将空间维度的特征进行压缩,生成一个通道描述符。即将原H×W×C大小的特征图的每个二维特征通道通过全局平均池化变成一个实数,最终得到1×1×C大小的具有全局感受野的特征图z。计算公式如式(1)所示。

(1)

式中:u(i,j)表示特征向量u中对应(i,j)处的值;H、W、C分别表示输入图片的高度、宽度和通道数。

2)激励:每个通道采用1个基于通道依赖的自选门机制来学习特定样本的激活,有选择地强调信息特征,并抑制无用的特征,即将特征图z通过全连接层和激活函数,以降低模型复杂度并获得通道间的依赖关系。具体操作为先将输出的z通过全连接层FC1把C个通道压缩成了C/r(r为压缩比例)个通道来降低计算量,再通过ReLU激活函数进行处理,然后通过全连接层FC2恢复C成个通道,最后通过sigmoid激活函数处理,得到由每个通道的权重组成的矩阵s,如式(2)所示。

s=σ(M2δ(M1z))

(2)

式中:M2和M1分别为用来降低维度和升高维度的两个全连接层的权重;σ为sigmoid激活函数;δ为ReLU激活函数。

激活函数计算公式分别如式(3)和(4)所示。

(3)

δ(x)=max(0,x)

(4)

3)加权重计算:将第二步输出的权重信息s通过乘法逐通道加权到输入特征上,将重要的特征增强,不重要的特征减弱,从而使提取的特征指向性更强。

模块整体结构为残差模块、全局平均池化、全连接层、ReLU激活函数、全连接层、sigmoid激活函数、Scale权重处理部分。基于SENet的残差模块网络结构如图4所示。

图4 基于SENet的残差模块Fig.4 SE-Resnet module

2.2.2 基于特征金字塔结构的多尺度检测

多尺度检测可以使特征提取不仅是采用神经网络的最后一层特征,而且从多个尺度来进行卷积网络提取。基于此,将基于SENet的ResNet-50的Conv1、Conv2_X、Conv3_X、Conv4_X、Conv5_X均输出。同时,使用特征金字塔结构对不同的特征层进行融合并且独立地进行预测,从上到下依次输出多个包含丰富语义信息的特征图P5、P4、P3、P2、P1。本文对顶层的输出P5再进行一次下采样,得到拥有更大感受野的输出P6,以提高大目标的检测精度。由此构建本文改进后的Faster R-CNN的主干网络结构,如图5所示。

图5 改进后的Faster R-CNN的主干网络结构Fig.5 Improved backbone network of Faster R-CNN

2.3 优化区域建议网络模块

区域建议网络中的锚框大小和宽高比,严重影响候选框的质量和最终的检测精度。本文对地面垃圾数据集进行统计分析后,绘制不同宽高比例的样本数量统计图,如图6所示。根据图6统计结果可知,27%的被测地面垃圾目标的宽高比例位于1.0和1.5之间,但原Faster R-CNN模型中是以3种宽高比例(0.5,1.0,2.0)和3种面积(128像素×128像素,256像素×256像素,512像素×512像素)组成一组锚框如图7所示,并没有1.5的宽高比,无法准确匹配地面垃圾数据集中所有检测目标。

图6 数据集样本不同宽高比分布Fig.6 Aspect ratio distribution of dataset samples

图7 Faster R-CNN模型锚框Fig.7 Anchor boxes of Faster R-CNN

本文在原Faster R-CNN的锚框生成机制上进行了两处优化:一是在原始3种宽高比的基础上增加了一个宽高比1.5,以更好地适应待检测目标的形状特征;二是对于改进后的主干网络所生成的多个特征图,采用不同的面积尺度以适应不同大小的目标,即对于区域建议网络输出的P1部分采用16像素×16像素和32像素×32像素的两种面积大小的锚框,对于P2部分采用32像素×32像素和64像素×64像素的两种面积大小的锚框,依此类推。为了方便与原锚框对比,以特征图P5中的锚框为例,如图8所示,其中黑色部分是宽高比分别为0.5、1.0、1.5、2.0,面积为512像素×512像素的4个锚框,蓝色部分是宽高比分别为0.5、1.0、1.5、2.0,面积为256像素×256像素的4个锚框。

图8 改进锚框Fig.8 Improved anchor boxes

2.4 优化检测模块

2.4.1 RoI Align代替RoI Pooling

RoI Pooling(region of interest pooling)在Fast R-CNN中首次被提出,沿用至Faster R-CNN,目的是将输入图片在主干网络中生成的特征图转换为固定的尺寸,减少原图直接压缩带来的信息损失。具体实现过程:首先,在输入的原图中得到候选框;其次,根据特征图和原输入图像的缩放关系将候选框映射到原图的对应位置,并且将映射后的区域按照输出的宽度和高度要求(7像素×7像素的大小)划分为相同大小的几个部分;最后,通过最大池化操作输出固定宽高尺寸的矩形框。在这一过程中,像素点是离散的,存在两处误差:一次误差为区域建议网络中生成的候选框映射回原图时,直接向下取整造成偏差;二次误差为对特征图区域均分时,存在无法均分的像素点,只能近似均分,从而造成偏差,如图9(a)所示。

图9 RoI Pooling与RoI Align的原理Fig.9 Principles of RoI Pooling and RoI Align

本文的RoI Align使用虚拟像素的方法,即利用双线性插值法计算非像素坐标点处的像素值,以此来避免RoI Pooling使用过程中产生的误差,其原理图如图9(b)所示。

2.4.2 优化Faster R-CNN的检测器

Faster R-CNN属于两阶段的目标检测网络,其中区域建议网络输出的候选框精度不高,导致无法直接使用高阈值的检测器。

本文借鉴Cascade R-CNN[16]级联的思想,通过设置不同的IoU(intersection over union)阈值来进一步优化候选框(其网络结构见图3)。将主干网络输出的特征图和区域建议网络输出的候选框作为ROI Align的输入,待其通过第一个低阈值检测器之后进入预测器中,再将输出的回归参数解码之后得到的预测框坐标的和RoI Align结构的输出作为下一个高阈值检测器的输入,最后通过预测器得到最终的目标类别和回归参数。综上,级联结构可以分阶段逐步提高候选框的精度和网络的学习能力。

3 试验过程设计和结果分析

3.1 试验平台搭建及超参数说明

本试验硬件平台为Linux操作系统。CPU的型号为Intel(R) Xeon(R) Gold 6330 CPU,核数为14核。GPU的型号为NVIDIA GeForce RTX 3090,显存为24 G。采用基于pyTorch实现的目标检测算法,代码运行环境为Python 3.8。

训练过程采用带动量的随机梯度优化器,初始学习率设置为0.005,每迭代3个epoch后,学习率缩减为原来的1/3,动量设置为0.9,权值衰减系数设置为0.000 5,Batch sizes设置为6,采用自动混合精度训练,每个试验均训练24个epoch。

3.2 试验结果及讨论

为了验证改进算法的性能,以地面垃圾数据集为样本,设计对比试验对模型进行训练和测试。

3.2.1 主干网络的对比试验

VGG-16[17]、MobileNetV2[18]、ResNet-50、ResNet-101、EffficientNet[19]、本文改进的特征提取网络共6种不同的卷积神经网络作为Faster R-CNN的主干网络,设置6组对比试验,如表2所示。

表2 不同主干网络的对比Table 2 Comparison of different backbone

由表2可知,使用改进后的主干网络搭建的Faster R-CNN网络,学习能力显著增强,检测效果明显提升,mAP(mean average precision)达到92.0%,与以VGG-16和Resnet-50网络为主干网络的Faster R-CNN网络的mAP相比,分别提升了12.4个百分点和5个百分点。

3.2.2 常用目标检测网络的对比试验

将改进之后的Faster R-CNN算法与SSD300[20]、YOLOv3+SPP[21-22]、原Faster R-CNN(VGG-16)、原Faster R-CNN(ResNet-50)进行对比,设置5组试验,如表3所示。

表3 不同目标检测算法的检测平均准确率的对比Table 3 Comparison of average accuracy of different object detection algorithms %

由表3可知:本文改进后的Faster R-CNN算法的mAP相比原Faster R-CNN(以ResNet-50为主干网络)算法,提高了9.6个百分点。特别是对于瓶盖、烟头、树叶等小目标,提升效果明显,均在20个百分点以上,分别为26.81个百分点、38.83个百分点、29.90个百分点。

为了直观区分本文算法与原算法在地面垃圾数据集上的检测效果,从测试集中随机抽取6张图片在相同试验环境下进行测试对比,其中检测框上分别是预测目标类别以及其置信度,检测效果如图10所示。

由图10的对比结果可看出,优化后的Faster R-CNN算法相较于原算法,降低了地面垃圾的漏检和误检,特别是烟头、瓶盖等小目标以及有遮挡的目标,提升了检测的准确率和定位精度,能够更完整地框选出待检测目标垃圾。同时,由于小尺寸目标在原图中占比小,且常见的特征提取网络中均有多次下采样的操作,导致小目标的语义信息提取困难,与大尺寸、中等尺寸目标相比,检测精度仍有所不足,所以关于小目标的检测精度的提高依旧是一个研究重点。从整体上看,本文算法的检测效果优于原Faster R-CNN网络,能够更好地满足实际应用要求。

4 结 语

根据地面垃圾检测的实际需求,研究了基于深度学习的改进Faster R-CNN算法对地面垃圾的识别效果,并取得了96.6%的平均准确率,具有良好的检测效果。具体结论如下:

(1)在主干网络部分,使用基于SENet的ResNet-50结构,结合特征提取阶段的浅层信息来提高烟头、瓶盖等小目标的检测精度,同时使用特征金字塔结构实现多个输出特征图之间的特征融合。

(2)在区域建议网络部分,对锚框重新定制,增强检测能力,加快模型收敛。

(3)在检测部分,用RoI Align代替RoI Pooling,避免量化误差,同时使用级联结构的检测器,分两次提高IoU的阈值,提升检测准确率。

猜你喜欢
主干像素垃圾
全球首条1.2T超高速下一代互联网主干通路
赵运哲作品
像素前线之“幻影”2000
抓主干,简化简单句
垃圾去哪了
那一双“分拣垃圾”的手
“像素”仙人掌
倒垃圾
倒垃圾
高像素不是全部