基于ZYNQ 的轻量化YOLOv5声呐图像目标检测算法及实现

2024-04-01 07:02赵冬冬谢墩翰梁荣华郭新新
光电工程 2024年1期
关键词:声呐注意力卷积

赵冬冬,谢墩翰,陈 朋*,梁荣华,沈 伊,郭新新

1 浙江工业大学计算机科学与技术学院,浙江 杭州 310023;

2 中国科学院深海科学与工程研究所,海南 三亚 572000

1 引 言

地球上海洋总面积约为3.6 亿平方千米,超过地球表面积的三分之二,海洋资源对于地球上的生命来说至关重要。21 世纪,人类进入了大规模开发利用海洋的时期。随着海洋强国战略任务的提出,我们需要提高对海洋资源的开发以及利用能力,而这需要大量精确的海洋环境数据,以便进行水下目标定位、水下目标检测、海底资源探测[1-3]等任务。

水下目标检测技术是进行水下目标定位与识别的关键[4]。水下环境复杂多变,对水下数据的传输以及水下数据的可用性会造成很大影响,水下目标的检测和识别[5]具有很大挑战性。如何提高检测和识别的速率以及准确度、降低水下数据计算以及通信成本、减小检测模型的参数量和计算量,这些都是亟待攻克的核心难题。水下目标检测的成像技术有许多种,相较于光学成像等水下探测技术,声呐成像具有探测距离远、穿透能力强的特点,声呐能够在复杂多变的水下环境下稳定成像,因而成为目前主流的水下目标检测手段[6-7]。由于水声信道的复杂性,以及声波本身传播的损失和散射等因素,成像声呐直接采集得到的图像质量不高、分辨率低,存在大量散斑噪声,目标成像边缘不清晰[8-9],这也严重影响了声呐图像的后续处理[10]。

传统的声呐图像目标检测算法包括基于数理统计、基于数学形态学和基于像素的方法[11]。这些方法存在检测效果差、检测时间长等问题,需要寻找更优的方法提高声呐图像的检测准确度以及缩短声呐图像的检测时间。近几年,在目标检测领域,卷积神经网络取得了飞速的发展,越来越多的人开始尝试利用深度学习的方法来进行水下环境中的目标检测[12]。Valdenegro[13]针对前视声呐图像的水下目标检测任务,设计了一种卷积神经网络,能够根据特定的阈值,对区域建议进行目标物的置信度评估,达到了很高的召回率。通过使用深度卷积神经网络,Williams[14]设计了一个10 层卷积神经网络模型,对合成孔径声呐(SAS)图像进行三个二元分类任务(目标与非目标、截锥体与岩石、地雷与截断圆锥体)。模型性能较传统的基于特征的分类方法有了明显的提升,表明了深度学习在声呐图像目标检测上的巨大优势。Kim[15]等将YOLO 目标检测算法应用于前视声呐图像的目标检测任务中。实验结果表明,YOLO 算法在离线验证时速度高达107.7 FPS,远超过传统的滑动窗口算法的0.2 FPS。在真实海洋环境的前视声呐图像中,算法帧率为5 FPS,证明了其在声呐图像目标实时检测方面的可行性。

通过卷积神经网络的逐层卷积、填充、池化等操作,基于深度学习的目标检测算法,可以从声呐图像中提取到更深层次的语义信息。虽然基于深度学习的目标检测算法性能较之传统算法有了显著提高[16-17],但由于网络所需参数量大,因而基于深度学习的目标检测算法大多不能直接部署于嵌入式端,无法达到水下设备实时进行目标检测的目的[18]。由于声呐图像的特殊性,声呐图像数据集较少且声呐图像成像质量不高,如何利用小样本进行深度学习也成了进行声呐图像检测不可避免的难题[19]。在声呐图像中,细小目标和细长形状是常见的,但目前的主流算法在对它们进行定位回归时,检测精度有所不足[20]。

本文针对细长、细小的声呐图像检测精度差的问题,提出一种基于注意力机制的声呐图像小目标检测算法,改善检测细长、细小的声呐图像的关键策略。针对水下设备内存不足以及设备运算能力有限的问题,设计了一种声呐图像的轻量化检测方法,通过替换轻量化网络及NCNN 推理框架压缩移植模型,以及在颈部网络中采用GSConv 模块替换传统卷积,来改善目标检测网络模型参数量太大、计算复杂的问题,使其可部署于ZYNQ 嵌入式平台,达到实时检测声呐图像的目的。

