摘要:斑点叉尾鮰是我国重要的淡水养殖经济鱼类,在高密度集约化养殖过程中,鱼体损伤问题频发,直接影响商品鱼品质和养殖经济效益。传统的鱼体损伤检测主要依赖人工目视判别,存在效率低、主观性强、难以实现批量化检测等不足。因此,研究一种快速、准确的斑点叉尾鮰鱼体损伤自动检测方法,对于提升水产养殖智能化管理水平具有重要的现实意义。
项目简介
基于改进YOLOv8(CBAM+BiFPN)的斑点叉尾鮰鱼体损伤智能检测系统,支持图片、视频及实时摄像头检测,集成数据分析与处置建议功能。
系统概述
本文提出了一种融合注意力机制的改进YOLOv8损伤检测模型。首先,构建了包含正常、轻微损伤和严重损伤三类标注的斑点叉尾鮰鱼体图像数据集,并通过翻转、缩放、噪声添加、亮度调整、雾化效果等多种数据增强手段扩充样本规模。在模型改进方面,通过在YOLOv8骨干网络中嵌入CBAM注意力模块,利用通道注意力和空间注意力的协同作用增强模型对损伤区域的特征表达能力;同时,将原有的PANet特征金字塔结构改进为BiFPN双向特征融合网络,通过自顶向下与自底向上的双向特征传递路径,显著提升了模型对小损伤目标的检测能力和多尺度损伤的识别精度。
在此基础上,本文设计并实现了一套完整的斑点叉尾鮰鱼损伤检测系统。系统基于PySide6框架开发图形化界面,支持图片检测、视频检测和摄像头实时检测三种模式,集成了用户登录管理、检测结果可视化、损伤数据统计分析、损伤知识库查询、处置建议生成及语音播报等功能,满足实际养殖场景下的多样化检测需求。
实验结果表明,改进后的YOLOv8-CBAM-BiFPN模型相较于基线YOLOv8模型,在检测精度上取得了明显提升,能够有效识别不同程度的鱼体损伤。本文的研究成果为水产养殖中鱼体健康状态的智能监测提供了一种可行的技术方案,具有一定的应用推广价值。
系统架构
本系统采用经典的架构设计:

图1 斑点叉尾鮰鱼损伤检测系统架构图
核心亮点
融合CBAM注意力机制与BiFPN双向特征金字塔改进YOLOv8,实现斑点叉尾鮰鱼体损伤的高精度多尺度自动检测。
算法特点
本系统采用YOLOv8作为基线检测模型,并在此基础上进行了两项关键改进:
– CBAM双重注意力(通道+空间)增强损伤区域特征表达
– BiFPN双向特征融合提升小损伤与多尺度目标检测能力
– C2f_CBAM模块将注意力机制深度集成到特征提取全流程
性能突破
通过在斑点叉尾鮰鱼损伤数据集(1,920张图像,2,070个标注框,包含正常、轻微损伤、严重损伤三类)上进行150轮完整训练,改进YOLOv8-CBAM-BiFPN模型取得了优异的识别性能。数据集按7:2:1比例划分为训练集(1,344张)、验证集(384张)和测试集(192张)。

图2 改进YOLOv8-CBAM-BiFPN模型性能分析图
核心技术
在YOLOv8的C2f模块内深度集成CBAM通道-空间双注意力机制,并采用BiFPN双向特征金字塔实现多尺度特征融合,提升鱼体损伤检测精度。
算法详解
YOLOv8 是 Ultralytics 推出的新一代目标检测模型,在网络结构、检测头设计、损失函数和训练策略等方面对 YOLOv5 进行了优化。该模型提供 N、S、M、L、X 等多种尺度版本,以适应不同场景需求。相比 YOLOv5,YOLOv8 将 C3 模块替换为 C2f 模块,增强了特征提取能力;采用解耦头和 Anchor-Free 机制,提高了检测精度与收敛效率;在损失计算中引入 TaskAlignedAssigner 和 Distribution Focal Loss,增强了边界框回归能力;同时在训练后期关闭 Mosaic 数据增强,进一步提升模型精度与泛化性能。

