刘 将,涂振宇,李元汉,李 豪
(南昌工程学院信息工程学院,江西 南昌 330099)
近几年,伴随着机器学习和深度学习技术的不断发展,目标检测技术作为计算机视觉(CV)领域的主要方向,取得了巨大进步。目前,目标检测技术在细胞检测、面部检测、交通检测、行为识别等多个领域取得重大突破,它是利用数字图像处理、深度学习等相关技术,它的主要任务是选定图像中的目标,对选中目标同时进行定位与分类。早期的目标检测算法一般由人工提取目标特征,所以大多数模型检测精度较低。近些年,随着硬件算力的不断进步,目标检测算法分为单阶段和双阶段两大类,而YOLO 系列算法是经典的单阶段目标检测算法。
2020 年6 月10 日,Ultralytics LLC 公司发布了最新的YOLOv5 算法,该算法相较于先前版本在检测速度和精度上有了新突破。YOLOv5 是一个高灵活性、通用的目标检测模型,可以利用它来进行快速部署。目前,海洋中大约存在6600 万吨垃圾,其中大部分都在水下,对海洋生态系统构成极大的威胁。为尽快解决海洋污染问题,我国对海洋垃圾的清理格外重视,但人工清理海洋垃圾的工作既复杂又危险,因此,需要海洋垃圾清理机器人进行协助捕捞。本文将基于YOLOv5 模型进行改进,并将其运用于海洋垃圾目标检测。针对YOLOv5 目标检测算法中小目标漏检及特征提取能力不足等问题,对YOLOv5 的主干网络(Backbone)部分进行改进,并在含有11 类海洋垃圾的图像数据集上进行多次实验,旨为海洋垃圾清理机器人提供算法支持。
目前,YOLOv5 算法具有四种模型[1]。YOLOv5s是其中网络深度和宽度最小的模型,越小的模型检测速度越快,也越容易部署到移动设备上。
YOLOv5s结构分为Input、Backbone、Neck、Prediction 四个部分。Input 部分采用马赛克(Mosaic)数据增强的方式,该方法每次使用四张图片进行随机操作,最后合为一张图片,如图1 所示,它可以丰富检测目标的背景,防止网络模型过拟合[2];Backbone 部分主要由CBS、CSP、SPPF 等模块组成。其中,CBS 模块可以有效提取图像特征,CSP 模块能够加快网络推理速度,SPPF 为空间金字塔池化层,它可以增大图像感受野和提升网络计算速度;Neck 端包含了FPN 和PAN 两部分[3],两者结合提升了不同尺度特征的融合效果;Prediction 部分为网络的预测环节,共输出三组预测结果,其中每组包含了预测框的偏移量、置信度和目标属于每个类别的条件概率[4]。
图1 Mosaic数据增强后样本图像
首先,在主干网络的每一个CSP 模块后都添加一个Attention-k 结构。其次,将主干网络的SPPF 模块替换为SPPF_RFB 模块,改进后的模型结构如图2 所示,其中k 为图6 的Attention-K 结构,SPPF_RFB 模块如图7所示。
图2 改进后的模型结构图
自从完全注意力(Full-Attention)网络出现以来,Transformer 迅速成为自然语言处理(NLP)[5]中的主流架构。目前,研究者们又提出Vision Transformer[6],并在分类任务中优于卷积神经网络(CNN)。基于Transformer 的视觉骨干网络快速霸占了各种CV 任务的排行榜,包括目标检测、语义分割等。但卷积网络和自注意力仍然存在一些缺点[7]。卷积运算采用静态权重,缺乏适应性而自注意力(Self-Attention)起先是为NLP 而设计。在处理CV 任务时,它具有三个缺点。①它将图像作为一维序列,忽略了图像本身的二维结构。②二次复杂度不易处理高分辨率图像。③它仅实现了空间适应性,而忽略了通道维度的适应性。对于大多数视觉任务,不同的通道通常代表不同的对象,所以通道适应性对CV 任务特别重要。为了解决上述问题,本文使用了新型的大核注意力(Large Kernel Attention,LKA)机制[8]。
LKA 模块具有卷积网络和自注意力的特点,包括获取局部通道信息和空间维度的适应性。LKA 模块将大核卷积分解为三个部分:深度卷积(DW-Conv)、深度膨胀卷积(DW-D-Conv)和点卷积(1×1Conv)。如图3所示,其中黑色网格为中心点。
图3 大核卷积分解图
具体来说,一个K×K 卷积被分解为一个关于膨胀率(d)的(K/d)×(K/d)深度膨胀卷积,一个(2d-1)×(2d-1)的深度卷积和一个1×1卷积。DW-Conv可以获取图像的局部上下文信息,DW-D-Conv 则提供深度方向的扩张卷积,使网络具有长期依赖性,1×1卷积,可以让网络获得通道维度的适应性。
LKA 模块不仅能够减少网络模型参数,降低计算成本,而且能够评估图像中每个点的重要性,分配有限的信息处理资源给图像重要的部分[9]。大核注意力机制结合了自注意力和卷积神经网络的优点,考虑了局部语境信息、大感受野和动态过程。此外,它也实现了空间维度和通道维度的适应性。LKA 模块结构如图4所示。
图4 LKA结构图
LKA 模块的计算公式见式⑴、式⑵。其中,B 为输入特征,A为阶段输出特征。
经过多次实验发现,LKA 模块获取全局通道信息能力较差,空间维度适应性一般。因此,本文在大核注意力模块中引入空间注意力和通道注意力模块,即LKA-K 模块,如图5 所示。具体来说,将输入分为两个部分。第一部分是将通道注意力和输入进行相乘操作。第二部分将空间注意力与深度卷积、深度膨胀卷积相融合。最后,将两部分1×1卷积的结果做相乘操作。
图5 LKA-K结构图
空间注意力能够让图像数据在空间中进行不断变换,并自动获取图像重要位置特征。空间注意力通过对模型输入的不同位置进行加权操作,让模型能够更好地选择不同位置的图像特征,从而提高网络的分类精度。此外,空间注意力能够有效处理图片数据,使模型具有更好的鲁棒性。它还能够减少冗余计算,有利于提高处理大数据时的计算效率。空间注意力能够生成一组权重,用于理解图像每个位置的重要程度。本文将空间注意力和深度膨胀卷积相结合,能够有效解决大核注意力模块在空间维度适应性不足的问题。
通道注意力通过对输入层的所有通道进行加权处理,然后获得加权后的图像特征图。这种加权方式一般使用全局平均池化来实现,即对通道特征图进行平均池化,然后对所有权重值进行批量归一化操作。本文将通道注意力和大核注意力相结合,目的是进一步提高大核注意力的全局通道信息能力。
由于数据集中小目标的形状、颜色非常复杂,甚至出现一些细长的垃圾或细微的金属等,给检测任务带来一定的困难。因此,本文通过改进大核注意力机制有效提高模型的小目标检测性能。
首先,本文提出了一种基于大核注意力机制的新型模块,即Attention-L 网络,目的是为了分配有限的信息处理资源给图像重要的部分,提升模型的小目标特征提取能力。虽然Attention-L 结构简单,但是通过实验发现,在主干网络的每一个CSP 结构后添加一个Attention-L 结构。该模块具有简单的层次结构,在原始LKA 模块前后分别加上一个1×1 卷积来保证网络模型前后通道数相同,这样还可以减少网络模型的参数量,有利于加快模型训练速度。同时,在第一个1×1卷积后添加了Gelu 激活函数,Gelu 又称高斯误差线性单元,它能够有效地解决深层网络梯度消失的问题,并且可以防止网络模型过拟合。
之后,本文提出一种基于改进大核注意力机制的新型模块,即Attention-K 网络。Attention-K 模块只是将Attention-L 模块中LKA 结构替换为LKA-K 结构,目的是让模型对大量图像数据在空间中进行不断变换,并获取图像重要特征,以及对所有空间信息进行缩减,然后在通道维度对图像进行特征学习。实验发现,该模块能够有效提升模型的小目标特征提取能力,Attention-K结构如图6所示。
图6 Attention-K结构图
SPPF(空间金字塔池化)主要是对输入特征图做三个不同大小的池化操作。该模块通过多尺度池化的方式,获取了输入特征图中不同尺度的特征信息,从而提高了模型的准确性和运算效率。
但通过实验发现,SPPF模块获取的图像局部信息过多,导致全局信息少量丢失,从而影响模型的准确率。因此,本文引入新型的ResNet_RFB 模块,该模块运用了残差网络的思想,使用卷积不断优化深层网络,通过增加网络深度来扩大特征图的感受野。在此基础上,本文也运用了BasicRFB 系列模块。它能够保证检测速度的同时进一步扩大特征图的感受野,从而加强网络的小目标特征提取能力。
具体来说,本文在主干网络的SPPF模块中加入了ResNet_RFB,即SPPF_RFB,如图7所示。ResNet_RFB模块由BasicRFB、BasicRFB_A、两个普通卷积和一个1×1卷积组成,如图8所示。
图7 SPPF_RFB结构图
图8 ResNet_RFB结构图
本次实验数据来自J-EDI 海洋垃圾数据集。该数据集具有从现实世界环境中捕获的各种不同类型海洋垃圾图像,图像中具有遮挡和生长状态的各种物体。所有图像都在海洋垃圾、植物和动物等对象以及遥控无人潜水器上标有边界框和类别。本文选取4576 张作为训练集,选取1144 张作为测试集。图9 是训练集中所有标签大小的分布图,横纵坐标分别表示所有标签框的宽度和高度。通过观察发现,图像左下角聚集了相对较多的点,说明该数据集中存在多个小目标,与本文所研究的问题和背景相契合。实验平台配置见表1。
表1 实验平台配置表
图9 训练集标签的大小分布图
完成环境配置后,在相同超参数的前提下,进行模型训练和测试。其中,训练epochs 设为400,batchsize 设为10,num-workers 设为2,优化器为SGD,lr 初始值设为0.01,采取mAP50:95、精确率(P)、召回率(R)等指标作为模型性能的评价指标。精确率是指检测出的正样本中真实正样本的概率,召回率指在实际的正样本中检测出正样本的概率,计算公式如下:
其中,TP 表示正确检测为正样本的目标个数,FP 表示将负样本错误检测为正样本的目标个数,FN表示正样本被错误检测为负样本的目标个数[10]。mAP50:95 表示IOU 阈值为0.5 到0.95 时所有目标类别的平均检测精度,用来反映算法对不同类别目标的综合分类能力,计算公式如下:
在式⑸中,N 表示测试集中的样本总数,K 为数据集中类别个数,P(i)是模型预测第i 个样本时精准率的值,R(i)表示为模型样本数从i-1变为i时,召回率的实时变化情况。
本文进行消融实验评估不同模块在相同实验条件下对目标检测算法性能造成的影响。消融实验中选择YOLOv5s的6.0版本作为基础模型。设输入图像分辨率为640×640,训练400 次后的结果如表2、图10所示。(用“√”表示改进,用“-”表示未改进)
表2 消融实验
图10 模型mAP50:95对比图
模型①为原YOLOv5s 网络,模型的mAP50:95 为63.6%。模型②在Backbone 部分引入了Attention-L模块,与模型①相比,其mAP50:95提升1.2%。模型③在Backbone 部分引入了Attention-K 模块,与模型①和模型②相比,其mAP50:95 分别提升1.9%和0.7%,说明改进大核注意力机制能够有效提升模型的小目标特征提取能力。模型④对原网络的SPPF 模块进行改进,与模型①相比,其mAP50:95 提升1.3%,这说明BasicRFB 系列模块和残差网络相结合能够有效扩大特征图的感受野。模型⑤则是将Attention-L 和SPP_RFB 进行结合,通过实验发现,改进后模型的mAP50:95 相较于模型①和模型④分别提升3.9%和2.6%。模型⑥则是将Attention-K 和SPP_RFB 结合,通过实验发现,改进后模型的mAP50:95相较于模型①、模型⑤,分别提升6%、2.1%,一定程度上缓解了因背景复杂类别过多而出现的小目标漏检及特征提取能力不足等问题。
图11 是原YOLOv5s 模型和模型⑥的小目标检测结果对比,图11(a)左边第一幅图为原YOLOv5s 模型检测结果,可以发现,右下角的一块plastic区域未被检测出,而图11(a)中的模型⑥则检测出plastic 区域。图11(b)中原网络未将右边的一块paper 区域检测出,而图11(b)中的模型⑥未出现小目标漏检情况。因此,相比原YOLOv5s模型,本文改进模型可以在保证检测速度的同时,降低小目标的漏检率。
图11 模型检测结果对比图(左图为原模型)
为了验证改进后YOLOv5s算法的实用性,本文在使用相同训练样本的前提下,对目前流行的目标检测算法与改进的YOLOv5s算法进行比较,并将所有超参数都设置为相同默认值。比较结果用mAP50:95、检测速度和参数量进行评价。实验结果,如表3所示。
表3 对比实验
表3 对比实验结果显示:本文改进的YOLOv5s 模型相比于其他两种流行目标检测算法,有效地提升了一些类别的检测精度,mAP50:95 达到69.6%;参数量也达到41.18m,更有利于移动端的部署;同时模型具有较高的检测速度,达到了40.4fps,实现了对水下目标的实时检测。因此可以得出,本文改进的YOLOv5s模型在参数量、检测精度和检测速度等方面均优于主流目标检测算法,能更好地完成海洋垃圾检测任务。
本文分析了海洋垃圾目标检测的困难和需求,发现当前算法在应用时存在一些小目标漏检及特征提取能力不足等问题,所以本文提出一种基于改进YOLOv5s的海洋垃圾目标检测算法。首先,在原模型的主干网络部分添加Attention-K 模块来提升模型的小目标特征提取能力。其次,为了解决小目标漏检等问题,改变了原SPPF 网络结构,目的是让网络特征图具有更大的感受野。最后,在J-EDI海洋垃圾数据集上进行了训练和测试,实验结果证明,本文改进的模型在小目标检测上具有更好的特征提取能力和更高的检测精度。本算法可以部署在海洋垃圾清理机器人中,这样能够避免在危险海域对垃圾进行人工捕捞,通过这种方法可以消除水污染并恢复海洋生态系统,对于保护海洋资源环境具有重大意义。