基于改进YOLOv5的海上弹着点水柱信号检测算法
2022-08-11姬嗣愚王永生
姬嗣愚, 王永生
(1.海军航空大学,山东 烟台 264000; 2.中国人民解放军91475部队,辽宁 葫芦岛 125000)
0 引言
目前随着技术的发展,海上武器装备逐渐多样化,在执行海上演练、作战等任务时,必须依赖火炮、鱼雷、导弹等武器进行防卫和攻击。因此,快速获取武器射击弹着点的准确位置并及时反馈给指挥部门,便于实时评估射击结果,为后续的训练或作战方案的制定、切实提高部队战斗力水平具有重要的指导意义。
现阶段主要依靠雷达号手观察弹着点处水柱信号评判射击效果,从使用角度来看,这种依靠人工检测弹着点的方法主要存在测量精度不准、测量时间长、弹着点重叠时无法辨别等问题。近年来,目标检测技术取得了巨大的成功,已在海防监视、精确制导、视频监控等多个领域得到广泛应用[1],为弹着点的检测提供了新的方向。当前的目标检测算法主要通过引入卷积神经网络自动提取高层特征[2]。根据检测过程中是否包含候选区域目标推荐这一过程,将其分为基于候选区域思想的两阶段算法[3-6]和基于回归思想的一阶段算法[7-12]。前者的典型算法包括R-CNN系列、R-FCN等,这类算法精度较高,但相比一阶段算法速度较慢;后者的典型算法包括YOLO系列、SSD和DSSD等。虽然这些算法都在不断地完善目标检测的精度和速度,但是对于海上弹着点水柱信号的检测并不完全适用。YOLO算法可以将目标物体的位置信息和类别信息同时检测出来,实现端到端的训练,检测速度很快[13],因此本文采用YOLOv5模型作为基础模型。结合采集到的水柱信号尺寸变化大、形态变化多的特点,本文提出CAs-YOLOv5s算法,通过数据增强、引入坐标注意力机制(Coordinate Attention,CA)和Softpool池化方法,对摄像头捕获到的弹着点处的水柱信号进行目标检测,为后续获得弹着点的位置及距离信息奠定基础。
1 YOLOv5s算法原理
YOLO系列发展至今已经到第5代(YOLOv5)[14],相比于之前的算法,YOLOv5检测速度快,且更加轻量化,在某种程度上已成为YOLO系列中性能最优的算法。根据网络的深度与宽度不同,YOLOv5提供了4个版本,分别为YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x,4个版本模型大小与精度依次递增,由瓶颈层(Bottleneck)数目区分,能够根据应用场景选取合适大小的模型。本文主要针对海上弹着点水柱信号进行检测,为了满足模型轻量化和检测实时性要求,将基准模型选择为YOLOv5s,后续可以更方便地应用于嵌入式设备中。YOLOv5s算法的总体结构如图1所示,共包括4个组成部分。
1) 输入端:通过mosaic数据增强方式,一次读取4张图片,分别对每张图片进行翻转、缩放和色彩变换等操作后,将4张图片和图中的标注框进行组合,在同一图片中实现多背景下多目标的组合。其原理为
(1)
同时,YOLOv5s利用自适应锚框计算得到每次训练时训练集中的最佳初始锚框值,最后将原始图像缩放到统一标准尺寸,再送入检测网络中。
2) 骨干网络:在YOLOv5s网络结构中,将原始3通道608像素×608像素的图像输入Focus结构,采用切片操作拼接为12通道304像素×304像素的特征图,随后经过一系列CSP结构完成特征提取[15]。
3) 颈部:借鉴了YOLO V4中的颈部结构,采用特征金字塔网络(Feature Pyramid Network,FPN)与路径聚合网络(Path Aggregation Network,PAN)相结合的方式,FPN层自顶向下与骨干网络特征图融合,传达强语义特征,PAN则自底向上传达强定位特征,二者结合从不同的主干层对不同的检测层进行特征聚合[10]。
4) 输出端:YOLOv5s采用GIOU_Loss作为损失函数,输出3个尺度的特征图,分别为80×80,40×40和20×20的网格,分别用于检测小、中、大物体。每个网格包含3个预测框,每个预测框中含有物体的置信度和预测框的位置信息,最后通过非极大值抑制(Non-Maximum Suppression,NMS)剔除重复冗余的预测框,保留置信度最高的预测框信息[16],从而完成目标检测过程。
图1 YOLOv5s网络总体框架Fig.1 Structure of YOLOv5s network
2 CAs-YOLOv5s算法
海上弹着点水柱信号具有尺寸变化大、形状不规则的特点,原来的YOLOv5s模型无法充分满足检测需求。因此,提出CAs-YOLOv5s算法模型,通过引入更优的网络模块与数据增强策略提高目标检测能力。
2.1 坐标注意力(CA)模块
注意力模块可以视为一种增强移动网络特征表达能力的计算单元,通常用来告诉模型需要关注哪些内容和位置,目前已经被广泛应用于深度神经网络来加强模型的性能。由于轻量级网络计算能力有限,目前最常用的注意力机制是SE(Squeeze-and-Excitation)模块,它通过2D全局池化将输入转化为单个特征向量,用极少的计算成本获得了显著的性能提升[17]。然而,SE模块仅考虑了通道间信息的编码,丢失了重要的位置信息。针对上述问题,文献[18]提出了坐标注意力,在特征编码的同时保留了位置信息,结构如图2所示。
图2 SE模块与CA模块结构图Fig.2 Structure of SE module and CA module
CA模块的具体步骤为:对于给定的输入X,先使用尺寸(H,1)和(1,W)的池化核沿着水平坐标方向和竖直坐标方向对每个通道进行编码,因此,高度为h及宽度为w的第c个通道可以分别表示为
(2)
(3)
上述两个变换可以沿着两个空间方向集成特征,并生成一对特征图。接着,对特征图分别编码得到一对方向感知和位置敏感的注意力图,该注意力图可以互补地应用于输入特征图,从而增强目标表达能力,具体为
f=δ(F1([zh,zw]))
(4)
gh=σ(Fh(fh))
(5)
gw=σ(Fw(fw))
(6)
(7)
式中:F1表示1*1卷积;f表示通过下采样操作δ得到的中间特征图,沿空间维度切分后可得到两个单独的张量fh和fw,再利用1*1卷积Fh和Fw以及σ变换得到与X具有同样通道数的gh与gw,经拓展后用作注意力权重作用于输入端,得到最终输出yc。
与SE模块产生一个特征向量的方法不同,CA模块将通道注意力拆分为两个1维特征编码过程,分别沿着两个方向集成空间特征,既可以捕捉到沿着一个空间方向的长程依赖,也可以将精确的位置信息沿着另一个方向保存,弥补了SE模块的缺陷。本文将CA模块嵌入CSP结构中,如图3所示,不需引入过多的计算开销就可以进行更精确的目标定位,进而有助于更好地识别决策。
图3 CA模块引入前后CSP结构对比图Fig.3 Comparison of CSP structure before and after CA module introduction
2.2 Softpool 池化
池化操作的主要意义是通过减小特征图的尺寸进而减少计算需求和内存开销,从而支持创建更大、更深层次的网络结构。目前,大多数方法都是依赖于最大池化和平均池化的不同组合,而大量实验表明这两种方法在池化过程中易损失重要检测信息,因而文献[19]提出了Softpool池化方法,可以保留更多细粒度特征信息。Softpool以自然指数为基础,通过Softmax加权方法来保留更多的特征表达。具体来说,Softpool为内核区域R内每一个激活ai赋予权重wi,wi定义为该激活的自然指数与区域R内所有激活的自然指数之和的比值。Softpool操作的输出值是通过对内核区域R内所有加权激活的标准求和得到的
(8)
图4 Softpool替换前后SPP模块对比图Fig.4 Comparison of SPP structure before and after Softpool replacement
由图5可以看出,相比最大池化与平均池化,Softpool可以平衡二者的影响,同时利用它们的有利属性,因为该区域的所有激活都对最终输出有贡献,而较高的激活比较低的激活更占据主导地位,因此在增大相近特征区分度的同时,保留了更多的特征信息,可以有效提高目标检测精度。
2.3 mixup 数据增强
由于海上水柱目标数据较难获得,且在收集到的数据集中,背景相对单一。传统的离线数据增强方式虽然可以一次性扩充较多数据,但同时也会耗费较多的存储空间,本文采用了mixup数据增强策略,mixup以线性插值的方式来构建新的训练样本和标签,是一种与数据本身无关的数据增强策略,只需引入极小的计算开销就可以改进网络结构的泛化能力[20],弥补了传统的离线数据增强方式的不足。其原理如下
λ=B(α,β)
(9)
(10)
(11)
图6 不同α,β取值情况下贝塔分布Fig.6 Beta distribution under different α,β values
由图6可知,无论参数α,β如何取值,贝塔分布的期望始终等于0.5,取值越大,生成的λ偏向0.5的可能性越高,图7展示了其中两张图片在λ不同取值情况下的mixup可视化结果,在本文中α,β取值均为8,即大多数样本以0.5附近概率进行mixup数据增强,以此增强虚拟样本的多样性和有效性。
图7 mixup可视化结果Fig.7 Visualization results of mixup
2.4 CA-YOLOv5s网络模型
针对海上弹着点水柱信号的检测,在YOLOv5s算法基础上,结合2.1~2.3节的改进,得到改进后的CAs-YOLOv5s算法的整体结构如表1所示。
表1中,输入来源列表示当前模块的输入来源于哪一层的输出,-1是指该层输入来自上一层输出,模块类名列的BottleneckCSP表示已经嵌入坐标注意力的CSP结构,参数列的值分别代表该模块的输入通道数、输出通道数、卷积核大小和步长信息等。经过计算,改进后的CAs-YOLOv5s共有255层,比原始的YOLOv5模型的283层要少,效率更高。
表1 CAs-YOLOv5s整体结构
3 实验结果与对比分析
3.1 实验环境
本文实验环境为Windows10系统,硬件配置为:Intel®CoreTMi7-10750H CPU@2.60 GHz,NVIDIA GeForce GTX1650Ti显卡,CUDA版本为10.2,CUDNN版本为7.6,利用的深度学习框架为Pytorch。
3.2 网络训练
本文的数据集主要来自公开的海上演习或训练任务的图片,由于海上弹着点水柱信号搜集困难,利用迁移学习[21]中实例迁移的思想,将与弹着点处水柱信号具有相似特征的喷泉作为正样本辅助训练,共得到744张图片,再通过旋转、变换饱和度等方式最终扩充为2200张新的样本数据集,将其转化为VOC格式进行训练,其中训练集与测试集的比例为8∶2。
实验学习率采用Warmup策略[22]训练预热,缓解模型在初始阶段的过拟合现象,同时有助于提高训练时的稳定性。在Warmup阶段过后,采用余弦退火算法[23]对学习率进行更新。
训练时的优化器采用随机梯度下降(SGD)法,其余训练参数如表2所示。
在训练过程中记录模型的损失函数曲线,如图8所示。由图8可以看出,改进后的损失函数在训练初期下降速度更快,整体波动较小,且训练到第250轮左右时损失值达到了0.15,比改进前预测边框的定位精度更高,收敛速度更快。因此,改进后的模型训练效果更好。
表2 训练超参数设置
图8 改进前后损失函数曲线Fig.8 Loss function before and after improvement
3.3 算法改进前后模型评估对比
在对模型进行评估前,需要选择合适的评估指标。在本文中,实验结果从平均准确率均值(mAP)、检测速度、模型层数、权重文件大小4个方面进行综合衡量,其中,mAP的具体计算方法如下。
召回率R(Recall)表示预测目标中预测正确样本占总预测样本的比例,准确率P(Precision)表示某一类别预测目标中预测正确样本占总正确样本的比例,其定义分别为
(12)
(13)
对于二元分类问题,其标记类与预测类的判断结果有4种,即PT,PF,NT,NF,混淆矩阵如表3所示。
表3 混淆矩阵
mAP通常用来评估一个检测算法的检测准确度,数值越大检测效果越好。由于准确率与召回率是一对相互矛盾的指标,因此通常采用召回率与准确率所围成的P-R曲线面积作为最优解,用平均准确率(AP)衡量。AP和mAP算式分别为
(14)
(15)
式中,N为检测的类别数。本次实验中,由于目标类别只有一类,因此mAP值等于AP值。由实验得知,改进前的mAP值为90.21%,改进后的mAP值为94.75%,其P-R曲线见图9。模型的各项性能对比如表4所示。
图9 改进前后的P-R曲线Fig.9 P-R curve before and after improvement
表4 算法性能对比
从表4中可以看出,改进后的模型在检测精度方面提高4.54%,达到了94.75%;在检测速度方面,改进后的模型处理速度稍有降低,与引入了CA模块和Softpool池化方法增加了参数量有关,但检测速度仍达到了23.51帧/s,基本可以满足实时性要求;此外,改进后的模型权重由原先的14.4 MiB增加到了15.0 MiB,虽然略有增加但依然满足轻量级标准,且改进后的模型层数更少,说明改进后的CAs-YOLOv5s模型不需要增加过多的计算和内存消耗就可以提高检测精度,运用在海上弹着点水柱目标检测任务中是有效的。
图10(a)与图10(b)分别为原YOLOv5s模型和改进后的CA-YOLOv5s模型对部分样本的检测效果。前3张图片中的水柱信号在角度、大小、形状方面有较大差异,可以看出,改进后的CA-YOLOv5s模型对检测目标的置信度均有不同程度的提高,且稳定在0.9以上;对于第4张图片,是用喷泉模拟的海上多弹着点的情况,改进后的模型在检测置信度提高的同时,预测水柱信号的位置更加准确,说明改进后的模型检测效果更好。
图10 改进前后部分样本检测结果Fig.10 Comparison of test results of partial samples before and after improvement
3.4 不同算法检测能力对比
为了进一步验证本文提出模块及网络的高效性,将其与其他经典网络进行对比,并选取mAP和检测速度作为不同检测算法的评价指标,得到实验对比结果如表5所示。
表5 不同算法实验对比
由表5可知,随着YOLO系列算法不断改进,其检测结果的mAP和检测速度不断提高,直至YOLOv5s,其检测精度和速度达到了YOLO系列算法的最优性能,但两阶段算法Faster R-CNN的检测精度可以超过YOLOv5s模型,达到91.38%,但Faster R-CNN检测速度最慢,不能满足实时性要求。本文提出的CAs-YOLOv5s算法mAP比Faster R-CNN高出3.37%,虽然检测速度不如 YOLOv5s,但已经超过其他算法,达到23.51 帧/s,可以满足实时性要求。实验证明,改进后的CAs-YOLOv5s算法综合性能更好,可更好地完成海上弹着点水柱信号目标检测任务要求。
4 结束语
针对海上弹着点水柱目标检测任务,提出了一种改进的YOLOv5s算法,运用mixup数据增强策略,通过线性插值的方式构建新的训练样本和标签,极大地丰富了训练样本,对于小样本训练有极大帮助;在CSP结构中嵌入坐标注意力CA模块,更好地保存了特征的位置信息,有利于增强模型的特征提取能力;将SPP结构中的最大池化Maxpool替换为Softpool,缓解了下采样带来的信息损失,有效保留了更多的细粒度特征信息。改进后的模型mAP达到了94.75%,检测速度达到23.51帧/s。实验结果表明,改进后的CAs-YOLOv5s模型仅需增加少量的计算和内存消耗就可以使模型检测准确率得到较大提升,同时满足检测实时性要求,可更好地完成海上弹着点水柱信号目标检测任务。