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

2021-09-29 02:01张佳欣王华力
信号处理 2021年9期
关键词:锚框候选框舰船

张佳欣 王华力

(陆军工程大学通信工程学院, 江苏南京 210007)

1 引言

海上舰船目标的检测与识别是海洋监测的重要任务之一。合成孔径雷达(Synthetic Aperture Radar, SAR)[1]是一种使用主动式微波遥感技术的传感器,相比于光学传感器,具有全天时、全天候、多角度、远距离监测的能力,在海洋救援、海洋执法等民用领域,以及海洋实时监视检测等军事领域都有广泛应用空间[2],同时也是海上舰船目标检测和识别的重要技术。

SAR舰船目标检测通常根据场景的不同分为两类:近岸舰船目标检测和远海舰船目标检测。远海场景背景单一,检测难度相对较低,而近海场景大多处于海陆分割的环境中,背景相对复杂,舰船目标具有多尺度、多形态、排列紧密的特点,目标的检测和识别更加困难。传统的舰船目标检测算法如CFAR(Constant False-Alarm Rate)[3]基于对比度信息的统计模型,根据背景杂波的统计特性选取阈值来实现目标检测,但CFAR存在建模过程复杂,检测耗时较长等问题,且一般只适用于纯海面类的特定场景,在复杂的海陆背景环境下,舰船目标检测的研究进展缓慢。

近年来,学者们开始尝试将基于深度学习的目标检测算法应用于SAR舰船的目标检测[4-5]。基于深度学习的目标检测分为两大类:基于候选区域的目标检测方法,如R-CNN[6-9]系列和基于回归的目标检测方法,如SSD[10]、YOLO[11-14]系列和RetinaNet[15]等。文献[16]中将Fast RCNN应用于SAR图像舰船目标检测中,提出基于生成对抗网络和线上难例挖掘的SAR图像舰船目标检测方法; 文献[17]将SSD检测算法应用到SAR图像舰船目标检测当中,针对SSD检测算法在SAR图像舰船检测中存在鲁棒性差、对小目标检测效果不佳的问题,将融合上下文信息和迁移模型学习技术应用于SSD算法检测中;Hu[18]等针对复杂目标背景下舰船目标检测难题,重新设计残差网络单元,提出了改进特征金字塔网络结构的方法,并引入平衡因子优化损失函数中的小目标权重,并可实现实时SAR目标检测问题;文献[19]提出了一种结合场景分类的分层渐进式近岸区域SAR舰船快速目标检测方法SC-SSD,通过场景分类阶段和目标检测两个阶段在保持较高的检测精度的同时,具有明显更快的检测速度。

为了更好实现SAR图像舰船目标的实时检测,本文选取了兼顾速度和精准度的YOLOv3算法。不同于以前的研究者从改进网络结构的角度优化算法,本文考虑到YOLOv3算法在不同SAR数据集上的适用性,从网络训练策略角度来优化算法,增强算法的鲁棒性和检测的精准度。一方面,针对YOLOv3算法训练过程中正负样本选择方法进行了改进,本文在YOLOv3基础上结合了ATSS正负样本分配策略[20],ATSS是一种根据预测目标的统计特征动态选择正负样本方法,通过选择出更优质的训练样本优化网络的训练过程。另一方面,通过对YOLOv3不同检测层上检测到的目标框分布的分析,本文设计了一个基于检测层的锚框超参数优化策略,细化了锚框的搜索空间,提高了检测效果。

2 算法介绍

2.1 网络结构

YOLOv3算法的关键点是使用Darknet-53特征提取网络和多尺度的FPN(Feature Pyramid Networks)架构[21]。Darknet-53是一个残差模型,因为包含53个卷积层,所以称为Darknet-53,网络使用了残差单元,从而构建更深的网络。另外一点是,YOLOv3使用FPN架构来实现多尺度检测。 FPN通过自上而下的路径和水平连接增强了基础特征的语义表示,并在三个不同尺度的特征层上实现了预测。另外,YOLOv3是基于锚框的目标检测算法,它通过聚类分析数据集,设置了9个锚框,把这9个锚框按照“越大的锚框分配给尺度越小的特征图”的原则平均分配在三个尺度的特征层上,这些锚框作为预测阶段目标所能匹配的候选框参与网络的训练过程。YOLOv3整体的网络结构如图1所示。

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