2 面向声呐图像的轻量化YOLOv5目标检测算法

YOLOv5 是一种基于深度学习的单阶段目标检测算法。相比于YOLOv4[21],它在速度与精度都有了显著的提升。在目标检测任务中,特别是对小目标的检测中,表现出优秀的检测效果[22-23]。对比后来提出的YOLOv7 算法,YOLOv5 的训练和推理速度更快,并且内存占用也更少。这使得YOLOv5 在某些应用场景中更占优势,例如在移动设备或者运行资源有限的系统中。由于水下声呐图像模糊、噪声大、目标小,同时嵌入式设备运行内存小,设备运算能力有限的情况,为了提升声呐图像小目标的检测精度和提高模型的推理速度并进一步降低网络参数量,本文在YOLOv5 算法的基础上,设计了一种面向声呐图像的轻量化YOLOv5 目标检测网络模型,其结构如图1 所示。

图1 轻量化声呐图像YOLOv5 目标检测网络模型Fig.1 Lightweight sonar image YOLOv5 object detection network model

2.1 深度可分离卷积

传统的YOLOv5 算法采用CSP-Darknet53 作为主干网络来进行图像特征的提取,虽然在检测效果上有较高的精度,但在嵌入式平台上,其计算量和内存占用太大,不适合低运算能力和存储能力的情况[24]。

为了进一步减少参数量和运算量,本文采用深度可分离卷积[25]代替原来的卷积模块。深度可分离卷积包含逐通道卷积和逐点卷积。逐通道卷积用不同的卷积核对输入的每个通道单独做卷积,而逐点卷积是用1×1 的卷积核对逐通道卷积所有通道的输出合并在一起。其结构如图2 所示。

图2 深度可分离卷积结构Fig.2 Depthwise separable convolution structure

对于一个卷积点而言:假设有一个3×3 大小的卷积层,输入通道为16、输出通道为32。要用32 个3×3 大小的卷积核在16 个通道中分别做卷积,得到32 个输出通道,参数量为16×32×3×3=4608 个。

如果应用深度可分离卷积结构块,先用16 个3×3 大小的卷积核在16 个通道上做逐通道卷积,得到16 个特征图谱。在融合操作之前,接着用32 个1×1 大小的卷积核在这16 个特征图谱上做逐点卷积,参数量为16×3×3+16×32×1×1=656 个。可以看出,深度可分离卷积的应用可以显著地降低模型的参数量。

2.2 GSConv

在YOLOv5 中,Neck 层是位于Backbone 和Head之间的一组卷积层,用于提取特征金字塔。特征金字塔有助于模型对不同大小和比例的物体进行泛化。Neck 层的作用是将不同层次的特征图进行融合,以提高特征提取的效率和准确性。相较于普通卷积,深度可分离卷积虽然显著减少了参数量,但其最大缺陷在于一定程度上忽视了通道之间的关系,产生了信息割裂。深度可分离卷积对输入通道的内容进行分层处理,针对每一个通道进行相互分离的卷积操作,最后依照其输入通道重新合并,虽然在一定程度上降低了多通道所带来的计算量问题,但是通道间的相关信息却丢失了。为了有效保留多通道信息,增强提取到的语义信息,让图像特征更好地表示图像的本质和特点[26],本文在Neck 层采用GSConv[27]代替传统卷积,提高检测模型的精度,同时减少模型的参数量,而不额外增加计算量[28]。

GSConv 模块的结构如图3 所示。设输入和输出通道数分别为C1和C2。首先经过一个标准卷积,通道数变为C2/2,再经过一个深度可分离卷积,通道数不变,最后将两次卷积的结果进行拼接和混洗。最后的混洗操作,能够将通道信息进行均匀打乱,增强提取到的语义信息,加强特征信息的融合,提高图像特征的表达能力。

图3 GSConv 结构图Fig.3 GSConv structure diagram

GSConv 模块是由标准卷积、深度可分离卷积和Shuffle 三部分卷积混合而成。该模块对标准卷积所生成的特征信息通过Shuffle 混合策略渗透到深度可分离卷积生成的特征信息的每一模块中,使得该方法的卷积计算接近于标准卷积的输出,但降低了计算成本。通过添加深度可分离卷积层和Shuffle 层,增强了特征信息的非线性表达能力,使得GSConv 卷积更加适用于轻量化的模型检测器。