图3 YOLOv8网络架构图
Backbone引入CBAM注意力机制
将标准C2f模块替换为C2f_CBAM,在每个Bottleneck内部嵌入CBAM。通道注意力通过全局平均池化与最大池化捕获通道间依赖关系,空间注意力通过跨通道聚合定位关键区域,使网络自适应聚焦损伤特征、抑制背景干扰。
Neck采用BiFPN思想增强特征融合
在FPN+PAN结构的融合节点同样使用C2f_CBAM替代原始C2f,使自顶向下和自底向上两条路径在特征融合时均经过注意力加权,强化不同尺度特征的有效信息传递,提升对轻微损伤等难检目标的识别能力。
系统功能
本系统基于改进YOLOv8深度学习模型,实现了斑点叉尾鮰鱼体损伤的智能检测与识别。系统采用PySide6构建图形用户界面,提供图片检测、视频检测、实时摄像头检测三种工作模式,并集成了损伤知识库、三级严重程度评估(严重/中等/健康)、语音播报提醒、处置方案推送、数据统计分析、检测记录管理等功能,能够准确识别正常鱼体、轻微损伤、严重损伤三类状态,并提供科学的分阶段处置建议和紧急处理措施,为斑点叉尾鮰鱼体损伤智能检测与科学养殖管理提供高效、可靠的技术支撑。
功能概述
本系统基于改进YOLOv8深度学习模型,实现了斑点叉尾鮰鱼体损伤的智能检测与识别。系统采用PySide6构建图形用户界面,提供图片检测、视频检测、实时摄像头检测三种工作模式,并集成了损伤知识库、三级严重程度评估、语音播报提醒、处置方案推送、数据统计分析、检测记录管理等功能,为斑点叉尾鮰鱼体损伤智能检测与科学养殖管理提供高效、可靠的技术支撑。
单张检测功能
图片检测模式支持对静态图像进行鱼体损伤识别,用户点击界面左侧的”图片检测”按钮并选择图像文件后,系统自动加载图像并调用改进YOLOv8模型进行目标检测,通过PIL渲染中文标签和边界框,在中央显示区域展示标注后的图像,同时显示损伤类别和置信度,右侧面板实时更新检测结果、处置建议信息,检测记录自动保存到SQLite数据库便于后续查询和分析。用户可点击”查看详情”按钮获取完整的损伤知识和分阶段处置方案。
视频检测功能
视频检测模式支持对录制的视频文件(MP4、AVI、MOV格式)进行逐帧检测,用户点击”视频检测”按钮选择视频文件后,系统启动DetectWorker线程异步读取视频流并对每一帧进行实时损伤检测,在界面中显示标注后的视频画面、当前检测帧率(FPS)和累计统计信息,采用多线程处理技术避免界面卡顿,当连续检测到损伤时触发pyttsx3语音播报(针对严重损伤进行重点提醒),检测记录自动保存到数据库并记录视频中出现的损伤类别和严重程度分布情况,用户可随时查看详细的处置建议。
实时检测功能
摄像头检测模式支持连接本地摄像头进行实时鱼体损伤检测,用户点击”摄像头检测”按钮后,系统启动DetectWorker线程打开本地摄像头进行实时视频流检测,实时显示检测结果、损伤类别和置信度,当连续检测到损伤时自动触发pyttsx3语音播报(针对严重损伤进行重点提醒),界面实时更新处置建议信息和检测统计信息,检测记录自动保存到数据库,用户可随时点击查看详细的损伤知识和分阶段处置方案。
数据统计与分析
数据分析模块提供检测数据的可视化展示和统计分析功能,用户点击”数据分析”按钮打开独立的分析窗口,包含数据概览、损伤分析、详细记录三个标签页,可查看检测总数、损伤类型数、平均置信度、严重损伤数等关键指标,通过条形图展示三类鱼体状态(正常、轻微损伤、严重损伤)分布、饼图展示检测来源(图片/视频/实时)和严重程度(严重/中等/健康)分布,支持查询最近50条历史检测记录(存储在SQLite数据库data/app.db)、清空当前用户记录等操作,实现检测数据的持久化存储和全面分析。
损害处置功能
损伤处置功能模块是本系统的核心特色,集成了完整的斑点叉尾鮰鱼体损伤知识库和智能处置决策系统。当检测到损伤时,系统自动推送简要处置建议到界面右侧的”处置建议”卡片,显示预防措施、处置方法和注意事项。用户点击”查看详情”按钮可打开专业的处置建议对话框,展示该损伤的详细信息:包括损伤原因描述、主要表现、相关条件(水温、水质、季节、易发期)、预防措施、技术改进、管理措施、分阶段处置方案(含现场检查/隔离治疗/紧急处理的方法、范围、时限、次数)、紧急处理措施、经济影响评估等全方位内容。针对严重损伤,系统会显示特别提示并通过语音播报进行重点提醒。用户可点击”导出方案”按钮将完整的处置方案导出为TXT文本文件,便于打印或分享给养殖人员,实现从损伤检测到科学处置的全流程智能化支持。
记录管理功能
记录管理模块集成了检测结果的存储和查询功能,系统自动保存每次检测的损伤类别、中文名称、置信度、严重程度、检测来源(图片/视频/摄像头)、检测时间等详细数据到SQLite数据库(data/app.db),用户可通过数据分析窗口的详细记录标签页查看最近50条历史记录,支持按用户隔离数据和清空记录操作,实现从检测到数据管理的全流程自动化处理,为鱼体损伤发生规律研究和养殖管理策略优化提供数据支撑。
系统架构
本系统采用Python 3.12开发,基于Ultralytics YOLOv8框架实现目标检测,使用PySide6构建GUI,通过OpenCV处理图像视频,采用PIL渲染中文标签,利用DetectWorker多线程保 证流畅性,集成pyttsx3语音引擎实现损伤语音提醒,使用SQLite数据库实现数据持久化存储。系统集成损伤知识库模块(defect_ knowledge.py),建立包含损伤原因、症状表现、相关条件、预防措施、技术改进、管理措施、分阶段处置方案的完整知识体系, 通过处置建议对话框提供专业处置方案展示和导出功能,为斑点叉尾鮰鱼体损伤智能检测与科学养殖管理提供完整技术解决方案。

