改进YOLOv4的遥感图像目标检测算法

2024-02-22 07:44况永刚毛一新彭伟明郝琳琳
计算机工程与设计 2024年2期
关键词:集上卷积特征

闵 锋,况永刚+,毛一新,彭伟明,郝琳琳

(1.武汉工程大学 计算机科学与工程学院,湖北 武汉 430205;2.武汉工程大学 智能机器人湖北省重点实验室,湖北 武汉 430205)

0 引 言

传统的遥感图像检测方法主要有方向梯度直方图法[1]、尺度不变特征变换方法[2]等。传统检测方法依赖于人工手段,难以保证复杂遥感图像检测的高精度和高效率。

随着深度学习的不断发展,目标检测领域诞生了很多经典的检测算法,越来越多的学者将其应用到遥感图像检测中。其中较为主流的目标检测算法分为基于候选区域的双阶段目标检测算法和基于回归的单阶段目标检测算法。常用的双阶段目标检测算法有R-CNN系列[3,4]、VFNet[5]等,其通过区域建议方法生成可能包含目标的候选框,然后对候选框进行校正和分类,其精度较高,但实时性过低。单阶段检测算法以SSD[6]、YOLOv5、YOLOX[7]、RetinaNet[8]为代表,直接在网络中进行分类和回归,其检测速度更快,适用于实时性检测。

由于遥感图像背景复杂、尺度不一且排列密集,采用通用目标检测器对其进行检测难以取得满意的效果,因此研究一种新型的遥感图像目标检测算法是一项有挑战性的任务。Feng等[9]对YOLOv3[10]提出改进,通过优化锚框大小和置信度损失函数,遥感图像小目标检测得到了有效提升。Xue等[11]引入双向加权特征融合BiFPN并赋予特征图可学习的权重系数,有效提高了小目标的检测性能。Gu等[12]通过构建密集上下文感知模块以及引入Transfor-mer[13],实现了目标与场景内容的关系建模,但由于遥感图像背景复杂,检测仍易受相似物干扰。针对这一问题,Li等[14]基于CenterNet算法[15]设计改进权重分配策略,并添加语义分割模块,抑制高响应的背景噪声,使网络更好地适应复杂背景下的密集目标检测。然而,在模型中加入语义分割模块,会增加过多的参数量,降低推理速度。

为更好地应对复杂遥感图像的实时检测,本文选择在检测精度和速度上达到较好平衡的YOLOv4作为基础架构,针对遥感数据集的特点在YOLOv4的基础上进行了一些改进,实验结果表明,在保证实时性的同时,检测精度得到了较大提升。

1 YOLOv4算法介绍

YOLOv4算法基于原有YOLO目标检测框架,分别在数据预处理、主干网络、激活函数、损失函数等多个方面进行了优化,最终在检测精度和检测速度上达到了更好的平衡。网络结构如图1所示。

图1 YOLOv4网络结构

YOLOv4主要由输入端、主干网络、融合层以及预测层4部分组成。输入端采取mosaic数据增强和自对抗训练的方法(self-adversarial training,SAT)对图像进行预处理。在DarkNet53网络的基础上,融合跨级密集连接的思想,设计出计算量少、检测精度更高的CSPDarkNet53作为主干网络。颈部网络引入SPP模块,选用不同大小的池化核进行池化,实现不同感受野的特征融合;设计FPN+PAN的结构,以bottom-up的特征传递方式,反复提取特征,实现不同尺度的特征交互。Head部分采用了与YOLOv3类似的预测方式。

2 改进YOLOv4目标检测算法

由于遥感图像数据集具有背景复杂、目标排列密集且尺度不一等众多特点,本文针对这些特点,基于YOLOv4算法作出了改进,网络整体结构如图2所示。首先对CSPDarkNet53网络改进,在不失主干网络的扩展性下,加强特征层之间的信息传递和有效特征利用率。其次,借鉴CSPNet[16]的跨阶段分层结构思想,设计改进的路径聚合网络R-PANet,有效增强特征的融合效果。最后在预测头串联卷积块注意力模块CBAM[17](convolutional block attention module),提高检测精度。下面将对网络结构的设计进行详细阐述。

图2 改进YOLOv4网络结构

2.1 R-CSPDarknet53主干特征提取网络

YOLOv4算法的主干网络CSPDarknet53包含较多的CSP模块,其卷积层数较多,在检测较小目标时,信息丢失较为严重。

