基于YOLOv8的中华鲟智能检测方法
Intelligent Detection Method for Chinese Sturgeon Based on YOLOv8
DOI: 10.12677/csa.2024.144091, PDF, HTML, XML, 下载: 54  浏览: 90  科研立项经费支持
作者: 夏菲菲*, 贾永红*, 周温晖*, 程欣悦:武汉大学遥感信息工程学院,湖北 武汉
关键词: YOLOv8目标检测EMA注意力机制YOLOv8 Object Detection EMAIL Attention Mechanism
摘要: 针对水下鱼类视频图像通常存在严重遮挡、近背景色、目标尺寸不一致的问题,在YOLOv8检测算法基础上,引入EMA注意力机制,利用该机制能自动学习并更加准确地捕捉中华鲟关键特征,以提升YOLOv8的预测能力。将引入EMA注意力机制的YOLOv8检测算法用于中华鲟检测的试验结果表明:在精度mAP@0.5方面,改进的YOLOv8模型相比原始YOLOv8模型提高了3.7%,达到了94%。因此引入EMA注意力机制的YOLOv8检测算法能更好地用于水下视频中华鲟检测。
Abstract: In response to the problems of severe occlusion, near background color, and inconsistent target size in underwater Chinese sturgeon video images, an EMA attention mechanism is introduced based on the YOLOv8 detection algorithm. This mechanism can automatically learn and more accurately capture key features of Chinese sturgeon, improving YOLOv8’s predictive ability. The experimental results of using the YOLOv8 detection algorithm with EMA attention mechanism for detecting Chinese sturgeon show that the accuracy mAP@0.5 in terms of performance, the improved YOLOv8 model has increased by 3.7% compared to the original YOLOv8 model, reaching 94%. Therefore, the YOLOv8 detection algorithm with the introduction of EMA attention mechanism can be better used for underwater video detection of Chinese sturgeon.
文章引用:夏菲菲, 贾永红, 周温晖, 程欣悦. 基于YOLOv8的中华鲟智能检测方法[J]. 计算机科学与应用, 2024, 14(4): 213-218. https://doi.org/10.12677/csa.2024.144091

1. 引言

中华鲟是地球上最古老的脊椎动物,其自身拥有的一系列原始特征在研究鱼类演化与地貌变迁等方面有着重要的学术研究价值和经济价值。中华鲟是中国长江中十分古老且具有珍稀价值的鱼类,有“长江鱼王”的称号。其主要栖息地位于长江中下游干流,而长江的水体污染,渔船的过度捕捞等因素导致了中华鲟生存环境的急剧恶化,天然种群中的中华鲟亲鱼与幼鱼数量也不断衰退,其天然种群规模正不断缩小,自然繁殖的中华鲟幼鱼更是少之又少,野生的中华鲟种群延续状况岌岌可危。因此,采用人工智能技术准确、快速地检测水下环境中的中华鲟技术是成为保护和养殖中华鲟的关键技术之一。

在水下环境中拍摄的中华鲟图像通常存在着光照较弱、对比度低且比较模糊的特点,传统的机器学习方法如支持向量机与BP神经网络等方法检测,对于水下图像的检测精度较差,泛化性能不足。随着计算机视觉技术的不断发展,深度学习在目标检测算法上的优势开始不断显现,基于深度学习的相关目标检测算法应用于水下目标识别越来越受重视。2016年,XuC等 [1] 提出了一种基于SAE-softmax的新型深度学习框架,采用SAE逐层提取特征并应用于水下目标的数据集分类,分类准确率达到了94.1%。袁红春提出了一种基于Faster R-CNN的水下鱼类目标检测方法 [2] ,提高了网络检测效果。沈军宇等 [3] 将CNN和非极大值抑制方法结合,基于YOLO算法提出了一种鱼群目标检测算法,在复杂场景和光线很暗的环境下能保持较好的检测和识别能力。Santos A等 [4] 提出了一种由三个分支组成的CNN网络,分别对鱼类物种、科和目进行分类,以改善具有相似特征的物种的识别。在鱼类科和目的识别上效果较好,分别获得了93.8%和96%的准确率。Zhang等 [5] 提出了一种基于混合神经网络模型的鱼类自动计数方法,用于实时、准确地计算远海鲑鱼养殖中的鱼群数量,计数精度高达95.06%,但计数密度图仍不够准确。李辉等 [6] 提出了一种新的水下两阶段目标检测算法,在网络中加入注意力模块,在多种不同的水下鱼类数据集上模型检测精度均有明显提升,但检测速度还是较难达到实时检测的要求。周温晖等 [7] 提出改进YOLOv5算法用于中华鲟智能检测方法,提高了检测精度,但复杂的水下环境会产生误检和漏检。Shi等 [8] 提出采用图像融合方法进行水下目标检测的YOLOv8模型,平均精度提升7.5%,但对复杂环境下水下目标检测的准确率有待进一步提高。

