结合轻量级特征提取网络的舰船目标检测算法

2023-12-11 07:11:38李登峰叶文韬
计算机工程与应用 2023年23期
关键词:特征提取卷积数量

李登峰,高 明,叶文韬

西安工业大学 光电工程学院,西安 710021

随着我国海洋贸易的快速发展,船舶的数量和种类不断增加,海面船舶交通日益繁荣,这对海上船舶的识别能力提出了更高的要求[1]。海面环境相较于自然环境更加复杂,经常受到风、海浪、雾、光照等噪声的干扰,这些噪声对远处的弱小目标影响较大,易产生虚警和漏检现象,检测效果差。传统目标检测算法一般采用特征加分类器的方式,对于复杂多变、噪声多的海洋环境鲁棒性差,且耗时长,易造成检测窗口冗余,不适用于目前的舰船检测[2]。

基于深度学习的目标检测,使用损失函数前向传播学习目标的特征,再通过反向传播更新学习到的特征信息,可以更好地挖掘出数据之间的关联,适合复杂环境下的海面目标检测[3]。目前,目标检测算法不仅在检测的精度上屡创新高,还在模型的结构上发生了很大变化。通常分为两类:单阶段(one-stage)检测模型和两阶段(twostage)检测模型[4-5]。单阶段模型一般包括:YOLO(you only look once)系列[6]及SSD(single shot multibox detector)[7]等。单阶段目标检测通过回归的方法获得目标信息,输入图片经过单次处理,就能得到目标的坐标信息和分类信息。随着YOLOv2到YOLOv5[8-11]接踵而出,YOLO系列算法的检测速度和精度都得到相应的提高。两阶段模型检测精度高但是模型结构复杂,导致参数量和计算量大,模型检测速度慢。经典的两阶段检测模型有:R-CNN[12]、Fast R-CNN[13]、Faster R-CNN[14]等。其中,Girshick 提出了两阶段中最经典的Faster R-CNN模型,该模型的速度得到提升,但是远没有达到YOLO系列的检测速度。2021年7月,Ge等[15]提出的新型目标检测模型YOLOX,其检测的精度与速度超越了以往YOLO系列模型。随着检测模型的发展,检测精度不断提高,模型结构更加复杂,模型的计算量和参数量加大,但是要将其应用在工程实践中还需考虑部署平台的设备承受能力。多数部署平台没有强大的计算性能和充足的存储空间,无法部署这些复杂的检测模型。因此平衡模型的大小和检测精度成为目前主要面临的问题。王子鹏等[16]引入轻量级特征提取网络MobileNetv3代替YOLOv3的主干网络达到减少模型计算量的目的。张剑飞等[17]添加注意力机制和Transformer模块强化模型的特征提取能力,引入通道混合技术提高模型的检测精度。谭显东等[18]针对舰船目标检测框特点对损失函数进行曲线优化,提高了模型精度,但是模型权重比较大。陈科峻等[19]采用剪枝方法对模型进行压缩,降低了模型的参数量和计算量,但是模型检测精度仅为77.3%。这些网络在轻量化的同时牺牲了精度,或者在保持高精度的同时放弃了轻量化,不能真正做到目标检测的轻量化和高精度并存。

针对以上问题,本文从检测的精度和模型大小的角度出发,在YOLOX网络的基础上提出改进。设计轻量级的特征提取网络Ghost_ECA,将轻量级的通道注意力机制ECA 串联到轻量级的特征提取网络Ghostbottleneck中,用12个桶形排列的Ghost_ECA替代原YOLOX网络中特征提取部分,压缩了模型的大小。网络优化器更改为Adam优化器,引入了Focal loss损失函数,提高了模型的检测精度。

1 YOLOX基本原理

YOLOX提出了4种不同深度、宽度的模型,由浅至深分别为:YOLOX_s、YOLOX_m、YOLOX_l、YOLOX_x。此外还提出了两种轻量型的模型:YOLOX_tiny 和YOLOX_nano,但是这两种轻量型的模型牺牲了高精度,所以本文以YOLOX_s 为基线模型,对模型做出改进。YOLOX的结构图如图1所示。

