基于YOLOv4的海上目标识别技术研究

2022-05-09 02:43罗亚松
兵器装备工程学报 2022年4期
关键词:水柱灰度天线

张 坤,罗亚松,刘 忠

(海军工程大学兵器工程学院,武汉 430033)

1 引言

为满足舰炮对海射击脱靶量自动化测试需求,检靶系统需要针对海上弹丸水柱和靶球进行准确识别并定位。海上目标识别算法属于检靶系统的关键技术,其性能优劣直接决定着检靶系统的可靠性与实用性。当前海上目标检测研究的主要对象是水面舰船,但与静止的舰船目标相比,弹丸水柱和靶球检测更加具有挑战性:水柱在形态和颜色上随时间不断变化,初始时和浪花极为相似,发展变化过程很快,从出现到消散只有3~5 s,在消散阶段,水柱由凝实转为浓雾状,对其他目标造成遮挡,并改变了周围环境亮度,导致检测环境更加复杂;靶球目标体积小,随波漂浮,在监控画面上呈现出时隐时现的特点,单靶球的外形表现为被部分遮挡的球形,多靶球的外形表现则更加复杂。本文设计一种海上目标识别算法,对海上水柱目标和靶球目标进行快速有效识别。

2 网络选择及原理介绍

2.1 网络选择

检靶系统使用高清光电摄像机作为图像输入设备,以无人艇为观测平台,实现目标方位信息在复杂环境下(包括浓雾、阴雨天、四级以下海况、逆光、齐射、远距离、目标重叠等极端情况)的高精度实时检测。系统必须保证能迅速准确地识别出相应目标,因此对目标识别技术的准确率和实时性都提出了很高要求。为满足使用要求,选用的识别算法网络模型需要同时具备强大的检测能力和轻量化的网络结构,具备多目标识别能力和较强的抗干扰能力,能够应对复杂多变的海上环境。

本文在研究对比了多种目标识别技术后(见表1),最终选定使用各方面性能表现较好且运行稳定的YOLOv4深度学习网络作为基础模型,在基础上进行改进,以适应检靶系统的识别要求。

表1 多种深度学习模型的海上目标识别效果Table 1 Comparison of maritime target recognition effects for a variety of deep learning models

2.2 YOLO算法介绍

YOLO系列模型是典型的单阶段目标检测算法网络模型,能一次性快速识别多种目标,在识别效率上有较大优势,其识别效果如图1所示。

图1 YOLO算法识别效果图

2016年,Joseph Chet Redmon等提出了YOLOv1目标识别模型,奠定了YOLO系列模型的基本检测流程:输入图片并压缩至规定大小,将图像划分为×个方格,用不同尺寸的锚定框对每个格子进行检测得到每个格子预测出的Bounding Boxes及其置信度和一张表示每个格子分类可能性的图,经过非极大值抑制(NMS)操作得到输出结果。经过几年的发展和改进,2020年Alexey Bochkovskiy等提出了YOLOv4模型,YOLOv4融合了近年来深度学习领域涌现的一些优秀检测技巧,在精度和速度上都得到很大提升。在网络结构方面,YOLOv4可分为输入(input)、骨干(backbone)、颈部(neck)、头部(head)4个部分,其中backbone部分采用了在检测速率、参数数量、模型层数等方面表现更加优异的CSPDarknet53网络;neck部分则采用了空间金字塔池化层(Spatial Pyramid Pooling,SPP)作为附加模块,采用路径聚合网络(Path Aggregation Network,PANet)作为路径聚合模块;head部分则沿用了YOLOv3的YOLO-head。以上组成了YOLOv4模型的整体框架。在检测技巧方面,YOLOv4将它们分为Bag of Freebies(BoF)和Bag of Specials(BoS)两类并应用到模型框架的各个部位,以优化检测性能,提高检测精度和速度。

2.3 检测流程

