基于改进YOLOv5的复杂场景下SAR图像船舶检测方法
2022-06-23李男叶晓东黄鑫宇陶诗飞
李男 叶晓东 王 昊 黄鑫宇 陶诗飞
(南京理工大学电子工程与光电技术学院,江苏南京 210094)
1 引言
在海面监测中,目标检测是极其重要的一环。无论是近海防御,还是远海防卫都需针对特定目标进行位置检测,以此改善战术部署和增强海防预警能力。合成孔径雷达(Synthetic Aperture Radar,SAR)成像具有全天候、全天时、不受天气影响等特点,目前已经成为人们对海观测的重要手段之一[1]。相较于光学图像,SAR 图像中船舶目标检测更易受海杂波、岛礁、沿岸港口等干扰,因此目标检测难度较大[2]。
目前主流的遥感图像目标检测方法宏观上可以分为三种,包括传统算法[3-4]、机器学习算法[5-6]和深度学习算法[7-9]。其中以YOLO[10-13]算法以及Faster R-CNN[14]算法为代表的深度学习目标检测模型凭借其高精度、高效率、高鲁棒性等优点,已在SAR 图像目标检测中取得了广泛应用。文献[15]提出了一种基于改进YOLOv3 的SAR 图像船舶检测方法,通过改进算法的检测策略提升了算法对复杂场景下不同船舶目标的适应性。文献[16]针对SAR 图像中多尺度、高海况和高分辨率等检测难点提出一种基于YOLOv3的改进算法,通过优化网络结构和检测策略提升了模型的检测精度和泛化性能。文献[17]针对复杂场景下的船舶方向多变的问题,基于YOLOv3提出了一种船舶方向检测模型,通过垂直框和旋转框的预测结果进行目标方位角估计校正,提升了复杂海洋背景下的船舶检测效果。文献[18]针对复杂背景下的SAR 图像检测,在YOLOv3 上引入了视觉注意力机制,通过改进显著图生成算法弱化了原图像的背景权重,降低了复杂背景对SAR 图像目标检测的干扰。文献[19]针对传统SAR 图像目标检测易受干扰的问题,提出一种改进YOLOv3 的船舶检测方法,通过加入可变性卷积、ResNet50 和ShuffleNetv2等模块设计,提升了复杂场景下SAR图像船舶检测的效率。文献[20]提出了一种基于YOLOv3 的改进算法,通过对机场区域灰度特征的精细化提取和飞机目标粗检测提升了复杂环境大场景SAR图像中飞机目标的检测能力。
基于YOLO算法的目标检测技术近年来在光学图像上已经取得较大的进展,但是在SAR 图像中目标检测仍然存在一定瓶颈。针对复杂场景下SAR图像目标检测中目前存在的问题,本文基于最新YOLOv5 的研究成果,首次将融合自适应注意力模块的YOLOv5网络用于SAR图像船舶检测中。通过在YOLOv5的特征预测结构中引入自适应注意力模块,提升复杂背景下船舶目标的特征学习能力,同时根据SAR 图像中的船舶特性优化检测模型的损失函数,以此改善SAR 图像中船舶目标的检测效果,最后通过对比实验验证了本文算法的有效性。
2 算法原理
2.1 YOLOv5算法
YOLOv5算法是一种基于卷积神经网络的Onestage目标检测算法,相比于Two-stage算法速率大大提升。YOLOv5 的检测策略为:将输入图像分为若干网格,每个网格对应三种尺寸的预测框,如图1所示,由目标中心落入的网格负责预测目标位置,最终输出与真实框契合度最高的预测框。YOLOv5 整体网络分为四个部分,第一部分Head包括数据增强和自适应锚框计算。数据增强采用Mosaic 方式,将图像按随机缩放、随机裁剪和随机排布的方式进行拼接,增加数据集维度。自适应锚框计算通过聚类找到适合当前数据集使用的最佳标记框尺寸。第二部分Backbone 为特征提取部分,包括Focus 结构、CSP[21]结构和SPP[22]结构,其中Focus 结构通过对图片的切片操作来加深图像的特征维度。CSP结构可以减少特征传输过程中的信息丢失和计算量。SPP 结构可以扩展网络可处理的图片类型,使网络可以输入任意长宽比或任意尺度的图像。第三部分Neck 为特征融合部分,由PANET[23]构成。PANET 网络是在FPN[24]的基础上增加了额外的信息传输路径,丰富了网络的特征学习范围。第四部分Prediction 包括预测边界框、损失函数计算和非极大值抑制。YOLOv5 使用的损失函数由三部分组成,分别为GIoU(Generalized Intersection over Union)损失函数、目标置信度损失函数LossObj和分类损失函数。GIoU 是一种距离函数,由IoU(Inter⁃section over Union)计算得到,如式(1),
其中AC为预测框和真实框的最小外接矩形面积,U为AC中不属于两个框的区域面积。目标置信度损失函数可以反映预测框内存在目标的概率随训练步数的变化趋势,通过Focalloss[25]计算得出,如式(2),
其中Obj 为预测框内元素,α可以平衡正负样本的重要性,γ用来减少易分类样本的权重,pos 为目标集合,neg 为背景集合,为对应第i个格子的第j个预测框中包含目标的置信度,计算公式如式(3),
其中Pr是目标的先验分类概率。非极大值抑制思想是搜索并抑制局部最大值,在目标检测的过程中,由于每个目标都会产生一定数量的候选框,因此当图像中某些区域内目标排列密度较大时,需要使用非极大值抑制降低冗余边界框对网络参数更新的影响。
2.2 改进算法
针对原始算法以同等关注度遍历图像所有区域而造成网络对特征差异不敏感的问题,在YO⁃LOv5 算法上引入自适应注意力特征加强模块AAM(Adaptive Attention Module),结构如图2。其中通道注意力模块和空间注意力模块的排布顺序参考了Hu[26]等人和Woo[27]等人基于不同的注意力模块排列顺序在神经网络上的测试结果,通道注意力模块在前空间注意力模块在后的顺序性能最优。
设F(i,j,z) ∈RH×W×C为输入自适应注意力模块的特征图,H代表特征图的长度,W代表特征图的宽度,C为输入特征图的通道数,则i∈[1,H],j∈[1,W],z∈[1,C]。通道注意力模块中,首先将输入特征在空间维度上分别通过均值池化层和最大值池化层压缩降维,突出通道域上的关键信息。然后将压缩后的特征图分别送入感知机层。最后把两个特征图结果叠加后送入激活函数,得到通道注意力权重W1∈R1×1×C,如式(4),
式中σ为sigmoid 激活函数,⊕为对应元素相加,ATavg,ATmax分别为均值池化层和最大值池化层,如式(5)和(6),
fMLP是由自适应卷积层f1×m和ReLU 激活函数共同组成的感知机,如式(7),
式中A为送入fMLP中的特征矩阵,f1×1×m为一维卷积,由m个参数信息组成,m和特征通道数C的关系,如式(8),
由于通道维数C通常为2的倍数,因此采用以2为底数的对数函数来映射fMLP中卷积核尺寸和特征通道数C的非线性关系,通过修改参数b和k可以灵活调整m值的大小,Odd 表示当m为非整数时取最接近m值的奇数,这样可以保证卷积核的锚点刚好在中间,方便进行后续的滑动卷积,同时可以避免位置信息发生偏移。相比于全连接层,fMLP在保证捕获通道间交互信息的同时极大的减少了模型参数,降低了对原始模块的速度影响。
通道注意力模块输出特征为FC∈RH×W×C,如式(9),
空间注意力模块中,首先将输入特征图在通道域上分别通过均值池化层和最大值池化层压缩降维,突出空间域上的背景和目标差异。然后将压缩后的特征图在通道域拼接。最后经组成的卷积层调整通道深度后送入激活函数,得到空间注意力权重W2∈RH×W×1,如式(10),
在进行池化操作时,两个注意力模块都同时使用了平均值池化和最大值池化。平均值池化更侧重反应特征图中的背景信息,而最大值池化只对特征图中响应最大的像素点有反馈,更能突出图像中的目标信息,因此经过两个池化层后,网络会对图像中目标和背景之间的差异更敏感。
空间注意力模块输出特征为FS∈RH×W×C,如式(11),
最终在YOLOv5 网络中使用FS预测船舶目标的位置,通过对传递特征的筛选加权,增强了网络对船舶目标的学习能力。
图3 为改进后的网络结构,将混合注意力模块加在YOLOv5 的预测部分之前,使网络在注意力模块输出的全局注意力图上预测目标。由于原YO⁃LOv5网络中特征提取部分有大量的残差连接,因此加入注意力模块时需要做一定的调整,将原网络特征提取部分中所有的残差连接进行替换。图4为系统检测流程图。
原始YOLOv5网络中使用的置信度损失函数为focal loss 函数,其对正负样本叠加的损失权重很接近,且重点关注的是较难检测的目标,因此在训练SAR 图像时会存在一些问题。大场景SAR 图像中船舶目标极小,导致正负样本数量极不均衡,如果以同等关注度对待正负样本损失,不仅会降低网络的收敛速度,而且不利于保留对目标的学习信息。原损失函数把网络的重点放在了低质量的样本中,这会降低目标检测模型参数的更新效率,直接影响后续的检测结果。参考Cao 和Chen[28]等对样本优先级的研究,IoU 较高的正样本会对目标检测产生较大的影响,主要影响体现在检测结果的召回率上。因为在目标排布较为密集时,非极大值抑制算法会根据区域内的最高得分预测框来排除冗余预测框的干扰,此时高分预测框会影响后续的筛选结果。因此本文借鉴注意力机制的思想,通过调整模型对正负样本和不同检测难度正样本的关注度改进了原始的focal loss损失函数,如式(12),
其中是网络输出预测框的置信度,q是目标IoU分数。对于训练中得分较高的正样本,模型会加大其所占的损失权重,对于训练中的负样本q均为0。负样本损失中加入了γ降权,而正样本损失计算时并没有引入γ,因此可以在不影响正样本权重的前提下,有效降低负样本损失的权重。为了平衡q,针对负样本损失使用α进行降权。最终使网络将训练重点聚焦在高质量的正样本中。
3 实验结果与分析
3.1 实验平台
本文数据计算使用操作系统为Windows10,使用CUDA10.1 和cuDNN7.6.5 加速训练,显卡为Ge⁃Force RTX 2070 SUPER,图形处理器NVIDIA Tur⁃ingTM GPU,编程语言为python3.7,网络开发框架为Pytorch1.6,系统处理器为Intel®Core(TM)i7-10700K CPU@3.80 GHz。
3.2 实验数据集
数据集由“高分三号”卫星拍摄的海域SAR 图像[29-30]和存储SAR 图像中船舶位置信息的XML 文件组成。图像尺寸为1000 像素×1000 像素,距离分辨率为1 m~5 m。图像涵盖远海区域和近海港口等多个场景,包含多种方向和比例的船舶。总数据量为305 张,按照2∶1 的比例分为训练集和测试集。图5为数据集中部分SAR图像,包含近海港口区域、海杂波干扰严重的区域、密集型船舶区域和稀疏型船舶区域。
3.3 评价指标
本文使用的评价指标为平均准确率(Average Precision,AP)与检测速率,检测速率定义为每秒处理图像的帧数(Frame Per Second,FPS),平均准确率如式(13),
其中P(Precision)代表准确率,R(Recall)代表召回率。P和R的计算公式如式(14)和(15),
其中TP(True Positive)为正确检测目标个数,FP(False Positive)为错检目标个数,FN(False Nega⁃tive)为漏检目标个数。
3.4 模型训练
本文网络模型中的batch size 为4,初始学习率为0.01,学习率衰减权重为0.0005,训练代数为300,置信度损失函数中α、γ的取值分别为0.5 和1.5。通过实验验证fMLP中k和b的最优取值为2 和1,由于原始YOLOv5 中输入AAM模块的通道维度分别为256、512和1024,因此本实验中m的 取值为5。
模型1 为在YOLOv5 中引入自适应注意力模块,模型2 在模型1 的基础上优化损失函数。损失函数训练曲线结果如图6 所示,由于模型1 通过注意力模块改善了目标的特征学习效果,获得了更加精准的预测框,因此模型损失降低,训练收敛速度略微提升。训练精度如图7所示,模型1和模型2与传统YOLOv5算法检测精度大体一致。训练召回率曲线如图8 所示,与传统YOLOv5 算法相比,模型1和模型2 的召回率都显著提升。这主要是因为模型1 经注意力机制加强特征学习后,会对存在目标的区域投入更大的网络学习权重,因此漏检目标减少,相较于原始算法,召回率有所提升。模型2加大了对高分预测框的关注度,降低了冗余框对后续筛选的影响,相较于模型1 获得了更高的召回率。两模型都未影响错检目标,所以检测精度未有明显变化。训练AP 值曲线如图9 所示,模型1 和模型2效果提升明显,主要得益于召回率的较大提升。表1 为算法的训练时间,自适应注意力模块增加了部分的参数量,因此两模型的训练时间相比于原始YOLOv5 网络略微增加,但相比于使用全连接层的CBAM网络训练速度提升。
表1 训练时间对比Tab.1 Comparison of training time
3.5 检测结果分析
为了更加全面的验证本文提出的改进算法在复杂场景下SAR 图像中的检测性能,除了基于注意力模型的改进算法外,还使用Faster R-CNN 检测方法作为对比。对比结果如表2 所示,使用本文提出的模块,检测平均准确率明显优于单独使用通道注意力的SEnet模块和单独使用空间注意力的SAM 模块。本文算法平均准确率和检测速度都优于CBAM模块,相比于YOLOv5 算法和Faster R-CNN 算法平均准确度分别提高了26.1%和17.3%。
表2 实验结果对比Tab.2 Comparison of experimental results
图10为本文可视化检测结果的对比,其中绿色标记框为真实目标位置,红色标记框为对应算法预测的目标位置。图10(a)、图10(b)是典型的受陆地影响较大的SAR 图像,从检测结果可以看出,原始算法漏检一艘,而模型2将3艘船舶全部检测到,有效降低了陆地对船舶检测的影响。图10(c)、图10(d)是典型的多船舶目标SAR 图像,从检测结果可以看出,原始算法对排布密集的目标区域漏检严重,而模型2 的检测率明显提升,有效降低了密集目标对检测的影响。图10(e)、图10(f)是典型船舶目标信号微弱的图像,原始算法由于对弱幅值区域关注不够,并未检测到图中的目标。模型2 将两艘船舶全部检测到,有效增加了对弱信号目标的关注度。图10(g)、图10(h)为典型受杂波干扰的SAR 图像,原始算法受杂波干扰并未精确学习到图中船舶的特征,9艘船舶只检测到3艘。模型2由于加强了特征学习并未受到杂波影响,9艘船舶全部检测到,有效降低了杂波对目标检测的影响。图10(i)为增加注意力机制后的模型1检测结果,图10(j)为增加注意力机制并改进损失函数后的模型2检测结果。模型1中的损失函数由于对高质量预测框的关注度不够,导致输出预测框置信度较低,存在遮盖和遗漏目标区域的现象。经改进损失函数调整后,模型2预测框置信度明显提升,且预测框可以最优涵盖目标区域,最终输出更加精确的目标位置信息。
4 结论
针对复杂场景下SAR图像船舶检测中易产生漏检的问题,本文提出了AAM-YOLOv5算法。通过在YOLOv5的特征预测结构中引入自适应注意力模块,提升了船舶目标区域的特征学习能力。同时借鉴注意力机制优化了损失函数,使模型反向更新参数时也会优先关注重要信息,最终改善复杂场景区域的目标检测效果。实验结果表明,改进的AAM-YOLOv5 检测算法显著提升了召回率和输出预测框的质量。从检测效率来看,本文算法增加了额外的池化层和卷积层,检测速度相比于原始的YOLOv5 检测算法略微降低,但是平均准确率相比于原始的YOLOv5算法及Faster R-CNN 算法显著提升,平均准确率达到了79.8%。未来研究中可以围绕算法的虚警概率和检测速度来优化网络架构,通过降低FP值来提升检测精度,在保证检测精度的基础上提升检测速度。
致谢
鸣谢中国科学院空天信息创新研究院主办了2020 高分遥感图像解译软件大赛,并提供本研究数据集。