针对这个问题,基于CSPDarknet53网络进行了改进,即R-CSPDarknet53。在主干网络中的原CSP模块(图3(a))的基础上提出了一种新的跨阶段部分模块R-CSP(图3(b)),主要是将CSP模块中的简单残差结构ResBlock(图3(c))替换为高效的跨阶段残差结构R-ResBlock。R-ResBlock结构如图3(d)所示,首先将输入的特征图分割成两部分,使特征信息在不同的网络路径中传播,然后通过跨阶段层次结构将特征整合,其次考虑到不同R-CSP模块之间的特征交互对后续特征提取和融合有着较大影响,因此在进行对应次数的跨阶段残差卷积后,使用CBAM进行有效特征强化,增强了不同R-CSP模块间的特征传递,提取具有丰富语义信息的特征。

图3 原CSP模块与改进CSP模块以及简单残差结构与跨阶段残差结构

最后为了平衡检测精度和检测速度,便于模型的部署,将特征提取网络中的R-CSP模块的每层残差卷积次数由(1,2,8,8,4)改为(1,3,6,6,3),降低了网络结构的复杂度,减少了参数量,保证了网络的实时性。

2.2 改进的PANet结构R-PANet

YOLOv4采用PANet结构作为特征融合网络。然而原PANet结构存在多次连续卷积操作,容易造成浅层特征丢失,甚至网络退化、梯度消失,因此对密集分布的较小目标检测效果不佳。

针对上述问题,本文对PANet结构作出改进,即R-PANet,使用跨阶段分层卷积替换连续卷积操作(图4(a)),重构特征融合阶段对深浅层特征图的处理方式。该模块如图4(b)所示,首先将主干网络和SPP结构输出的有效特征层进行一个1×1的普通卷积,得到通道数减半的特征图,类似于特征信息整合,然后将经3×3卷积的输出与其进行堆叠,最后将各级特征层进行像素相加,构建具有丰富语义信息的残差块。同时串联CBAM,注重有效特征的提取。采用Mish激活函数替换原激活函数Leaky ReLU,增强非线性特征的提取能力。实验结果表明,R-PANet较原结构而言,提高了算法的检测性能。

图4 连续卷积和跨阶段分层卷积

2.3 引入CBAM注意力机制

在主干网络R-CSPDarknet53的特征提取过程中,不同R-CSP模块之间的特征交互对后续特征提取和融合的影响占比较大。本文通过引入卷积块注意模块CBAM对各个R-CSP模块的堆叠结果进行特征强化,加强模块之间的特征交互。以及在预测头串联注意力模块,以加强特征融合效果。

CBAM是一种简单而有效的前馈卷积神经网络注意模块。如图5所示,通过利用输入的中间特征图,CBAM模块分别沿着通道和空间两个独立维度,顺序地计算注意力图,然后将得到的注意力图与输入特征图相乘,使得特征图能够更聚焦于目标的关键特征,从而进行特征细化和更有效的特征表示。CBAM定义请参见文献[17]。

图5 CBAM卷积块注意力模块

通道注意力模块(channel attention module)如图6所示。

图6 通道注意力模块

它对输入进来的单个特征图F,F∈RC×H×W, 分别进行平均池化和最大池化。之后对其输出结果利用共享全连接层(Shared MLP)进行处理。接着对处理结果按元素逐个相加,并采用Sigmoid函数进行激活,由此可得输入特征图每一个通道的权值Wp(F), 计算见式(1),σ表示Sigmoid函数。最后将此权值Wp(F) 乘上原输入特征图F,计算得到融合通道注意力后的特征图F′,如式(2)所示

(1)

F′=Wp(F)⊗F

(2)

空间注意力模块(spatial attention module)如图7所示。

图7 空间注意力模块

首先,输入经通道注意力模块处理的特征图F′,同样地进行平均池化和最大池化操作,之后将池化后的两个特征图堆叠在一起,并经过Sigmoid激活操作,由此可得输入特征图每一个特征点的权值Ws(F′), 计算见式(3),σ表示Sigmoid函数,f7×7表示卷积核大小为7×7的卷积操作。最后将此权值Ws(F′) 乘上输入特征图F′,计算得到融合通道和空间注意力的特征图F″,如式(4)所示

Ws(F′)=σ(f7×7([AvgPool(F′);MaxPool(F′)]))

(3)

F″=Ws(F′)⊗F′

(4)

2.4 损失函数设计

本文改进算法的损失函数由定位损失函数、分类损失函数以及置信度损失函数3部分组成,如式(5)所示

lossyolo=lossloc+losscla+lossconf

(5)