图2为YOLOv4的网络结构图,如图2(a)所示,YOLOv4在输入端将图像尺寸调整为固定大小输入检测网络,图像数据进入CSPDarknet53骨干网络,CSPDarknet53网络是由阶段交叉梯度模型(cross stage partial,CSP)和Darknet53网络组合而成,将CBM(CNN-BN-Mish)卷积层和多个残差组件Resunit堆叠而成的CSP模块通过route层插入到卷积层中,一方面加深了网络模型的深度,使网络能获取更高层次的语义信息和更多的特征图;另一方面通过引入多个残差网络和route分流,使各层的计算量得到一定程度的平衡,提高了运算速度,同时也有效防止了网络深度增加导致的梯度爆炸或梯度消失问题。图像数据在骨干网中经过多次降维处理,分别在骨干网末端、倒数第一次降维和倒数第二次降维处引出三条数据通道通向网络的颈部,用于检测不同尺度的目标。三条通道的数据经过CBL(CNN-BN-Leaky)模块、SPP结构网络后按照PANet结构的方式进行卷积、上采样和route层融合,最后输入到头部。这种处理方式使浅层特征和高级语义特征得到融合,使多个尺度的感受区域得到融合,进一步强化了网络对不同层级特征的利用效率,能有效改善小目标丢失问题并提高检测精度。在网络头部,数据图像最终被处理成为19×19、38×38、76×76三种不同大小的栅格图,分别用于实现对大型目标、中型目标和小型目标的检测。

图2(b)中,CBM是使用了批量归一化(Batch Nomalization,BN)和Mish激活函数的卷积层,图2(c)CBL则是使用了批量归一化和Leaky激活函数的卷积层。Mish激活函数比Leaky激活函数更有助于保持小的负值从而稳定网络中的梯度流,使更多的权重能够得到更新,具有更好的泛化能力,有效提高了检测结果的质量。图2(d)表示Resunit模块的组成,“add”表示将相同尺寸大小的特征图数据进行相加。图2(e)为CSP模块的组成结构,CSP模块由多个Resunit模块和卷积模块的残差网络堆叠而成。图2(f)为SPP模块的组成结构,将骨干网输出的特征图分别进行尺度为5×5、9×9、13×13的最大池化,再将未池化数据和3种池化结果聚合,其中“concat”表示将不同尺寸的特征图数据进行拼接。

图2 YOLOv4网络结构图

3 YOLOv4算法改进

3.1 K-means聚类算法

YOLOv4网络在使用时需要预设9个锚定框(Anchor Box)用于预先确定检测目标的长宽比,并在每个格子中都生成9个锚定框对框内物体进行检测,预测出目标的Bounding box。由于水柱目标不是静态的,它的尺寸、外形随着时间在不断变化,YOLOv4默认的Anchor Box并不适用这种单一类型的动态目标检测,因此本文使用-means聚类算法对水柱数据集中的目标尺寸进行聚类,求出合适的Anchor Box值。

-means聚类算法是一种无监督的聚类算法,本文将检靶数据集中标注好的目标边框的长、宽作为初始数据集输入聚类算法中,算法随机选择9个质心,然后分别求数据集中每个点到各个质心的距离,并将该点的类别标记为与它距离最近的质心的类别,再对当前各个类别的点求新的质心,基于新的质心对所有点重新分类,再求质心,多次重复前面2个操作直到质心不再改变,最终得到一组比较优的Anchor Box值。

3.2 SE注意力机制

HU等提出SE模块,SE注意力机制如图3所示。这是一种轻量级的注意力机制模块,能够轻易地加入网络模型中且只增加少量的模型复杂度和计算开支。在检测任务中,随着数据流在网络中不断加深,目标特征表现逐渐微弱,容易造成小目标和弱目标的漏检。通过在网络中的适当位置嵌入SE注意力模块,可以增强网络对重要通道的学习能力,提高识别率。为了在小目标特征消失前对通道特征进行强化,本研究考虑将SE注意力模块嵌入YOLOv4骨干网络的中段,具体结构如图4所示。将SE模块添加到Resunit模块中,形成新的SE-Resunit模块,并替换原CSP模块中的Resunit,再在CSP模块的concat后添加SE模块,形成新的SE-CSP模块替换位于Backbone中的所有CSP模块。

