融合多注意力机制的光学遥感图像目标检测方法

2022-02-15 11:52付宏建白宏阳郭宏伟原瑜蔓秦伟伟
光子学报 2022年12期
关键词:注意力卷积精度

付宏建,白宏阳,郭宏伟,原瑜蔓,秦伟伟

(1 南京理工大学 能源与动力工程学院,南京 210094)

(2 火箭军工程大学 核工程学院,西安 710025)

0 引言

光学遥感图像目标检测技术是指利用算法对感兴趣的遥感图像目标自动分类与定位的技术[1],在军事侦察、精准制导、交通管制、灾情预测等领域有着广泛的应用[2]。从发展历程看,光学遥感图像目标检测技术主要可分为传统目标检测算法和基于深度学习的目标检测算法。传统目标检测算法是指基于手工设计的特征描述子来提取候选目标并进行验证的方法[3],手工设计的特征一般为目标纹理、颜色、边缘等视觉信息[4]。传统目标检测算法主要使用支持向量机(Support Vector Machine,SVM)[5]、Adaboost[6]和K-means[7]等方法作为分类器。

相比传统目标检测算法,基于深度学习的目标检测技术可以自动提取目标特征,特征表达更具鲁棒性和泛化性[8]。根据有无候选框生成阶段作为区分[9],基于深度学习的目标检测技术主要分为以R-CNN(Region-CNN)系列(R-CNN[10]、Fast R-CNN[11]、Faster R-CNN[12]、Mask R-CNN[13])为代表的双阶段模型和以YOLO(You Only Look Once)系列(YOLOv2[14]、YOLOv3[15])、SSD 系列(SSD[16]、DSSD[17])为代表的单阶段模型。现阶段,在遥感图像目标检测领域应用深度学习目标检测技术可以达到较好的检测效果,然而,遥感图像目标检测仍有几类难题亟待解决,如目标尺度差异大、目标分布密集、背景复杂等[18]。

针对上述问题,国内外学者在已有深度神经网络的基础上做了大量改进。HOU J Y 等[19]在R-CNN 的基础上利用多分支的感兴趣区域池化层(Regions Of Interest Pooling,ROI Pooling),将特征映射成不同尺度,并采用级联方式检测,提高了多尺度遥感目标的检测精度,但对于密集分布的遥感目标检测效果不理想。LONG H 等[20]融合了传统方法与深度学习方法,提出一种特征融合的深度神经网络,有效提高了密集分布目标和多尺度目标的检测效果,但该网络流程复杂,不具备工程应用价值。ZHANG Y K 等[21]采用语义分割的方式将各类别目标先进行特征掩膜,再采用像素注意力机制对各类别目标加权计算,提升各类别目标的区分度,有利于复杂背景下的目标识别,但这种采用先验知识的方法不具备普适性。张永福等[22]基于Faster R-CNN 目标检测框架,提出了一种融合特征的目标检测模型,检测精度得到提升,但模型的每秒传输帧数(Frames Per Second,FPS)仅为6.5 左右,无法满足卫星在轨实时处理的需求。

因此,本文对YOLOv5 检测网络做出改进,提出了一种融合多注意力机制的YOLOv5 检测网络(Multi Attention-YOLOv5,MA-YOLOv5)。在网络中添加一种自适应感受野大小的坐标注意力模块,以加强网络对多尺度目标特征的提取能力,提升网络对复杂背景下目标的定位效果,并基于Swin Transformer 自注意力机制模块改进了YOLOv5 网络的预测头,增强了网络对密集分布目标的识别能力。

1 模型及改进

1.1 YOLOv5 检测网络及改进

根据检测网络深度与宽度系数的不同,YOLOv5 模型分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 四个版本,系数越大,模型越复杂,检测精度通常越高,但同时也会牺牲检测速度。考虑到遥感图像在轨实时处理的需求,需保证检测网络具备实时检测能力,因此选用网络深度与宽度系数均为1 的YOLOv5l 网络作为基础网络。YOLOv5l 在结构上主要分为主干(Backbone)、颈部(Neck)和检测器(Prediction)三个部分。Backbone 部分主要采用CSPDarknet 的主干结构进行特征提取;Neck 部分采用FPN(Feature Pyramid Network)+PAN(Path Aggregation Network)的特征金字塔结构进行特征融合;Prediction部分采用CIOU_loss 作为损失函数进行计算。