2.2 损失函数

本文在YOLOv3计算目标检测的边框回归的损失时,引入了GIOU损失函数[22]。原版YOLOv3采用的是独立的计算出边框中心坐标和长宽4个点的损失最终相加得到边框损失,但实际这4点是有一定相关性的,其次实际评价边框检测的指标是使用IOU(IOU为两个框的交并比)这两者是不等价的,故在本文中采用了以GIOU作为边框损失函数的YOLOv3。GIOU的计算很简单,对于两个边界框A、B,可以算出其最小凸集(包围A、B的最小包围框)C。有了最小凸集,就可以计算GIOU,计算如公式(1)

(1)

GIOU损失函数为:

LGIOU=1-GIOU

(2)

在YOLOv3中引入GIOU损失作为边界框的损失后的损失函数如式(3)所示:

(3)

3 算法改进

3.1 基于ATSS算法的正负样本分配策略

YOLOv3算法中采用基于IOU的策略来定义正负样本。IOU即两个边界框的交并比,在目标检测算法中通常作为衡量两个边界框相似程度的重要依据。YOLOv3算法先计算目标对象和多个候选框的IOU,选择最大IOU值对应的候选框作为正样本,再设置IOU阈值,对于IOU小于阈值的候选框全部作为负样本,其他样本不参与loss的计算。以最大IOU值的候选框作为正样本的方法,负样本远远多于正样本,一定程度上造成了正负样本不均衡的问题,从而影响模型的训练效果。为了解决YOLOv3中正负样本不均衡的问题,有研究者设定了IOU阈值来划分正负样本,大于IOU阈值作为正样本,小于IOU阈值的作为负样本,虽然基于IOU阈值的方法对于平衡正负样本具有一定的作用,但IOU阈值作为一个敏感的超参数一旦确定所有样本都将按照这一固定的标准定义正负样本,失去了目标框本身的随机性。特别是较大的目标相比于小目标往往能匹配到更多的正样本,难以维持不同大小目标样本选择的均衡。

文献[20]中研究了基于锚框的目标检测算法和非锚框的目标检测算法在正负样本定义上的差异,提出了ATSS的动态正负样本分配策略,ATSS算法在候选框选取阶段对每个目标框设定独立的IOU阈值,为了使IOU阈值的设定更好的度量正负样本分配的界限,算法中根据候选锚框的统计特性来定义IOU阈值。本文在YOLOv3正负样本定义上使用了ATSS算法的思想,对于每个目标以候选框和真实框之间IOU的均值与方差之和动态调整IOU阈值,从而改善YOLOv3中样本选择存在的正负样本不均衡和不同尺度大小目标样本的不均衡等问题。具体算法的流程为:

(1)对于图像上的每一个真实目标框,首先选择对应的候选正样本。YOLOv3把图分为S×S(三个特征层,输入416×416的图像,S×S分别为13×13、26×26、52×52)的格子,每个格子都设有3个不同尺寸大小的锚框。对于每一个目标,在不同的特征层分别选取目标中心点所在格子的3个锚框作为候选正样本,3个不同大小的特征层总共选择9个锚框作为候选正样本,对于目标g其候选框记为Cg。

(2)计算候选框Cg和真实框g之间的IOU,记为Dg:

Dg=IOU(Cg,g)

(4)

计算Dg的均值,记为mg:

mg=Mean(Dg)

(5)

计算Dg的方差,记为vg:

vg=Var(Dg)

(6)

得到IOU的均值mg和方差vg,通过这些数据统计,设定目标的IOU阈值,记为tg:

tg=mg+vg

(7)

(3)选择和真实框的IOU大于IOU阈值tg的候选框作为最终的正样本,其余作为负样本,即对于c∈Cg,满足IOU(c,g)≥tg的c作为正样本,其余作为负样本。

