基于改进YOLOv5的遥感图像目标检测研究

2023-09-27 08:21李建新陈厚权范文龙
计算机测量与控制 2023年9期
关键词:注意力卷积特征

李建新,陈厚权,范文龙

(1.保定市不动产登记中心,河北 保定 071051;2.河北大学 质量技术监督学院,河北 保定 071002)

0 引言

遥感技术和人工智能的融合为全球监测、环境变迁、资源管理等提供了新的视角和工具。特别是,遥感图像目标检测在这个交叉领域中占据了重要的地位。然而遥感图像高纬度、大规模、复杂性和动态变化的特性,给精准的遥感图像目标检测带来了挑战。目前遥感图像目标检测算法大多来源于自然图像目标检测算法的改进,传统的目标检测算法需要通过手动提取感兴趣区域的特征,提取特征方式繁琐低效,且提取特征十分单一。如何有效解读这些图像,从中提取并识别出有价值的信息,成为了目前遥感图像目标检测领域研究的关键问题之一。

当前以卷积神经网络为基础的目标检测方法主要分为两类:双阶段和单阶段检测算法,其主要的区别在于是否有候选框的生成。双阶段算法如R-CNN[1]、Fast R-CNN[2]、Faster R-CNN[3]等,通过先生成目标候选区域再进行分类的方式实现目标检测,检测精度高但速度慢。单阶段检测算法如SSD[4]和YOLO[5]系列,舍弃了候选框生成阶段,利用卷积神经网络直接对输入图像进行特征提取,然后进行目标分类和位置预测,有效地提高了检测算法的识别速度。在这些单阶段检测算法中,YOLOv5算法以模型训练和预测快速、便于模型部署等优点而受到广泛关注。尽管如此,针对遥感图像,这种算法仍存在一些问题,例如特征提取不足,对复杂背景的适应性差,以及对小目标的检测性能不佳。

对此,文献[6]运用空洞残差卷积的思想提取浅层特征,随后与深层特征进行融合,有效提高了遥感图像中飞机的检测精度。姚艳清等[7]使用了一种双尺度特征融合模块,保证了图像特征的丰富性,以缓解深层信息的丢失问题,有效提高了多尺度遥感目标的检测能力。文献[8]提出了多阶段级联结构的遥感图像目标检测算法,在水平框和旋转框两个检测任务上均有提升。以上方法,虽然通过融合浅层特征和深层特征,保存了丰富的图像特征,但是对于目标尺度变化较大的图像易出现漏检的问题。文献[9]在YOLOv5s的骨干网络的卷积块中加入了一种即插即用的轻量级有效通道注意力(ECA,efficient channel attention)模块[10],形成新的卷积有效通道注意力(CECA,convolutional efficient channel attention)模块,基于不降维的局部跨信道交互策略加强遥感目标的特征提取能力。此外,他们在多尺度特征融合的过程中引入具有Swin Transformer[11]网络特性的C3STR模块和坐标注意力机制,以增强网络的局部感知能力,提高小尺度目标的检测精度。文献[12]在主干网络引入通道-全局注意力机制(CGAM,channel-global attention mechanism),以增强模型对不同尺度目标的特征提取能力和抑制冗余信息的干扰,解决了复杂背景的适应性差的问题。虽然通过添加注意力机制,提高了复杂背景的适应性以及小目标的检测性能,但对于云层阴影以及光照变化等不可抗因素的干扰,会产生严重的检测性能下降以及漏检等问题。

本研究提出了一种基于改进的YOLOv5模型的遥感图像目标检测算法,通过设计新的网络结构和优化策略来解决原始YOLOv5算法对遥感图像特征提取不足,对复杂背景的适应性差,以及对小目标的检测性能不佳等常见问题。并在遥感图像目标检测任务中取得了优秀的性能。根据在RSOD数据集上进行的测试结果显示,改进后的算法相比于原网络的检测效果在平均精度上提高了10.6%,达到了94.2%。

1 YOLOv5算法