针对遥感图像中目标尺度差异大、背景复杂的特点,在YOLOv5l 网络的Neck 部分添加一种自适应感受野大小的坐标注意力模块(Adaptive Receptive Field Coordinate Attention,ARFCA),以提升网络对不同尺度目标特征的提取能力,加强网络在复杂背景下对目标的定位能力。针对遥感目标分布密集的特点,向YOLOv5 网络的预测头中添加滑动窗口变形器(Swin Transformer,STR)自注意力机制模块,增强网络捕获目标环境信息的能力,形成了MA-YOLOv5 网络。MA-YOLOv5 网络整体结构如图1 所示。

图1 MA-YOLOv5 网络结构示意图Fig.1 Schematic diagram of MA-YOLOv5 network structure

1.2 ARFCA 模块

针对遥感图像中目标尺度差异大、背景复杂的特点,提出了一种自适应感受野大小的坐标注意力模块,模块结构如图2 所示。该模块主要分为分离、坐标注意力和选择三个部分。

图2 ARFCA 模块示意图(3 通道)Fig.2 Schematic diagram of ARFCA module(3 channels)

分离部分引入了不同卷积核大小的卷积作为并行分支进行特征处理,该模块的分支数可根据数据集的不同进行改变,图中展示了分支数为3 时的情况(按图示易推得其他分支数时的情况)。三分支分别采用3×3、5×5 和7×7 的卷积核。为保证模型效率,5×5 和7×7 卷积实际为空洞率大小为2 和4 的3×3 空洞卷积。空洞卷积可在不增加参数量的情况下增大卷积的感受野。

在坐标注意力部分,首先将不同尺寸卷积输出的信息相加,得到融合元素U,随后分别使用(H,1)和(1,W)的空间通道池化核对U元素进行高度和宽度通道方向上的池化,得到维度分别为C×1×W和C×H×1 的特征。对于空间通道池化后的特征来说,第c个通道在高度h上输出可表示为

第c个通道在宽度w上的输出可表示为

上述变换完成后,对两方向特征进行拼接,随后进行卷积变换,并使用非线性激活函数进行激活,即

式中,[zh,zw]代表拼接处理,F1步骤为卷积变换,δ为非线性激活函数。随后对f分别进行高度和宽度方向的卷积变换和Sigmoid 函数激活,得到坐标注意力的两个输出。公式为

为实现ARFCA 模块自适应选择不同感受野大小的卷积所输出的信息,在坐标注意力的中引入三个softmax 注意力系数a、b、c,第c个通道中ac、bc和cc的计算公式为

式中,ac+bc+cc=1,gh和gw是上一步H和W空间方向上的输出,A、B、C∈RN×I,分别代表三个通道的softmax 注意力权重,其中N是特征的通道数,Ac、Bc、Cc∈R1×I代表第c个通道A、B、C对应的矩阵,I表示为

式中,r是为控制输出值而自定义的压缩比例系数,L=32 是实验设置的常量。

在选择部分,将坐标注意力输出的三个注意力系数a、b、c分别与原特征输出U3、U5和U7相乘,得到A3、A5、A7三个不同尺度的特征分量,将这三个分量相加,获得特征输出。第c个通道上的特征输出Vc的计算公式为

对比传统的注意力模块,ARFCA 模块通过分离和选择机制实现了根据输入目标尺寸大小动态调整模块感受野大小的效果,从而提升了多尺度特征提取能力。在坐标注意力部分,分别沿两个方向进行空间特征的聚集,生成一对具有方向感知力的特征图。在保存一个方向上位置信息的同时捕捉到另一个空间方向的长期依赖关系,有助于网络更准确地定位感兴趣的目标。

1.3 Swin Transformer 模块

受Swin Transformer 网络的启发[23],在YOLOv5 的检测头中添加Swin Transformer 模块,模块结构如图3 所示。

图3 Swin transformer 模块示意图Fig.3 Schematic of the Swin transformer module