图4 系统总流程图
系统优势
本系统基于改进YOLOv8轻量化检测网络(3.02M参数/6.3MB),在384张验证集上达到97.7% mAP@0.5和86.6% mAP@0.5:0.95的检测精度(精确率97.3%、召回率92.9%),推理速度1.9ms/帧,支持图片、视频、摄像头三种检测模式,并集成损 伤知识库、三级严重程度评估、处置方案推送及数据统计分析功能,能够准确识别正常、轻微损伤、严重损伤三类鱼体状态。
运行展示
系统界面分为左侧功能按钮和参数设置、中央识别画面显示、右侧统计信息和记录管理三个区域,提供单张/视频/实时识别、数据分析、结果展示、记录查询等完整功能,界面简洁直观、操作便捷。
检测效果展示
登录界面:

图5 登录主界面
用户登录界面,展示系统入口

图6 注册主界面
用户注册界面,新用户创建账号
系统运行模块:

图7 系统运行界面

图7 单张检测:轻微损伤

图7 单张检测:严重损伤

图7 单张检测:正常
处置建议:

图25 防治建议:茶树白斑病

图26 防治建议:茶树白斑病

图27 防治建议:茶树白斑病

图28 防治建议:茶树白斑病

图29 防治建议:茶树白斑病

图30 防治建议:茶树白斑病

图31 防治建议:茶树白斑病
数据分析模块:

图32 防治建议:茶树白斑病

图33 防治建议:茶树白斑病

图34 防治建议:茶树白斑病

图35 防治建议:茶树白斑病
数据集与训练
本章介绍了数据集构建、模型训练与性能评估。数据集共1,920张标注图像(2,070个标注框),按7:2:1划分为训练集(1,344张) 、验证集(384张)、测试集(192张),涵盖正常、轻微损伤、严重损伤3个类别。改进YOLOv8模型经150轮训练(1.22小时),在 验证集上达到97.7% mAP@0.5、86.6% mAP@50-95,精确率97.3%、召回率92.9%。
数据集构建
本研究使用的是斑点叉尾鮰鱼体损伤检测数据集,该数据集专门针对鱼体不同损伤类型进行标注。数据集包含养殖现场采集的鱼体图像,涵盖不同光照条件、不同拍摄角度和损伤表现形式,包含3个类别(正常、轻微损伤、严重损伤),具有较强的场景多样性和实用价值。数据集共包含1,920张高质量标注图像(2,070个标注框),按7:2:1划分为训练集(1,344张/1,450个标注框)、验证集(384张/418个标注框)、测试集(192张/202个标注框),为模型训练和评估提供了充足的数据支撑。其中,验证集各类别分布为:正常179个实例、轻微损伤93个实例、严重损伤146个实例,呈现一定的类别不平衡特征(正常样本占比最高42.8%,轻微损伤占比最低22.2%)