YOLOv5网络结构分为输入端、主干、颈部和头部四部分。YOLOv5在输入端采用了Mosaic数据增强,即将四张图片进行随机缩放、裁剪和排布并拼接在一起,可以大大丰富数据量较少的遥感图像数据集,同时进一步提升对小目标的检测性能。相较于YOLOv3[15]和YOLOv4[16]采用固定长宽比的锚框值,YOLOv5中可以根据不同的数据集特点,自适应计算所需锚框的大小尺寸。相较于最新的YOLOv7,YOLOv5的训练和推理速度比YOLOv7快得多,并且具有较低的内存占用,这使得YOLOv5在移动设备或资源受限的应用场景中更具优势。输入网络之前,原始图片需要统一缩放到同一标准尺寸,YOLOv5采用自适应图片缩放的方法,来为图像添加最少量的黑边,减少计算量并提升YOLOv5网络的推理速度。除了在输入端进行的优化,YOLOv5基于YOLOv4网络在主干网络、颈部网络和损失函数部分又做了进一步的改进与提升。图1所示为YOLOv5的整体网络结构。需要注意的是,YOLOv5的V6.0版本后网络第一层的focus模块替换成了的6*6的卷积层(conv),focus模块原来的作用即为了实现无信息丢失的下采样。两个模块的作用是等效的,但是更换为6*6的卷积层会使得当前利用GPU进行检测网络计算时更加高效,更适合实际工程环境下进行部署使用。

图1 YOLOv5的整体网络结构示意图

YOLO系列目标检测算法首先将图像输入到输入端进行马赛克(Mosaic)数据增强、自动拼接等预处理操作。同时将图像分成若干个区域,在每个区域的中心,聚类生成一系列设定初始长宽比的锚框。随后输入到骨干网络中,对图像进行三次连续下采样操作,生成三张不同分辨率的特征图,并通过特征融合模块对提取到的抽象语义信息和浅层特征信息进行重构与融合。进而,将特征融合模块输出的特征图输入到输出端进行预测,包括类别分类和目标边界框的回归预测。最后与真实标签框比较,计算差值来反向更新,进而迭代卷积神经网络参数。

2 改进YOLOv5算法

本文提出的改进YOLOv5s的遥感图像目标检测算法(ConvN-sim-yolo)的整体框架结构如图2所示。在骨干网络方面,使用ConvNeXt取代Darknet53,提高捕获全局信息的能力。由于遥感图像存在云层阴影以及光照变化等不可抗因素的干扰,因此引入SimAM注意力机制,提高网络抗干扰能力。此外,引入CFP捕获全局长距离依赖关系以及遥感图像的局部关键区域信息,提高了遥感图像目标检测的精度。

图2 改进的YOLOv5的整体网络结构示意图

2.1 主干网络使用ConvNeXt

YOLOv5主干网络依然沿袭使用YOLO系列常用的Darknet53网络,其借鉴了ResNet卷积神经网络的设计思想。2020年以来,Transformer[17]网络在各类图像识别领域表现优异,在图像分类等任务中超越传统卷积神经网络的性能。由于CNN网络中卷积操作仅能实现局部信息的捕获,全局信息的捕获受网络本身的结构限制无法实现。Transformer则可以通过其固有的自注意力机制提取图像全局信息,扩大图像的感受野,获取更多的上下文信息,相较于CNN保留了更多空间信息。然而由于Transformer网络不具备CNN网络中的平移不变性、特征局部性等网络特点,只有在拥有大规模数据集进行网络训练时才能使得网络模型达到良好的检测效果。结合RSOD数据集其遥感图像数量少特点,设计使用基于Transformer风格的卷积神经主干网络——ConvNeXt。

ConvNeXt[18]作为一种纯卷积网络,基于ResNet50网络,借鉴Transformer网络的设计思想从宏观设计,深度卷积,逆瓶颈化,大卷积核,微观设计这五个方面改进所得,三者的结构对比如图2所示。图3(a)表示Swin Transformer模块结构,图3(b)为ResNet模块,图3(c)表示ConvNeXt模块,其中d7×7表示7×7大小的深度卷积。

