APP下载

改进YOLOv3-SPP的SAR图像舰船目标检测

2024-01-05黄强王钰宁刘晓霞胡云冰

遥感信息 2023年5期
关键词:舰船尺度像素

黄强,王钰宁,刘晓霞,胡云冰

(1.吉利学院 智能科技学院,成都 641423;2.四川水利职业技术学院 信息工程学院,四川 崇州 611231;3.厦门大学 信息学院,福建 厦门 361005)

0 引言

遥感技术在近些年得到深入发展,对于沿海国家来说,借助遥感图像实现舰船检测已经成为重要的任务。合成孔径雷达(synthetic aperture radar,SAR)是一种高分辨率成像雷达,作为主动微波成像传感器,与光学遥感相比,SAR数据成像过程受环境因素影响较少,例如天气、光线和云层,适应性很强,它能在全天候、全天时的情况下进行工作[1]。随着机载和星载SAR的快速发展,SAR已广泛应用于民用和军用领域[2]。合成孔径雷达图像中的舰船目标检测已经成为世界各国的研究热点,在民用和军事上具有重要意义,例如民用领域中的海洋监测和军事领域中的精确制导武器等。

在初始阶段,大多采用传统的半自动化方法进行SAR图像舰船目标检测研究。国内外的研究者在传统方法上进行了大量研究,提出了恒虚警率(constant false-alarm rate,CFAR)算法,并以此为基础,设计了基于K分布的CFAR方法,还有研究者提出了模板匹配和小波变换等方法来检测舰船目标。然而这些传统方法存在建模过程复杂、依赖度高、泛化效果不佳和检测精度低、检测时间较长等问题。

近年来随着深度学习技术在不同领域的快速发展,卷积神经网络(convolutional neural networks,CNN)凭借其强大的自动特征提取和表达能力,在计算机视觉领域取得了显著的成功。与传统的恒虚警率算法相比,基于深度学习的舰船检测算法不需要复杂的建模过程,这推动SAR图像舰船检测从半自动进入了全自动,在未来对于雷达智能感知来说意义重大。因此引起了学者们相当大的研究兴趣[3-4]。目前已有很多学者在这方面进行了研究。

李健伟等[5]提出基于改进Faster R-CNN的模型,检测精度达到了78.8%。苏娟等[6]提出了基于SSD思想改进型的模型,精度可达88.1%。Jiao等[7]提出基于Faster R-CNN框架的紧密连接的多尺度神经网络,该方法利用密集连接的网络作为其主干来检测舰船目标。Kang等[8]提出了一个基于区域的CNN,将上下文信息和浅层定位特征与深层语义特征结合起来,以提高舰船目标定位的准确性。顾佼佼等[9]重新设计Faster R-CNN中锚框的大小和个数,来解决重复进行目标检测的问题。张佳欣等[10]从网络训练策略角度出发,提出了一种改进YOLOv3的SAR图像舰船目标检测方法,来提升对不同舰船目标的适应性。张晓玲等[11]借助YOLO网络建立了深度可分离卷积网络(depthwise separable convolution),并将空间注意力机制和通道相结合来提升检测精度。

相比于二阶段检测算法,YOLOv3规模更小,实时性更佳,易于在移动端部署。同时与YOLOv4/YOLOv5算法相比,YOLOv3算法与它们在核心思想上基本相同,但参数量更少,运算速度更快。YOLOv3-SPP兼顾了速度和精度,具有训练效率高的特点,对检测多尺度目标具有优势,能适应复杂场景,同时检测性能较YOLOv3更好,能达到一个更好的检测效果。但YOLOv3-SPP仍然不足以处理尺度差异大、小目标居多的SAR图像。针对以上分析,于是选择在YOLOv3-SPP基础上进行改进。首先在主干特征提取网络Darknet-53中的第二次下采样层中输出一个104×104的尺度预测,并将13×13、26×26、52×51、104×104这4个尺度进行一个紧密连接。然后结合SAR舰船数据特点,用K-median++算法重新聚类生成合适的anchor值。最后对改进前后的方法在SAR图像舰船数据集AIR-SARShip-1.0和SSDD上进行对比实验。

1 YOLOv3-SPP算法