本文使用CIoU损失函数作为定位损失函数。CIoU loss在DIoU loss的基础上做出更详细的度量,具体包括重叠面积、中心点距离和长宽比。如式(6)所示

(6)

其中,IoU(intersection over union),即交并比,是用来衡量预测边界框和实际边界框的相似程度,其计算如式(7)所示

(7)

ared表示边界框的面积,d表示预测边界框,g表示实际边界框,ρ为预测边界框和真实边界框两个中心点间的欧式距离,c为闭包的对角线距离。所以最终的定位损失函数计算式如式(8)所示

(8)

分类损失函数采用BCE Loss(binary cross entropy loss),对每一个类别计算交叉熵损失,最后进行求和。计算如式(9)所示

(9)

lossconf=lossconf+obj+lossconf+noobj=

(10)

3 实验结果和分析

3.1 数据集

表1 不同类别目标数量统计

3.2 模型训练及分析

本实验使用的操作系统是Ubuntu 18.04,GPU型号为RTX-2080S,CPU型号为i9-9900k,内存32 GB,显存8 GB,开发环境为Pytorch1.2,CUDA10.0。实验参数见表2。

表2 实验参数设置

以DIOR数据集为例,图8反映了改进网络在训练时的损失变化曲线,横坐标表示训练次数(Epoch),纵坐标表示损失值(Loss)。根据图中曲线的变化趋势,可以明显看出,改进YOLOv4算法的损失值在训练初期时迅速下降,随着Epoch的增加,在30个Epoch后曲线下降速度逐渐缓慢,并在130个Epoch后趋于稳定,Loss值稳定变化在0.041到0.103之间,最终收敛于0.044左右,达到了网络训练的预期学习效果。

图8 改进YOLOv4网络的损失变化曲线

图9为改进YOLOv4网络在训练时的精度收敛曲线,图中横坐标为训练次数(Epoch),纵坐标为平均精度均值(mAP)。从图9中可以看出,网络训练前100个Epoch时,mAP增长速度较快,之后逐渐缓慢,并在230个Epoch后趋于稳定。

图9 改进YOLOv4网络的精度收敛曲线

3.3 评价指标

为了评估改进YOLOv4算法的性能并验证其有效性,实验选取了以下指标。

(1)精确率(Precision,P)、召回率(Recall,R)。精确率表示模型预测为正样本中真正样本的占比;而召回率表示模型正确预测到的正样本占所有正样本的比重。其计算公式分别如式(11)所示

(11)

其中,TP表示真正例;FP表示假正例;FN表示假反例。

(2)平均准确率(average precision,AP)和其均值(mean average precision,mAP)。AP表示为每个类别下的精确率-召回率曲线(precision-recall curve,P-R curve)下的面积。P-R曲线显示在精确率和召回率之间的平衡,用来衡量检测网络对单个类别的性能。而mAP是所有检测类别的AP的平均值。其计算公式分别如式(12)所示

(12)

其中,N表示检测类别的总数目。

(3)帧率(frames per second,FPS)。帧率是用来衡量目标检测网络推理速度的指标,其表示每秒能够检测的图片数量。

(4)F1分数(F1 score,F1)。F1分数是模型泛化能力的性能度量,其为范围在0~1之间的分数。值越大表明模型泛化能力越强。计算公式见式(13)

(13)

3.4 实验结果和分析

为了验证改进YOLOv4算法对遥感图像目标检测的有效性,实验分别在RSOD、DIOR测试集进行性能验证。

在RSOD数据集上测试,统计了F1分数、平均准确率均值mAP、帧率等指标来进行评估。实验对比了YOLOv3、EfficientDet、文献[9,18]的所提算法以及YOLOv4的检测精度,见表3。

表3 不同方法在RSOD数据集上的实验结果

可以明显看出,改进的YOLOv4算法的mAP比YOLOv4高出约4.5%,和文献[9]、文献[18]所提算法比提高约3%,F1分数也提升不少。虽然改进算法的帧率略低于原YOLOv4算法,但仍然满足实时性检测的要求。相较于表3中的其它算法,改进YOLOv4算法在遥感图像目标检测方面具有较大的优势。

图10为YOLOv4和本文算法在RSOD数据集上实验测试后,统计出的各个类别的AP值,上图是YOLOv4算法的实验结果,下图是本文算法的实验结果。横轴为平均准确率(Average Precision),纵轴从下往上分别是飞机、立交桥、油罐、操场。可以看出,无论是飞机、油罐等小目标,还是立交桥、操场等大目标,本文算法均可以取得比较好的检测效果。

