Ves- YOLOv4:复杂海域下船只目标检测技术
2024-01-16郭富海穆晓斌王鸿显
郭富海,穆晓斌,张 申,王鸿显,高 歌
(1.中船航海科技有限责任公司,北京;2.海装驻北京地区第四代表室,北京;3.中国船舶集团系统工程研究院,北京)
1 目标检测技术
目标检测技术在计算机视觉领域中扮演着基石的角色,其主要任务是识别图像中物体的类别和位置。在将卷积神经网络应用于船只目标检测之前,传统的目标检测算法主要包括光流法、帧差法和背景差法[1]等。但存在一些问题,例如:使用人工设计的滑动窗口会导致检测效果不佳;每个步骤需要单独优化设计,难以获得全局最优解,从而导致选择策略的时间复杂度高;手工设计的特征对于目标多样性的变化不具备稳健性[1]。
随着深度学习技术的快速发展,实现海上智能交通成为可能,目标检测技术可应用于船只目标检测,从而提高在复杂海域中船只目标检测的能力。大致可分成两类:单阶段目标检测算法,如:RetinaNet、SSD、YOLO 等;双阶段目标检测算法,如:R-CNN[2]、SPPnet[3]、R-FCN[4]等。然而,海况复杂、光照不均匀、大雾等因素会导致目标模糊,而船只密集和类型复杂以及小尺寸船只目标会降低检测的成功率,使得在海域中实现船只目标检测具有较高的复杂性。因此,在通用目标检测算法的基础上,需要对船只目标识别算法进行改进,以提高检测效果。
2 YOLO 概述
YOLO 算法主要原理是通过在图片的网格中找出目标,预测特征图中框的坐标、目标得分和分类得分,与预测框进行计算得出最终结果。YOLOv4 针对YOLO 以往的网络架构进行了很多优化,骨干网络为CSPDarknet53,颈部为SPP 添加到PANet 模块上,头部基于YOLOv3 进行了改进。Darknet53 将基本层的特征图分为两部分,经过不同路径处理后再结合。SSP通过卷积层获得不同尺度的特征图,将它们拼接成固定长度。将SSP 块和CSPDarknet53 结合,可以显著增加感受野,提取上下文特性,并且没有降低网络操作速度。在FPN backone 过程中,为了解决细节丢失的问题,将大尺度和小尺度的特征更好地结合在一起。采用新的损失函数CIoU-loss,收敛速度比IoU 和GIoU 快,更好地描述矩形框的回归几何度量。
3 Ves-YOLOv4
通过对YOLOv4 网络的输入端、骨干网络结构、颈部网络结构和输出端的改进,我们构建了一种名为Ves-YOLOv4 的深度学习网络架构,用于船只目标识别检测。其采用单阶段检测识别算法架构,包括特征提取、特征融合和检测分类。架构如图1 所示。
图1 算法架构
3.1 数据集
对采集的图像样本进行预处理及标注,构建船只目标检测数据集。使用Label Image 进行五种海面目标的标注:散货船、集装箱船、渔船、游轮和岛屿。为了减少对Batch Size 的依赖并丰富背景信息,使用Mosaic 数据增强方法制作训练数据集,将4 张图片随机缩放、裁剪和排布进行拼接,得到新的4 张图像,并对其进行随机遮挡,增强了检测数据集的多样性。
3.2 网络架构
该网络结构包括Backone、Neck 和Head 三个主要部分。Backone 是引入特征注意模块FA 的特征提取网络CSPDarknet53,Neck 由SPP 和优化后的PANet特征融合结构构成,Head 为检测结构。特征提取网络使用尺寸为640*640 的RGB 图像作为输入,经过卷积、Batch Normalization 和Mish 激活函数后,再通过尺寸 分 别 为(320,320,64),(160,160,128),(80,80,256),(40,40,512), (20,20,1024)的残差块结构进行特征提取。最后一个残差块的输出经过SPP 结构,拼接后将经过CSP 与CBL 结构的结果与主干网络倒数第二和倒数第三个残差块的输出结果一起作为PANet 结构的输入。PANet 结构进行一系列的上采样、下采样和卷积操作,并将三个输入进行特征融合处理,然后输入Head;所述Head 将输出解码前船只的目标坐标信息。网络结构如图2 所示。
图2 Ves-YOLOv4 网络结构
骨干网络为CSPDarknet-53, 在CSPDarknet-53中将特征注意模块FA 嵌入调整后的残差结构中,对特征通道关系中的特征权重进行重新分配,在全局平均池化前加入1×1 和3×3的卷积,实现跨通道信息集成,增强船只图像的空间连通能力;然后,通过全局平均池化,将特征图的全局空间信息转化为一维向量求和,得到特征图的全局信息。全局平均池化公式如下:
式中:Gc 为特征图全局平均池化后的向量和;H 和W为输入特征图的宽度和高度;Uc(i,j)为第c 通道Uc 在(i,j)处的值。
SPP 最大值池化应用于大小为5×5、9×9、13×13 的卷积核,空间维度被保留。将来自不同内核大小的feature map 连接在一起作为输出。比单纯的使用k×k 最大池化的方式,更有效地增加主干特征的接收范围,显著地分离了最重要的上下文特征。
CBL 作为PANet 特征融合结构中的基本组件,其由普通卷积层Conv+归一化层Bn+激活函数层SiLU 三者组成。
SiLu 函数是Sigmoid 函数的一种变体,其函数形式为:
Concat 将两个张量拼接,会扩充两个张量的维度。
CSP 结构用普通的CBL 替换resunit,应用于Neck 中。Backbone 为较深的网络,增加残差结构可以增强层与层之间反向传播的梯度值,避免加深带来的梯度消失,从而提取到更细粒度的特征而不必担心网络退化。
对Mosaic 数据增强后的图像自适应添加黑边,进行标准化处理,缩放到640*640 大小,转换为RGB 图片;输入到训练好的网络中,得到Head 的输出;对于解码,首先将预测结果根据对应anchor 的原始尺寸进行比例放缩,然后根据网格划分与anchor 中心的偏移量,最后过滤掉多余的预测;解码后,进行非极大值抑制,直接选择置信度最高的一个目标作为输出,提升检测速度。
为了减少误检,对输出区域进行阈值过滤和置信度阈值过滤,通过判断目标中心坐标与图片边界的距离和图片宽高的比值进行阈值判定。最后,对输出进行后处理,利用置信度阈值、边界框和类别概率图判断最优的检测结果。
4 结果分析
建立的船只目标检测数据集,共计11 408 张图片,包含五种目标类型,随机选取比例为4:1 的训练集与测试集。把本文的架构(Ves-YOLOv4)与几个代表性的架构在相同的硬件条件下进行评估。如表1 所示。
表1 与其他目标检测方法的精度和速度比较
实验结果表明,本文所应用的复杂海域船只目标检测技术,可对海域船只目标进行正确的判断,保持了较高的识别精度和识别速度。在RTX3060 上,模型的mAP 可达到85.2%,FPS 可达23.1,可以达到实时检测的基本要求。如图3 所示,本文架构可以识别船只的目标信息。
图3 识别效果
5 结论
本文提出了一种基于YOLOv4 优化的聚合网络结构Ves-YOLOv4:
(1) 针对训练数据不足,在输入端进行Mosaic数据增强、自适应图片缩放优化,提高架构的泛化能力,避免了过拟合的发生。
(2) 基于注意力机制构建特征注意模块,嵌入到CSPDarknet-53 中进行特征重新校准,提高了模型在复杂环境下的特征提取能力。
(3) 针对特征融合过程中底层特征语义信息不足、网络过深导致特征消失的问题,优化PANet 特征融合结构,融合多层次特征信息,以增强网络层的接受域和特征提取网络的关联度,提高在复杂海域中小目标检测能力和多目标分类效果。