基于卷积神经网络的目标检测领域主要分为两类。一类是基于候选区域的检测方法,也称两阶段方法;另一类是基于回归思想的一阶段方法。两阶段方法具有较高的精度,但计算成本较大、实时性不佳。相反,一阶段方法具有训练快速、简单的特点,在速度上具有绝对优势。

YOLOv3作为典型的一阶段目标检测模型,其网络结构中主要包含两部分内容,一部分是主干网络Darknet-53,用于提取输入数据的特征,并输出13×13、26×26、52×52这3个预测特征图;另一部分是对提取到的特征进行分类与预测回归的检测网络(feature pyramid network,FPN)[14],对3个尺度进行一个特征融合,增强各特征的语义表示。FPN通过Anchor机制在输出的3个特征图上分配9个尺度的先验框,用于优化网络。模型输出的3个尺度的特征图张量会按照尺度被划分成多个栅格,并最终通过置信度阈值和非极大值抑制(NMS)算法对网络输出进行滤波,得到最终检测结果。

在YOLOv3中第一个检测头前的第5、第6层卷积之间添加一个SPP[15]模块(空间金字塔池化结构)就构成了YOLOv3-SPP。这能将局部特征和全局特征在特征图级别上加以融合,提升最终特征图的表达能力,从而提高检测识别效果。空间金字塔池化模块如图1所示,由4个并行分支组成,3个最大池化层和一个跳跃连接,这样可以将一张图片的多方面特征进行提取。YOLOv3-SPP整体结构如图2所示。

图1 空间金字塔池化模块图

2 改进YOLOv3-SPP检测算法

YOLOv3-SPP的网络结构以及由传统聚类算法生成的锚框并不适合用来检测SAR图像舰船目标。因此本文对模型的结构进行改进并使用新的聚类算法(K-median++)来重新生成适合于舰船特征的anchor值,来共同提升模型的检测性能。

2.1 改进YOLOv3-SPP网络模型

在YOLOv3-SPP的主干特征提取网络Darknet-53中,通过不断的卷积下采样来扩大感受野,最终输出3个尺度的特征图。通过特征金子塔网络结构(feature pyramid network,FPN)将这3个尺度进行特征融合,特征金字塔网络如图3所示。

而在深度卷积神经网络中,低层卷积层的特征图含有丰富的空间信息,但是语义信息较少,高层的特征图含有较多的语义信息但是空间信息较少,而且尺度较小的目标在通过多层卷积之后,特征图中的空间信息丢失严重,这样不利于对小尺度目标的检测。

(1)燃气轮机属于旋转叶轮式流体机械,通过压气机将空气逐级增压,送到燃烧室与喷入的燃气混合燃烧生成高温高压的气体,并在透平中膨胀做功,带动发电机转子高速旋转,其发电效率约20~38%。采用燃气-蒸汽联合循环,将燃气轮机的烟气引入余热锅炉,产生蒸汽带动汽轮机后,发电效率可提高到约50%。燃气轮机的余热形式为烟气,烟气温度400~650℃。余热利用可考虑回收烟气用来制冷,烟气也可以进余热锅炉产生蒸汽再供热或制冷。

合成孔径雷达一般安装在星载或机载平台上,由于远距离成像导致SAR图像中存在大量小目标或者点目标,点目标包含很少的特征信息。YOLOv3-SPP标准输入图像分辨率为416像素×416像素,尺度为13×13、26×26、52×52的特征层的下采样步长分别为32、16、8。那么理论上能检测到的舰船目标最小分辨率为8像素×8像素。然而以SSDD[16]数据集为例,当网络输入尺寸统一设为416时,会有5.4%的目标存在漏检风险[17]。为了充分利用浅层特征中包含的小目标信息,增加网络对小目标的敏感度,因此在YOLOv3-SPP的FPN模块中增加104×104的尺度来提升对小目标的检测性能,并最终形成4个尺度的目标预测网络。

同时有效整合语义信息和空间信息对于多尺度目标检测至关重要。传统的特征金字塔(FPN)虽然能很好地兼顾底层特征图和高层特征图,并能很好地胜任自然图像中的图像分割与目标检测等任务,但由于SAR图像是微波遥感图像,信息量更少,加之在图像中舰船尺度变化更大,为了进一步提高对多尺度目标检测能力,设计了一个紧密连接的特征金子塔网络,用于融合不同层次特征来增强每个尺度的语义信息。13×13的尺度不仅和26×26的尺度进行融合,也分别与52×52、104×104的尺度进行融合。26×26的尺度不仅和52×52的尺度进行融合,也同时和104×104的尺度进行融合。综上所述,改进前后的FPN模块如图4、图5所示。

