APP下载

基于改进YOLOv3的遥感目标检测算法

2023-12-04王兴涛单慧琳孙佳琪崔志强张培琰龙见洋

兵器装备工程学报 2023年11期
关键词:多维度卷积聚类

王兴涛,单慧琳,孙佳琪,崔志强,张培琰,龙见洋

(1.南京信息工程大学 电子与信息工程学院, 南京 210044; 2.无锡学院 电子信息工程学院, 江苏 无锡 214105)

0 引言

自深度卷积神经网络模型在ImageNet大规模图像分辨竞赛(ILSVRC2012)上脱颖而出起,深度学习研究便进入了快速发展阶段,近几年内,深度学习在国内外均是重点研究对象。目前效果突出的深度卷积神经网络目标检测算法主要有2类:第一类是基于候选区域的目标检测算法,如R-CNN (Region-CNN)[1],Fast R-CNN[2],Faster R-CNN[3]和Mask R-CNN[4]等,但此类目标检测算法的检测速度较慢,无法实时检测;第二类是基于回归的目标检测算法,如SSD[5],YOLO[6],YOLOv2[7]和YOLOv3[8]等,此类目标检测算法的检测速度较快,能够实时检测。

深度学习被引用于各个领域,早在2016年的时候,Zhang等[9]介绍了面向遥感图像理解的深度学习。由于遥感图像的特殊性,图像中的物体较小,类似于小目标,普通的深度学习算法对于小目标的检测准确度较低,Courtrai等[10]提出针对遥感图像的小目标问题,引入基于残差快的生成对抗网络算法对图像进行超分辨率重构,从而得到待检测目标的大小和细节。Shamsolmoali等[11]针对物体部分缺少,提出一种将模块划分为类相似的子集的新型多块特征金字塔网络结构。但以上方法均忽略了复杂背景下的遥感图像检测。在2021年,何佳玮[12]对YOLOv3算法进行改进,针对遥感图像中的微小飞机目标,作者引入CBAM注意力机制,将IoU替换成GIoU,增强了算法的检测性能。同年,兰旭婷等[13]提出替换SSD中的主干网络,并引入CBAM注意力模块来提高飞机的检测准确率。次年,Zhang等[14]针对遥感飞机目标引入K-means聚类算法,进一步提高了小目标检测算法的性能。但以上2种改进方式无法提高算法的速度,在忽略K-means聚类算法本身缺陷的同时,经典Faster R-CNN算法的输入图像尺寸固定,不具备旋转检测能力。同年,李冠典[15]针对于大幅面遥感影像存在背景复杂、飞机目标呈稀疏性聚集等特点,提出了一种飞机目标检测算法EAOD,但只适用于低分辨率下的遥感飞机目标检测。

为实现遥感图像中的飞机小目标的精准检测,本研究中对YOLOv3算法进行改进,提出了一种轻量级聚类CBAM注意力网络(lightweight clustering CBAM attention network,LCCA-Net)。首先,使用MobileNetV2主干网络替换原算法的主干网络,在MobileNetV2中加入CBAM注意力模块,并将ReLU6替换成H-Swish,以更好地捕捉细节信息。然后,对损失函数加以修改,减少特征尺度,降低复杂背景对检测精度的影响,加快识别速度;最后,采用K-means++聚类算法对数据集进行分析提取预先先验框,提高算法的精度。

1 原YOLOv3算法

目前,在工业界用的最多的目标检测算法莫过于YOLOv3。YOLOv3在精度相当的同时,YOLOv3的运算速度也是其他模型的3到4倍。

YOLOv3的整体网络结构如图1所示,整个框架可以分为3个部分,分别是主干网络部分(Darknet-53)、特征层融合部分以及分类检测部分(图中未画出)。

YOLOv3的核心思想就是运用3个不同大小的网格去划分原始图像,为了解决YOLOv2无法处理同一张拥有大尺度物品数据与小尺度物品数据的图片,采用了金字塔网络[16],预测大物体用13×13的网格(有最大的感受野),预测中等物体用26×26的网格(中等感受野),预测小物体用52×52的网格(较小的感受野)。使用Darknet-53主干网络提高了模型的泛化性,有利于模型的训练和采集。

2 YOLOv3算法改进

2.1 修改主干网络

本研究中使用改进后的MobileNetV2主干网络替代YOLOv3原本的Darknet-53网络。其网络结构如图2所示。

图1 YOLOv3网络结构框图Fig.1 YOLOv3 network structure diagram

图2 改进后的网络模型Fig.2 An improved network model

为使网络更有效地处理遥感图像,将空间通道注意力机制加入MobileNetV2中。