图3 Swin Transformer、ResNet和ConvNeXt模块结构对比示意图

1)宏观设计:首先改变阶段(stage)计算比率,如将ResNet50中残差块堆叠次数比值由从(3,4,6,3)更改为(3,3,9,3)与Swin Transformer网络中的堆叠比例相似。其次,ResNet50的“stem cell”层包含一个大小为7*7,步长(stride)为2的卷积层和一个最大池化层。参考Transformer网络使用的“patchify(修补)”策略,使用大小为4*4,步长为4的“补丁”来替换ResNet50网络中的“stem cell”层。

2)深度卷积:此处借鉴ResNeXt网络中组卷积的思想,采用深度卷积替换ResNet50网络中的传统卷积层。深度卷积的操作与Swin Transformer网络中自注意力机制的加权求和类似,仅进行空间信息的交互,可降低网络的计算量FLOPs。同时将网络宽度增加至与Swin Transformer相同的96通道数。

3)逆瓶颈化:ConvNeXt采用了MobileNetV2中设计的逆瓶颈结构,如图4所示,与transformer模块中MLP隐藏层是输入层的4倍宽的结构类似,减少整体网络的计算量FLOPs,避免了降采样过程中小息肉特征信息的丢失,提升网络性能。

图4 ConvNext逆瓶颈化示意图

4)大卷积核:当前大多数卷积神经网络采用堆叠多个3*3卷积核来替代一个大尺寸卷积,使得感受野大小受限。将上述深度卷积的卷积核尺寸从3*3调整到与Swin Transformer的自注意力模块中local窗口大小相同的7*7,利用大尺寸卷积核来增大感受野,获取更多的图像信息。

5)微观设计:基于Transformer网络的设计,ConvNeXt替换ReLU激活函数为GeLU激活函数,并减少了其数量。使用更少的正则化层,并将Batch Normalization(BN)正则化操作替换为Layer Normalization(LN),使得模型更加稳定,减少梯度振荡。ConvNeXt采用大小为2*2,步距为2的卷积进行空间下采样,并在下采样操作之前以及全局池化以后增加LN正则化操作以维持训练的稳定性。

2.2 引入SimAM注意力机制

为了降低云层阴影、光照变化等复杂环境对检测任务的干扰,以提升网络的抗干扰能力,本研究在ConvNext模块中又增加了SimAM注意力机制。与现有常用的空间及通道注意力机制相比,SimAM可实现在不增加ConvNext主干网络参数的同时推断出特征图3D注意力权值,以提升网络性能。图5(a)所示为ConvNext模块结构,其由深度卷积(Deepwise conv)、层归一化(Layer Norm)、普通卷积和GELU激活函数组成。本研究将SimAM注意力机制添加在ConvNeXt模块中的深度卷积层之后,构成ConvN-Sim模块,如图5(b)所示。

图5 SimAM注意力机制示意图

该注意力机制采用神经科学引导所得能量函数来计算注意力的权值,无须进行大量的工程性实验,最小能量计算如公式(1)所示。

(1)

(2)

2.3 采用集中特征金字塔结构

YOLOv5所采用的FPN(feature pyramid network)特征金字塔结构[19],提出了一种自顶向下的层间特征交互方法。它可以为不同尺寸的目标提供相应尺度的特征表示,并提供上下文信息,融合多尺度特征信息以实现不同尺度下对不同大小目标的预测,最终提升检测网络的识别性能。然而当前计算机视觉中的特征金字塔方法研究重点在于层间特征交互而忽略了一些层内特征表示。由于卷积神经网络的固有特性,使得感受野大小受限,仅能捕获局部的上下文信息。本研究中,我们提出采用全局显式集中调节方案的集中特征金字塔(CFP,centralized feature pyramid),使用计算效率更高的轻量化多层感知机(MLP)来捕获全局长距离依赖关系,并行学习视觉中心(EVC,explicit visual center)机制捕获输入遥感图像的局部关键区域信息。同时,由于深层特征常具有浅层特征所不具备的视觉集中特征表示[20],为了提升层内特征调节的计算效率,针对常用的视觉特征金字塔结构,提出一种效率更高的自顶向下的全局集中调节(GCR,global centralized regulation)方法,从深层特征获取显示视觉中心特征来优化浅层特征,由此获得全面而具有差异化的图像特征表示。如图6所示为YOLOv5添加CFP模块(EVC+GCR)后的网络结构。