图5 改进后FPN模块

2.2 K-median++聚类anchor

对于目标检测任务,如果直接通过网络模型预测目标边界框的尺寸,会对梯度的稳定性造成影响[18],那么就引入了anchor机制。anchor最早是在Faster R-CNN中提出的。anchor (锚框)[19]是从原有训练数据集中的所有真实框中根据一定方法(一般常用的是无监督聚类K-means[20])统计出来的出现可能性比较高的形状和尺寸。在检测模型进行训练时,就可以将之前统计出来的数据当作先验引入到模型中,相当于对检测的对象加了一个范围约束,这样就可以避免盲猜,检测过程就变为了求anchor与真实框的偏移,从而加速检测模型快速收敛,提升检测效果。anchor框如图6所示。

图6 anchor框

在原始的YOLOv3-SPP模型中,使用的anchor的值是根据VOC数据得来,VOC数据集是目标检测领域中通用标准化数据集。VOC数据集中大目标有bus、bicycle,小目标有bird、cat。原始anchor分布如表1所示。YOLOv3-SPP模型中会提取出3个尺度特征,每个尺度上都有3个anchor,那么就有9组anchor值。13×13预测大目标,26×26预测中等目标,52×52预测小目标。

表1 anchor参数分布

而对于特定的数据集,尤其是SAR数据来说,之前的部分anchor设置就不太合理,因为在成像视角上,常规数据集是水平拍摄的光学图像,而SAR图像是从上到下,边框的形状会受到目标姿态的影响。SAR图像数据集的边框尺寸分布与通用数据集存在较大差异。本文将SAR图像舰船数据集SARShip、SSDD目标尺寸进行可视化,可视化分布如图7、图8所示,横坐标为宽,纵坐标为高。从图中可见大部分舰船目标的尺度集中在0.2×0.2,且聚集紧密,说明SAR舰船数据集中以小目标为主,另外存在少数离群点。

图7 SARShip数据集可视化

因此对于SAR数据,需重新生成合适的anchor值,使anchor值设定能符合每个检测层的特点。在原始YOLOv3中使用的是K-means聚类算法进行锚框聚类,在K-means算法中需要不断地更换聚类中心,通过平均值来重新计算每个簇群的中心。当数据呈现出紧密聚集且存在明显离散点的特点时,使用平均值确定聚类中心会让处于离散点簇的中心不稳定,很容易受噪声点的影响。另外,在K-means算法中,需要人为进行初始聚类中心的选择,聚类效果很容易受到初始聚类中心的影响。K-means++[21]是对K-means聚类算法的改进,能解决初始聚类中心选择对聚类结果的影响[22]。K-median算法是在K-means的基础上,将聚类中心值的选择由均值变成了中位数,这能很好避免离散点对聚类结果的影响。因此可以采用融合了二者优点的K-median++进行锚框的设定。K-median++聚类步骤如下。

K-median++算法重新设定锚框(anchor)步骤1:从所有样本目标框中随机选取一个当作初始聚类中心。步骤2:求出每一个样本与当前已经存在的聚类中心的最短距离,设为D,并计算此样本被选为下一个聚类中心的概率,设为式(1)。p=D(x)2∑x∈XD(x)2(1)步骤3:采用轮盘法得出下一个聚类中心,然后重新计算每一个样本目标框与已有聚类中心的距离。由于存在多个聚类中心,所以会存在多个距离,选取最小的距离,同时更新概率p(x)。步骤4:重复步骤2和步骤3,得出需要的k个初始anchor。步骤5:计算每一个样本和已经选出的k个初始an-chor之间的距离,将该样本点归到距离最小的类中。步骤6:更新聚类中心。用该类中样本的中位数代替均值作为新的聚类中心。步骤7:重复步骤5和步骤6,直到所有的anchor值不再改变。

在传统的K-means算法中,两个样本之间的距离用的是欧式距离,这会造成大的边界框比小的边界框产生更多损失误差。为此采用YOLO作者提出的新的距离公式,如式(2)所示。