如图3所示,MobileNetV2的Bottleneck Residual block中有3个卷积层,输入张量首先进入1×1卷积升维层将低维空间映射到高维空间,再进入BN数据标准化层和ReLU6激活函数,然后进入卷积核为3×3的DW卷积、BN数据标准化层和ReLU6激活函数,最后进入1×1卷积降维层、BN数据标准化层和ReLU6激活函数。

由于遥感图像更加注重细节,所以遥感图像大多为低频信号。为了更好地处理低频信号,在升维之前加入空间通道注意力机制(convolutional block attention module,CBAM)[17],使得该网络在处理遥感网络时更能关注特征图的隐藏信息,提高被识别物体的权重,抑制背景区域的干扰,并且在一定程度上将不同空间中的关键区域特征进行相关联。

CBAM模块由通道注意力模块(channel attention module,CAM)和空间注意力模块(spartial attention module,SAM)结合而成,相比于只用其一,能取得更好的效果,其结构如图4所示。

图3 MobileNetV2的Bottleneck Residual blockFig.3 Bottleneck Residual block in MobileNetV2

图4 CBAM结构Fig.4 CBAM structure

CAM模块对输入特征图分别进行一次全局MaxPool和AvgPool操作,得到2个1×1×C的特征图,再将得到的特征图分别送入一共2层的神经网络中,第一层神经元个数为C/r(r为减少率),第二层神经元个数为C,生成了2个特征向量,最终将2个特征向量相加进行sigmod函数操作,得到通道域的特征图,最后将通道域的特征图与输入特征图做乘法生成空间注意力模块需要的输入特征,其具体流程图如图5所示。

SAM模块则是首先对通道注意力模块输出的特征图分别进行一次全局MaxPool和AvgPool操作,得到2个H×W×1的特征图,然后将这2个特征图进行通道拼接,然后经过一个卷积层降维为H×W×1,最终经过sigmoid生成空间域的特征图,最后将该特征图和通道域的特征图做乘法得到最终生成的特征,其具体流程如图6所示。

图6 SAM结构Fig.6 SAM structure

考虑到原有的激活函数ReLU6在反向输入的情况下,不会激活神经元,并且在应对一个大梯度的运算会产生无法激活的状态,造成目标在进入网络时会丧失目标信息或信息被破坏,因此在升高维度时,选择使用H-Swish激活函数,如式(1)所示,能够减少计算核数,避免信息丢失,更好地保留特征图的特征信息。

(1)

改进的Bottleneck Residual block如图7所示。

图7 改进后的Bottleneck Residual blockFig.7 Improved Bottleneck Residual block

MobileNetV2模型具有较高的分类效率和较于轻量级的计算设备,因为在仅使用低维度提取特征时,提取的目标特征是有限的,为了提高提取目标的信息的数量,在深度可分离卷积之前使用了1×1的网络结构将高维度的特征值映射在低维度的空间内,在计算深度可分离卷积后,再使用拓展链接层将计算后的,如图8所示。

图8 深度可分离卷积Fig.8 Depth separable convolution

在连接过程中,对于扩展分析,经过实验和实际分析确定由6倍扩展组成的分离卷积网络进行运算能够较好地满足需求。同时因为需要1×1的卷积核进行维度转换过程。在降维的过程中最大限度保留了目标信息,从而达到在压缩信息的同时保留了大量的目标信息。在主干网络内部,Darknet-53使用的标准卷积在信息处理上只是用相邻的2层特征层进行融合,使得混在一起的物品无法得到很好的检测效果,并且使用的FPN(特征金字塔结构)过深,加大了所需要检测的目标的计算量。因此,使用分组卷积和逐点卷积替换掉标准卷积部分,在此结构下相同的输入模型,结构的卷积个数是Darknet-53网络中标准卷积数量的1/3,使得计算处于二维下的计算状态,减少主干网络的FPN部分,简化了卷积运算,减少了网络中的总体计算量,优化了网络模型的结构,因此能达到更快的检测速度与更好的检测精度。利用改进后的主干网络在DOTA数据集上进行测试并与现有的网络模型,如BERT[18]、DeepLab V3[19]、Faster RCNN[2]、MobileNetV2[20]、ResNet101[21]、U-Net[22]、YOLOv3_Darknet[8]等模型进行对比,其中,每个模型使用1 000个样本量(num_samples),循环训练次数(batch_size)为2次,比较的指标为平均网络延迟(Average_latency)和每秒查询率(QPS),比较结果如表1所示。可以看出,对于平均网络延迟这一指标,DeepLab V3的平均网络延迟最高,为193.826 ms;其次是Faster RCNN,为162.795 ms;本研究中提出的LCCA-Net平均网络延迟最低,只需要2.442 98 ms。

在每秒查询率的指标对比中,LCCA-Net的每秒查询率最高,高达818.673;其次是BERT,它的每秒查询率为130.409;DeepLab V3的每秒查询率最低,为10.318 5。