图1 YOLOX整体结构图Fig.1 YOLOX structure diagram

YOLOX主要由三部分组成:骨干部分(Backbone)、颈部部分(Neck)、检测头(Head)部分。骨干部分提取输入图像特征,将提取到的特征传入网络的颈部部分做特征融合,融合后的特征图输入检测头部分,提取检测结果。Focus 结构如图2(a)所示,通过切片操作对特征点信息进行隔点采样,将特征点信息堆叠到通道上,相当于将一张高分辨率图片切片成多张低分辨率图片,等同于对特征图像做了下采样,但保证图片信息不丢失。BaseConv 是YOLOX 网络中的基本卷积,它包括Conv、BN、SiLu,如图2(b)所示。卷积操作在网络中主要负责特征提取,是模型最重要的操作之一。BN 让每层的输出和下层的输入数据分布尽量保持一致,模型在训练的时候更加稳定。激活函数为网络提供了非线性变化的能力,实现深度模型中层次化逐级抽象特征的能力。CSPLayer 结构如图2(c)所示,在残差模块堆叠的同时构建了大的残差边,经过少量处理直接连接到最后,主要负责网络的特征提取。空间金字塔池化层(spatial pyramid pooling,SPP)主要解决了输入图片大小不统一的问题,通过三种不同的池化操作融合多重感受野,结构如图2(d)所示。

图2 骨干部分结构图Fig.2 Structure diagram of backbone

2 YOLOX改进模型

2.1 YOLOX网络改进

本文设计了轻量级的特征提取网络Ghost_ECA,融合Ghostbottleneck和ECA注意力机制,Ghost_ECA模型结构如图3所示。Ghostbottleneck是轻量级特征提取模块,可以降低模型的计算量和参数量。ECA是轻量级注意力机制,将ECA注意力机制串联在Ghostbottleneck的两个Ghost module 之间,只增加极少的参数量,提高模型的检测精度。Ghost_ECA 模型在保持模型较高检测性能的同时降低模型的计算量和参数量。图3(a)是步长为1 时Ghost_ECA 的结构图,图3(b)是步长为2 时Ghost_ECA的结构图。

图3 Ghost_ECA模型结构Fig.3 Structure of Ghost_ECA model

本文以YOLOX_s 为基线模型,改进了模型的特征提取部分,优化器和损失函数。改进的YOLOX网络结构图如图4 所示。使用12 个Ghost_ECA 模块代替YOLOX模型中特征提取部分,这12个Ghost_ECA模块以桶形的方式排列,即dark2 中包含2 个Ghost_ECA 模块、dark3中包含3个Ghost_ECA模块、dark4中包含4个Ghost_ECA 模块、dark5 中包含3个Ghost_ECA 模块。这种排列方式使得模型保持较高的准确率,且减少了网络的计算量和参数量。取消了SPP层,因为SPP在模型中主要的作用是增大感受野,从而加强网络的特征提取能力,而Ghost_ECA模块已经提高了网络的特征提取能力,使得SPP对模型的影响力减弱,且SPP参数量较大,增大了模型在磁盘中所需的空间大小。更换模型的优化器,将YOLOX 原优化器SGD 换为Adam。Adam 较SGD添加了一阶动量和二阶动量,使得损失函数更加接近全局最小值,且本文数据集较小,训练轮数也设置较小,因此选用Adam优化器更适合本文。引入损失函数Focal loss,缓解数据集样本不平衡问题,通过使用两个参数因子,控制易分类样本的权重,并调节易分类样本损失降低的速率。

图4 改进的YOLOX模型结构Fig.4 Improved YOLOX model structure

2.2 轻量级目标检测模块