图10 YOLOv4和本文算法在RSOD数据集上各个类别的AP值

在DIOR数据集上测试,统计了mAP、帧率两个技术指标进行评估。为了深入评估本文算法的有效性,将改进YOLOv4算法与目标检测领域中常用的主流算法进行比较,实验结果见表4。

表4 不同方法在DIOR数据集上的实验结果

从上表中可以看出,本文算法在DIOR测试集上的mAP值为92.72%,较YOLOv4提高约7.34%,与表中其它检测算法比较也明显高出多个百分点不等。此外,本文算法的检测速率约每秒48帧,满足一定的实时性。YOLOv4-tiny模型的FPS很高,但是其mAP较本文算法低出约14个百分点,检测能力不强。实验结果表明,本文算法在具有良好的检测速率的同时,检测精度做到了较大的提升。图11为本文算法在DIOR数据集上实验测试后,统计出的20个类别的AP值。横轴为平均准确率(Average Precision),纵轴从下往上分别是车辆、港口、立交桥、篮球场、火车站、地面轨道场、体育场、船舶、存储罐、桥梁、高尔夫球场、高速公路收费站、烟囱、高速公路服务区、飞机、大坝、风车、网球场、棒球场、飞机场。

图11 本文算法在DIOR数据集上各类别的AP值

为了进一步对比YOLOv4算法和改进算法,从DIOR测试集中选取6个类别进行对比,见表5。

表5 在DIOR数据集上选取的类别目标AP对比

从整体上看,改进算法对排列密集的船舶和汽车、复杂环境下的立交桥以及尺寸较小的存储罐的检测精度相对较高,检测效果有了明显提高。此外实验还选取了一些常见类别目标,进行了具体检测效果示例的展示,包括复杂背景下的风车(windmill)、车辆(vehicle)检测以及目标较小且排列密集的船舶(ship)检测,如图12所示。左列为YOLOv4算法的实验结果,右列是本文算法的实验结果。

图12 不同背景下的遥感目标检测结果可视化

其中图12(a)代表尺寸较小且易受背景干扰的风车检测对比结果,可以明显看出改进算法具有更高的检测精度,并且相对较低的漏检率;图12(b)展示了对排列密集且目标尺寸较小的船舶进行检测的可视化结果,从右边的图中可以看出,改进算法的平均置信度得分约为0.9,而YOLOv4的平均置信度得分在0.8左右,且漏检较多;图12(c)代表弱光背景下目标较小的车辆检测结果,明显看出改进算法的检测精度有了较大提升。

为了深入分析本文对YOLOv4作出的改进对模型性能的影响,在DIOR数据集上进行了5组消融实验。在网络训练阶段逐个添加改进方法来获得性能更好的网络模型。实验结果见表6,其中“√”表示使用了对应的方法。从表中可以看出,改进1实验采用改进的特征提取网络,mAP从85.38%提高至89.02%,表明该改进方法可以提高遥感图像的目标检测效果。改进2实验在改进1的基础上,引入跨阶段分层结构来替换PANet网络中的连续卷积结构,mAP提升了约2%,表现出该结构的有效性。改进3在前两个方法的基础上替换激活函数进一步改进PANet网络,其检测精度略有提升,表明激活函数的选择对目标检测效果有着不小的影响。

表6 在DIOR数据集进行的消融实验

4 结束语

本文针对遥感图像背景复杂、目标尺度不一且排列密集等特点,基于YOLOv4算法作出了改进。首先设计跨阶段残差结构实现主干网络中的特征传递,减少了特征信息冗余;使用跨阶段分层卷积结构替换PANet中的连续卷积操作,重构特征融合阶段对深层特征图的处理方式;最后分别在改进CSP模块和预测头部分引入卷积块注意力模块,加强有效特征传递,提高特征融合效果。实验结果表明,改进的YOLOv4算法在RSOD和DIOR两个遥感数据集上均取得了较高的检测精度。

虽然所提算法在多个遥感数据集上均表现出较好的检测效果,但在实时性上有待提高。由于遥感图像场景复杂,在某些场景下检测容易受到相似物体的干扰。后续工作将继续针对遥感图像的场景特性以及检测实时性等方面考虑设计网络结构,从而构建鲁棒性、泛化性更强的遥感图像目标检测算法。

猜你喜欢
集上卷积特征
基于3D-Winograd的快速卷积算法设计及FPGA实现
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
如何表达“特征”
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
复扇形指标集上的分布混沌
抓住特征巧观察
一种基于卷积神经网络的性别识别方法