基于YOLO框架的无锚框SAR图像舰船目标检测
2022-11-19贾晓雅汪洪桥杨亚聃崔忠马
贾晓雅, 汪洪桥, 杨亚聃, 崔忠马, 熊 斌
(1. 火箭军工程大学作战保障学院, 陕西 西安 710025; 2. 北京遥感设备研究所, 北京 100854;3. 中国航天科工集团有限公司科研生产部, 北京 100048)
0 引 言
目标检测作为计算机视觉的一个重要应用,根据检测的目标、图像来源和侧重点等给研究者更细化的现实研究。根据检测的目标可分为日常目标检测和特定目标检测,日常目标为常用目标检测数据集中的目标,特定目标包括具有研究意义的某种特定的目标种类,如飞机、舰船、桥梁、交通标志、行人检测等。根据检测的图像来源可分为可见光图像、红外图像、 合成孔径雷达(synthetic aperture radar, SAR)图像等。目标检测可侧重小样本、小目标、轻量化等具有特点的检测方向。通过以上细化,让目标检测的具体应用及改进有了更多可能性和方向性。SAR图像舰船目标检测作为目标检测的一个重要应用方向,对其深入研究具有重要的军事和社会意义。
常见的传统SAR图像目标检测方法是恒虚警率[1](constant false alarm rate, CFAR),还有模板匹配[2]、尾迹检测[3]、基于小波变换[4]的检测方法等。传统方法的特征提取多依靠人工的设计,难以应对复杂多变的检测环境。以卷积神经网络(convolutional neural network, CNN)为框架的深度学习方法在可见光图像的目标检测算法中取得了较好的发展,现也被应用到SAR和红外图像的目标检测中。如:针对SAR图像舰船目标成像小的特点改进神经网络结构,实现SAR海面舰船目标识别算法[5];提出了一种适应多尺度、小目标检测的骨干网[6];考虑红外强度提出一种新的骨干网络[7]。
深度学习方法有以精度高为优势的两阶段检测算法,包括区域CNN(region-CNN, R-CNN)[8]、SPP(spatial pyramid pooling)-Net[9]、Fast R-CNN[10]、Faster R-CNN[11]等,和以速度快为优势的一阶段检测算法,包括YOLO(you only look once)[12]、SSD(single shot multibox detector)[13]、YOLOv2[14]、YOLOv3[15]等。YOLOv4[16]中指出通过模块化结构,以上检测算法都可分为Backbone、Neck、Head 3部分,更利于对特征提取、特征融合、检测头的构建和优化。
Backbone作为提取特征的主干网络,是获得特征图的关键步骤,视觉几何群 (visual geometry group, VGG)网络[17]、ResNet[18]、ResNeXt[19]、Darknet53[15]都是经典的特征提取网络。近年来,更具目的性的Backbone应运而生。Hourglass将重复的自下而上和自上而下的处理与中间监督结合使用以提高网络性能[20];MobileNet是为移动和嵌入式应用提出的高效模型[21];EfficientNet可以在保证精度与速度的同时实现模型缩放[22];HRNet通过并行连接高分辨率到低分辨率卷积以保持高分辨率表示[23]。
Neck可以实现浅层与深层特征图的融合,达到对Backbone提取的特征充分利用的效果。从特征金字塔网络(feature pyramid networks, FPNs)到PANet(path aggregation network)[24]、NAS(neural architecture search)-FPN[25]、BiFPN(bi-directional FPN)[22]等,其连接方式越来越复杂。HRFPN是HRNet为了保持高分辨率提出的特征融合方式[23]。Balanced Feature Pyramid使用相同深度集成的平衡语义特征来加强多级特征[26]。经过证实,特征融合结构对平均精度有较为明显的提升。
Head主要负责预测目标的类别和位置,分为一阶段检测算法的密集预测和两阶段检测算法的稀疏预测。其中,对于边界框的预测也分为两种方法,一种是基于锚框的,另一种是无锚框的。因为使用锚框会造成正负锚框数量巨大不平衡,增加超参数,减缓训练速度,所以近年来CornerNet[27]、ExtremeNet[28]、CenterNet[29]、FSAF(feature selective anchor-free)[30]、FCOS(fully convolutional one-stage)[31]、FoveaBox[32]等让无锚框检测成为另一种边界框预测的选择。
对于SAR图像舰船目标检测,SAR图像不仅会伴随相干斑噪声的产生,其图像特征比可见光图像也更加复杂,且舰船目标在不同场景下尺度变化大,加之环境干扰等因素,给检测带来困难。鉴于以上分析,本文将模型分为Backbone、Neck、Head 3部分去创新,方法如下:
(1) Backbone使用改进CSPDarknet53[16]作为特征提取网络。CSPDarknet53是YOLOv4的主干网络,可以兼顾精度和速度,并降低模型大小。但SAR图像干扰大、可利用的特征信息少,所以在CSPDarknet53网络上增加全局上下文模块(GC block)[33]来提高网络注意力,可以减少虚警。
(2) 为了充分融合多层特征图,Neck部分选择FPN并使用感受野模块(receptive field block, RFB)[34],使特征的可区分性和鲁棒性更强。
(3) Head采用基于anchor free的FoveaBox进行类别和位置预测,可以更好地适应舰船目标大小的变化,改善了舰船尺寸差别大锚框大小预测不准的问题。
本文把无锚框与骨干网为CSPDarknet的YOLO框架相结合,并用于SAR图像舰船目标检测,在公开数据集上取得了性能提升。
1 基于YOLO框架的无锚框SAR图像舰船目标检测方法
本文基于YOLO框架,在CSPDarknet53特征提取网络上增加注意力机制GC block,将提取后的特征图经过FPN特征融合,得到5层具有不同尺度信息的特征图,其中大小为104和52尺度的特征图使用RFB增大感受野,最后由FoveaBox检测头进行检测。网络结构如图1所示。
图1 网络结构
1.1 基于注意力机制的特征提取网络
CSPDarknet53是在Darknet53网络结构的基础上结合跨阶段局部(cross stage partial, CSP)结构形成的主干网络,CSP结构可以与Backbone结合,使计算量降低的同时保证网络的精确度,让目标检测模型更加轻量化。考虑SAR图像复杂的特性,增加注意力机制GC block来提高检测的准确率。将GC block应用到CSPDarknet53特征提取网络的CSP结构后,可以对全局上下文进行有效建模,实现空域注意力机制。
1.1.1 用于舰船检测的全局上下文建模
在SAR图像中,舰船目标呈现大小和形状面不同的特性,且有海岛、陆地物体以及相干斑噪声的干扰,不易进行目标检测。增加全局上下文建模有利于特征图对全文信息的获取。GC block融合了Non-local[35]和SENet[36],既实现了对全局上下文的建模,又能降低计算量,成为即插即用的注意力机制模块。
图2 GC block结构
第2步找到通道间的依赖。Wv 1和Wv 2是1×1卷积,为了使模型轻量化,使用瓶颈转换模块代替。层规范化添加在两层瓶颈转换(ReLU之前)结构之间,可以降低优化难度,作为利于泛化的正则化器。这部分的计算公式为
δ(·)=Wv 2ReLU(LN(Wv 1(·)))
(1)
1.1.2 可视化结果对比
实验中采用SAR舰船目标检测数据集(SAR ship target detection dataset, SSDD)[37]进行可视化结果对比。选择尺度大小为52的特征图进行热力图可视化(图3第3行),与没有使用GC block的同尺度热力图结果(图3第2行)作对比。如图3所示,第一行为数据集原图,共选择4个场景作对比,从左至右依次包括多目标(小尺度)、多目标(较大尺度)、十字相干斑噪声干扰以及单个大尺度目标。对比可以看出添加GC block可以有效提高注意力,对噪声干扰和环境干扰有一定抵抗能力。
图3 热力图结果对比
1.2 基于增大感受野的特征金字塔融合网络
为了让FoveaBox获得更多特征信息,选择使用4层不同尺度的特征图用FPN进行特征融合。为增大特征图的感受野,增强深层特征,本文在前两层FPN上添加RFB,因为后面特征分辨率太小无法使用较大的卷积核,将FPN中1×1卷积替换为RFB。RFB是轻量级增大感受野的方法,能够增强特征的表达。
RFB是由多分支卷积块组成的,分为具有不同卷积核的多分支卷积层和空洞卷积层两部分。前部分与Inception[38]功能相同,可以获得不同的视野尺度;后部分模拟人类视觉群体感受野的大小和偏心率之间的比率,区分出中心区域,以便在更大的区域和更多上下文中捕获信息。
RFB在Inception的基础上增加了空洞卷积,在每个分支中选择瓶颈结构以减少计算量,3个分支卷积核大小分别为1、3、5,依次膨胀1、3、5,可得到更大的感受野,方便对SAR图像目标的捕获。
1.3 无锚框检测
FoveaBox是一种基于无锚框的检测方法,逐像素直接预测目标出现的可能性和对应的边界。FoveaBox将真实的边界框(x1,y1,x2,y2)映射到不同尺度的特征金字塔上。
(2)
式中:2l是第l层特征金字塔的步长值。由此可知中心点c的位置和映射的真实边界框的宽、高为
(3)
为了划分正负样本,引入(收缩因子,使正样本比当前映射的边界框小:
(4)
为了预测边界框,FoveaBox将特征图上正样本区域内的点(x,y)映射回原图像,再与真实边界框(x1,y1,x2,y2)计算归一化偏移,最后用log空间函数正则化:
(5)
FoveaBox对FPN传来的5层特征图进行检测,针对5层特征金字塔图的大小,设计S分别为32、64、128、256、512作为每层的基本尺度,以确定每层特征图上可检测到的目标尺度范围。在检测过程中一个目标可能在多层金字塔被检测到,这样可以充分利用邻层信息,使训练更加可靠。经过训练,可以为每个(x,y)生成边界框。
1.4 损失函数
训练损失函数分为分类损失和回归损失,定义如下:
(6)
2 实验及结果分析
使用Ubuntu18.04 LTS操作系统,CPU:Intel Xeon E5-2609 v4 @1.70 GHz(16,GPU:NVIDIA GeForce GTX 1080,内存32 GB,编程语言为python语言,框架为torch。
2.1 实验设置
选择SSDD作为实验的数据集。SSDD共包括1 160张SAR舰船图像,总计2 456个舰船,拥有多尺度、多角度的舰船图像,适用于多种场景下的舰船目标检测。实验训练时,从数据集中随机选取835张作为训练图片,185张作为测试图片,剩余图片用作验证,其中测试图共480个目标。优化算法为SGD,设置初始学习率为0.001,动量为0.9,衰减系数0.000 5。Batchsize为4,共迭代500次,并保存最好的训练参数。
实验中所有模型均使用了翻转和裁剪,可以增广数据集,利于模型训练。重新调整输入图像的大小,统一调整为416×416进行训练和检测。
2.2 实验结果
2.2.1 消融及对比实验结果
本文主要使用的是基于YOLO框架的网络,其中应用了以下改进方法:① 使用FoveaBox无锚框检测算法;② 选择CSPDarknet53作为特征提取网络;③ 在特征提取网络上增加GC block;④ 在FPN中应用RFB。为了充分说明各种改进方法对检测的提高,分别进行了消融实验。结果如表1所示。表2为本文方法与YOLOv3和FoveaBox原文网络方法的对比结果。
表1 消融实验结果
表2 对比实验结果
表1和表2中, AP(average precision)为平均精度,通过对精确率-召回率(P-R)曲线图求积分得到。Recall为召回率,FA为虚警率。
(7)
在YOLOv3、FoveaBox和本文方法收敛后,将300次迭代的AP结果进行对比,如图4所示。
图4 AP结果对比图
2.2.2 检测结果
图5是最终改进方法(实验序号6)在SSDD数据集上的检测结果图,图5(a)展示了远海多目标检测结果,图5(b)展示了近海多目标检测结果,图5(c)展示了大尺度目标检测结果。图6是检测过程中出现虚警、漏警情况的结果图,红色框表示虚警,紫色框表示漏警。从以上检测结果图看,基于无锚框的检测方法对各种场景、尺度有较好的适应。
图5 基于本文方法的检测结果
图6 虚警、漏警情况
2.3 实验分析
从表1和表2可以看出,基于YOLO框架的无锚框SAR舰船目标检测方法在SSDD检测中平均精度提高至94.8%,召回率达到96%,相较其他中间过程模型在性能上有一定的提高,与YOLOv3相比平均精度提高了3.8%,模型大小减小了90.1 MB。与FoveaBox原文网络相比平均精度提高3.6%,虚警率降低36.7%。由于增加模块导致检测速度相较YOLOv3和FoveaBox来说有所降低。从图4可以看出,本文提出的方法平均精度值要优于YOLOv3和FoveaBox。
表1中,比较实验1~实验3可知,FoveaBox和FPN的组合可以提高平均精度和召回率,但会导致虚警率略微提高,证明将无锚框应用到SAR图像舰船目标检测是可行的;CSPDarknet53网络可以在原性能上有效减小模型大小,利于网络轻量化设计。对比实验3~实验5可以得出,GC block和RFB都使平均精度、召回率有所降低,GC block主要使虚警率明显降低,贡献了5.2%,RFB贡献了1.7%,说明对于SAR图像来说全局上下文建模更有利于获得更准确的信息。对比实验3和实验6可知,GC block和RFB共同作用于检测算法时,能让平均精度和召回率均提高0.4%,虚警率减少4.5%,比使用其中一种方法取得的效果好。
具体分析图5可知,本文算法在远海多目标、近海多目标和不同尺度的目标检测时,都能够有良好的检测结果,且能够降低干扰的影响,实现对舰船目标的精确识别。图6是产生虚警、漏警的情况图,分析原因可知:在海岛与舰船形状、大小相似时易产生虚警;检测多个相邻舰船目标时,神经网络不易识别具体舰船数量,导致虚警、漏警都易增加;沿海环境复杂且沿海多目标样本较少,会造成漏警增多。
3 结束语
本文基于YOLO框架,把无锚框应用到对SAR图像的舰船目标检测任务中,提高了SAR舰船目标检测的平均精度和召回率。CSPDarknet53特征提取网络可以轻量化整个模型,使模型大小有效降低。把GC block和RFB应用到网络中,可以在保持原有平均精度和召回率的同时提升检测精度,减少虚警,使模型更加可靠,为轻量化提升目标检测性能提供可行方法。 接下来会针对检测速度的问题,继续优化模型,并尝试迁移应用到其他SAR图像舰船数据集上,以提升本文方法的泛化能力。