网络在Neck 层进行特征融合时,语义信息也会不断地向下传输,当特征图的高宽和通道数被不断压缩和扩展时,会导致部分语义信息的丢失,从而影响到最后的预测。本文在网络的Neck 层引入GSConv模块,使用GSConv 模块代替标准卷积来进行上采样和下采样,降低模型的参数量和计算量,并在最大程度保证采样效果,保证训练精度。

2.3 融合注意力机制

对于声呐图像存在模糊且小目标物体易被忽略等现象,研究发现在主干网络中添加注意力机制可以有效地剔除不相关信息的干扰,更好关注小目标物体的特征[29-30]。为了提高模型的精度,本文中使用了一种三维无参注意力机制SimAM 和卷积块注意力机制CBAM 相结合的融合注意力机制。

2.3.1 CBAM 注意力机制

在YOLOv5 算法改进中,常见的是添加SE(squeeze-and-excitation)注意力机制模块[31]。SE 注意力机制能够通过自适应地学习通道之间的关系来增强重要特征的表达能力,但是在声呐图像小目标检测问题上存在着一些不足。由于声呐图像中的目标尺寸较小,其空间信息对于检测和定位至关重要,SE 注意力机制是将特征图压缩为全局描述向量,这会导致空间信息的丢失,不利于声呐图像小目标检测。因此本文引入CBAM 注意力机制[32],更好地结合通道和空间注意力,更好地适应小目标的特征表示需求。

卷积块注意力机制(CBAM),包括两个子模块:通道注意力模块(CAM)和空间注意力模块(SAM)。两个模块具有不同的功能,SAM 可以提取输入图像的主要特征信息,CAM 可以根据每个特征通道的重要性设置权重。CBAM 模块结构如图4 所示。

图4 CBAM 模块结构图Fig.4 CBAM module structure diagram

在通道注意力模块中,将输入的图像分别应用平均池化和最大池化,输出的特征图通过只有一个隐藏层的多层感知器(multi layer perceptron,MLP)来生成通道注意力图。再通过元素相加计算通道注意力子模块。计算公式如下:

其中:σ是Sigmoid 函数;MLP 为多层感知器;AvgPool(F)和MaxPool(F)分别表示平均池化和最大池化;MC(F)为通道注意力模块。

与通道注意力不同,空间注意力子模块为了更好地检测目标的位置信息,其沿通道轴同时进行平均池化和最大池化过程,并通过卷积层生成空间注意图。计算公式如下:

其中:F′为输入特征图;f为7×7 卷积运算;AvgPool(F')和MaxPool(F')分别表示平均池化和最大池化;MS(F')是空间注意力模块。

2.3.2 SimAM 注意力机制

由于声呐图像目标较小,其特征容易被忽略或丢失,本文在算法的Head 部分因引入SimAM 注意力机制[33],SimAM 的结构如图5 所示。在实际声呐图像检测过程中,即使目标在图像中所占比例较小,依然可以通过评估每个神经元的重要性,从而提高局部感知能力以帮助网络更好地捕捉目标的语义特征,提高精度和成功率;同时,SimAM 机制通过调整特征图的尺寸和通道权重相互关系,加强相似的特征图之间的关联性,在不增加模型参数量的前提下,实现模型的自适应特征选择。

图5 SimAM 结构图Fig.5 SimAM structure diagram

该注意力机制的作用原理是通过能量函数来实现的,而能量函数的定义与神经科学领域中的空域抑制现象有关,活跃的神经元会抑制周围信息匮乏神经元的表现能力。因此,神经元的重要程度可通过能量函数来表达,最小能量可以通过式(3)得到:

其中:t代表输入特征X的目标神经元,和是除t外所有神经元计算所得的平均值和方差。对于一个目标神经元,如果它的输出与其他神经元的输出差异越大,那么它的能量越低,也就是它的重要性越高,因而可用来表示神经元的重要性。

接着,我们对特征进行增强以特征的表达能力:

本实验将SimAM 注意力模块放在Head 网络,此举可以在不额外增加参数的情况下,通过对空间位置特征和通道信息的全面评估来对重点神经元进行特别关注,最终实现在改善网络特征提取能力的同时加快网络训练速度。

2.4 损失函数设计

因为声呐图像的特点,图像数据集中各类别数量往往不平衡,导致模型没有很好的泛化能力。本文借鉴Focal-Loss 的计算思路,将YOLOv5 原始的CIoU损失函数优化为Focal-CIoU[34],更好地处理小目标、困难样本和类别不平衡问题,提高目标检测的精度和鲁棒性。它是一种动态缩放的交叉熵损失,可以专注于难以分类的错误分类样本,其计算公式为

借助动态缩放因子,可以动态降低训练中那些易分类样本的权重[35],从而让模型可以更快地关注那些复杂样本。对于分类不准确的样本,Focal-CIoU 的损失没有改变,而对于分类准确的样本,损失会变小[36]。换言之,增加了不准确分类样本在Focal-CIoU 中的权重,提高了分类的鲁棒性。

3 基于ZYNQ 的声呐系统设计及目标检测算法实现

3.1 基于ZYNQ 的声呐系统设计系统

为了验证本文所设计的声呐图像目标检测算法的可行性,设计了一种基于ZYNQ 的声呐图像检测系统。本文所设计的声呐图像目标检测系统分为PL 端和PS 端两个部分,系统设计图如图6 所示。PL 端主要包括Xilinx Artix-7 系列FPGA,PS 端则主要两个ARM Cortex A9 处理器组成。

图6 声呐系统结构图Fig.6 Diagram of the sonar system

本文所设计的声呐系统工作流程如图7 所示,主要包括两部分:PL 端产生PWM 信号上传到发射驱动模块,该模块通过升压激励发射换能器。接收换能器接收目标的反射和散射回波信号,经过滤波、放大等信号调理后,将信号传输至AD 进行采集。随后,系统对接收到的数据进行DFT 处理,并将处理结果上传至波束形成模块。PL 端通过波束形成算法每两秒约生成40 张图,根据式(6)计算每对图片的均方差(MSE),然后根据均方差的值选择差异最大的两张图传至DDR;PS 端每次从DDR 中读取两张声呐图像,PS 端的两个CPU 利用转换好的模型同时进行声呐图像的实时目标检测。

其中:m和n分别是图像的高度和宽度。I1[i,j]和I2[i,j]分别是两个图像在像素位置(i,j)处的灰度值。

3.2 ZYNQ 端目标检测算法部署

PC 端所训练出的深度学习参数往往保存在指定的模型中,并不能应用在所有硬件平台,模型移植ZYNQ 端首先需要经过参数提取与格式转换。如图8所示为本文算法部署到ZYNQ 端的原理图,深度学习的算法模型可基于NCNN 框架实现高效快速的前向推理计算。声呐图像目标检测算法成功部署到ZYNQ 端,首先需要将Pytorch 所训练的pt 模型文件转化为开放神经网络交换模型(open neural network exchange,ONNX),并检查模型是否错误;使用onnxsimplifier 优化ONNX 模型,以提升模型的推理速度;随后通过onnx2ncnn 工具将ONNX 模型转化为NCNN 模型,并利用ncnnoptimize 工具对模型进行量化操作。

图8 模型转换流程Fig.8 Model conversion process

分别在GPU 2080Ti、X86 CPU 和 ZYNQ7020 三个平台上进行实验,以确定本文所设计的模型在不同平台上的计算量、内存占用、推理率、运行功耗和单位功耗帧速率指标,所得的实验结果如表1 所示。

表1 不同设备运行结果Table 1 Running results of different equipments

将模型移植到ZYNQ 平台时,通过ncnnoptimize操作将卷积层替换为内积层,并删除部分无用的连接,减少了部分模型的计算量。更改的检测流程,使得双核CPU 更好的利用,提高了推理速度,减少了系统内存的占用,同时也由于ZYNQ7020 平台低功耗设计和SoC 架构,使得内存占用远远优于其他平台。对比模型的推理率,显然,2080Ti 的推断率是最好的,然而功耗也异常高。本研究所使用的 ZYNQ7020 平台获得了高达 0.162 FPS/W 的优异性能,从而验证了所设计的声呐系统比其他平台具有综合优势。

4 实验结果与分析

4.1 声呐图像数据集

本文采用的数据集是使用ARIS Explorer 3000 声呐在水箱和转盘中用前视声呐捕获的海洋废弃物数据vPropeller、Shampoo-bottle、Standing-bottle、Tire、Valve、Wall),共有1868 张图片。本文测试集按总数据0.1 的比例划分,训练集共1718 张,测试集共150 张。数据集每个类别的分类如图9 所示。