Ghost 模块是一个主要为轻量级检测模型设计的即插即用的模块[20],由两个Ghost module 组成,Ghost module 结构如图5 所示。输入图像通过卷积生成的特征图部分是相似的,但是这些相似的特征图有利于模型全面理解输入图像。Ghost模块提出不是所有的特征图都要通过卷积获得,可以使用较低成本的方式去生成这些相似特征,这里低成本指使用深度可分离卷积获得相似特征。输入图像的尺寸为H×W×C(高×宽×通道数),卷积核尺寸为k,输出图像尺寸为H′×W′×C′ 。Ghost卷积通过一个普通的卷积,获得通道数为m的特征层,再通过对已经生成的特征层使用深度可分离卷积,线性内核的尺寸为d,生成n个相似的特征,填充到已生成特征层中,获得最终输出特征层。这样不仅减少了计算参数,还降低了模型体积,检测速度也得到了提升。

普通卷积和Ghost卷积的参数量分别为:

普通卷积和Ghost卷积参数量比值为:

普通卷积核Ghost卷积的计算量分别为:

普通卷积和Ghost卷积计算量比值为:

通过分析发现,普通卷积与Ghost 卷积的参数量和计算量之比均为C′/m,Ghost卷积通过普通卷积生成的特征图通道数m的减少,Ghost卷积的参数量和计算量相较于普通卷积更少。

2.3 轻量级通道注意力机制

ECA模块是一种轻量级的注意力机制,它通过增加少量参数提高网络的特征提取能力[21]。ECA结构如图6所示。ECA模块是一种不降维的跨通道交互模块,不降维有利于学习网络的特征,跨信道交互可以降低模型复杂度的同时提高检测精度。通过不降维和跨通道交互,提高模型在目标特征上的注意力降低模型复杂度,最终提高模型检测的精度。H、W代表输入图像的高和宽,C代表通道数,K代表跨通道交互的邻居数也代表1×1 卷积的卷积核数,K与通道维数C成正比。利用非线性函数,给定通道维数C,K值就可以自适应地来确定。C和K的非线性函数表达式如下:

表1 参数对比实验Table 1 Parameter comparison experiment单位:%

图6 ECA结构图Fig.6 Structure of ECA

|t|odd代表距离t最近的奇数,γ和b是系数分别为2 和1。本文模型在特征提取部分的通道数C值分别为32、64、128、256,通过公式计算可得,本文模型的K值分别为3、3、4、4。通过自适应的方式确定K值,有利于节省计算资源。

ECA 模块先通过不降维的全局平均池化策略学习网络的特征,对每个通道及其K个相邻通道进行1×1卷积来获得跨通道交互信息,然后再通过一个1×1卷积后和平均池化前的图像进行相加。

2.4 损失函数

Focal loss损失函数是在标准交叉熵损失基础上改进得到的,最初用于图像领域解决数据不平衡造成的模型性能问题[22]。在YOLO检测算法中,通常一张图会产生104个可能候选框,但只有极少数的候选框真正包含被检测物体,这种正负样本不均衡会导致模型学习的大部分是简单负样本,训练不充分,训练效果变差。Focal loss 损失函数根据模型的置信度信息动态调整损失来解决类别不平衡的问题,当预测正确的置信度信息增加时,损失的权重逐渐衰减,通过调整权重信息,让模型训练时更加关注难分类的样本。公式可以表示为:

公式(8)为交叉熵损失函数,y′代表预测的结果是某一类的概率,y代表标签,在二分类任务中对应0 和1,也就是对应分类正确和分类错误。公式(9)为本文使用的Focal loss 损失函数,在权重上添加γ可调节因子,且γ >0,用于调节易分类样本损失降低的速度,本文模型的γ因子设置为2。添加α权重因子,用于平衡正负样本本身的比例不均,本文模型的α因子设置为0.25。γ和α的值沿用文献[22]中的实验结果,当γ为2、α为0.25时,效果最好。

3 实验

3.1 数据集构建

选用SMD 数据集(singapore-maritime-dataset)新加坡海事数据集,包括共40 个可见光下在岸上拍摄的海面舰船视频,视频长度为3 s 到30 s 不等。由于模型训练使用的是图片格式,将40 个视频每15 帧提取一张图片,一共截取了1 240 张不同的海面舰船图片。将训练集和测试集按照7∶3的比例划分,其中训练集868张、测试集372 张。使用MAKE SENSE 在线标注软件,对数据集以VOC格式进行标注,共有8 877个标注样本。该数据集的检测目标可以分为8 类,包括:Ferry、Buoy、Ship、Speed Boat、Boat、Kayak、Sail Boat、Other。