图6 集中特征金字塔结构示意图

EVC的计算公式如式(3)所示。

X=cat(MLP(Xin);LVC(Xin))

(3)

其中:X为并行可学习视觉中心机制EVC的输出,Xin为输入,cat(·)表示沿通道维度拼接特征图。MLP(Xin)和LVC(Xin)分别表示轻量化多层感知机MLP和可学习视觉中心机制的输出特征。

轻量级MLP主要由深度卷积残差模块和通道MLP残差块组成,计算公式如下(4)和(5)所示。

(4)

(5)

LVC可学习视觉中心机制是带有特定字典的编码器,其计算过程如式(6)~(9)所示。

(6)

(7)

e表示整个图像相对K个视觉码字的完整信息。

Z=Xin⊗(δ(Conv1×1(e)))

(8)

Xin表示输入特征,δ表示比例因子系数,Z表示局部边角区域特征,⊗表示通道乘法。

LVC(Xin)=Xin⊕Z

(9)

其中:⊕表示通道加法。

2.4 采用SIoU损失函数

传统的边界框定位损失函数依赖于预测框与真实框之间的重叠面积、中心点距离等几何因素,并未考虑目标真实框与目标预测框之间的方向这一要素,导致检测网络收敛效率低下。本研究使用了新的边界框定位损失函数-SIoU loss[21],通过在损失函数中引入边界框回归之间的向量角度,与传统损失函数方法(例如CIoU损失)相比,在网络训练阶段可以实现更快的收敛,并在推理方面实现更优越的准确性。SIoU loss计算公式如(10)~(13)所示。

(10)

(11)

Δ=∑t=x,y(1-e-(2-Λ)ρt)

(12)

Ω=∑t=w,h(1-e-ωt)θ

(13)

其中:Λ表示角度损失(Angle cost)函数、Δ为基于角度损失考虑下的距离损失(Distance cost)函数,Ω表示形状损失(Shape cost)代价函数。ρt表示预测框和真实框的中心点之间的距离。ωt表示预测框和真实框的宽度和高度的差异。θ表示调整形状损失影响程度的参数。

2.5 采取非极大值抑制

非极大值抑制NMS常用于目标检测网络中,在网络预测的最后过滤掉多余候选框,找到目标的最佳检测位置。为了避免当前检测框与得分最高的检测框IoU大于阈值时,该检测框被直接置零,造成相邻两个重叠的目标被漏检的现象出现,且同时能够对框与框之间的位置关系进行合理化的评估,本研究将NMS、Soft-NMS和SIoU结合,构建新的非极大值抑制方法Soft-SIoU-NMS。加权后的NMS能够更好地解决在遥感图像实时检测过程中,相邻检测目标互相遮挡的检测问题,提升目标检测网络的最终效果。Soft-SIoU-NMS的计算公式如下(14)和(15)所示。

(14)

f(SIoU(M,bi))=e-CIoU(M,bi )2/σ

(15)

其中:si表示当前检测框的得分,bi表示目标预测框,Nt表示SIoU的阈值,M表示得分最高的检测框,f(·)表示高斯衰减函数,σ取值0.5。

3 实验结果与分析

3.1 实验环境及参数设置

本实验深度学习框架为开源的PyTorch框架,PyTorch是一个开源的Python机器学习库,是一个功能完备的框架,可用于构建深度学习模型,PyTorch版本为1.10.1。编程语言采用Python 3.9.13,硬件设备配置为Inter Core i7-7800X,使用的操作系统为Ubuntu 18.04.5,GPU为NVIDIA GeForce RTX 2080Ti,CUDA为10.2。