图36 数据集划分及类别信息统计示意图
数据集增强
训练阶段采用Mosaic拼接、随机翻转、HSV色彩扰动、随机擦除等数据增强策略,提升模型对不同光照、角度和遮挡条件下的泛化能力。

图35 图像增强
训练流程
模型训练采用端到端的方式,首先加载训练集和验证集进行数据预处理,然后加载YOLOv8n预训练权重进行模型初始化,接着使用SGD优化器进行150轮迭代训练,每轮训练后在验证集上评估性能指标,系统自动保存验证集上性能最佳的模型权重,最终输出完整的性能指标和训练曲线。

图38 模型训练流程
训练流程:
1. 开始训练 → 加载训练集和验证集进行数据预处理
2. 模型初始化 → 加载YOLOv8n预训练权重(yolov8n.pt),使用改进YOLOv8-CBAM-BiFPN架构
3. 模型训练 → 使用SGD优化器进行150轮迭代训练,应用数据增强技术
4. 模型验证 → 每轮训练后在验证集上评估性能指标(Precision, Recall, mAP@0.5, mAP@0.5:0.95)
5. 最佳模型保存 → 系统自动监控验证性能,保存验证集上性能最佳的模型权重(best.pt)
6. 训练完成 → 输出完整的性能指标报告和训练曲线图
训练配置
硬件环境:

软件环境

训练超参数

学习率调度策略
学习率调度策略采用线性衰减方式,前3个epoch进行warmup预热,学习率从0线性增长到初始学习率0.01,之后按线性方式从0.01逐步衰减到最终学习率0.0001。
训练结果
训练曲线分析:
下图展示了模型在150轮训练过程中的完整性能变化,包括损失函数曲线和精度指标曲线:

图39 训练曲线分析
图中展示了10个关键指标的训练过程:训练损失(box/cls/dfl)、验证损失(box/cls/dfl)、精确率、召回率、mAP@50和mAP@50-95
(1)损失函数曲线
从训练曲线图可以看出,训练过程中损失函数呈现稳定下降趋势:train/box_loss从3.37降至0.32,train/cls_loss从5.30降至0.26,train/dfl_loss从2.82降至0.79;验证集损失走势一致,曲线平滑无过拟合。
(2)精度指标曲线
Precision曲线从初始值0.9%快速上升,最终稳定在97.6%;Recall曲线从5.8%稳步提升,最终达到93.4%;mAP@0.5曲线从0.7%快速上升,最终稳定在97.8%;mAP@0.5:0.95曲线从初始的0.2%持续上升,经历快速上升阶段(1-30轮,从0.2%提升至52.5%)、稳定提升阶段(30-90轮,从52.5%提升至77.6%)和收敛稳定阶段(90-150轮,从77.6%提升至86.6%),最终达到86.6%。
(3)Precision-Recall 曲线

图40 Precision-Recall 曲线
展示模型在不同置信度阈值下的精确率和召回率关系,all classes mAP@0.5达到0.988
(4)混淆矩阵(归一化)

图41 归一化混淆矩阵
归一化混淆矩阵展示模型的分类准确性
最佳模型选择
训练过程中,系统自动保存验证集上性能最佳的模型,最佳模型出现在第150轮(mAP@0.5:0.95达到峰值86.6%),保存路径为runs/train/yolov8-cbam-bifpn/weights/best.pt,选择标准为验证集mAP@0.5:0.95指标最高。
训练稳定性分析
- 收敛速度:前30轮快速收敛(0.2%→52.5%),30-90轮稳定提升,90轮后收敛
- 过拟合控制:训练集与验证集损失走势一致,无过拟合
- 训练稳定性:损失曲线平滑,学习率逐步衰减,训练稳定
- 最终状态:最佳模型第150轮,mAP@50-95达86.6%
项目资源
我们提供项目的完整技术资源,包括源代码、训练脚本、配置文件、数据集和模型权重等全部内容。代码采用模块化设计,结构清晰,注释完善,支持完全复现论文中的所有实验结果。项目提供详细的文件清单和技术架构说明(网页已经提供),帮助用户快速理解项目结构,便于二次开发和功能扩展。所有资源均已开源,遵循AGPL-3.0协议,用户可自由使用、修改和分发。

关于项目
作者信息
作者:Bob (张家梁)
项目编号:YI_3 & Datasets-11
原创声明:本项目为原创作品

开源协议
本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。


评论(0)