3.2 评价指标

AP(average precision)计算某一类别P-R曲线下的面积。mAP(mean average precision)也就是计算所有类别P-R 曲线下面积的平均值。P 为模型检测的准确率,R 为模型检测的召回率。P-R 曲线就是以准确率为y轴,召回率为x轴绘制的曲线。公式如下:

TP是预测为正,实际也为正,预测正确的样本数量;FN是预测为负,实际为正,是预测错误的样本数量;FP是预测为正,实际为负,预测错误的样本数量;TN是预测为负,实际为负的样本数量,是预测正确的样本数量。

参数量是模型中参数的总和,跟模型在磁盘中所需的空间大小直接相关。计算量是模型所需的计算次数,反映了模型对硬件计算单元的要求。FPS(frames per second)是每秒传输的帧数,体现模型处理图片的速度,其检验结果受硬件影响。本文选择mAP、参数量(Params)、计算量(GFLOPs)、FPS来评估算法的性能。

3.3 实验结果与分析

本文实验使用Ubuntu-18.04 操作系统,IDE 是PyCharm,开发语言是Python 3.8.10,深度学习框架为Pytorch 1.8.0,CUDA 版本为10.2。硬件中CPU 和GPU分别是Intel Xeon 和NVIDIA 2080Ti。设置输入图片和验证图片大小均为640×640,数据增强中mosaic的范围是0.1到1,最后15个epoch不做mosaic数据增强。训练轮数设置为80轮,batch_size为12,动量为0.9。

针对Focal loss中的参数γ和α的取值进行对比实验,参数γ用于调节易分类样本损失降低的速度,参数α用于平衡正负样本的比例不均,实验结果如表1 所示。从表1 中可以看出,当γ为2、α为0.25 时,本文模型检测精度最高。

为验证本文模型的性能,在相同的实验条件下,利用自制舰船数据集进行训练和验证对比。YOLOX_s和本文算法每类的AP 值,如表2 所示。本文模型在小目标皮划艇(Kayak)的检测效果略低于YOLOX_s,在浮标(Buoy)、轮渡(Ferry)上的检测效果高于YOLOX_s,其他目标检测效果相差不大,在mAP@0.5 上本文模型略高于YOLOX_s,达0.28个百分点,因此本文模型在检测精度上保持较高水平。

表2 每类AP值的实验数据Table 2 Experimental data of AP values of each type 单位:%

YOLOX_s 和改进后的模型检测结果如图7 所示,矩形框框出的物体代表模型能检测到的物体。图7(a)YOLOX_s 模型检测到5 个目标,在海天分界线处有两个小目标漏检,图7(c)改进YOLOX模型可以全部检测到。图7(b)YOLOX_s 模型检测到7 个目标,在图片的边界处漏检了一个不完整目标,图7(d)改进YOLOX模型可以全部检测到。可以看出在远处的弱小目标或图像边界处的不完整目标,YOLOX_s模型检测效果不佳,本文模型均可检测到。

图7 YOLOX_s和改进YOLOX实验结果对比。Fig.7 Comparison of experimental results between YOLOX_s and improved YOLOX

在训练参数相同的情况下,对本文模型进行纵向对比实验。选择两个不同深度和宽度的模型,s和m进行验证。YOLOX_s 模型的深度为0.33,宽度为0.5;YOLOX_m模型的深度为0.67,宽度为0.75,结果如表3所示。通过验证发现,在相同的实验条件下,s模型中改进后的模型比原模型的mAP高出0.28%,检测精度相比原模型有少量提高,参数量和计算量上相比原模型分别降低36.57%和27.54%;m模型中改进后的模型比原模型的mAP 高出0.21 个百分点,参数量和计算量上相比原模型分别降低40.70%和35.88%。

表3 模型改进后性能指标对比Table 3 Comparison of performance indexes after model improvement