在训练过程中,采用随机梯度下降算法 (SGD,stochastic gradient descent)训练 200 epoch。初始学习率设置为0.01,并采用步长衰减的策略来降低学习率,在每个epoch后,将学习率降低10%以避免模型在后期训练过程中陷入局部最优解。实验表明此学习率在保证模型在初期快速收敛的同时,且不会造成梯度爆炸或消失。基于硬件配置和模型的复杂性综合考虑,将批量大小(BatchSize)设置为32,工作线程数(num_workers)设置为8。在该设置环境下模型能够在硬件上稳定运行,同时获得合理的训练速度。研究发现该设置环境使得模型在遥感图像目标检测任务上达到最佳性能。

3.2 数据集

本文所使用的数据集为RSOD遥感数据集。该数据集于2015年由武汉大学发布用于遥感图像目标检测的标准数据集,共有976张图片,6 950个实例,包括飞机446张图片4 993个实例、油罐165张图片1 586个实例、立交桥176张图片180个实例和操场189张图片191个实例。RSOD数据集是PASCAL VOC格式作为规范,为满足yolo训练的数据集格式,将PASCAL VOC格式转为yolo格式。从中选取546张图片作为训练集,137张图片作为验证集,剩余的293张图片作为测试集。

3.3 评价指标

为了评估ConvN-Sim-YOLO网络的遥感图像目标检测的性能,引入常用于深度学习测试网络性能评价的六个重要指标,包含精确度(Precision)、召回率(Recall)、平均正确率(AP)和平均类别AP(mean Average Precision,mAP)。这五者计算如公式(16)~(19)所示。

(16)

精确度表示预测为阳性的样本中真正为阳性样本的比例。其中TP表示真阳性,即将阳性预测为阳性的数量;FP表示假阳性,即将阴性预测为阳性的数量。

(17)

召回率则表示预测正确的阳性样本占全部阳性样本的比例。式中TP表示真阳性,即将真阳性预测为阳性的数量;FN表示假阴性,即将真阳性预测为阴性的数量。

(18)

此平均正确率(AP)值的计算为11点计算方法,每个点处取该点右侧最大精确率,然后结合召回率=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0],绘制出P-R曲线,并通过(19)公式相加求平均值。

(19)

其中:class_num代表类别总数,本研究实验取值为4,APj代表第j个类别的平均正确率。mAP表示各类别AP的均值,描述网络对所有类别检测的最终效果。mAP@0.5表示将IoU设置为0.5时,每一类图片的AP值再求平均,mAP@0.5:0.95表示IoU在区间[0.5,0.95]内取值,步距间隔0.05计算一个mAP值,再将这些mAP值总和求平均。

3.4 消融实验

为验证本文改进的ConvNeXt主干网络、SimAM注意力机制、CFP结构、非极大值抑制方法(SIoU损失函数、NMS非极大值抑制)的有效性,进行消融实验,评估各个改进模块对本文检测算法的影响。消融实验以原始的YOLOv5s实验结果作为基准,实验数据如表1所示。

表1 消融实验结果

由表1可知,原始YOLOv5在RSOD数据集上可获得83.6%的精确度,84.5%的召回率以及83.6的mAP的结果,逐步增加改进的四个模块后检测各指标基本都有提升,表明各个模块都有助于遥感图像目标检测任务,也验证了优化特征捕获能力、特征表达能力和加强抗干扰能力的出发点的合理性。进一步,首先将YOLOv5的主干网络Darknet53替换成ConvNeXt后精确度从83.6%提升至87.6%,召回率提升了5.3%以及mAP值提升了6.9,证明了改进后模型会捕获更多的全局空间信息。其次引入SimAM注意力机制后精确度提高了0.5%,召回率略有所下降,mAP值提升1%,证明SimAM注意力机制提升网络在检测任务中的抗干扰能力。随后引入CFP精确率和召回率进一步提升2.9%和3.6%,mAP值显著提升至93.7%,证明网络可获取全局上下文信息。此外将原始的NMS替换为Soft-SIoU-NMS后精确度达到91.9%,召回率达92.5%,mAP值提升了0.5,证明此处改进,解决了目标互相遮挡的检测问题。最后,当集成四个改进模块时可将遥感图像目标检测的精确度提升至91.9%,召回率提升至92.5%,mAP提升至94.2,有效验证了所提出的遥感图像目标检测方法的有效性。