在ATSS原算法中采用了候选框和目标框IOU的均值与标准差之和作为目标的IOU阈值,但考虑到当IOU数据分布极不稳定等极端情况时,IOU的标准差会相应变大从而影响均值在IOU阈值设定中的作用,导致阈值的无效化,本文用方差代替标准差作为IOU阈值的另一个度量因素,方差在数值上作为标准差的平方,既能保留标准差所代表的数据的离散状况,又能把数值保持在一个可控的范围,在保证IOU阈值有效的同时增强了其稳定性。本文在实验部分别以IOU的中位数、均值、均值加标准差、均值加方差作为IOU的阈值进行了对比实验,验证了改进算法的有效性。

对于决定IOU阈值的两个因素,ATSS算法从以下两个方面解释其意义:一方面,IOU的均值体现了目标候选框整体的质量水平。一个高的均值代表着候选框的整体质量较高,应该提高标准,有一个更高的IOU阈值;一个低的均值代表着大多数的候选框质量较低,应该降低标准,IOU阈值更低。另一方面IOU的方差用来度量FPN的哪一层适合检测该目标。一个高的方差值代表着只有某一个或少数几个层适合检测该目标,在均值上加上高的方差值来获得一个高的阈值从而仅从这一层挑选正样本;一个低的方差值代表着有多个特征层适合检测该目标,在均值上加上一个低的方差值降低其标准,从多层选择正样本。改进的正负样本定义方法以均值和方差之和作为IOU阈值,根据对象的统计特征,从适当的金字塔层为每个目标自适应地选择适当的正负样本。对于不同尺度大小、不同长宽比例的目标,应用ATSS的YOLOv3算法都会根据目标本身的特性选择正负样本,维持了不同目标间的样本选择的平衡。另外,改进的YOLOv3算法中没有增加新的参数,不存在因引入超参数而对模型训练产生影响的问题。

3.2 锚框超参数优化策略

YOLOv3是基于锚框的单阶段目标检测算法,和其他基于锚框的目标检测算法一样,YOLOv3算法在图像上设置密集的锚框,并通过训练网络来预测锚框的分类置信度和位置偏移。其中,锚框的超参数作为算法初始的设置是影响YOLOv3算法训练效果的重要因素。YOLOv3算法通常使用k-means算法对数据集样本的长宽聚类来得到9个锚框超参数,再根据“越大的锚框分配给尺度越小的特征图”的原则分配到三个特征层上,但这种由简单聚类和分配得到超参数可能不是最适合每个检测层的。为了近一步将YOLOv3算法应用与SAR数据集检测目标检测,本文研究了YOLOv3算法中锚框超参数的优化问题。

本文提取了YOLOv3不同检测层上检测到的目标框来探究不同特征层和锚框分配的关系,SSDD数据集[16]在三个不同大小特征层上目标框数据分布如图2所示。

图2 SSDD数据集在三个特征层上目标框分布Fig.2 Target box distribution of SSDD dataset on three feature layers

由图2可以看出,总体上讲,随着自上而下的特征层的变大,特征层所能检测到的目标框的大小越来越集中于更小的目标,同时能检测到的目标尺度的范围也逐渐集中。虽然保持着上述特点,但每个层能检测的目标框的大小很大部分都集中在0~1000和1000~2000范围内,也就是说各层所能检测到的目标大小有很大部分的范围重叠。

因此,单一的按照“越大的锚框分配给尺度越小的特征图”的原则分配锚框可能不是最优的方法,为了使锚框的设定能够更贴近每层检测层的特点,本文设计了新的锚框超参数优化策略。整体的优化过程是基于k-median++聚类[23]算法的,k-median++是针对k-means++的改进算法,主要的改进是用样本的中位数代替均值作为产生新的聚类中心依据,减轻了噪声样本对聚类中心选择的影响,提高了算法鲁棒性。对于k-median++算法中距离的选择,本文采取了YOLO作者提出的基于IOU计算的距离,其公式为:

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

(8)

其中,centroid表示聚类中心,box表示样本,IOU为聚类中心的边界框和样本的边界框的交并比。d越小,则样本边界框和聚类中心边界框的IOU越大,即相似度越高。