YOLOv8采用基于中心检测算法的无锚框(Anchor-Free)检测方式,直接检测物体的中心区域和边界信息,有效用于小目标检测。但对复杂环境下水下中华鲟检测在捕捉关键特征方面存在不足,因此本文在YOLOv8模型中引入EMA注意力机制,提出一种改进的YOLOv8算法用于中华鲟智能检测方法,以期提高复杂环境下水下中华鲟检测准确率。

2. 研究方法

2.1. YOLOv8网络

YOLOv8是2023年Ultralytics公司开源的新网络,集成目标检测、关键点检测、实例分割、实时追踪等任务。YOLOv8将分类和回归解耦为2个子网,因无需手动设计锚框,从而减小了锚框的数量和尺寸选择而导致的干扰,能有效提高目标检测的准确性,尤其对小目标更加友好。不同尺寸的锚框数量若不平衡,会导致小目标的检测效果差,而Anchor-Free设计可解决了锚框数量不平衡问题。

YOLOv8的总体结构包括骨干网络(Backbone)、颈部网络(Neck)、检测头(Head)三部分内容。其网络结构图如图1所示。

Figure 1. YOLOv8 network architecture

图1. YOLOv8网络结构

骨干网络Backbone部分采用的结构为Darknet53,颈部网络(Neck)包括基本卷积单元Conv、实现局部特征和全局特征featherMap级别融合的空间金字塔池化模块SPPF、增加网络的深度和感受野,提高特征提取能力的C2f模块。YOLOv8将YOLOv5的C3结构换成了梯度流更丰富的C2f结构,并对不同尺度模型调整了不同的通道数,大幅提升了模型性能。

Head部分的改变:YOLOv8的Head部分从原先的耦合头变成了解耦头,并且从YOLOv5的Anchor-Based换成了Anchor-Free;YOLOv8引入了TaskAlignedAssigner正样本分配策略,并采用了Distribution Focal Loss。

另外,YOLOv8的训练数据增强部分引入了YOLOX中的最后10个epoch关闭Mosaic增强的操作,可以有效地提升精度。

2.2. YOLOv8算法改进

由于EMA注意力机制旨在通过使网络能够动态调制各通道的权重(通道注意),从而重新校准特征来提高网络的表示能力。其工作原理图如图2

Figure 2. EMA attention mechanism

图2. EMA注意力机制

由于EMA基于跨空间学习的高效多尺度注意力效果优于ECA、CBAM、CA,因此,将EMA融入到YOLOv8Neck部分的C2f模块,形成的C2f_EMA模块。其结构如图3所示。C2f_EMA模块能增强提取小目标、模糊目标特征的能力,将更有利于复杂环境中小目标和模糊目标的检测与识别。

Figure 3. C2f-EMA structure

图3. C2f_EMA结构

3. 实验与分析

中华鲟检测试验软硬件环境配置如下:处理器为AMD Ryzen 9 5900HX with Radeon Graphics八核,内存32 GB,GPU为NVIDIA GeForce RTX 3080 Laptop。操作系统为Windows 11 (64位),Python版本3.9,深度学习框架为Pytorch 1.13.1 + cu116,CUDA 11.6和CUDNN 8.3.0。

