1. 引言
作为海上的主要运输载体,船舶在领土安全、经济发展和环境保护方面具有重要意义[1] [2]。随着遥感技术的发展,利用光学遥感图像对小型船舶进行连续、准确的监测已被应用于渔业管理和军事安全领域[3]。受遥感图像分辨率的限制,在光学遥感图像上准确探测小型渔船和货船是一项具有挑战性的任务。
为了检测光学遥感图像上的小型船舶,学者们提出了一些方法,这些方法大致可分为基于图像处理的方法和基于深度学习模型的方法[4] [5]。基于图像处理的方法通常通过水体和船舶目标的灰度统计特征来提取船舶目标[6] [7],这些方法一般在简单场景下表现良好。然而,当船舶和复杂背景具有相似的几何、灰度和纹理特征时,这些方法的精度可能会降低,尤其是对于具有海杂波、云层、波浪干扰和复杂近海岸区域的海面图像。
随着卷积神经网络(Convolutional Neural Network, CNN)技术的出现,基于深度学习的方法在船舶检测方面取得了显著效果[4] [8]。由于这些方法具有强大的深度特征提取和组合能力,可以表示大规模数据中复杂的非线性关系,能够达到更高的检测精度,已成为船舶检测的主流方法。深度学习方法有两类,即单级检测器和两级检测器。它们之间的区别在于是否生成提案区域作为中间结果。作为一种经典且流行的两阶段检测器,更快的RCNN (Region-CNN)已被广泛应用于船舶检测,检测精度较高;但它在使用区域提议网络生成感兴趣区域和合并提议边界框时,会产生较高的计算成本。在单级检测器方面,具有代表性的有单发多箱检测器(Single-Shotmulti-box Detector, SSD)、只看一次检测器(You Only Look Once, YOLO)和Efficient Det,与两级检测器相比,这些单级检测器速度更快,常用于光学遥感图像上的船舶检测。然而,由于光学遥感图像中的像素数量较少,且受到复杂背景的干扰,准确检测小型船只仍是一项具有挑战性的任务。
针对复杂环境下小型船舶精准遥感识别的需求,本文提出了一种改进的YOLOv5s,用于提升小型船舶光学遥感智能识别的模型与算法性能。其主要改进包括:在模型顶端添加了浅层特征图的检测层,在颈部采用了跳过连接,以提高小型船只的检测精度;提出了一种新颖有效的混合空间金字塔池化(HybridSpatial Pyramid Pooling, HSPP),使模型能够聚焦于小船区域;在骨干网中采用坐标注意力(Coordinate Attention, CA)机制来增强小型船只的表征,并使用EIOU作为边界框回归的损失函数,以提高所提模型的船只定位精度;以及应用K-means++算法获得更合理的小型船舶检测锚点。
为验证本研究提出的模型和算法,本研究构建了一个光学遥感图像多尺度小型数据集(OSSD),并引入公开船舶数据集LEVIR-Ship,结合同类既有模型开展了比较分析和性能评测。
2. 数据集
针对复杂背景下的小型船舶识别的检测实验,本文构建了一个基于光学遥感图像的多尺度船舶数据集(OSSD)。该数据集由不同成像条件下的25幅2万 × 2万像素图像组成,分辨率为5米,地面实况由遥感专家标注。这些图像具有多尺度的船舶和复杂的背景,如近岸、远海和港区,非常适合用作小型船舶检测的数据集。为了丰富学习体验并降低模型的计算成本,将原始遥感图像直接剪切成若干大小为512 × 512像素的子图像。包含船只的图像被选为正样本(Positive Sample, PS),并进行扩增以增加样本量。数据增强包括改变亮度、添加噪点、旋转、镜像、模糊等操作,以及对图像进行上述操作的组合[9]。
Figure 1. Samples of vessels from the OSSD
图1. 来自OSSD中的船只样本
通过数据增强,一张图像可以增强为42张图像。由于数据扩增可能会降低某些PS的质量,因此有必要从数据集中剔除质量较差的图像(如严重曝光或严重模糊的图像)。最后,选择一些没有船只的图像作为负样本(Negative Sample, NS),以丰富数据集的多样性,从而减少训练中样本的不平衡。图1显示了OSSD中的一些样本图像,其中包含小型船只的区域用红色矩形框标出。OSSD中的船只具有多尺度特征,既有明显的中型船只,也有许多小型船只。
OSSD包含10,133幅图像,分别包括6092个PS和4041个NS。OSSD中舰船的宽度/高度分布如图2(b)所示。OSSD中的舰船像素尺寸大多低于40 × 40,集中在10 × 10或20 × 20左右。OSSD中的许多船只都非常小,这给检测网络带来了很大的挑战。
为了验证所提模型的有效性,本研究不仅在OSSD上进行了模型对比实验,还在公开的船舶数据集LEVIR-Ship (https://github-com-s.era.lib.swjtu.edu.cn:443/WindVChen/DRENet) [10]上进行了实验。LEVIR-Ship专注于空间分辨率较低的小型船舶检测,其船舶像素尺寸几乎低于20 × 20,且集中在10 × 10左右,如图2(a)。由于LEVIR-Ship中的图像是由多台摄像机在不同时间和地点拍摄的,船舶周围的背景十分复杂,这给LEVIR-Ship的船舶精确检测带来了严峻的挑战。
Figure 2. Ship-scale statistics in (a) LEVIR-Ship and (b) OSSD
图2. (a) LEVIR-Ship和(b) OSSD 中的船舶尺度统计
3. 方法
YOLOv5是一款经典且广受欢迎的单级检测器,在许多物体检测任务中都具有精度高、速度快的特点。YOLOv5模型分别由输入、骨干、颈部和头部四部分组成。在YOLOv5的各个版本(如YOLOv5m、YOLOv5l和YOLOv5x)中,YOLOv5s的体积一般要小得多,但在某些情况下可能会导致精度降低。由于YOLOv5s在精度、大小和速度之间的权衡较为有利,本文选择YOLOv5s作为优化的基准模型。
Figure 3. Structure of the improved YOLOv5
图3. 改进型 YOLOv5 的结构
针对这些模型在光学遥感图像小型船舶探测方面的局限性,本研究对原始YOLOv5s做了以下改进。首先,本研究改进了YOLOv5s的头部,增加了带有浅层特征图的检测层。在颈部引入跳转连接,以进一步缩短低层和高层之间的信息路径,并加强整个特征层的特征融合。其次,设计了具有平均池化和最大池化功能的新型HSPP,以融合输入特征图的局部和全局信息。此外,在YOLOv5s的骨干中采用了CA模块,并用EIOU损失函数替换了CIOU,以提高所提模型的船舶检测定位精度。最后,利用K-means++算法获得更合理的小型船舶检测锚点。改进后的YOLOv5s结构如图3所示。
3.1. 改进后的YOLOv5s头颈部(IPNH)
YOLOv5s的头部由三个不同尺度的检测层组成,负责通过接收颈部的多个聚合特征图来推断目标边界框和进行分类。一般来说,具有高分辨率特征图的大规模检测层用于检测小型目标,而具有低分辨率特征图的小规模检测层用于检测大型目标。YOLOv5s的颈部和头部结构如图4(a)所示。模型的检测性能与信息在模型中的传播方式密切相关。YOLOv5s采用特征金字塔网络(Feature Pyramid Networks, FPN) [11]和路径聚合网络(Path Aggregation Network, PAN) [12]来传递多尺度特征图之间的语义信息和空间信息。YOLOv5s颈部的FPN包含三条路径(图4(a)):自下而上、自上而下和横向连接,其中FPN中带有横向连接的自上而下路径用于传播语义信息,并将高层特征图与低层特征图进行融合。PAN是一个基于FPN的自下而上的模块,将低级空间信息传输到高级特征图。
受BiFPN [13]的启发,本研究重新设计了用于光学遥感图像上小型船舶检测的颈部和头部(图4(b))。首先,为了进一步缩短颈部低层和高层之间的信息路径,加强整个特征层次的特征融合,本研究在颈部引入了跳接。BiFPN中的跳转连接采用了加权融合方法,并将特征相加。然而,本研究通过对比实验发现,加权特征融合在某些时候可能会损害模型在检测小型船只时的性能。因此,在本研究提出的模型中,跳过连接,不对特征进行加权串联。考虑到模型的检测性能和计算开销,本研究分别在L2到N2和L3到N3之间添加了跳过连接(图4(b))。由于较大尺度的检测层一般会提高小型物体的检测性能,因此本研究在头部添加了一个浅层特征图的检测层,以提高小型船只的检测精度,其中特征图的大小为160 × 160像素。
Figure 4. (a) Original image and (b) modified neck and head structures
图4. (a) 原始图像和(b) 改进后的颈部和头部结构
3.2. 混合空间金字塔集合(HSPP)
本文提出了一种HSPP来取代空间金字塔池化(Spatial Pyramid Pooling, SPP) [14],并融合特征图中的局部和全局信息。如图5所示,对大小为512 × 20 × 20的输入F0特征图进行1 × 1卷积层处理,生成大小为256 × 20 × 20的F1 (F0、F1、F2、F3、F4、F5和F6表示特征图)。然后,使用全局平均池化(kernel_size = 5, stride = 1, padding = 2)生成F2,并对F2进行两个并行的全局最大池化(kernel_size = 9, stride = 1, padding = 4)和(kernel_size = 13, stride = 1, padding = 6),分别得到F3和F4。将比例为256 × 20 × 20的F1、F2、F3和F4连接起来,得到比例为1024 × 20 × 20的F5。最后,对F5应用1 × 1卷积,生成与输入特征图比例相同的输出F6。
HSPP对不同尺度的特征图进行连续汇集,从而获得船舶的多尺度信息。与SPP相比,通过使用平均池化和最大池化相结合的方法,所提出的HSPP能更好地融合局部特征信息和全局特征信息。如图6所示,在HSPP的特征图中,船舶的边缘信息和特征更加清晰和丰富,这使得模型能够聚焦于船舶区域。这一改进提高了模型识别小型船舶的准确率,同时又不会显著增加计算开销。
3.3. CA、EIOU和K-Means++算法
CA被设计为一种新颖高效的注意力机制,有助于更准确地检测感兴趣的对象[15]。CA可以在不产生大量计算开销的情况下,通过关注大面积区域来增强YOLOv5的性能。本研究在YOLOv5的主干系统中部署了CA模块,以增强模型的表示能力和小型船舶检测的准确性。
虽然CIOU考虑了重叠区域、中心点距离和长宽比,但CIOU的惩罚项仅反映了长宽比的差异,这可能导致预测边界框与地面实况边界框之间存在较大差异。本研究选择高效EIOU [16]作为边界框回归的损失函数,它可以使本研究的模型收敛更快,定位更好。EIOU直接考虑了预测框与地面实况框的宽度和高度之间的关系,同时保留了CIOU的优点。
Figure 5. Structure of the HSPP
图5. HSPP的结构
YOLOv5s的原始锚点适用于COCO数据集,在检测小型船舶时需要改进。与K-means相比,采用简单随机播种技术的K-means++不仅提高了速度,也提高了准确性,而且往往有相当大的提高[17]。本研究分别在OSSD和LEVIR-Ship上运行K-means++聚类,以自动找到小型船舶检测的合理性锚点。YOLOv5s中有3个检测层,所提出的模型中有4个检测层,每个检测层需要3个锚,因此本研究将k分别设为9和12。如图7所示,本研究分别对OSSD和LEVIR-Ship进行聚类,得到的9个锚点用于YOLOv5s,12个锚点用于所提出模型。
Figure 6. Feature map visualization of SPP and HSPP outputs (a) Inputs, (b) SPP, (c) HSPP
图6. SPP和HSPP 输出的特征图可视化(a) 输入,(b) SPP,(c) HSPP
Figure 7. Results of clustering with K-means++ on (a) LEVIR-Ship and (b) on OSSD
图7. 在(a) LEVIR-Ship和(b) 在OSSD上用 K-means++进行聚类的结果
4. 实验结果
实验首先进行了消融实验,以评估和分析所提出的模块。然后,为了评估所提模型的有效性,本研究分别在LEVIR-Ship和OSSD上比较了本研究的模型和一些流行模型的性能,包括经典模型(FasterR-CNN、SSD、EfficientDet和YOLOv5)和较新的模型(YOLOX、YOLOv7和DRENet [10])。
Table 1. Division of LEVIR-Ship and OSSD
表1. LEVIR-Ship和OSSD数据集划分
数据集 |
训练集 |
验证集 |
测试集 |
总和 |
LEVIR-Ship |
2454 |
273 |
1169 |
3896 |
OSSD |
6383 |
710 |
3040 |
10,133 |
如表1所示,本研究按照合理的比例(训练集:测试集 = 7:3和训练集:验证集 = 9:1)分别随机划分了LEVIR-Ship或OSSD。实验机器的操作系统版本为Windows10,GPU型号为NVIDIAGeForceRTX3070,显存大小为8 GB,内存大小为31.7 GB。对比实验中使用的指标是精确度(P)、召回率(R)、AP和每秒帧数(FPS),其定义如下:
(1)
(2)
(3)
其中,TP、FP和FN分别是正确探测船、错误探测船和漏探测船的数量,AP是PR曲线所覆盖区域的值。
4.1. 消融实验
本研究在OSSD上进行了消融实验,以评估所提模块的有效性。所有模型都进行了300次历时训练,如表2所示,在YOLOv5s主干网的SPP层后面添加CA模块后,精确度提高了1.95%,表明CA的有效性。将YOLOv5s中的边界框损失函数从CIOU替换为EIOU后,AP提高了88.33%。本研究用K-means++ (Km++)对OSSD进行聚类,然后修改YOLOv5s中的锚点,AP增加到87.81%。用HSPP取代YOLOv5s中的SPP可使AP提高3.68%。IPNH可以加强整个特征层次的特征融合,增加模型检测尺度的多样性,从而使AP提高5.04%。
Table 2. Results of ablation experiments
表2. 消融实验结果
YOLOv5 |
CA |
EIOU |
Km++ |
HSPP |
IPNH |
P |
R |
AP |
√ |
|
|
|
|
|
93.65 |
87.78 |
87.36 |
√ |
√ |
|
|
|
|
95.60 |
88.02 |
87.59 |
√ |
|
√ |
|
|
|
94.30 |
88.66 |
88.33 |
√ |
|
|
√ |
|
|
94.84 |
88.18 |
87.81 |
√ |
|
|
|
√ |
|
95.71 |
91.25 |
91.04 |
√ |
|
|
|
|
√ |
95.16 |
92.86 |
92.40 |
√ |
√ |
√ |
√ |
√ |
√ |
95.85 |
93.73 |
95.13 |
本研究对所提出的模型进行了船舶检测训练,结果表明,精确度、召回率和AP分别提高了2.20%、5.95%和7.77%,令人满意。本研究的模型在小型船舶检测方面具有显著优势。
4.2. 不同船舶数据集的对比实验
表3显示了所提出的模型与一些现有模型的比较结果。
由于LEVIR-Ship的图像分辨率较低,且船只尺寸较小,与OSSD相比,各模型在LEVIR-Ship上的实验结果均有一定程度的下降。如表3所示,在LEVIR-Ship上,本研究提出的模型的精度和召回率分别为91.46%和78.49%,明显优于YOLOv5s。与其他模型相比,本研究提出的模型的AP为76.86%,是最好的。
可以看出,在OSSD上,本研究提出的模型的精确度为95.85%,略低于EfficientDet和YOLOX。然而,与船舶检测领域的其他模型相比,本研究提出的模型的召回率和AP是最好的。与YOLOv5s相比,本研究的模型在AP方面提高了7.77%,从而减少了误检或漏检船只的情况,同时也提高了小型船只的检测和定位精度。本研究提出的模型的FPS为82,与YOLOv5s相比略有下降,比DRENet略低。不过,本研究提出的模型仍具有实时检测速度,与其他模型相比要快得多。
Table 3. Experimental results of LEVIR-Ship and OSSD
表3. LEVIR-Ship和OSSD的实验结果
|
LEVIR-Ship |
OSSD |
FPS |
|
P |
R |
AP |
P |
R |
AP |
Faster RCNN |
35.72 |
83.99 |
71.71 |
43.96 |
93.61 |
86.65 |
23 |
SSD |
94.88 |
47.70 |
64.77 |
95.12 |
54.89 |
75.23 |
35 |
EfficientDet |
68.80 |
53.52 |
44.67 |
98.01 |
79.56 |
79.39 |
23 |
YOLOv5s |
80.32 |
70.83 |
66.23 |
93.65 |
87.78 |
87.36 |
103 |
YOLOX |
94.34 |
75.73 |
74.73 |
96.28 |
91.87 |
91.52 |
40 |
YOLOv7 |
89.82 |
47.98 |
46.17 |
94.82 |
90.83 |
90.41 |
80 |
DRENet |
82.20 |
74.90 |
69.37 |
94.96 |
93.38 |
93.32 |
84 |
Proposed Model |
91.46 |
78.49 |
76.86 |
95.85 |
93.73 |
95.13 |
82 |
Figure 8. Experimental results on (a) LEVIR-Ship and (b) OSSD
图8. (a) LEVIR-Ship和(b) OSSD的实验结果
Figure 9. Detection results of YOLOv5s and the proposed model
图9. YOLOv5s和提出模型的检测结果
如图8所示,无论是在OSSD数据集还是LEVIR-Ship数据集上,本研究提出的模型的AP都明显高于其他模型,这表明模型在检测小型船舶时的精度和召回率之间的改进非常均衡。本研究分别比较了YOLOv5s和所提出模型在LEVIR-Ship和OSSD数据集上的检测结果。如图9所示,本研究提出的模型检测船舶的精度更高,误检和漏检的结果更少,尤其是在检测小型船舶时。
5. 结论
本研究针对复杂环境下小型船舶的精准遥感识别需求,提出了一种基于改进YOLOv5s的小型船舶检测模型。通过一系列创新技术的应用,所提出模型在提高小型船舶检测精度和定位准确性方面取得了显著成效。以下是本研究的主要结论:
1) 通过在模型顶端添加浅层特征图的检测层、采用跳过连接、引入混合空间金字塔池化(HSPP)技术、应用坐标注意力(CA)机制以及使用EIOU作为边界框回归的损失函数,所提出模型在小型船舶的检测精度上实现了显著提升。并且通过消融实验,本研究验证了所提各模块的有效性。特别是CA模块的引入,提高了模型的精确度;EIOU损失函数的应用,显著提升了平均精度(AP)。
2) 在多尺度船舶数据集OSSD和公开船舶数据集LEVIR-Ship上的实验结果表明,所提出模型具有良好的数据集适应性,能够在不同分辨率和尺寸的图像中准确检测小型船舶。
3) 与现有的经典模型(如Faster R-CNN、SSD、EfficientDet)和较新模型(如YOLOX、YOLOv7、DRENet)相比,所提出模型在召回率和AP方面表现最佳,减少了误检或漏检的情况,提高了小型船只的检测和定位精度。
综上所述,本研究提出的基于改进YOLOv5s的小型船舶检测模型,在复杂环境下对小型船舶的精准遥感识别方面表现出色,为相关领域的研究和应用提供了新的技术途径。未来的工作将进一步优化模型结构,提高检测速度,并探索模型在更广泛场景中的应用,如城市绿地检测[18]和土地覆盖信息检索[19]。