锚框超参数优化策略的具体流程为:(1)使用k-median++算法对锚框超参数进行初始化,在初始锚框下使用YOLOv3算法对模型进行训练至网络收敛;(2)在收敛模型的基础上,通过锚框匹配阶段分别提取FPN三个检测层匹配到的目标对象。(3)分别对三个不同大小检测层匹配到的目标进行聚类,得到的聚类中心作为新的锚框参数对应设置在三个不同大小的检测层上,完成超参数的优化。图3中对比了锚框优化前后的锚框和目标框的分布。其中图(a)、(c)、(e)为各层优化前的目标框和锚框的分布,图(b)、(d)、( f )为各层优化后的目标框和锚框的分布。其中,黑色的点为锚框的分布,其他点为各层检测到的目标框的分布,从各层锚框优化的前后对比可以发现,经过优化后的锚框更能代表各层目标框的分布,更适合作为目标边框回归的基准。

图3 锚框优化前后对比图Fig.3 Comparison of anchor boxes before and after optimization

4 实验结果与分析

4.1 实验准备

本文实验环境如表1所示。

表1 实验环境配置表

本文选择目标检测常用的精准率、召回率和F1值作为实验的评价指标。

(9)

(10)

(11)

公式中,TP为把正类预测为正类的样本,FP负类预测为正类的样本,FN为正类预测为负类的样本。

实验采用了海军航空大学李健伟教授等公开的SSDD数据集[16]和中国科学院空天信息研究院数字地球重点实验室研究员王超团队公开的SAR图像船舶检测数据集[4](SAR-Ship-Dataset)。SSDD数据集共有1160张图像和2456舰船目标,每个图像平均有2.12艘船,包括不同分辨率和不同场景的图像。SAR-Ship-Dataset以国产的高分3号SAR数据和Sentinel-1 SAR数据作为主要数据源,共使用高分3号102个场景和Sentinel-1 SAR图像108个场景来构造高分辨率SAR舰船数据集。目前,深度学习样本库包含43819个船舶切片,从中随机选择10955张不同场景的图片进行实验。

4.2 实验过程

实验按照7∶2∶1划分训练集、测试集和验证集。训练时所有实验对输入的图片均采用Mosaic方法进行数据增强,丰富样本数据,提高网络的泛化能力。网络设置每一个batch中包含8张图像,选用Adam优化器,初始学习率为0.01。训练采用迁移学习,在YOLOv3的预训练模型上进行,设置epoch为300,训练过程中会保存最后一次迭代的模型和最优的模型。

4.2.1正负样本分配方法对比实验

为了验证基于ATSS正负样本分配方法的YOLOv3在SAR图像上的目标检测效果,本文设计了基于IOU阈值的YOLOv3算法和基于ATSS的YOLOv3算法的对比实验,这项实验采用了SSDD数据集,以F1值作为评价标准,具体实验结果如表2所示。

表2 不同正负样本分配方法下的实验结果

从表2的实验结果可以看出,基于IOU阈值的YOLOv3算法在检测性能上受到阈值这一超参数的影响很大,而本文基于ATSS的思想的算法中,根据目标与候选框IOU的均值和方差之和作为IOU阈值,在不用考虑超参数影响下达到了最优的结果,证明了其有效性和优越性。另外,在基于ATSS的方法中,以多种IOU的统计特性作为IOU阈值,经过对比实验可以看出,以均值与标准差之和定义IOU阈值的结果较差,分析其原因,可能是由于在IOU标准差较大时,在均值上加上较大的标准差导致IOU阈值过高从而影响正样本的选择,而方差作为标准差的平方,在数值上通常小一个量级,缓解了标准差过大导致阈值失效的问题,故以均值与方差之和定义IOU阈值得到了最优的结果。

4.2.2不同数据集不同场景下的舰船检测结果与分析

本文分别在SSDD数据集和SAR-Ship-Dataset数据集上设计不同改进算法下的实验,并分别验证近岸远海不同场景下的舰船目标检测效果。实验结果如表3所示。

表3 不同数据集不同场景实验结果