图3 SE注意力机制框图

图4 SE-YOLOv4算法具体结构示意图

4 图像预处理

4.1 基于灰度共生矩阵的海天线检测

从无人艇平台的角度进行观测,可以发现水柱和靶球的位置几乎都处于海天线附近,找到海天线位置能够进一步提高检测率,降低误检率。论文基于灰度共生矩阵原理设计了一套海天线快速检测程序,对输入图像进行高效计算,能在0.02 s内完成一幅1 920×1 080高清图像的海天线检测。

灰度共生矩阵是一种描述图像纹理特征的方法,在图像分析领域有着广泛应用。其原理是统计灰度图上任意一点与它0°、45°、90°、135°四个方向固定步长所对应的点所形成的灰度对(,)的数量。这4个方向的灰度统计就是灰度共生矩阵,通过它可以较好地展示出图像的纹理特征,从而找到海天线位置。因为需要对原图进行多次遍历操作,当图像尺寸较大且灰度值较大时将产生巨大的计算量。受景宏磊等启发,论文中在计算灰度矩阵前将×高清图像平均划分为16×16个矩形区域,每个区域的大小为×,分别求每个区域内的灰度和,再将灰度和按比例降低至16以内并取整,形成灰度压缩后的新灰度图:

(1)

式中,(′,′)为点(′,′)处的灰度值;(,)为(,)区域向下取整后的灰度和。

新灰度图的尺寸为16×16,灰度级也为16。图像在质量上有所损失,但海天线检测对清晰度要求不高,因此不影响检测效果。对压缩后的灰度图求灰度共生矩阵

(2)

式中,=0°、45°、90°、135°;为点和点之间的距离;#()表示集合中的元素个数。

对4个方向的灰度共生矩阵分别进行归一化处理:

(,)=(,,,)

(3)

再利用灰度共生矩阵(,)计算对比度Con:

(4)

取竖直方向对比度变化最大的位置作为海天线位置,并截取其上50像素,下25像素的范围作为算法的检测区域。考虑到海天线检测对于蓝色比较敏感,因此以图像的蓝色通道作为输入。检测效果如图5所示。

由图5中可以看出,GLCM算法能清晰呈现出海天线的纹理,且该算法对于倾斜度达到45°的海天线和浓雾背景下的海天线都具有良好的检测能力。

图5 基于灰度共生矩阵的海天线检测效果图

4.2 图像相似性快速检测

当YOLOv4算法在视频流中对目标进行检测时,算法将对每一帧的图像数据都进行检测。对于不同的图像来说,每次检测到的目标位置都存在一些偏差,也会有误检和漏检,从而导致对视频流进行检测时检测框不断闪烁变换。短时间内,目标的形状、位置在前后帧图片中相差不大,若逐帧检测不仅浪费算力,还会影响对检测效果的判断。本文采用图像相似性快速检测的方式,剔除视频流中相似性程度较高的图像,改善视频流检测效果。

结构相似性检测,是一种从图像组成的角度来评价两幅图像相似程度的算法。它将图像失真度定义为图像亮度、对比度和结构3个独立因素的组合。

(5)

(6)

(7)

本文先利用滑动窗口将图像分为块,再计算每个对应分块的SSIM值,最后求所有SSIM的均值MSSIM:

(8)

(9)

MSSIM值越大,两张图像越相似。以上一帧输入网络中的图像为参考帧,计算当前图像与参考帧之间的MSSIM值,当该值超过设定的阈值时,当前图像不进入检测网络,并和上一帧检测结果共同输出;当该值小于阈值时,则将当前图像输入检测网络中,并将该图像更新为新的参考帧。

5 试验与结果分析

5.1 目标检测环境搭建

为 验证改进后YOLOv4网络的有效性,本文在检靶数据集上开展实验。本次实验平台环境如下:

操作系统:Windows 10

深度学习框架:Tensorflow2.3.0-GPU