图9 数据集中的图片数量分布Fig.9 Distribution of the number of images in the dataset

声呐图像目标检测神经网络的训练,通常需要大量的水下数据支持。由于声呐图像受到设备、成本、环境等各种因素的限制,导致声呐图像数据集的图片数量短缺。本文采用数据增强的方法,对原始的训练集图片进行上下翻转、几何滤波等操作,将原始的训练集图片数量扩大了三倍,使其更好进行声呐图像上的卷积神经网络训练。扩充后训练集和验证集分别包含5154 张和150 张图片,训练集图像数据增强的结果如图10 所示。

图10 数据增强图像Fig.10 Data-enhanced images

4.2 目标检测算法性能

4.2.1 对比实验

为了进一步验证本文所提出的算法在声呐图像目标检测的优势,将本文算法与其他常见目标检测算法进行了对比,对比实验结果如表2 所示。

表2 对比试验Table 2 Comparative experiments

从实验结果可以看出,本文所提出的算法在Map50 指标上高于其他算法,在模型参数量上也优于其他算法。本文算法在检测精度和模型大小上均具有出色的能力,更能适应嵌入式端声呐图像目标检测任务。

为了比较本文算法与其他算法在不同类别上的实际检验效果,对数据集上的测试结果进行了可视化展示,比较结果如图11 所示。

图11 不同算法图像检测结果对比图Fig.11 Different algorithm image detection result comparison

从图中可以看出,本文算法的检测框图与实际标注文件的目标最为紧密,而且在各类别的检测情况中,错检、漏检的现象都要优于其他算法。并且,本文算法在Can 和Drink-carton 这些小目标类别上的检测效果优于其他算法,更好地关注了声呐图像细小目标的特征。

4.2.2 消融实验

为了直观地观察不同的改进模块对声呐图像检测模型检测性能的影响,本节采用消融实验进行验证。具体而言,在原有的YOLOv5s 模型中分别进行加入SimAM、CBAM、混合注意力机制、改进的损失函数、替换主干网络的卷积为深度可分离卷积以及替换颈部网络的卷积为GSConv 来保证在相同数据集、相同训练轮次下检测效果的比较。

实验结果如表3 所示。当分别加入SimAM 和CBAM 时,Map50 和Map50-95 均有所提高。将混合注意力机制加入到网络后,Map50 和Map50-95 均比单独添加要高,提高了目标检测的精度指标。当使用了改进的损失函数后,Map50 和Map50-95 有了显著提高。当替换了YOLOv5s 的主干网络的卷积为深度可分离卷积以及替换颈部网络的卷积模块后,模型的参数量大大减少,Map50 和Map50-95 也有了提高。当同时应用上述改进模块集成生成最终目标检测模型时,Map50 和Map50-95 分别达到0.934 和0.708,检测精度达到最高。

表3 消融实验Table 3 Ablation experiments

4.2.3 经典数据集对比实验

为证明改进模型也同样适用于其它图像的目标检测,本文补充了对于经典数据集VOC2007 的检测结果,将YOLOv5s 和本文算法进行对比实验,结果如表4 所示。

表4 经典数据集对比实验Table 4 Comparison experiment of classic datasets

实验结果表明,在经典数据集上,本文算法相较于YOLOv5s 算法,本文算法的Map50 提升不足1%,远不如声呐数据集上提升明显,且Map50-95 由于更多关注小目标特征反而有所下降,证明了本文所改进模型在声呐图像目标检测上的有效性。

5 结 论

本文针对声呐图像背景噪声大、小目标检测精度低等问题,设计了一种面向声呐图像的轻量化YOLOv5 目标检测算法。首先利用替换主干网络为轻量级网络,大大降低了模型的运算量,然后利用融合注意力机制和改进损失函数的方法,更好地提取小目标特征,提升模型的检测精度,最后利用NCNN 前向推理框架,将训练好的模型成功部署到ZYNQ 端,实现了声呐图像的实时检测。实验证明,本文所提出的方法在声呐图像小目标检测任务中具有较高的检测准确度,可应用到水下声呐图像实时检测任务中。

猜你喜欢
声呐注意力卷积
探索大洋的“千里眼”——声呐
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种便携式侧扫声呐舷侧支架的设计及实现
声呐
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
COTS技术在声呐装备中的应用