基于YOLOv8的中华鲟智能检测流程如图4所示。试验视频采集获得包含中华鲟5000张图像,对样本数据使用LabelImg标注工具进行人工标注,获得中华鲟检测数据集,将数据集划分为训练集、验证集、测试集三部分,比例为8:1:1。采用训练集对YOLOv8和改进的YOLOv8进行训练,用验证集进行精度评估。训练中超参数设置如下:迭代次数(epoch)为130;批大小(batch size)设置为24;初始学习率为0.01;优化器为SGD。

在392幅中华鲟测试集上分别采用训练好的YOLOv8和改进的YOLOv8进行了检测试验,用mAP@0.5%对YOLOv8和改进的YOLOv8检测结果评价见表1

Figure 4. Improved YOLOv8 target detection process for Chinese sturgeon

图4. 改进YOLOv8的中华鲟目标检测流程

Table 1. Detection accuracy of Chinese sturgeon based on YOLOv8 (mAP@0.5 %)

表1. 基于YOLOv8的中华鲟检测精度(mAP@0.5%)

表1给出了YOLOv8改进前后的定量评价结果。相比原始YOLOv8模型,改进后的YOLOv8检测的mAP@0.5比原YOLOv8检测增加了3.7%。可见融入EMA的YOLOv8提高了检测效果。

对比分析YOLOv8模型改进前后的检测图像,发现改进的YOLOv8能够检测出较浑浊水体的中华鲟,而原YOLOv8模型对浑浊水体的中华鲟检测结果差。可见将EMA融入到YOLOv8Neck部分的C2f模块,形成的C2f_EMA模块,改进的YOLOv8对于检测浑浊水下中华鲟更加有效。

4. 结论

考虑到水下的复杂环境,针对原YOLOv8算法的不足,提出了一种改进YOLOv8算法,该算法将EMA融入到YOLOv8Neck部分的C2f模块,形成的C2f_EMA模块,增强网络的有效特征提取能力。用于中华鲟检测的试验结果表明:改进的YOLOv8算法提高了检测精度,尤其浑浊水体的中华鲟检测效果好。因此该模型可用于水下视频中华鲟检测,为中华鲟的形态监测与行为分析提供有效方法,为野生中华鲟养殖保护工作提供有益参考。

基金项目

该成果获得“中华鲟产卵场建设方案设计及监控设备研发”项目、武汉大学大学生创新创业训练计划项目资助。

NOTES

*共同第一作者。

参考文献

[1] Cao, X., Zhang, X., Yru, Y., et al. (2016) Deep Learning-Based Recognition of Underwater Target. 2016 IEEE Interna-tional Conference on Digital Signal Processing, Beijing, 16-18 October 2016, 89-93.
https://doi.org/10.1109/ICDSP.2016.7868522
[2] 袁红春, 张硕. 基于Faster R-CNN和图像增强的水下鱼类目标检测方法[J]. 大连海洋大学学报, 2020, 35(4): 612-619.
https://doi.org/10.16535/j.cnki.dlhyxb.2019-146
[3] 沈军宇, 李林燕, 夏振平, 等. 一种基于YOLO算法的鱼群检测方法[J]. 中国体视学与图像分析, 2018, 90(2): 54-60.
[4] Santos, A. and Gonalves, W.N. (2019) Improving Pantanal Fish Species Recognition through Taxonomic Ranks in Convolutional Neural Networks. Ecological Informatics, 53, 100977-100977.
https://doi.org/10.1016/j.ecoinf.2019.100977
[5] Zhang, S., Yang, X., Wang, Y., et al. (2020) Automatic Fish Population Counting by Machine Vision and a Hybrid Deep Neural Network Model. Animals, 10, Article 364.
https://doi.org/10.3390/ani10020364
[6] 李辉, 王晓宇, 刘云, 等. 融合多尺度特征和多重注意力的水下目标检测[J]. 农业工程学报, 2022, 38(20): 129-139.
[7] 周温晖, 贾永红, 焦阳. 水下视频中华鲟检测方法研究[J]. 计算机科学与应用, 2022, 12(8): 1998-2005
[8] 施克权, 李祺, 隋皓, 等. IEMAyoloViT: 基于改进YOLOv8的水下目标检测算法[J/OL]. 电讯技术, 2024: 1-10.
https://doi.org/10.20079/j.issn.1001-893x.231206005, 2024-04-16.