为客观验证改进模型的性能,利用自制舰船数据集,选取Faster-RCNN、SSD、CenterNet、Efficientdet、DETR、YOLOV3、YOLOX_s、YOLOX_tiny 共八个主流的目标检测模型,在相同的实验设备下进行对比实验。通过对比八个主流检测模型的mAP@0.5、Params、GFLOPs、FPS 共4 个检验指标,客观分析本文算法的优劣性,如表4所示。

表4 主流目标检测模型实验数据Table 4 Experimental data of mainstream target detection model

Efficientdet模型是对比模型中最轻量的,但是检测精度仅有31.3%。CenterNet 模型的检测速度是对比模型中最快的,可达每秒71.51帧,但是检测精度和模型大小均表现较差。YOLOX_tiny 模型的计算量和参数量略小于本文模型,但是精度低于本文模型5.8个百分点。在相同实验条件下,综合mAP@0.5、Params、GFLOPs、FPS共4个检测指标,本文算法的检测精度最高,计算量和参数量较低,检测速度较高。

为进一步验证改进部分Ghost_ECA 和排列方式对模型的有效性,以YOLOX_s模型为基线模型设计实验,结果如表5所示。

表5 改进部分Ghost_ECA的实验对比Table 5 Improved ghost_ Experimental comparison of ECA

YOLOX_s 模型的特征提取部分是CSPLayer 模块,CSPLayer在骨干部分的结构为:dark2中使用了1个CSPLayer、dark3 中使用了3 个CSPLayer、dark4 中使用了3个CSPLayer、dark5中使用了1个CSPLayer。将特征提取网络换成本文设计的Ghost_ECA,采用YOLOX_s骨干部分的排列方式,也就是1、3、3、1 的排列方式,模型精度降低了5.27 个百分点。换用本文的排列方式2、3、4、3,增加少量计算量和参数量,提高模型精度2.48个百分点。证明了本文的排列方式对模型的有效性。使用12 个桶形排列的Ghostbottleneck 模块可以减少模型的计算量和参数量,与基线模型相比,计算量减少27.57%,参数量减少36.57%。与此同时模型精度也降低了3个百分点左右,更换Ghostbottleneck为Ghost_ECA模块,融合了轻量级的注意力机制,提高了模型精度0.26个百分点,证明了Ghost_ECA模块对模型的有效性。

为验证各个改进部分对模型的有效性,评估改进部分不同组合方式对算法的影响,设计消融实验,实验结果如表6 所示。Ghost_ECA 模块主要降低模型的计算量和参数量,但是模型的精度受到了影响;Adam优化器大幅提高模型的精度至原YOLOX_s 水平,弥补了Ghost_ECA 为降低计算量和参数量造成的精度损失;Focal loss在此基础上,不增加计算量和参数量,小范围提高模型的精度。Ghost_ECA、优化器、Focal loss三个部分共同作用,使改进后的模型轻量化的同时保持检测精度不变,易于部署在算力不足的小型设备上。

表6 消融实验数据Table 6 Ablation experimental data

4 结束语

为了解决海面舰船检测需同时具备轻量化和高精度的问题,本文提出了一种基于改进YOLOX的舰船检测模型。以YOLOX_s为基线模型,对骨干网络、优化器和损失函数进行改进,设计轻量级的特征提取网络Ghost_ECA并以桶形的排列方式排列,替换模型的优化器为Adam,引入Focal loss 损失函数。通过对比发现,改进后的YOLOX 模型mAP 达89.86%,与基线模型的结果相比较精度提高了0.28个百分点,模型的计算量和参数量分别降低27.54%、36.57%。本文模型提高检测精度的同时降低了参数量和计算量,平衡了模型的大小和模型检测精度,有益于模型部署在算力不足和存储空间小的移动设备端。

猜你喜欢
特征提取卷积数量
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
统一数量再比较
基于Daubechies(dbN)的飞行器音频特征提取
电子制作(2018年19期)2018-11-14 02:37:08
基于傅里叶域卷积表示的目标跟踪算法
Bagging RCSP脑电特征提取算法
头发的数量
我国博物馆数量达4510家
现代企业(2015年5期)2015-02-28 18:51:08
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法
电视技术(2014年19期)2014-03-11 15:38:20