d(box,centroid)=1-IoU(box,centroid)

(2)

式中:box为各anchor box;centroid是当前簇群的聚类中心;IoU(box,centroid)为anchor和当前聚类中心的交并比。IoU的计算如式(3)所示。

(3)

对数据集进行预处理之后,用K-means和K-median++进行聚类实验,并用meanIoU进行评价。对比结果如图9所示。

图9 聚类实验对比

从图中可以看出,随着迭代次数增加,K-median++的meanIoU总是高于K-means的meanIoU,说明在此种场景下,K-median++优于K-means,更适合进行锚框聚类,能获得更合理的anchor参数。

3 实验及结果分析

为了验证本文提出方法的有效性,将改进前后的YOLOv3-SPP算法进行对比实验,用P(准确率)、R(召回率)、mAP(平均检测精度)、FPS(每秒检测图片数)进行评价。

3.1 实验数据及实验平台

本文使用的合成孔径雷达图像舰船数据集是AIR-SARShip-1.0和SSDD。AIR-SARShip-1.0(高分辨SAR舰船)包含31景大图,按照PASCAL VOC的格式对数据集进行标注,标注信息经过相关专业人员核准,数据集版权归中国科学院空天信息创新研究院所有。场景中包含的类型有岛礁、不同级别海况的海面、港口等,背景涵盖近岸和远海等多种场景。按照2∶1的比例将该数据集划分为训练集和测试集。SSDD数据集由海军航空大学公开,其分辨率的范围在1~15 m之间,包含不同尺度、海况、传感器类型等条件下的舰船SAR图像,总共有1 160张图片和2 456个舰船目标。每张图片平均有2.12只船。按照4∶1比例将该数据集划分为训练集和测试集。将对应的.xml标注文件转换为相应的.txt标注文件。

本研究的硬件实验平台是CPU Intel(R) Xeon(R) Silver 4110 CPU @ 2.10 GHz,GPU GeForce GTX 2080Ti 11 G显卡。软件平台是Ubuntu 16.04,Pytorch 1.8.1,CUDA11.1。

3.2 模型训练及评价指标

分别训练YOLOv3-SPP和改进后YOLOv3-SPP。在训练之前,需要根据K-median++算法重新聚类anchor。由于FPN改进前输出的是3个尺度,每个尺度有3个不同的anchor,需要生成9个anchor值。FPN改进后输出的是4个尺度,需要生成12个anchor值。将生成的anchor加入到配置文件中。输入图像尺寸统一设为416像素×416像素。在训练过程中,每个batch设为16,最大迭代次数epoch设为100。训练的优化器采用SGD,momentum设为0.9,初始学习率为0.002 3。训练过程中学习率动态改变,在进行总epoch的70%时,进行以0.1的学习率衰减,在进行总epoch的90%时,进行以0.01的学习率衰减。在模型测试时,IoU设为0.5,conf设为0.001。用单张图片进行测试。

3.3 实验结果及分析

1)改进YOLOv3-SPP对比实验。对YOLOv3-SPP进行K-median++聚类,将模型命名为(YOLOv3-SPP-A);将改进FPN结构后的模型命名为(YOLOv3-SPP-B);以及进行上述两方面改进后的模型命名为(YOLOv3-SPP-C)。然后分别在AIR-SARShip-1.0数据集和SSDD数据集上进行训练和测试,做了4组实验。第1组为原始YOLOv3-SPP模型的实验情况,第2组为K-median++聚类后模型的实验情况,第3组是改进FPN结构后模型的实验情况,第4组是所提模型的实验情况。逐步改进的实验结果如表2、表3所示。

表2 模型在AIR-SARShip上结果比较

表3 模型在SSDD上结果比较

从实验结果表2和表3中可以看出,改进后的YOLOv3-SPP在AIR-SARShip、SSDD数据集上的检测效果均比原始模型有所提高。其中YOLOv3-SPP-A的mAP分别提升了1.3%、1.4%,表明通过K-median++算法进行anchor聚类,由于克服了离群点和初始聚类中心对检测结果的影响,相比原始的K-means聚类,降低了漏检率,提升了模型的检测能力。同时因为模型网络结构没有改变,FPS没有发生变化。YOLOv3-SPP-B的mAP分别提升了1.6%、2.4%,表明大尺度的预测能更好地利用浅层特征的位置信息来提升对小目标的检测性能,对不同深度的特征进行融合提升了对不同尺度目标的检测能力。同时由于模型从原来的3个尺度变为了4个尺度,模型结构发生了改变,导致计算量增加,FPS会有所下降。融合了两种改进的YOLOv3-SPP-C的mAP分别提升了3.2%、4.4%,效果在4种模型中最好,虽然检测速度FPS有所下降,但仍然能满足较高的实时性。

