源自:系统工程与电子技术
作者:成倩, 李佳, 杜娟
摘 要
针对YOLO(you only look once)v5算法在应用于光学遥感图像舰船目标检测任务时所面临的小目标误检率、漏检率较高的情况, 提出一种基于YOLOv5改进的光学遥感图像舰船目标检测方法。首先对路径聚合网络结构进行改进, 设计语义信息增强模块提取更富语义信息的浅层特征, 增强对小目标特征的表达能力; 然后使用Swish函数作为激活函数, 提高网络对数据非线性特征的表征能力, 加快模型的收敛速度; 最后针对舰船目标的尺寸特点优化检测端结构, 移除大目标检测头以减少推理计算量。测试集上的实验表明,该方法相较改进前将检测精度提高了5.2%且推理时间有所减少, 在保证检测实时性的同时增强了模型的小目标辨别能力。
关键词
光学遥感图像 ; 舰船目标检测 ; YOLOv5 ; 语义信息增强 ; 激活函数
引言
光学遥感图像舰船目标检测技术在军用和民用领域都有十分普遍的应用, 如船只搜救、海运交通监控、渔业管理和海关缉私等各类任务, 特别在军事上, 自主、实时、准确地检测识别出高价值海上舰船目标, 将为后续的目标跟踪监视、战场态势评估、精确制导打击等任务提供基础, 具有重要意义。
光学遥感图像由于拍摄距离相对较远, 遥感图像中的舰船目标通常相对较小, 图像的信噪比相对较低, 因此能够获得的目标特征相对有限。此外,来自海面背景、云雾海浪噪声干扰、目标遮挡、目标朝向不定等因素的影响均使得遥感图像舰船目标的实时检测面临较大挑战[1]。
相比于传统舰船检测与识别方法[2-5], 基于深度学习的舰船目标检测识别方法的非线性拟合能力更强, 更适应于真实复杂场景下的舰船目标检测和识别。以卷积神经网络(convolutional neural network,CNN)为框架的检测模型主要分为两阶段检测和一阶段检测[6]。两阶段检测模型主要有R(region)-CNN[7]、Fast R-CNN[8]、Faster R-CNN[9]、Mask R-CNN[10]、空间金字塔池化网络(spatial pyramid pooling net,SPP-Net)[11]等,其首先产生候选区域,然后再对该区域分类识别,具有较高的检测精度,但速度较慢,难以满足舰船目标检测应用中对实时性的要求。而以YOLO(you only look once)[12-16]、SSD(single shot multibox detector)[17]、DSSD(deconvolutional SSD)[18]等模型为代表的一阶段检测算法不需要区域候选阶段, 直接对目标的位置和类别进行回归, 虽检测精度相对较低, 但可达到更快的计算速度, 适合实时性较高的检测需求。为了提升YOLO的检测性能, 文献[19]基于tiny-YOLOv3增加了更多的卷积层以提高模型的特征提取能力, 并采用1×1的卷积核来降低特征的维度, 有效减少了训练和推理过程中的计算量。文献[20]将通道和空间注意力机制引入YOLO网络, 提高了舰船检测精度。文献[21]将骨干网络中的卷积层替换为空洞卷积来获取较大感受野, 并优化非极大值抑制算法, 提升模型检测准确率。2021年旷视科技发布了最新一代YOLO系列目标检测器YOLOX[22], 以YOLOv3-SPP为基础改进, 采用了无锚框、解耦头、领先的标签分配策略、无非极大值抑制[23]等技术, 相比YOLOv3, 提高了3%的检测精度, 并且提供了多种可选配的网络结构。众多文献基于YOLO系列算法实现了遥感图像中的实时目标检测, 但也在不同程度上面临小目标检测不敏感问题, 存在误检率或漏检率较高的情况。
本文提出一种基于YOLOv5改进的光学遥感图像舰船目标实时检测算法, 通过在多尺度特征融合网络中加入所设计的语义信息增强模块, 针对小目标提取更具表达能力的特征, 提高模型对小目标的检测精度, 并采用类激活图方法对其进行可视化验证。网络使用Swish函数作为激活函数, 并去除检测端的大目标检测头, 进一步提升模型整体性能。实验表明该算法能够在复杂背景下对舰船小目标取得较好的实时检测效果。
1 YOLOv5目标检测算法
YOLO系列算法作为最典型的一阶段目标检测算法, 发展至今已历经5个版本[12-16]。其中, YOLOv5提供了多个不同参数规模的模型, YOLOv5s作为其中最轻量的模型, 检测速度最快。YOLOv5s目标检测算法由4个部分组成, 分别为输入端、骨干网络、路径聚合网络和检测端, 算法流程如图 1所示。
![](https://i-blog.csdnimg.cn/blog_migrate/f0d355d085870ffc2e953450d35a2ed0.jpeg)
输入端对光学遥感图像进行Mosaic数据增强、自适应锚框计算等数据预处理操作; 骨干网络采用跨阶段局部网络Darknet53[24]网络结构, 用以提取不同尺度的特征图; 路径聚合网络(path aggregation network, PANet)[25]将由主干网络提取的不同尺度特征图进行融合, 增强特征表达能力, 最后输出3个尺度的特征图用于后续检测。其中, 较深层的特征图主要负责大目标的检测, 较浅层的特征图主要负责小目标的检测。检测端分别针对各尺度融合特征图的每个网格输出多个预测框及置信度, 最终通过非极大值抑制(non-maximum suppression, NMS)算法[26]筛选出最终的检测框。
2 改进的YOLOv5目标检测算法
将YOLOv5s检测模型直接应用于光学遥感图像舰船目标检测任务上时, 由于舰船目标信噪比低, 且易受复杂背景噪声干扰, 面临着小目标漏检率、误检率较高的情况。对模型进行优化以提高对小目标的检测效果, 改进后的网络结构如图 2所示, 包括在特征融合网络中加入语义信息增强模块、调整激活函数、优化检测端结构。
![](https://i-blog.csdnimg.cn/blog_migrate/5cabc41b9bb61be47b4221379ec320a1.jpeg)
2.1 语义信息增强模块
YOLOv5s模型的特征融合模块采用PANet[22]的结构, 由特征金字塔网络(feature pyramid network, FPN)[27]和路径聚合网络(path aggregation network, PAN)两个核心结构组成。其使用一个自顶向下(FPN)和自底向上(PAN)的双向融合网络对骨干网络提取的特征图进行融合, 使每个特征层都能够同时具有深层特征的语义信息和浅层特征的细节信息, 在令融合特征拥有上下文信息的同时增强了骨干网络的表征能力。但是, 主要用于检测小目标的特征图是由浅层特征和来自深层上采样后的特征构成的, 深层特征在提取过程中经过了多次下采样, 且在融合过程中经过多层传递后信息丢失较为严重, 使得用于检测小目标的融合特征缺少了较为丰富的语义信息。
本文对PANet结构进行优化, 设计了语义信息增强模块(semantic information enhancement module, SIEM)提高对浅层特征语义信息的提取能力, 提升对遥感图像中的小尺寸舰船目标的检测效果。改进后的特征融合网络结构如图 2所示, 在浅层特征向深层特征进行融合的路径上加入SIEM模块, 模块内部处理过程及其外部连接关系可用下列公式描述:
![](https://i-blog.csdnimg.cn/blog_migrate/6d5f21122d6c2fe92af3237f7d13d5c2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4d7fe599c20908f1189fbc67cd186a67.png)
式中:C3是骨干网路提取的96×96浅层特征图; M4是48×48深层特征图上采样之后的特征图; P3是语义信息增强后的特征图; conv(·)表示依次进行卷积、归一化和Swish激活操作, 卷积步长为1, 卷积核尺寸分别为3×3, 5×5, 7×7;concat(·)表示进行张量拼接。
SIEM模块利用3个不下采样的卷积层对96×96的浅层特征图进行卷积运算, 在加深CNN网络的同时扩大该特征图的感受野, 从更全局的角度对图像做特征提取, 获取更丰富的语义信息。再经自底向上的网络将更具语义信息的浅层特征向深层传递。经实验验证, SIEM模块增加3层CNN较为合适, 能够有效增强模型对小目标的辨别能力, 同时不会影响模型的检测时间。
2.2 Swish激活函数
激活函数是神经网络的核心单元, 主要作用是给网络加入非线性特性。选择合适的激活函数, 能够在网络的前向传播中实现特征信息的有效传递, 在网络的反向传播中加快整个模型的收敛速度。
YOLOv5s模型使用参数为0.1的Leaky ReLU函数作为激活函数, 该函数在大于0的定义域上梯度为1, 有利于网络的学习; 在小于0的定义域上梯度是一个很小的非零值, 能够避免神经元未被激活时出现的死亡现象。然而Leaky ReLU函数也存在弊端, 一方面, 其分别在正负两个区间内都是线性函数, 限制了模型的表达能力; 另一方面, 其在正负两个方向上都是无界的, 这将影响网络的收敛速度。为改善这种情况, 本文选择Swish函数[28]作为网络的激活函数, 其表达式如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/fca8894049f731981f7800a568d2929b.png)
Swish函数及参数为0.1的Leaky ReLU函数曲线如图 3所示。
![](https://i-blog.csdnimg.cn/blog_migrate/bc06ab7d1547b68305e3c4f8d99d4777.jpeg)
可以看出, 相比Leaky ReLU函数, Swish函数在正负值区间分别都是非线性的, 且在负值区间内是非单调的(即函数的输出在输入增大的情况下可能减小), 这些特性将使模型能够更多地表征现实数据集的非线性特征, 增强模型的表达能力。此外, 在x<0区域, Swish函数的输出趋向于0, 这即能解决神经元永久性死亡问题, 又使网络具有稀疏性, 这种稀疏性能够降低过拟合风险, 增加模型的鲁棒性, 同时加快模型的收敛速度。
2.3 检测端的优化
光学遥感图像输入尺度为768×768时, PANet输出分辨率为96×96、48×48、24×24的3个融合特征图, 检测端在这3个尺度上进行目标检测, 其中分辨率较大的特征图主要负责小目标的检测, 分辨率较小的特征图主要负责大目标的检测。在遥感图像中, 相对于背景区域, 舰船目标所占的像素数通常较少, 大多属于中小目标, YOLOv5s模型中负责大目标检测的检测头在此应用场景下往往不能充分发挥作用, 甚至还会对中小目标的检测产生一定的干扰。
针对遥感图像舰船数据集的特点, 本文对原模型检测端的结构进行优化(见图 2), 仅采用检测中、小目标的检测头, 移除了大目标检测头, 但仍保留24×24的特征图用于提取特征的语义信息向中、小检测头传递。此外, 大目标检测头的移除还能够减少不必要的计算量, 提高模型检测速度。
3 实验
3.1 实验环境及参数设置
本文实验配置如下: 计算机操作系统为Ubuntu18.04、GPU采用NVIDIA RTX2070 SUPER, 深度学习框架采用由Ultralytics维护的YOLOv5s[16]。训练中, 输入图像的大小为768×768, epoch为50, batch_size为20, 初始学习率为0.01, 动量因子为0.937, 权重衰减系数为0.000 5, 且在数据预处理阶段采用Mosaic数据增强、自适应锚框计算等操作。
3.2 实验数据集
本文实验数据采用Kaggle平台公开的用于舰船检测的遥感图像数据集[29], 数据集中的舰船目标普遍较小且位置分布随机, 如图 4所示, 同时包含有陆地、港口、海面等背景并受到云雾、雨、雪等多种气候干扰。由于该数据集中绝大多数图像仅含1个目标, 为避免样本中目标个数的不均衡, 对数据进行抽样, 减少仅含1个目标的图像数量, 选用其中8 204张图像进行实验。
![](https://i-blog.csdnimg.cn/blog_migrate/562c5b315210fddaac40e6377cbe0a62.jpeg)
3.3 实验结果及分析
3.3.1 评价指标
本文采用平均精度AP作为模型检测目标的精度评估指标, AP值越大, 说明模型的检测效果越好; 采用推理时间作为模型检测速度的评估指标, 用时越短, 说明检测速度越快。指标计算公式如下:
![](https://i-blog.csdnimg.cn/blog_migrate/777b183f6b168cb14bf75e4bac799419.png)
![](https://i-blog.csdnimg.cn/blog_migrate/29228cc5d322ffab4566bd6f4d8b0a53.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ac84f5fb5ed8ab6c7a2c4d71c2140075.png)
式中: TP表示被正确识别出的目标个数; FP表示被错误识别出的目标个数; FN表示未被识别出的目标个数; P为准确率, 表示了被检出目标中真实舰船所占的比例, 反映了检出结果的准确性; R为召回率, 表示所有真实舰船目标中被正确检测出来的比例, 反映了检出舰船的数目是否齐全。
3.3.2 性能对比
为验证改进方法的检测性能, 首先分别在YOLOv5s原始模型上加入SIEM模块和替换激活函数为Swish函数, 形成YOLOv5-SIEM模型和YOLOv5s-Swish模型, 通过实验结果说明这两项改进的效果, 然后同时应用这两项改进形成YOLOv5s-SS模型并在其基础上对检测端结构进行优化形成YOLOv5s-SS-A, 与原始模型的性能进行性能对比实验, 消融实验结果如表 1所示。
![](https://i-blog.csdnimg.cn/blog_migrate/311072b77196706b47fc35f7fc3ba8b2.png)
从实验结果可以看出, YOLOv5s-SIEM模型相较于原始模型提高了3.4%的准确率和0.74%的召回率, AP_0.5提高2.11%, YOLOv5s-Swish模型相较于原始模型提高了0.68%的准确率和2.25%的召回率, AP_0.5提高2.2%, 说明两项改进都能有效改善检测效果, 相比之下Swish激活函数对于提升检测召回率更为有效, 而本文提出的SIEM模块则对于提高检测准确率更为有效。同时, 采用SIEM模块和Swish函数的YOLOv5s-SS模型比原始模型分别提高了5.18%的准确率和4.31%的召回率, AP_0.5提高了4.45%, 检测效果的提升十分明显, 对检测端进行优化后得到的最终模型YOLOv5s-SS-A则更进一步, 比原始模型分别提高了5.46%的准确率和4.88%的召回率, AP_0.5提高了5.2%, 且由于大目标检测头的移除, 使得推理时间与其他模型相比有明显减少。最终的改进模型在大幅提高检测精度的同时还提高了检测速度, 取得了更好的检测效果。
3.3.3 结果可视化对比
为说明改进模型能够提取到更鲁棒的特征, 采用Grad-Cam++[30]方法, 在模型的检测端对各检测头的特征图进行加权组合, 获得含有类别信息的显著图, 即类激活图。图 5分别绘制了YOLOv5s原始模型检测端以及改进模型检测端的类激活图。通过比较可以看出, 原始模型的小目标检测头表现尚可, 能够标示出目标存在区域, 但对比度相对不够明显, 而中目标检测头和大目标检测头则对背景区域投入了较大关注, 相比之下改进模型的两个检测头上都将注意力更多集中于目标区域, 且较为突出, 有效地抑制了背景区域, 但也同时存在一些可能引起错误检测的背景信息未被完全过滤。从检测头的维度进行比较可以看出, 主要针对大目标的检测头对于较小的舰船目标的检测贡献较少, 更多将注意力投向了背景区域。图 6展示了改进模型在误检及漏检问题上相较于原始模型的改善, 分别选取两张图像说明改进模型在舰船目标大小差异大、目标间位置关系复杂等情况下的检测效果。图 6(a)反映了改进模型对原始模型漏检情况的改善, 对于尺寸较小但航迹明显的目标和大目标旁紧邻的小目标取得了更好的检测效果, 说明改进模型确实能够提取到更具鲁棒性的特征以进行目标判别。图 6(b)反映了改进模型在检测准确率上的改善, 相较于原始模型将没有停靠船舶的码头和靠近图片边缘的云雾识别为船只, 改进模型采取了更为严格的判别标准, 减少了误检情况的出现, 取得了更好的检测效果。
![](https://i-blog.csdnimg.cn/blog_migrate/3ce4f400096ecbd778b2677993579726.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/876e238a65037e67fba10525f11d621b.jpeg)
4 结论
本文针对YOLOv5模型在光学遥感图像舰船目标检测任务中所面临的小目标误检率和漏检率较高的情况, 提出一种基于YOLOv5改进的遥感图像舰船目标检测方法。以YOLOv5为基础, 在其网络结构中加入所设计的SIEM模块以提取更富语义信息的浅层特征, 采用Swish激活函数来提高网络对数据非线性特征的表征能力, 有效提高了模型对小目标检测的检测效果, 并优化了检测端结构, 缩短了推理时间。搭建实验平台在公开的Kaggle舰船检测数据集上对模型进行训练和测试, 检测精度AP达到84.39%, 平均每帧图像推理时间约14.4 ms。实验表明, 改进后的模型在保证实时性的前提下将检测精度AP提高了5.2%, 达到了减少小尺寸舰船目标漏检和误检情况的目的。
声明:公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们删除。