表1 各网络性能比较结果

2.2 修改特征尺度

由于在过去的网络中,在一个多维度的卷积核的使用过程中通常选择了3×3与5×5的多维度卷积核,但实验表明直接用1×1多维度卷积核来进行有效地替换会达到以往那种较大的卷积核性能相同的效果。1×1多维度卷积核不仅在计算效能方面节约了大部分3×3的与5×5的模式那种约90%的计算效能,它还可以明显减少3×3与5×5多维度卷积核所需要的参数,降低了计算维度。3×3与5×5多维度卷积核在过去要实现跨通道的信息交互与资源整合,通常是以传统的复数个Feature mAP的线性有机结合,而1×1的多维度卷积核可以明显地使用一个Deature mAP,有效表现了在多维度通道的交互,以及多维度信息整合方面的优势。

在分类各个不同物体的任务和回归压缩成0~1的置信度方面,1×1卷积核有效替代了作为分类器的Fully Connected Layers(简称FC层),在视觉任务方面降低了大量计算量。在大大节约实际部署的能源消耗的同时,降低了对算力的要求。

2.3 修改损失函数

在YOLOv3中因为其主干网络Darknet-53最终的输出有3种不同的尺度的特征图,分别使用对应这3个不同尺度的Loss函数,并将最终的计算损失结果求和,再进行反向传播。在对物体的判断过程中,会出现3种结果:正例、负例和忽视,在输入的特征图中统计图中的边界框数量,针对特征图中识别出的每一个对象,选择IoU最大的作为正例,其他的边界框如果大于0.5则剔除舍弃,剩下的作为负例。因此在计算和实际使用中会出现背景错误检测的问题。对于训练图片的Ground Truth值,若中心点在某一个区域内,同时另外一个物体的中心点恰好也在此处,则会首先计算该区域内所有框体与Ground Truth值进行匹配,选择最优的作为预测框体计算,其余框体继续按照正常流程进行排除,则最后会产生无法成功识别出重叠的不同物体,将重叠的物体错误识别的现象。文中加入了Focal Loss函数[23]来修正这个问题,在Focal Loss中侧重根据样本分辨的难易程度给样本对应的损失添加权重,因为即使是置信度很高的样本在标准的交叉熵内也会存在些许的计算和实际损失。在实际应用中置信度高的负样本在总体样本中占据绝大部分,使用比重将这部分损失去除或者减弱,能明显地提升损失函数的效率并且能够更好地计算Loss值的大小。所以在交叉熵之前加入权重因子形成新的损失函数,如式(2)所示,其中log为交叉熵损失函数。

FL(Pt)=-(1-Pt)γlogPt

(2)

式(2)中:γ为权重的参数,当其值大于1时,能取得更好的效果(在文中值取2);Pt值为该目标物体的置信度。

给容易区分的样本(置信度接近1或接近0)添加较小的权重α1,给难分辨的样本(置信度在0.5附近)添加较大的权重α2,其表达式为

Loss=a1*FL易区分+a2*FL难区分

(3)

损失函数的计算由难区分的样本主导,将损失函数的重点集中于难分辨的样本上。Focal Loss在处理类不均衡问题,效果明显优于在YOLOv3中使用的损失函数。

2.4 K-means++聚类算法

由于飞机遥感图像检测过程中,图片中被测物体的大小和位置均不固定,若在检测前预先设置几个固定大小的先验框作为初始检测框,在检测时根据初始检测框定位当前物体,可以提高算法的精度以及速度。

采用K-means++聚类算法对DOTA数据集进行聚类分析。K-means++聚类算法由K-means聚类算法改进得到,具体区别为初始化聚类中心的选择,K-means算法的聚类中心是在最大值和最小值之间随机生成,这一操作导致聚类中心选择交差,最终影响结果。K-means++聚类算法的基本思路如下:

1) 根据数据集,随机选择一个初始聚类中心;

2) 计算数据集中每一个样本与已经初始化的聚类中心之间的距离,并选择出最短的距离,记为di;

3) 用概率的方法选择距离最大的样本作为新的聚类中心,距离越大,概率越大;重复步骤2)、步骤3),直到找到K个聚类中心;

4) 利用K-means算法计算出最终的聚类中心。

DOTA数据集中大多数边界框在(0.15,0.1)附近,有少量较大的边界框位于(0.8,0.7)附近,如图9所示。

图9 数据集聚类分析Fig.9 Dataset clustering analysis

聚类中心数与平均重叠度的关系如图10所示,当K的取值为1~20时,当K取值大于10时,平均重叠率趋于平稳。由于K的取值影响网络的检测时间,文中的聚类中心数设置为10,在保证精度的同时节约了检测时间。