2)不同图片尺寸的改进YOLOv3-SPP实验。为了验证算法改进的有效性,将输入的SAR图像的尺寸分别设为416像素×416像素、512像素×512像素、1 024像素×1 024像素,将原模型YOLOv3-SPP与改进后的模型(YOLOv3-SPP-C)进行实验对比。测试数据集包含232张图片,涵盖有500个舰船目标,实验结果如表4所示。

表4 不同图片尺寸的检测效果

从表4中数据可以看出,在图像输入尺寸为416像素×416像素、512像素×512像素、1 024像素×1 024像素时,改进后的模型与原模型相比,mAP分别提高了0.032、0.026、0.024。由于输入图片尺寸增大,检测速度FPS有所降低,但在416像素×416像素和512像素×512像素时,依然能满足较高的检测实时性。

3)改进算法与其他算法对比。为了进一步验证改进算法的有效性,将输入图片的尺寸统一设为416像素×416像素,在AIR-SARShip-1.0数据集上对改进后的算法与DCENN[23]、Faster-RCNN[24]、SSD[25]、YOLOv3、CenterNet等经典检测算法进行对比实验,另外引入了YOLO的最新系列(YOLOv4、YOLOv5、YOLOX)进行对照,实验结果如表5所示。

表5 不同算法检测结果对比

从表5可以看出,在检测精度上,本文提出方法的精度达到了0.905,超过了上述其他检测方法,在检测速度上低于YOLO系列。与YOLO系列中的最新YOLOv4、YOLOv5、YOLOX相比,本文提出的方法虽然在检测速度上不如他们,但检测的精度更高。实验结果表明,本文提出的方法在较好的实时性的情况下具有更好的检测效果。

4) SAR图像舰船检测结果。图10展示了本文改进后的模型分别在AIR-SARShip-1.0数据集中的3种场景下的部分检测结果。左边(红色)是真实目标舰船存在的情况,中间(黄色)是YOLOv3-SPP的检测结果,右边(蓝色)是改进模型的检测结果。图10(a)展示了复杂近岸目标的检测情况,图10(b)展示了远海不同尺寸目标的检测情况,图10(c)展示了远海小目标的检测情况。可以看出,在检测近岸目标时,受到复杂背景的干扰,原模型存在漏检的情况,而改进后的模型正确检测出了停在岸边的舰船目标;在检测远海不同尺寸的目标时,原模型忽略了一些较小目标,而改进后的模型能很好地检测出不同尺度目标;在检测远海小目标时,原模型漏检了目标舰船,而改进后的模型对小目标具有很好的检测效果。

图10 改进方法在AIR-SARShip数据集上检测情况

4 结束语

针对SAR图像舰船目标尺度差异大、小目标偏多的问题,本文提出了改进的YOLOv3-SPP的检测算法,在保证较高的实时性的情况下,提升了对SAR图像舰船目标的检测精度,与其他算法相比证明了该算法的有效性。这为SAR数据场景下的实时舰船目标检测提供了新的解决思路,为机载SAR或星载SAR的快速目标检测奠定了理论基础。但同时,本文的算法在检测近岸复杂背景下的舰船目标时,依然存在虚警率较高的问题,说明对近岸目标的检测还存在一定的提升空间。另外,该算法在体积大小上略显冗余,在实时性上还有提升价值。为方便模型在未来实际场景中的部署,下一步工作将模型规模与检测精度相统一,探讨如何在保证精度不丢失情况下对模型进行轻量化。

猜你喜欢

舰船尺度像素
赵运哲作品
舰船通信中的噪声消除研究
像素前线之“幻影”2000
舰船测风传感器安装位置数值仿真
财产的五大尺度和五重应对
“像素”仙人掌
宇宙的尺度
高像素不是全部
舰船腐蚀预防与控制系统工程
9