由表3可以看出,改进后的YOLOv3模型在SSDD数据集和SAR-Ship-Dataset数据集不同场景下的检测效果都得到了提升,远离陆地的海面场景中检测的F1值都达到了98%和95.8%的较高水平,而对于背景相对复杂的近岸场景,检测的精确率和召回率都有明显的提升,F1值也分别提升了2.9%和2.4%。

进一步分析可以看出,锚框优化方法和ATSS正负样本定义方法均在算法效果的提升上都起到了一定的作用。为了研究锚框优化的作用,实验绘制了锚框优化前后损失函数随迭代次数的变化曲线,如图4所示,其中虚线为原算法损失函数变化曲线,实线为改进后的算法损失函数变化曲线,可以看出,锚框优化后算法的损失函数相比于之前总体上下降了0.2,同时收敛速度变快,结合表3中的实验结果得出,锚框优化方法加快了网络的收敛,平衡了检测的精准率和召回率,使检测效果进一步提升。

图4 损失随迭代次数的变化曲线Fig.4 Variation curve of loss with iteration times

图5为YOLOv3算法在两个不同数据集上的检测效果,其中上一行为真实框,下一行为预测框。由图5可以看出对于两个不同的数据集上的目标检测效果都较好,证明算法具有很好的泛化性和适应性,其中对于复杂场景下尺度不一、形态多变的目标,预测框和真实框都较为吻合,进一步证明了改进算法的有效性,可以使YOLOv3算法更好的应用于SAR目标检测数据集上。

图5 改进模型检测效果Fig.5 Detection results of improved model

4.2.3不同目标检测方法比较

为了进一步验证本文算法的有效性,本文选取了Faster RCNN、SSD、CenterNet方法在更大场景SAR图像数据集AIR-SARShip-1.0上和本文算法做了对比实验。AIR-SARShip-1.0数据集包含 31 景高分三号的多场景SAR 图像,其中场景类型主要涵盖了港口、岛礁和不同级别海况的海面,实验采用滑窗把图像裁剪成500×500的子图,按照7∶2∶1划分训练集测试集和验证集。其实验结果如表4所示,其中mAP为数据集验证集上检测的平均精准度,time为检测耗时。

表4 不同算法对比结果

从实验结果对比可以看出,本文算法在舰船检测平均精准度这一指标中获得了最好的结果,在检测时间上,由于本文算法没有增加网络结构上的参数量,模型的复杂度没有增加,满足原YOLOv3算法的实时检测特点,获得较快的检测速度,从平均精准度和检测时间两个标准上证明了算法的优越性。

图6为本文算法在3000×3000的较大场景图像下的检测效果,其中中间图为真实框的结果,两边的图为检测的结果。从放大区域的检测对比可以看出,对于海面上的较密集分布的目标预测框和真实框较为吻合,对于近岸密集排列的目标,漏检和错检也很少,说明大场景下舰船目标仍有较好的检测效果,进一步证明了改进算法的有效性。

图6 AIR-SARShip-1.0数据集图像检测效果Fig.6 Image detection results of AIR-SARShip-1.0 data set

5 结论

本文在YOLOv3的基础上加入了ATSS正负样本定义方法和锚框优化方法,在不改变模型网络框架的情况下从模型训练优化的方向改进,不增加模型复杂度和检测时间的同时提高模型在SAR图像舰船目标检测上的检测效果,并在公开数据集上实验验证,对于近岸和远海不同场景下的目标检测虚警率和漏检率都明显下降,说明了本文改进算法的有效性。但近岸复杂场景下的舰船目标的检测效果仍然有很大的提升空间,这也是需要进一步研究的方向。另外,由于本算法没有网络结构上的改变,可以在此本文算法的基础上改进网络结构进行下一步的优化。

猜你喜欢
锚框候选框舰船
基于YOLOv3锚框优化的侧扫声呐图像目标检测
舰船通信中的噪声消除研究
锚框策略匹配的SSD飞机遥感图像目标检测
基于SSD算法的轻量化仪器表盘检测算法*
重定位非极大值抑制算法
基于GA-RoI Transformer的遥感图像任意方向目标检测
面向自然场景文本检测的改进NMS算法
舰船测风传感器安装位置数值仿真
基于深度学习的重叠人脸检测
一种针对特定目标的提议算法