图10 聚类中心数与平均重叠度的关系Fig.10 Relationship between the number of cluster centers and average overlap

最终聚类中心分布如图11所示,当K取10时IoU为0.893,先验框取值分别为:(18,18)、(32,30)、(44,48)、(57,63)、(89,86)、(127,145)、(165,131)、(175,173)、(237,260)、(406,390)。

图11 聚类中心分布Fig.11 Cluster center distribution

3 实验与结果分析

为了验证算法的真实性与说服力,本研究中采用YOLOv3与改进YOLOv3算法对DOTA数据集中的遥感飞机图像进行处理。训练好数据后,修改测试文件的形参,将最后一轮epoch产生的checkpoint文件夹中的best.pth地址设置成权重文件的地址,调用test.py,对含有飞机的遥感图像进行处理,并在inference文件夹中保存测试输出图片数据。

本研究中分别用2种模型测试5张图片,使实验结果可视化,以便肉眼观察其检测效果,处理结果如图12所示。

如图12(a)所示,表示每一张图片的原始图像,仅凭肉眼无法瞬间判断出飞机存在的方位;图12(b)表示YOLOv3原算法处理的结果,其主干网络为Darknet-53,相比于MobileNetV2,速度更慢;图12(c)表示本研究中提出的改进YOLOv3算法处理的结果。从准确率来看,图12(b)均为0.75左右, 图12(c)平均准确率为0.91,准确率提升明显。在图12的第二行中,飞机数量明显增多,但LCCA-Net算法的准确率依然很高,也不存在多检漏检的情况。

除精确率以外,为更直接描述出本文中提出的算法的具体性能,文中分别从mAP_0.5、算法检测时间、权重模型、Loss曲线与召回率五个方面进行数据说明,以此来综合验证算法的检测性能。

本文中提出的LCCA-Net由于使用轻量级主干网络,在提高识别精度的同时还提高了算法检测速度,具体的数据指标如表2所示,将mAP_0.5从61.7提高到了91.3,在检测速度方面,处理一帧图片的速度提高了约8 ms,权重模型的大小也有18.8 MB减少到了8.0 MB。

在Loss曲线方面,将改进前后的Loss值进行可视化处理,得出了Loss曲线,如图13所示,样本数量为400时,改进前的初始Loss值比改进后的初始Loss值更高,并且在经过200次迭代以后趋近于平稳,且一直维持在0.25以下,由此可以得出,改进后的算法能够提高检测目标的速度和准确性。

图13 检测结果的Loss曲线Fig.13 Loss curve of detection results

Recall表示召回率,是用来表示一个网络能够鉴别所有正确实例的能力,对mAP_0.5的提升大部分来自于Loss函数对于召回率的提升,如图14所示,即本研究中算法在最后的检测中能在前n个实例中找到75%~80%的正确实例,而原算法在最后的检测时只能保持在60%~70%左右,对于纠正正确检测有很大的提升。

图14 Recall曲线Fig.14 Recall curve

4 结论

对YOLOv3算法进行改进,提出一种轻量级聚类CBAM注意力网络LCCA-Net,得到如下结论:

1) 使用轻量级MobileNetV2替代YOLOv3中的Darknet-53主干网络,减少了检测时间;

2) 使用H-Swish激活函数替代MobileNetV2中Bottleneck Residual block第一层中的ReLU6激活函数,避免信息损失,保留了特征图的特征信息;

3) 使用改进后的Focal loss损失函数替代YOLOv3中原始的损失函数,修正了无法成功识别出重叠的不同物体、将重叠的物体错误识别的现象;

4) 使用K-means++聚类对DOTA数据集进行聚类分析,提高了对小目标识别的准确度;

5) 在MobileNetV2中Bottleneck Residual block第一层开始处加入空间通道注意力机制,使得网络处理遥感图像时更能关注特征图的隐藏信息,提高被识别物的权重,抑制背景区域的干扰,并且在一定程度上将不同空间中的关键区域特征进行相关联;

6) 去除3×3与5×5多维度卷积核,保留1×1的多维卷积核,有效体现了在多维度通道的交互。在DOTA数据集上进行训练和测试,实验结果表明:文中将平均检测时间从36.6 ms 减少到了28.42 ms,将mAP_0.5从61.7提高到了91.3,能够更快更好地实现对遥感飞机图像的检测。

猜你喜欢

多维度卷积聚类
基于3D-Winograd的快速卷积算法设计及FPGA实现
“多维度评改”方法初探
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于DBSACN聚类算法的XML文档聚类
多维度市南
基于高斯混合聚类的阵列干涉SAR三维成像
一种层次初始的聚类个数自适应的聚类方法研究
一种基于卷积神经网络的性别识别方法
自适应确定K-means算法的聚类数:以遥感图像聚类为例