该模块包含两个子层,主要由窗口多头自注意力层(Window Multi-head Self-Attention,W-MSA)和移位窗口多头自注意力层(Shifted-Window Multi-head Self-Attention,SW-MSA)组成。由于该结构限制,Swin Transformer 模块的层数通常为2 的整数倍。窗口多头自注意力层和移位窗口多头自注意力层均把自注意力的计算限制在窗口中,相比于传统Transformer 中的自注意力MSA 模块,STR 模块大大降低了计算复杂度,式(7)~(8)展示了MSA 模块与W-MSA、SW-MSA 模块计算复杂度的对比,可以看出MSA 模块计算量与hw(h、w分别表示特征高和宽的数值)呈二次关系,而W-MSA 和SW-MSA 模块与hw呈线性关系。

式中,Ω表示计算复杂度,M为常量(一般设置为7)。

特征进入STR 模块首先经过LN(Layer Normalization)层进行归一化,随后进入W-MSA 层,在窗口中进行自注意力的计算,之后经过MLP 层得到第一模块的输出。自注意力的计算公式为

式中,Attention(Q,K,V)的计算是根据关注程度对Value 乘以相应权重,权重由Q和K计算获得,计算结果为Value 的加权和;Softmax 函数是一种归一化指数函数;Q、K、V分别是Query、Key、Value 对应的矩阵,Query、Key 是计算Attention 权重的特征向量,Value 表示输入特征的向量;d是Q和K的向量维度;B是一个偏置矩阵。

在STR 的第二模块中运用SW-MSA 层,基于移动窗口的分割方法进行自注意力的计算,随后经过MLP 层进行全局平均池化,得到最终的预测结果。Swin Transformer 模块中的LN 层能帮助模型更好地收敛,防止模型过度拟合,W-MSA 和SW-MSA 层中多头自注意力机制的引入不仅能帮助模型关注当前像素,还能增强模型捕获当前像素环境信息的能力,从而提升模型对密集分布目标的检测性能。

2 实验

2.1 数据集

采用DOTA[24]遥感图像公开数据集进行实验,验证改进网络的有效性,具体为DOTAv1.5 版本。该版本包含16 个类别,40 万余个带有注释的目标,其中最小注释目标仅为10 像素左右。具体类别分别为轮船、储罐、飞机、棒球场、网球场、篮球场、小型车辆、大型车辆、直升机、田径场、港口、桥梁、环岛、足球场、游泳池和集装箱起重机。数据集的注释文件分为两个版本,分别是旋转目标标注框(Oriented Bounding Box,OBB)和水平目标标注框(Horizontal Bounding Box,HBB),本文采用水平目标标注框作为注释标签。数据集中原始图像分辨率最大达20 000×20 000 左右,为避免大像素图像输入网络时在调整图片大小步骤造成图像信息损失,采用分割脚本将大分辨率图像切割成每张像素大小为600×600 的图像,便于网络进行目标检测。数据集分为训练集和验证集两部分,训练集共71 254 张图片,验证集共7 917 张图片。

2.2 实验环境及参数设置

实验环境如下:操作系统为Ubuntu18.04,内存为16G,CPU使用Intel(R)Core(TM)i7-7700K@4.2GHz,GPU 使用Nvidia GeForce GTX 1080Ti(显存为11G),深度学习框架采用Pytorch1.10.2 版本。实验设置训练最大迭代轮数为12 个轮次,初始学习率为0.005,循环学习率为0.1,学习率动量为0.937,交并比损失系数为0.05,分类损失系数为0.5,有无物体系数为1.0。分别在第8 和第10 个轮次下降学习率。对于SSD和YOLOv5 系列的网络,采用K-means 聚类方法计算生成遥感图像目标对应尺度的锚点,计算结果为[11,12],[21,21],[30,44],[47,32],[51,75],[96,56],[106,120],[176,209],[356,365]。

2.3 ARFCA 模块分支数消融实验

为验证ARFCA 模块分支数的不同对模型所造成的影响,同时确定ARFCA 模块最佳分支数量,设置了一组消融实验,以MA-YOLOv5 网络为基础,将SKCA 分支数分别设置为1、2、3、4,其他训练参数设置均保持一致进行实验。表1 展示了不同分支数对应的平均检测精度和检测速度。