3.5 不同算法对比实验

为验证本文提出的改进的YOLOv5目标检测算法相比于其他主流算法具有更好的目标检测能力,将提出的算法与现有主流算法进行对比实验。选取六种模型包括典型的目标检测模型如SSD、Faster-RCNN、YOLOv3等以及最近基于YOLOv5改进的Swin-YOLOv5s[9]进行对比实验。实验采用相同的遥感图像数据集RSOD,实验结果如表2所示。

表2 不同算法在RSOD数据集的检测结果对比

由表2可知,改进的方法在RSOD取得了最优的mAP值结果。与原始的YOLOv5s相比,虽然对于操场类别的准确率有所下降,但对于其他类别的准确率以及mAP值都有大幅度的提升。此外,与最近基于YOLOv5改进的Swin-YOLOv5s相比,本文改进方法mAP值达到94.2,Swin-YOLOv5s只有88.9。虽然,本文算法和其他算法相比,检测操场目标的精度有所下降,但大部分类别的目标检测精度都有所提高,总体来看本文提出的改进方法能够有效提升遥感图像中的目标检测精度,在精度性能方面优势明显。

本文对RSOD数据集上的测试结果进行了可视化展示,如图7所示。图7(a,b,c)为改进前基础的yolov5网络检测效果,图7(d,e,f)为本文提出的ConvN-sim-yolo网络检测效果。通过比较图7(a)和图7(d),检测结果表明Conv-sim-yolo对于遥感图像小目标的检测具有更高的精度。进一步比较图7(b)和图(e),图中有飞机处于阴暗或光照和阴暗交界处,而基础的yolov5对于处于云层阴影和光照变化的飞机检测效果并不好,而Conv-sim-yolo能够很好的检测此类飞机,展现出Conv-sim-yolo在抗干扰方面的优越性。图7(c)和图7(f)的检测结果表明,Conv-sim-yolo能够察觉不易被发现的小目标,减少了漏检率,进而提升了遥感图像目标检测的精度值。

4 结束语

针对遥感图像目标检测中存在云层阴影和光照变化干扰以及小目标漏检的问题,本文提出了ConvN-sim-yolo算法。首先,使用基于Transformer风格的卷积神经主干网络--ConvNeXt,捕获遥感图像全局信息,充分提取遥感图像丰富的特征。其次,为了应对云层阴影和光照变化的干扰,在ConvNext模块中加入SimAM注意力机制,推断特征图的3D注意力权值,提高了网络的稳定性和抗干扰能力。同时提出采用全局显式集中调节方案的集中特征金字塔(CFP,centralized feature pyramid),使用计算效率更高的轻量化多层感知机(MLP)来捕获全局长距离依赖关系,并行学习视觉中心(EVC,explicit visual center)机制捕获输入遥感图像图像的局部关键区域信息,降低了漏检的概率,展现了优越的目标检测的性能。最后经过实验对比,本文算法相比于原始的YOLOv5s,平均检测准确率在RSOD数据集上提升了10.6%,由此表明本文算法在遥感图像目标检测领域上改善了小目标漏检的问题,并对于更复杂的干扰环境依然具有良好的目标检测性能。但是,改进的yolov5算法在目标检测能力上还有一定的局限性,未来工作将继续优化网络以提升算法的目标检测能力。

猜你喜欢
注意力卷积特征
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
抓住特征巧观察
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一种基于卷积神经网络的性别识别方法