CPU:AMD Ryzen 7 4800H with Radeon Graphics

内存:32 GB

显卡:NVIDIA GeForce RTX 2060

显存:6 GB

5.2 迁移学习

在对比实验中,需要分别训练原始YOLOv4网络与改进后的YOLOv4网络。在训练原始YOLOv4网络时,若随机生成初始权重对网络进行训练,不仅花费的训练时间较长,而且训练效果和训练进程不易把握。考虑到COCO数据集包含内容较为广泛,其网络权重具有更好的泛用性,因此本文采用迁移学习的办法,将已训练完成的COCO网络权重作为对照网络的初始权重进行训练,可在得到良好效果的同时大大缩短训练时间。

5.3 结果分析

本文采用准确率(Precision)、召回率(Recall)、各类别平均值(mean Average Precision)、帧率(Frame Per Second)4个指标对网络性能进行判断。以交并比为判定依据,当≥0.5时认为该目标被正确识别。

参数设置:输入图片尺寸为512×512,锚定框数量为9(Anchor Box=5,8;10,36;11,16;14,55;17,76;19,53;27,24;28,71;45,140),锚定框放大比例XYSCALE设置为[1.2,1.2,1.05],学习率设置为0.001,BATCHSIZE设置为2。

实验首先对YOLOv4_0、YOLOv4_1、YOLOv4_3、YOLOv4_4模型进行迁移学习,训练Epochs设置为180。对于引入了SE注意力机制的YOLOv4_2、YOLOv4_5、YOLOv4_6、YOLOv4_7模型由于算法结构发生改变,不能使用迁移学习,需从头开始训练,因此需要提高训练循环次数,将Epochs设置为 1 000。使用测试集图片和检靶视频对训练好的模型进行检验,具体结果如表2所示。

表2 不同模型在数据集上的效能评估Table 2 Effectiveness evaluation of different models on data sets

通过对比实验结果可以发现,-means聚类对网络运行速度没有影响,却能够有效提升检测精度,使值提升了12.8%;SE注意力机制因为嵌入在骨干网络中增加了计算量,使FPS值略有下降,但该算法对提升检测精度有重要作用,强化了网络对小目标的检测能力,提高网络对云层和水柱的分辨能力,也提升了召回率,值比初始网络提升了22.1%;由于修改后的GLCM快速算法依然有较大计算量,引入海天线检测算法使值受到了较大影响,但该算法对网络检测精度的提升作用较明显,原因是该算法将检测区域集中到海天线附近,有效避免了舰船尾流对水柱检测的干扰;SSIM相似性检测对算法的检测精度和查准率提升贡献不大,反而有一些负面影响,但它能减少计算量并提高视频流的检测效果。从上述数据可以看出,所提出的几种算法对YOLOv4网络的检测性能都有较好的提升作用,将它们同时应用到YOLOv4网络中检测效果能相互叠加,最终修改后的网络值达到了83.4%,为36帧/s。修改后的网络在检测水柱目标和靶球目标方面比初始YOLOv4网络检测精度提高了29.9%。

6 结论

为实现对海上水柱目标和靶球目标的准确识别,根据目标特征制定针对性的改进方案,最终使目标识别网络的检测能力提高了29.9%,值达到了83.4%。

但是本次实验受到数据集规模限制,无法对海况、光照、气候等影响检测效果的变量进行充分地对照实验,难以考察检测算法的鲁棒性。下一步要继续扩大数据集规模,并考虑将数据集按场景分类,训练多个模型以更好地适应不同场景下的检测需求。此外由于本算法对检测实时性要求较高,在一定程度上牺牲了算法的检测精度,后续研究将考虑设计检测精度更高的目标识别算法用于离线检靶。

猜你喜欢
水柱灰度天线
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
探探鲸的水柱
直升机测向天线阵装机影响分析
天津港智慧工作平台灰度发布系统和流程设计
自制迷你喷泉
洗车新体验
Arduino小车巡线程序的灰度阈值优化方案
应用于5G移动终端的宽带八天线系统
天线音响
水柱有“魔力”