表1 ARFCA 不同分支数的检测精度与检测速度Table 1 Detection accuracy and speed of ARFCA with different branch numbers

观察表1 数据可得,在分支数为1、2、3 时,随着分支数的增加,模型的平均检测精度(mean Average Precision,mAP)有微弱提升,而当分支数为4 时,模型mAP 值与分支数为3 时相比不再提升。从检测速度角度看,随着分支数的增加,模型的FPS 始终呈下降趋势。因此,为实现模型的最高检测精度,同时保证模型检测速度,将ARFCA 模块分支数确定为3,并进行后续实验。

2.4 结果与分析

对MA-YOLOv5、添加ARFCA 模块的YOLOv5、添加STR 模块的YOLOv5、YOLOv5 原始网络以及三个以ResNet-50 为骨干网络的一阶段网络:SSD、RetinaNet 和FCOS,共7 个网络进行实验对比,并采用全类平均精度mAP(IOU=0.5∶0.95)、平均精度AP(IOU=0.5)、AP(IOU=0.75),coco 数据集定义的小中大目标对应的mAP:APS(目标面积<322像素)、APM(322<目标面积<962像素)、APL(目标面积>962像素),共6 种指标作为模型精度的评价标准,采用检测速度FPS 作为模型速度的评价标准。各模型的详细参数结果如表2 所示。

表2 不同网络在测试集下的性能Table 2 The performance of different networks on the test set

观察表2 结果可以看出,在检测精度方面,MA-YOLOv5 网络在实验对比的7 个网络中最高,mAP 值达到了68.5%,对比原始YOLOv5 网络,实现了3.6%的精度提升。添加ARFCA 模块和STR 模块的YOLOv5网络在平均检测精度上分别实现了2.3%和1.4%的精度提升。而SSD、RetinaNet 和FCOS 在检测精度上的表现均与YOLOv5 系列网络有一定差距。在检测速度方面,SSD 网络表现最佳,达到了77FPS,原始YOLOv5 网络FPS 达到59,在对比的YOLOv5 系列网络中表现最好,而YOLOv5 改进后的三个网络在FPS上略有下降,但仍具有实时检测的能力。

图4 展示了MA-YOLOv5 训练和验证数据集时对应的定位损失、置信度损失和分类损失曲线的变化情况,其中各图横坐标表示模型训练批次。

图4 MA-YOLOV5 网络在训练与验证时的损失值Fig.4 The loss value of MA-YOLOV5 network during training and validation

图5 展示了MA-YOLOv5 网络在DOTA 数据集上测试时各类别的平均精度mAP(IOU=0.5∶0.95)。可以看出,有6 类目标检测精度大于0.7,包括尺寸较小的舰船类别和尺寸较大的篮球场、网球场类别,说明本文所提出方法对多尺度遥感目标具有较好检测性能。

图5 各类别目标的mAP 值Fig.5 mAP values for each category of targets

3 结论

本文以YOLOv5 算法为基础,提出了一种融合多注意力机制的光学遥感图像目标检测算法。针对遥感图像中目标尺度差异大、背景复杂的特点,设计了一种自适应感受野大小的坐标注意力(ARFCA)模块,通过模块中的分离和选择机制,根据输入目标大小,自适应地选择不同感受野大小的卷积所输出的信息,从而提升模型对于多尺度遥感目标的特征提取能力。同时,通过ARFCA 模块中的坐标注意力机制,捕捉一个空间方向的长期依赖关系,并保存另一个空间方向的位置信息,有助于网络更准确地定位目标。此外,通过在YOLOv5 预测头中加入Swin Transformer 自注意力机制模块,增强了模型捕获目标环境信息的能力,提升模型对密集分布目标的检测性能。实验结果证明了MA-YOLOv5 模型中ARFCA 模块和Swin Transformer模块对于遥感图像目标检测效果提升的有效性,以及模型具有较好的实时性与一定的工程应用价值。

猜你喜欢
注意力卷积精度
让注意力“飞”回来
热连轧机组粗轧机精度控制
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
超高精度计时器——原子钟
从滤波器理解卷积
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”